This paper presents the software architecture and implementation of the problem solving environment (PSE) //ELLPACK for modeling physical objects described by partial differential equations (PDEs). The scope of this PSE is broad as //ELLPACK incorporates many PDE solving systems and some of these, in turn, include several specific PDE solving methods. Its coverage for 1-D, 2-D and 3-D elliptic or parabolic problems is quite broad, and it handles some hyperbolic problems. Since a PSE should provide complete support for the problem solving process, //ELLPACK also contains a large amount of code to support graphical user interfaces, analytic tools, user help, domain or mesh partitioning, machine and data selection, visualization, and various other tasks. Its total size is well over 1 million lines of code. Its "open-ended" software architecture consists of five software layers. The top layer is an interactive graphical interface for specifying the PDE model and its solution framework. This interface saves the results of the user specification in the form of a very high level PDE language which is the second layer of interface to the //ELLPACK system. This language also allows a user to specify the PDE problem and its solution framework textually in a "natural" form. In the third layer, the //ELLPACK language preprocessor generates a Fortran control program with the interfaces, calls to specified components and libraries of the PDE solution framework, and functions defining the PDE problem. The fourth layer is an execution environment where the virtual parallel system is defined, where the execution mode, file system, and hardware resources are selected, and where the compilation, loading, and execution are controlled. Finally, the bottom layer consists of several PDE system libraries and their interfaces to the //ELLPACK system. The system employs several parallel reuse methodologies based on the decomposition of discrete geometric data to map sparse PDE computations to parallel machines. An instance of the system is available as a Web server (Web//ELLPACK) for public use at the http://pellpack.cs.purdue.edu.