Hi all, I am a beginner of MPI and a little confused with MPI_Init_thread() function:
If we use MPI_Init() or MPI_Init_thread(MPI_THREAD_SINGLE, provided) to initialize MPI environment, when we use OpenMP PARALLEL directive each process is forked to multiple threads and when an MPI function is called, one thread is used to execute the call. It seems that this has same effect when we use MPI_Init_Thread(MPI_THREAD_FUNNELED, provided). So what's the difference between MPI_Init() and MPI_Init_thread(MPI_THREAD_FUNNELED, provided)? Thanks in advance, Yuanyuan