2013-11-12 3 views
0

Я пытаюсь создать новые привязки Java Open MPI (v.openmpi-1.9a1r29661) на Macbook Pro, работающем с Mavericks (OSX 10.9). У меня есть JDK 7 установлен:Открытые привязки Java MPI

^_^: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/ 

Весьма загадочно, какие библиотеки потерпели неудачу. Раньше мне удалось создать немного более старую версию (openmpi-1.9a1r28578) на Lion и все еще использовать ее на Mavericks. На этот раз мне понадобилось только что скомпилированное OMPI, но не получилось. Мне интересно, есть ли у кого-то еще такая же проблема с Mavericks и он смог ее исправить.

+0

1 - Убедитесь, что 'mpirun' запускает ту же версию Java:.!.' Mpirun -np 1 ява -version' 2 - Сделать убедитесь, что вы установили переменную среды Java 'CLASSPATH' или предоставили' java' правильный путь в командной строке. –

+0

Варианты java одинаковы. Оба «1.7.0_45». ИМХО, путь здесь не влияет. – xeroqu

+0

Следующий тест: что отображается 'mpirun -np 1 echo \ $ DYLD_LIBRARY_PATH' (обратите внимание на обратную косую черту)? Если он не показывает правильный путь, вам нужно добавить' -x DYLD_LIBRARY_PATH' в опции 'mpirun'. –

ответ

2

Это, как представляется, ошибка в Open MPI, которая содержит по меньшей мере два вопроса:

  1. OMPI жестко закодирован, чтобы попытаться dlopen libmpi.so, что неправильное имя на OS X (это должно быть libmpi.dylib).
  2. Даже после того, как я исправлю это, я столкнулся с другой ошибкой Java, которую мне нужно запустить Java-программистами.

По-видимому, мы не тестировали привязки Java OMPI на OS X в течение длительного времени. :-(

Такова жизнь бежать к стволу SVN К сожалению

+0

Спасибо за ответ и разъяснение, Джефф! Я уверен, что многие люди были бы рады, если бы это фиксированное asap =) – xeroqu

Смежные вопросы