A Threads-Only MPI Implementation for the Development of Parallel Programs

In this paper, we present a threads-only implementation of MPI, called TOMPI, that allows eecient development of parallel programs on a workstation. The communication and context-switching overhead is reduced signiicantly compared to existing MPI implementations , by the use of threads and shared memory in place of UNIX processes and often sockets. Results demonstrate the scalability of TOMPI in comparison to two MPICH devices. We provide a C/C++ preprocessor to modify the semantics of global variables to appear as if each thread has its own address space. This makes TOMPI a true MPI implementation, that is, MPI programs can be run in TOMPI without modiication.