next up previous
Next: Applications Up: Portability versus Efficiency?

Previous: Portability versus Efficiency?


Contemporary parallel computing systems are strikingly diverse in their architectures and operating systems. A variety of interconnection networks can be found in today's most successful commercial machines: hypercube (nCube), 2D-grid (Intel Paragon, Parsytec GC), ring/crossbar combination (Convex SPP1000), -network (IBM SP2), fat tree (CM5), hierarchical rings (KSR2), and 3D-torus (Cray T3D). All of them have their specific advantages and it is still an open question which topologies will `survive' in the future.

Unfortunately, the programming interfaces are also very dissimilar, making it difficult to port a given code from one hardware platform to another. As it seems, portability can only be achieved by the use of vendor independent programming environments like PVM [4,24], MPI [10,5], PARMACS, P4, Zipcode, Express, and Linda. (For an overview on programming environments see [5]).

Portability and scalability are the keywords of this paper. Ideally, a parallel implementation would meet both properties, but in practice interdependencies make this impossible. We compared the performance of two application programs running on Parix (PARallel extensions to UnIX) and PVM (Parallel Virtual Machine). Three different hardware platforms have been used in our experiments: A 512-node transputer system, a Parsytec GC/PP with 96 PowerPC-601 processors and a UNIX workstation cluster with 29 SUN SparcStations. Our experiments give answers to the following questions: Is there any impact of the choice of the programming model on the architecture of the application program? How fast is PVM as compared to Parix? To what extent are PVM programs portable and scalable?

Tue May 16 19:29:30 MET DST 1995