从Java ProcessBuilder运行OpenMPI进程时,ompi_evesel-> dispatch()失败

时间:2013-07-24 02:10:26

标签: java python windows processbuilder openmpi

我正在尝试创建一个Java GUI来控制和运行MPI进程。我可以从命令行运行MPI进程,但无法通过Java Process Builder运行。

我在进程开始后立即收到以下错误:

[SCI053_VM003:02928] ..\..\openmpi-1.6.4\opal\event\event.c: ompi_evesel->dispatch() failed.

我怀疑存在环境问题,但我不确定如何诊断它。我已经将java进程构建器看到的环境打印到日志以及mpiexec'd进程看到的环境中,但是我没有看到任何错误!?!?

所有代码和输出日志都发布在gist

我正在尝试使用为MPI4PY打包的OpenMPI 1.6.4在Windows环境中运行

似乎主要是一个OpenMPI问题,所以我发布到UserList,但希望在任何地方都可以获得帮助......

大卫

PS - 我能够运行Java程序在我的MacOS环境中启动并运行相同的代码,但是我使用brew安装的MPICH2。

3 个答案:

答案 0 :(得分:0)

我怀疑这个问题是因为你使用的是Windows。我不记得OpenMPI何时停止支持Windows,但在某些时候它确实支持了Windows。您可以尝试使用适用于Windows的Microsoft的MPICH端口,看看它是否能满足您的需求。我不记得URL,但您可以在MPICH下载页面(http://www.mpich.org/downloads/)找到该端口。

答案 1 :(得分:0)

我也不能直接说出原因,但是我在java下的系统进程的最终表现是其他人最好处理它。

这是我的提示。在调用外部应用程序时,我总是你的apache commins exec。 链接到基础教程http://commons.apache.org/proper/commons-exec/tutorial.html 希望它有所帮助。它易于实现和使用。

刚读完你的要点。我缺少的是,您在哪里设置工作目录。 尝试将工作目录设置为可以从命令行启动的目录。

答案 2 :(得分:0)

从cmd.exe成功运行mpiexec.exe时,您在哪个目录中?我很好奇输出日志中显示的LD_LIBRARY_PATH ...在Windows上设置LD_LIBRARY_PATH是奇怪的:

LD_LIBRARY_PATH=C:\Python27\Lib\site-packages\mpi4py\bin/../lib:C:\Python27\Lib\site-packages\mpi4py\bin\..\lib

当您将PATH变量设置为指向MPI bin和lib目录时,是否可以从Windows启动mpiexec.exe?如果these Open MPI instructions apply我不肯定,但他们提到设置PATH环境变量。