FG-MPI: Fine-grain MPI for multicore and clusters
2010 IEEE International Symposium on Parallel & Distributed …, 2010•ieeexplore.ieee.org
MPI (Message Passing Interface) has been successfully used in the high performance
computing community for years and is the dominant programming model. Current
implementations of MPI are coarse-grained, with a single MPI process per processor,
however, there is nothing in the MPI specification precluding a finer-grain interpretation of
the standard. We have implemented Fine-grain MPI (FG-MPI), a system that allows
execution of hundreds and thousands of MPI processes on-chip or communicating between …
computing community for years and is the dominant programming model. Current
implementations of MPI are coarse-grained, with a single MPI process per processor,
however, there is nothing in the MPI specification precluding a finer-grain interpretation of
the standard. We have implemented Fine-grain MPI (FG-MPI), a system that allows
execution of hundreds and thousands of MPI processes on-chip or communicating between …
MPI (Message Passing Interface) has been successfully used in the high performance computing community for years and is the dominant programming model. Current implementations of MPI are coarse-grained, with a single MPI process per processor, however, there is nothing in the MPI specification precluding a finer-grain interpretation of the standard. We have implemented Fine-grain MPI (FG-MPI), a system that allows execution of hundreds and thousands of MPI processes on-chip or communicating between chips inside a cluster. FG-MPI uses fibers (coroutines) to support multiple MPI processes inside an operating system process. These are fullfledged MPI processes each with their own MPI rank. We have implemented a fine-grain version of MPICH2 middleware that uses the Nemesis communication subsystem for intranode and internode communication. We present experimental results for a real-world application that uses thousands of MPI processes and compare its performance with the following fine-grain multicore languages: Erlang, Haskell, Occam-pi and POSIX threads. Our results show that FG-MPI scales well and outperforms many of these other programming languages used for parallel programming on multicore systems while retaining MPI's intranode and internode communication abilities.
ieeexplore.ieee.org