Wednesday, April 19, 2017

TOMPI

"Welcome to the web pages for TOMPI, a Threads-Only MPI Implementation written by Erik Demaine. TOMPI is designed to run MPI programs on a single computer, either a single processor or an SMP. It is designed to be efficient in this environment, allowing effective testing, debugging, and tuning of parallel programs on a workstation. Typically, you can get 100,000+ processes using user-level threads (depending on the stack size you choose), and 512 processes using system-level threads. Experimentally, the slowdown is sub-logarithmic (for example, running 1,024 processes on the same problem is under ten times slower than the serial version).

TOMPI uses threads to minimize communication and context-switching overhead. It is specifically tuned for a workstation environment. Current implementations like MPICH do not work well in such an environment. Even the implementations that use shared memory (like MPICH's ch_shmem device) also use polling, which makes scalability impossible. See the paper below for a detailed comparison.

For those interested in further motivation, implementation details, and experimental results, see the HPCS'97 paper/talk.  The documentation page contains installation instructions and a user guide.  Some frequently asked questions and their answers are available.

TOMPI currently supports Solaris threads, the latest POSIX threads, Cthreads, Real-Time Threads [old site], and should be easy to port to other threading systems. It has been tested on AIX 4.1-4.2 and Solaris 2.4-2.6. Currently, it does not support all of MPI. Most point-to-point communication and some collective communication is available. If TOMPI does not support your needs, send a feature request.  "

http://erikdemaine.org/software/TOMPI/

No comments:

Post a Comment