2017-08-31 6 views
0

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 

答えて

1

は、あなたのアプリケーションが他のMPIバージョン(古いオープンMPIかで構築されたようですlamまたはmpichのような他のMPIライブラリ)

最も簡単なパスを新たにインストールされたアプリケーションを再構築することであるオープンMPI

[EDIT]

これはチャットで診断された、そして根本的な原因は、システムとユーザーを開きMPIが誤って混合した建設されました。

システムがOpen MPIのみが使用されるように環境が修正されると、問題は解決されました。

+0

私は単に 'mpicc ...'でコンパイルしています。新しくインストールされたOpen MPIを使用してコンパイルするにはどうすればよいですか? – Caramelleamare

+0

'MPICC'がOpen MPIによって提供されているものであることを確認してから、最初からアプリケーションを再構築すれば十分です。 –

+0

'.bashrc'には何も必要ないはずです。 –

関連する問題