I have the following, rather unusual, scenario...

I have a program running with OpenMP on a multicore computer. At one point
in the program, I want to use an external package that is written to
exploit MPI, not OpenMP, parallelism. So a (rather awkward) solution could
be to launch the program in MPI, but most of the time, everything is being
done in a single MPI process, which is using OpenMP (ie, run my current
program in a single MPI process). Then, when I get to the part where I need
to use the external package, distribute out the information to all the MPI
processes, run it across all, and then pull them back to the master
process. This is awkward, but probably better than my current approach,
which is running the external package on a single processor (ie, not
exploiting parallelism in this time-consuming part of the code).

If I use this strategy, I fear that the idle MPI processes may be consuming
clock cycles while I am running the rest of the program on the master
process with OpenMP. Thus, they may compete with the OpenMP threads. OpenMP
does not close threads between every pragma, but OMP_WAIT_POLICY can be set
to sleep idle threads (actually, this is the default behavior). I have not
been able to find any equivalent documentation regarding the behavior of
idle threads in MPI.

Best regards,
Mark
_______________________________________________
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users

Reply via email to