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 thread)." 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 interfere. 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? Thanks, Jai