SO:Ubuntu 17.04。昨日まで、MPIですべてうまくいきましたが、何かが間違っていました。エラーはタイトルのもので、mpirun -n[n] ./myprogram
で実行中です。
オパール前にエラーがLibmpi.so.12していましたし、ここに同様の質問で提案されているように私は、私の.bashrc
にLD_LIBRARY_PATHを示すしようとしたにもかかわらず、私はそれを解決できませんでした。 OpenMPIを再インストールすると、この新しいエラーで変更されたエラーが修正されました。実際apt-file search libmpi.so
の結果は次のとおりです。MPIシンボル参照エラー:opal_uses_threads
lam4-dev: /usr/lib/lam/lib/libmpi.so
libopenmpi-dev: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so
libopenmpi2: /usr/lib/x86_64-linux-gnu/libmpi.so.20
libopenmpi2: /usr/lib/x86_64-linux-gnu/libmpi.so.20.0.2
libopenmpi2: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so.20.0.2
そしてldd
リターン:
linux-vdso.so.1 => (0x00007ffc415e5000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe717956000)
libmpi.so.12 => not found
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe717738000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe717371000)
/lib64/ld-linux-x86-64.so.2 (0x000055ccd14f4000)
だから、問題はまだlibmpi.so.12のようですか? OpenMPIを再インストールする前に、libmpi.so.12があり、MPIはそれを見つけることができませんでしたが、そこにありました。
[編集]
which mpirun
リターン:
/usr/bin/mpirun
そしてapt-file search mpicc
リターン:
lam4-dev: /usr/bin/mpicc.lam
lam4-dev: /usr/share/man/man1/mpicc.lam.1.gz
libmpich-dev: /usr/bin/mpicc.mpich
libmpich-dev: /usr/share/man/man1/mpicc.mpich.1.gz
libopenmpi-dev: /usr/bin/mpicc.openmpi
libopenmpi-dev: /usr/share/man/man1/mpicc.openmpi.1.gz
libsimgrid-dev: /usr/bin/smpicc
libsimgrid-dev: /usr/share/man/man1/smpicc.1.gz
mpich-doc: /usr/share/doc/mpich-doc/www1/mpicc.html
openmpi-common: /usr/share/openmpi/mpicc-wrapper-data.txt
openmpi-common: /usr/share/openmpi/mpicc.openmpi-wrapper-data.txt
私は単に 'mpicc ...'でコンパイルしています。新しくインストールされたOpen MPIを使用してコンパイルするにはどうすればよいですか? – Caramelleamare
'MPICC'がOpen MPIによって提供されているものであることを確認してから、最初からアプリケーションを再構築すれば十分です。 –
'.bashrc'には何も必要ないはずです。 –