web-dev-qa-db-fra.com

Installer OpenMPI à partir du référentiel avec GCC au lieu d'Intel

Je voudrais installer openmpi à partir du référentiel et je dois l’utiliser avec GCC. Le problème est que j'ai aussi installé des bibliothèques intel et que cela pose des problèmes comme celui-ci:

mpicc.openmpi --version
mpicc.openmpi: error while loading shared libraries: libimf.so: cannot open shared object file: No such file or directory

La version de mon GCC est:

gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609

J'essaie d'installer openmpi avec la commande suivante:

Sudo aptitude install  openmpi-bin libopenmpi-dev

Alors, comment puis-je installer OpenMPI à partir de référentiels de manière à ignorer les bibliothèques intel et à n’utiliser que GCC?


MODIFIER

which mpicc.openmpi
/usr/bin/mpicc.openmpi

ldd $(which mpicc.openmpi)
linux-vdso.so.1 =>  (0x00007fffd6fc0000)
libopen-pal.so.13 => /usr/local/lib/libopen-pal.so.13 (0x00007f9b0c8d0000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9b0c6b3000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9b0c2e9000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9b0bfe0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9b0bddc000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f9b0bbd3000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f9b0b9d0000)
libimf.so => not found
libsvml.so => not found
libirng.so => not found
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9b0b7b9000)
/lib64/ld-linux-x86-64.so.2 (0x000056030ed59000)
libintlc.so.5 => not found

J'ai installé le package intel Logiciel Intel® Parallel Studio XE | Intel® manuellement (c'est-à-dire ./install_gui.sh).


EDIT 2

J'ai essayé de réinstaller OpenMPI avec

Sudo apt-get install --reinstall openmpi-bin libopenmpi-dev

et avec

Sudo apt-get purge openmpi-bin libopenmpi-dev
Sudo apt-get install openmpi-bin libopenmpi-dev

mais aucun d'entre eux n'a eu l'effet escompté, la bibliothèque est toujours reliée à des bibliothèques intel.

Les bibliothèques Intel se trouvent dans /opt/intel.


EDIT 3

ls -l /usr/bin/mpicc.openmpi /usr/bin/opal_wrapper; apt-cache policy openmpi-bin libopenmpi-dev

lrwxrwxrwx 1 root root    12 Feb 25  2016 /usr/bin/mpicc.openmpi -> opal_wrapper
-rwxr-xr-x 1 root root 18928 Feb 25  2016 /usr/bin/opal_wrapper


apt-cache policy openmpi-bin libopenmpi-dev
openmpi-bin:
  Installed: 1.10.2-8ubuntu1
  Candidate: 1.10.2-8ubuntu1
  Version table:
 *** 1.10.2-8ubuntu1 500
        500 http://at.archive.ubuntu.com/ubuntu xenial/universe AMD64 Packages
        100 /var/lib/dpkg/status
libopenmpi-dev:
  Installed: 1.10.2-8ubuntu1
  Candidate: 1.10.2-8ubuntu1
  Version table:
 *** 1.10.2-8ubuntu1 500
        500 http://at.archive.ubuntu.com/ubuntu xenial/universe AMD64 Packages
        100 /var/lib/dpkg/status
4
  • Comme il semble, Intel mpicc.openmpi a écrasé le fichier officiel du référentiel ou l’une de ses bibliothèques liées.

    Voici ma sortie:

    ~$ 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)
    

    Il ne repose pas sur ces bibliothèques manquantes.

  • Pour résoudre ce problème, vous pouvez réinstaller libopenmpi:

    Sudo apt-get install --reinstall openmpi-bin libopenmpi-dev
    
  • Notez également /usr/local/lib/libopen-pal.so.13. Il se trouve dans le dossier /usr/local/lib/ et a donc une priorité plus élevée que le dossier officiel dans /usr/lib/.

    Vérifiez toutes les versions sud en utilisant

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

    puis renommez-les, exemple

    Sudo mv /usr/local/lib/libopen-pal.so.13 /usr/local/lib/libopen-pal.so.13.backup
    
0
user.dz