Install OpenMPI from repository with GCC instead of Intel

  • As it seems, the Intel mpicc.openmpi overwrote the official one from repository or one of its linked libraries.

    Here is my output of a official install from repository:

      ~$ dpkg -S /usr/bin/mpicc.openmpi
      libopenmpi-dev: /usr/bin/mpicc.openmpi
    
      ~$ ldd /usr/bin/mpicc.openmpi
          linux-vdso.so.1 =>  (0x00007ffd785f4000)
          libopen-pal.so.13 => /usr/lib/libopen-pal.so.13 (0x00007ff1d848d000)
          libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff1d8270000)
          libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff1d7ea6000)
          libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff1d7ca2000)
          librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff1d7a9a000)
          libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007ff1d7896000)
          libhwloc.so.5 => /usr/lib/x86_64-linux-gnu/libhwloc.so.5 (0x00007ff1d765c000)
          /lib64/ld-linux-x86-64.so.2 (0x000056499326f000)
          libnuma.so.1 => /usr/lib/x86_64-linux-gnu/libnuma.so.1 (0x00007ff1d7450000)
          libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007ff1d7246000)
    

    It does not relay on those missing libraries.

  • To fix it you can reinstall libopenmpi:

      sudo apt-get install --reinstall openmpi-bin libopenmpi-dev
    
  • Also notice /usr/local/lib/libopen-pal.so.13. It's in /usr/local/lib/ folder so it has higher priority then official one in /usr/lib/, compatibility may be broken.

    Check for all sub-versions using

      ls -l /usr/local/lib/libopen-pal.so.13*
    

    then rename them, example

      sudo mv /usr/local/lib/libopen-pal.so.13 /usr/local/lib/libopen-pal.so.13.backup