NV lib dependencies of OpenMPI from SDK

Hi,

We are still in the progress of switching from MPICH to CUDA/GPU aware OpenMPI and have been using the OpenMPI version that ships with the SDK. However, we have noticed that this version of OpenMPI comes with a dependency on several lbnv*.so, libnvomp.so being one of them. Our non-GPU related code/tools use Intel OpenMP lib and as you know, linking with two OpenMP runtimes is generally not a good idea and we have seen strange segfaults etc.

Is there a specific reason why OpenMPI shipping with the SDK comes with this libnv*.so dependencies or is it just because OpenMPI has been compiled with Nvidia compiler that links those libs by default?

To avoid the use of two OpenMP runtimes in the same binary, would you recommend that we compile OpenMPI ourselves with GCC to avoid pulling in a different OpenMP runtime? If so, anything we would need to pay attention when configuring the compilation to make sure we see the same performance as with the one shipping with the SDK.

If we were to use CUDA-aware OpenMPI without libnvomp.so but just libiomp.so instead, it would mean that we wouldn’t be able to use OpenMP GPU offloading on Nvidia GPUs, but could only use OpenACC, which comes with its own runtime, correct?

Do you think that OpenACC will give way to OpenMP for GPU offloading in the near/mid term, i.e. is Nvidia focusing more on OpenMP rather than OpenACC?

Thanks,

LS

I believe you are referring to the HPC SDK. This forum is more focused on that topic.