When running ECCE three distinct types of compute resources are used:
- Desktop workstations running ECCE graphical user interface applications
- Data and messaging servers
- Compute servers running chemistry codes.
Typically these three resources are located on separate machines, but one or more of them can run on a single system.
ECCE client application software such as the Builder, Electronic Structure Editor, and Calculation run on Linux and UNIX workstations under the X Window System. These machines can only be Intel Pentium, Intel Itanium and AMD Athlon Linux PCs, and SGI workstations. The application software can be installed on each individual workstation running ECCE, or preferably, on a shared file system such as NFS or AFS that each workstation accesses.
The ECCE data and messaging server runs the two server software components of ECCE. The data server is an Apache 2.0 web server compiled with the supplied mod_dav module to support distributed data access. The mod_dav module implements the Distributed Authoring and Versioning (DAV) protocol for storing and retrieving data on a web server. The messaging server relies on an open source client/server implementation of the Java standard for interprocess communication (Java Messaging Service), named ActiveMQ, to manage communications between the separate applications running in an ECCE session. ECCE has applied this to C++ applications by embedding a Java virtual machine inside the main Gateway application. In addition to the data and messaging servers, a set of ECCE reference data libraries (such as the basis set and structure libraries) and a small number of ECCE server administration scripts are provided. Either a single data and messaging server (referred to collectively as an ECCE server) can be installed at a site serving all workstations running the ECCE application software, or multiple servers can be installed with user access to each being configured by the ECCE site administrator. In theory, any platform supporting the Apache 2.0 server and Java (for ActiveMQ) could be used as an ECCE server, although only Linux and SGI hosts have been tested.
The compute resources where the chemistry codes are run, referred to as compute servers in ECCE, range from single processor desktop workstations to massively parallel supercomputers and clusters running a variety of queue management systems. They are not constrained by the platforms on which the ECCE application and server software must be run, although they must run either UNIX or Linux.
It is important to understand that each of these three compute resource types (application workstations, compute servers, and ECCE servers) is distinct within ECCE. It is possible for a single desktop workstation to function as all three of these for an ECCE installation and represent the extent of the ECCE configuration at a site. Conversely, there may be dozens of workstations running the application software (Linux and SGI), accessing several ECCE servers, and farming out chemistry jobs to compute servers both at the site and around the world.