Re: [Mpi-22] Dynamic thread levels
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
participants (1)
-
unknown@example.com