[Mpi-forum] Threading guarantees of MPI_User_function

Mon May 29 11:18:29 CDT 2017

I’m sorry but the MPI_User_function is not always invoked by the thread that invokes the MPI function that uses it. When you have progression thread, the MPI_User_function may be called by this additional thread.


De : mpi-forum-bounces at lists.mpi-forum.org [mailto:mpi-forum-bounces at lists.mpi-forum.org] De la part de William Gropp
Envoyé : vendredi 26 mai 2017 01:58
À : Main MPI Forum mailing list
Objet : Re: [Mpi-forum] Threading guarantees of MPI_User_function

Just to be clear on this, the MPI standard generally requires the user to enforce any synchronization needed when using threads with MPI, so Jeff’s answer is aligned with the standard.


William Gropp
Interim Director and Chief Scientist, NCSA
Thomas M. Siebel Chair in Computer Science
University of Illinois Urbana-Champaign

On May 25, 2017, at 1:49 PM, Phil Ruffwind <rf at rufflewind.com<mailto:rf at rufflewind.com>> wrote:

On Thu, May 25, 2017, at 12:55, Jeff Hammond wrote:

I expect that MPI_User_function is invoked by the thread that invokes the
MPI function that uses it, and that you need a mutex to touch shared
associated with MPI_User_function when running with MPI_THREAD_MULTIPLE,
but not otherwise.

I would hope that MPI implementations do not serialize calls to
in MPI_THREAD_MULTIPLE mode, because there are many cases where
is trivially reentrant and I would like simultaneous progress if I call
MPI_Allreduce concurrently from 2+ threads (with different communicators,
of course) with the same MPI_User_function.

Thanks for clarifying.  In that case, I'll assume synchronization is
mpi-forum mailing list
mpi-forum at lists.mpi-forum.org<mailto:mpi-forum at lists.mpi-forum.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20170529/dce4bece/attachment.html>

More information about the mpi-forum mailing list