[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