0

Mavericks (OSX 10.9) を実行している Macbook Pro で Open MPI (v.openmpi-1.9a1r29661) の新しい Java バインディングを構築しようとしています。JDK 7 がインストールされています。

^_^:examples demirelo $ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

そのコマンドで OMPI を構成しました。

./configure --enable-mpi-java --with-platform=optimized --with-jdk-dir=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home --prefix=/Users/demirelo/libs/openmpi

続いて、通常の容疑者が続きます。

make all install

HelloWorld の例を実行しようとすると、次のランタイム エラーが発生しました。

^_^:examples demirelo $ ../bin/mpijavac Hello.java 
^_^:examples demirelo $ ../bin/mpirun -np 1 java Hello 
JAVA BINDINGS FAILED TO LOAD REQUIRED LIBRARIES
-------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code.. Per user-direction, the job has been aborted.

さらに、~/.bash_profile には /lib フォルダーへの正しいパスがあります。

export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Users/demirelo/libs/openmpi/lib/

どのライブラリが失敗したかは非常に謎です。以前は、Lion で少し古いバージョン (openmpi-1.9a1r28578) をビルドし、Mavericks で引き続き使用できました。今回は、新しくコンパイルされた OMPI が必要でしたが、うまくいきませんでした。他の誰かがマーベリックスで同じ問題を抱えていて、それを修正できたのではないかと思っています.

4

1 に答える 1

2

これは、少なくとも 2 つの問題で構成される Open MPI のバグのようです。

  1. OMPI は、OS X では間違った名前である libmpi.so を dlopen しようとするようにハードコーディングされています (libmpi.dylib のはずです)。
  2. それを修正した後でも、Java プログラマーが実行する必要がある別の Java エラーが発生しています。

どうやら、OS X で OMPI Java バインディングを長い間テストしていないようです。:-(

これが、SVN トランクに対して実行する人生です。ごめん!

于 2013-11-13T03:16:13.423 に答える