Rmpi로 프로그램을 작성하려고하는데 불행히도 필요한 기호가 정의되지 않았으며 otool 및 nm을 사용하여 추적하면 libmpich.3.3.dylib
으로 이어집니다. 불행히도 심볼 MPI_Comm_dup
은이 동적 라이브러리에서 정의되지 않습니다.MPICH from macports missing symbols
그러나 OSX 동적 라이브러리에 대한 전문가는 아니며 필자의 접근 방식과 결론이 맞는지 궁금합니다. 또한이 문제를 해결할 수있는 제안이 있습니다.
감사합니다,
이Error : .onLoad failed in loadNamespace() for 'Rmpi', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/jonathan.lisic/R/x86_64-apple-darwin12.2.0-library/2.15/Rmpi/libs/x86_64/Rmpi.so':
dlopen(/home/jonathan.lisic/R/x86_64-apple-darwin12.2.0-library/2.15/Rmpi/libs/x86_64/Rmpi.so, 6): Symbol not found: _MPI_Comm_dup
Referenced from: /opt/local/lib/libmpich.3.3.dylib
Expected in: flat namespace
in /opt/local/lib/libmpich.3.3.dylib
Error: package/namespace load failed for Rmpi
[email protected]:/opt/local$ otool -L /home/jonathan.lisic/R/x86_64-apple-darwin12.2.0-library/2.15/Rmpi/libs/x86_64/Rmpi.so
/home/jonathan.lisic/R/x86_64-apple-darwin12.2.0-library/2.15/Rmpi/libs/x86_64/Rmpi.so:
Rmpi.so (compatibility version 0.0.0, current version 0.0.0)
/opt/local/lib/libmpich.3.3.dylib (compatibility version 0.0.0, current version 3.0.0)
/opt/local/lib/libmpl.1.dylib (compatibility version 3.0.0, current version 3.0.0)
/opt/local/lib/libopa.1.dylib (compatibility version 2.0.0, current version 2.0.0)
/opt/local/lib/R/lib/x86_64/libR.dylib (compatibility version 2.15.0, current version 2.15.1)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1669.0.0)
/opt/local/lib/gcc45/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
[email protected]:/opt/local/lib$ otool -L libmpich.dylib
libmpich.dylib:
/opt/local/lib/libmpich.3.3.dylib (compatibility version 0.0.0, current version 3.0.0)
/opt/local/lib/gcc43/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
[email protected]:/opt/local/lib$ otool -L libmpich.3.3.dylib
libmpich.3.3.dylib:
/opt/local/lib/libmpich.3.3.dylib (compatibility version 0.0.0, current version 3.0.0)
/opt/local/lib/gcc43/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
[email protected]:/opt/local/lib$ nm -u libmpich.3.3.dylib | egrep dup
_MPI_Comm_dup
_MPL_trstrdup
_dup2
_strdup
감사합니다. openmpi 주석을 기록한 다음 openmpi로 옮겨 가면서 정상적으로 작동했습니다. –