[Mpi-22] Dynamic thread levels
Pavan Balaji
balaji at [hidden]
Thu Sep 4 12:28:19 CDT 2008
> I've implemented this in MPICH2 and placed a copy here:
> https://svn.mcs.anl.gov/repos/mpi/mpich2/branches/dev/dyn_thread_level.
> Based on this implementation, I did some measurements using a single
> threaded application, but using MPI_Init_thread() vs. MPI_Init().
>
> Experiment 1: Each process sends to MPI_PROC_NULL (emulating an
> infinitely fast network)
>
> MPI_Init -- 29.94 million messages per second
> MPI_Init_thread -- 15.86 million messages per second
> Difference -- almost 2X
>
> Experiment 2: Two processes communicating over TCP
>
> MPI_Init -- 3.947 million messages per second
> MPI_Init_thread -- 3.231 million messages per second
> Difference -- about 20%
Minor clarification -- with the implementation pointed out above (which
adds a new MPIX_Set_thread_level() call), MPI_Init_thread() +
MPIX_Set_thread_level() to serial has the same performance as regular
single-threaded MPI_Init().
-- Pavan
--
Pavan Balaji
http://www.mcs.anl.gov/~balaji
More information about the Mpi-22
mailing list