In contrast to the other parallel processing systems described in this section, Express toolkit is a collection of tools that individually address various aspects of concurrent computation. The toolkit is developed and marketed commercially by ParaSoft Corporation, a company that was started by some members of the Caltech concurrent computation project. A second distinction is support for PC's that Express provides, in addition to the usual high performance computing platforms and workstations.
The philosophy behind computing with Express is based on beginning with a sequential version of an application and following a recommended development life cycle culminating in a parallel version that is tuned for optimality. Typical development cycles begin with the use of VTOOL, a graphical program that allows the progress of sequential algorithms to be displayed in a dynamic manner. Updates and references to individual data structures can be displayed to explicitly demonstrate algorithm structure and provide the detailed knowledge necessary for parallelization. Related to the above is FTOOL, which provides in-depth analysis of a program including variable use analysis, flow structure and feedback regarding potential parallelization. FTOOL operates on both sequential and parallel versions of an application. A third tool called ASPAR is then used; this is an automated parallelizer that converts sequential C and FORTRAN programs for parallel or distributed execution using the Express programming models.
The core of the Express system is a set of libraries for communication, IO, and parallel graphics. The communication primitives are akin to those found in other systems, and include a variety of global operations and data distribution primitives. Extended IO routines enable parallel input and output, and a similar set of routines are provided for graphical displays from multiple concurrent processes. Express also contains the NDB tool, a parallel debugger that used commands which are based on the popular ``dbx'' interface. These debugging commands can be issued to single processors or groups of nodes simultaneously.
Express finally contains a set of `back-end'' tools intended to assist performance monitoring and tuning. CTOOL analyzes high level overhead issues such as the relative amount of time spent computing, performing IO and in interprocessor communication. ETOOL shows the relationships between various computing elements and may be used to understand overheads, and cause and effect relationships between actions in different processors. XTOOL profiles CPU usage on a per-processor basis, and may be used at different levels of granularity.