Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

From: Jai Dayal (dayalsoap_at_[hidden])
Date: 2013-10-22 12:23:04

Hi All,

I, for the life of me, can't understand the difference between these two
init_thread modes.

MPI_THREAD_SINGLE states that "only one thread will execute", but
MPI_THREAD_FUNNELED states "The process may be multi-threaded, but only the
main thread will make MPI calls (all MPI calls are funneled to the main

If I use MPI_THREAD_SINGLE, and just create a bunch of pthreads that dumbly
loop in the background, the MPI library will have no way of detecting this,
nor should this have any affects on the machine.

This is exactly the same as MPI_THREAD_FUNNELED. What exactly does it mean
with "only one thread will execute?" The openmpi library has absolutely
zero way of knowng I've spawned other pthreads, and since these pthreads
aren't actually doing MPI communication, I fail to see how this would

I'm asking because I'm using an open_mpi build ontop of infiniband, and the
maximum thread mode is MPI_THREAD_SINGLE.

What am I misunderstanding?