I just finished building an OpenMPI version with custom configuration
(1.4.4) on a server. I do not have root privileges on the server.
The server already had a "default" version on OpenMPI, which seemed to be single-threaded:
ompi_info | grep Thread yields Thread support: posix (mpi: no, progress: no)
For my custom build, I have MPI thread support (precisely, support for MPI_THREAD_MULTIPLE):
/path/to/Custom/OpenMPI/bin/ompi_info | grep Thread yields Thread support: posix (mpi: yes, progress: no)
Thus, I run my application as:
In my application, I do make a check for whether I am getting MPI_THREAD_MULTIPLE support or not:
MPI_Init_thread(&argc, &argv, desired_thread_support,
&provided_thread_support);/*Need provided_thread_support = desired_thread_support*/
printf ("MPI: Requested thread support: %d, MPI thread support received: %d\n", MPI_THREAD_MULTIPLE, provided_thread_support);
When I run the application, I get:
MPI: Requested thread support: 3, MPI thread support received: 0
I have tried lot of things, and I am not sure why this is the case.
At the beginning of the shell script which contains /path/to/Custom/OpenMPI/bin/mpirun [options]..., I set the paths, and LD_LIBRARY_PATH:
So, I think that the correct version of mpirun is being used.
Can someone tell me why I cannot get MPI_THREAD_MULTIPLE support?
I have the same OpenMPI version on my notebook, which does provide me with MPI_THREAD_MULTIPLE.
Thanks a lot.