[Mpi-forum] MPI_Initialized, MPI_Query_thread, MPI_Is_thread_main

Jeff Hammond jhammond at alcf.anl.gov
Fri Dec 16 09:44:55 CST 2011

Are MPI_Initialized and MPI_Query_thread guaranteed to be thread-safe
by all implementations?  If these MPI calls cannot be made in a fully
multithreaded context, how can a multithreaded library determine that
it can make MPI calls in an unrestricted fashion, i.e. determine if
MPI was initialized with MPI_THREAD_MULTIPLE?  Must the multithreaded
library mutex around these two MPI calls and assume that
MPI_THREAD_SERIALIZED is always available?

Can MPI_Is_thread_main be called from a thread that is not main when
only MPI_THREAD_FUNNELED is supported?  I recall that the funneled
mode stipulates that only the main thread can make MPI calls and there
is no text excepting this routine from that constraint.



Jeff Hammond
Argonne Leadership Computing Facility
University of Chicago Computation Institute
jhammond at alcf.anl.gov / (630) 252-5381

More information about the mpi-forum mailing list