The parallel machine used in this study was a Thinking Machines Corporation CM-5. The CM-5 is a general-purpose multicomputer providing both SIMD and MIMD capabilities, allowing users to write both data parallel and message-passing programs. The CM-5 at the University of Tennessee, Knoxville contains 32 processing nodes (although tens to thousands are possible) connected via a fat-tree architecture. Processing nodes (PNs) are the processors that perform actual computations on parallel data and communicate with each other as necessary, to share data [Thi93b]. Each PN has a 32 MHz SPARC 2 processor, 32 Mbytes of memory, and a 128 Mflops vector processing unit capable of performing 64-bit floating-point and integer operations [Hwa93]. Control processors (CPs) manage the processing nodes and I/O devices.
The CM-5 supports two programming models: hostless and host/node. The host/node model involves two programs executing simultaneously, one on the host and a second executing on each processor. The host performs necessary initializations and then invokes the node program. In the hostless programming model, the host is utilized only as an I/O server and to initiate and terminate program execution. A single program runs independently on each node, and communication is achieved through message-passing [Thi93a]. For parallelizing SIMPDEL, the hostless programming model was used. Message-passing was accomplished through the use of communication routines supplied by the CMMD library, version 3.0.