I’m no expert in parallel programming. But I’m curious if I can use them both them in the same application. Is any benefit? It can be done? None seem to ask this question. There is as similar question of combining OpenMP and MPI. And the general answer is yes with depends. But I’m not very familiar with MPI.
Share
MPI is orthogonal in a sense to OpenMP – it is a paradigm to program distributed memory systems where each MPI process has no means to access other MPI processes memory directly (e.g. different processes run on different compute nodes). Since most compute nodes nowadays are multicore, one can use OpenMP or other threading approach to program each node and use MPI to exchange messages between nodes. OpenMP and
boost:threadsare both threading paradigms. I see no point in mixing them except for usingboost::threadsto do regular threading tasks and OpenMP, which is conceptually simpler, for certain data parallel tasks.