Eu tinha tentado instalar o openmpi 1.8.1 a partir do código-fonte no servidor UnBuntu 14.04. Eu gostaria de usar o mpi para cálculo em larga escala em uma única máquina com vários núcleos.
O teste simples "Hello world" pode ser executado sem qualquer problema.
No entanto, quando tento compilar o programa que preciso usar. Eu recebi o seguinte erro:
/usr/bin/ld: cannot find -lmpi_usempi
/usr/bin/ld: cannot find -lmpi_mpifh
/usr/bin/ld: cannot find -lmpi
collect2: error: ld returned 1 exit status
make: *** [mcp2_mpi] Error 1
Eu tentei configurar o LD_LIBRAY_PATH para o diretório onde o openmpi lib pode ser encontrado.
Parece que não funciona. Eu tinha tentado verificar o comando ld no modo detalhado.
$ ld -lmpi_usempi --verbose
attempt to open /usr/x86_64-linux-gnu/lib64/libmpi_usempi.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libmpi_usempi.a failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libmpi_usempi.so failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libmpi_usempi.a failed
attempt to open //usr/local/lib64/libmpi_usempi.so failed
attempt to open //usr/local/lib64/libmpi_usempi.a failed
attempt to open //lib/x86_64-linux-gnu/libmpi_usempi.so failed
attempt to open //lib/x86_64-linux-gnu/libmpi_usempi.a failed
attempt to open //lib64/libmpi_usempi.so failed
attempt to open //lib64/libmpi_usempi.a failed
attempt to open //usr/lib/x86_64-linux-gnu/libmpi_usempi.so failed
attempt to open //usr/lib/x86_64-linux-gnu/libmpi_usempi.a failed
attempt to open //usr/lib64/libmpi_usempi.so failed
attempt to open //usr/lib64/libmpi_usempi.a failed
attempt to open //usr/local/lib/libmpi_usempi.so failed
attempt to open //usr/local/lib/libmpi_usempi.a failed
attempt to open //lib/libmpi_usempi.so failed
attempt to open //lib/libmpi_usempi.a failed
attempt to open //usr/lib/libmpi_usempi.so failed
attempt to open //usr/lib/libmpi_usempi.a failed
ld: cannot find -lmpi_usempi
Parece que o ld não procura as bibliotecas no LD_LIBRARY_PATH.
Eu tinha tentado criar um arquivo em /etc/ld.so.conf.d/ para incluir o caminho do openmpi lib. Então o comando sudo ldconfig -v . Eu encontro a seguinte saída:
/usr/local/openmpi/lib:
libopen-rte.so.7 -> libopen-rte.so.7.0.3
libmpi_mpifh.so.2 -> libmpi_mpifh.so.2.3.0
libopen-trace-format.so.1 -> libopen-trace-format.so.1.0.0
libmpi_cxx.so.1 -> libmpi_cxx.so.1.1.3
liboshmem.so.1 -> liboshmem.so.1.0.0
libvt-mpi.so.0 -> libvt-mpi.so.0.0.0
libvt-hyb.so.0 -> libvt-hyb.so.0.0.0
libvt-mt.so.0 -> libvt-mt.so.0.0.0
libotfaux.so.0 -> libotfaux.so.0.0.0
libvt-mpi-unify.so.0 -> libvt-mpi-unify.so.0.0.0
libopen-pal.so.6 -> libopen-pal.so.6.1.1
libmpi_usempi.so.1 -> libmpi_usempi.so.1.3.0
libmpi.so.1 -> libmpi.so.1.5.0
libvt.so.0 -> libvt.so.0.0.0
libmca_common_sm.so.4 -> libmca_common_sm.so.4.0.3
libompitrace.so.0 -> libompitrace.so.0.0.0
Parece que os Libs estão incluídos no caminho de pesquisa ld.
No entanto, ainda tenho o mesmo problema de antes.
/usr/bin/ld: cannot find -lmpi_usempi
/usr/bin/ld: cannot find -lmpi_mpifh
/usr/bin/ld: cannot find -lmpi
collect2: error: ld returned 1 exit status
make: *** [mcp2_mpi] Error 1
Existe alguma sugestão para esta questão? Muito obrigado.