Je travaille sur un cluster avec Vampir pour visualiser la communication mpi. Comme le cluster ne disposait pas d'une implémentation MPI3, j'ai installé OpenMPI 2.0.0 (aucun autre indicateur que --prefix n'a été utilisé) dans mon répertoire personnel (fonctionne bien sans Vampir). Maintenant, je ne sais pas de combiner correctement mon installation MPI3 locale avec Vampir pour construire mon programme (fetchAndOpTest.f90). J'ai essayé les éléments suivants:Vampir avec installation mpi locale
vtf90 -vt:fc ~/OpenMPI2/bin/mpif90 -o fetchAndOpTestF90.x fetchAndOpTest.f90
(Je ne sais pas s'il est important, mais cela donne l'avertissement suivant: /usr/bin/ld: warning: libmpi.so.1, needed by /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libmpi_f77.so, may conflict with libmpi.so.20
)
exécution de mon programme avec ~/OpenMPI2/bin/mpirun -np 2 fetchAndOpTestF90.x
résultats dans: fetchAndOpTestF90.x: error while loading shared libraries: libvt-mpi.so.0: cannot open shared object file: No such file or directory [...]
Par conséquent, je également essayé vtf90 -vt:fc ~/OpenMPI2/bin/mpif90 -L/opt/vampirtrace/5.14.4/lib -o fetchAndOpTestF90.x fetchAndOpTest.f90
, mais il n'a pas changé le ldd-sortie.
EDIT: Edité LD_LIBRARY_PATH comme suggéré par @Harald.
> ldd fetchAndOpTestF90.x linux-vdso.so.1 => (0x00007ffc6ada9000) libmpi_f77.so.1 => /usr/lib/libmpi_f77.so.1 (0x00007ff8fdf2e000) libvt-mpi.so.0 => /opt/vampirtrace/5.14.4/lib/libvt-mpi.so.0 (0x00007ff8fdca3000) libvt-mpi-unify.so.0 => /opt/vampirtrace/5.14.4/lib/libvt-mpi-unify.so.0 (0x00007ff8fda18000) libotfaux.so.0 => /opt/vampirtrace/5.14.4/lib/libotfaux.so.0 (0x00007ff8fd810000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff8fd50c000) libopen-trace-format.so.1 => /opt/vampirtrace/5.14.4/lib/libopen-trace-format.so.1 (0x00007ff8fd2c4000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff8fd0ab000) libpapi.so.5.3 => /usr/lib/x86_64-linux-gnu/libpapi.so.5.3 (0x00007ff8fce57000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff8fcc53000) libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007ff8fc939000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff8fc633000) libmpi_usempi.so.20 => /home/USER/OpenMPI2/lib/libmpi_usempi.so.20 (0x00007ff8fc430000) libmpi_mpifh.so.20 => /home/USER/OpenMPI2/lib/libmpi_mpifh.so.20 (0x00007ff8fc1df000) libmpi.so.20 => /home/USER/OpenMPI2/lib/libmpi.so.20 (0x00007ff8fbefb000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff8fbce5000) libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007ff8fbaa9000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff8fb88b000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff8fb4c6000) libmpi.so.1 => /usr/lib/libmpi.so.1 (0x00007ff8fb145000) /lib64/ld-linux-x86-64.so.2 (0x00007ff8fe162000) libpfm.so.4 => /usr/lib/x86_64-linux-gnu/libpfm.so.4 (0x00007ff8fadff000) libopen-pal.so.20 => /home/USER/OpenMPI2/lib/libopen-pal.so.20 (0x00007ff8fab09000) libopen-rte.so.20 => /home/USER/OpenMPI2/lib/libopen-rte.so.20 (0x00007ff8fa887000) libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007ff8fa684000) libhwloc.so.5 => /usr/lib/x86_64-linux-gnu/libhwloc.so.5 (0x00007ff8fa43b000) libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007ff8fa231000) libnuma.so.1 => /usr/lib/x86_64-linux-gnu/libnuma.so.1 (0x00007ff8fa026000) libpciaccess.so.0 => /usr/lib/x86_64-linux-gnu/libpciaccess.so.0 (0x00007ff8f9e1d000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff8f9c15000)
Maintenant exécution throws erreur: mpirun noticed that process rank 0 with PID 0 on node cluster exited on signal 11 (Segmentation fault)
(programme est correct et la construction et l'exécution avec l'installation de MPI3 locale sans Vampir fonctionne très bien)
Je n'ai pas construit libs statiques alors je suis allé directement à la suggestion 2. Cela semble fonctionner très bien (je ldd sortie edited), mais maintenant avec l'exécution '~/OpenMPI2/bin/mpirun np 1 fetchAndOpTest.x' renvoie une erreur: 'mpirun a remarqué que le processus de rang 0 avec PID 0 sur le cluster de nœuds s'est terminé sur le signal 11 (erreur de segmentation). (Se produit également avec d'autres programmes qui sont tous corrects). Peut-être que l'avertissement indique ce problème? –
Je vais essayer Score-P. Je pense que dans ces circonstances c'est la meilleure solution pour mon problème. –