2013-07-24 2 views
3

Java GUI를 작성하여 MPI 프로세스를 제어하고 실행하려고합니다. 커맨드 라인에서 MPI 프로세스를 실행할 수는 있지만 Java Process Builder를 통해 실행할 수는 없습니다.ompi_evesel-> dispatch()가 Java ProcessBuilder에서 OpenMPI 프로세스를 실행할 때 실패했습니다.

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

나는 환경 문제가 의심하지만 난 그것을 진단하는 방법을 잘 모르겠습니다 : 프로세스가 시작 직후

나는 다음과 같은 오류가 발생합니다. 환경뿐만 아니라 mpiexec'd 프로세스에서 볼 수있는 Java 프로세스 빌더에서 볼 수있는 환경을 로그에 인쇄했지만 아무 것도 볼 수 없습니다! 코드 및 출력 로그가 gist

내가 MPI4PY

에 대한 패키지는 OpenMPI 1.6.4 사용하여 Windows 환경에서 실행하려고에 게시 된 모든

대부분는 OpenMPI 문제처럼 보인다, 그래서 나는 게시 UserList에 있지만, 도움을 바라고 어디서나 나는

다윗에게 ...

PS 그것을 얻을 수 있습니다 - 나는 실행하는 자바 프로그램을 실행하고 동일한 코드를 실행할 수 있어요 내 MacOS 환경,하지만 거기에 양조가 설치된 MPICH2를 사용합니다.

+0

오늘 파이썬 서브 프로세스를 사용하여 mpiexec를 호출 할 것입니다. 이것이 실행 가능한 중개자로 밝혀지면 ProcessBuilder => Python Subprocess => OpenMPI MPIExec => 내 병렬 응용 프로그램을 실행합니다 ... 사용 하겠지만 실제로 질문 (또는 현상금)에 응답하지 않습니다 – David

+0

업데이트 : 나는 mpiexec를 호출하는 짧은 파이썬 프로그램이나 어떤 명령을 전달했는지를 썼다. 그것은 커맨드 라인에서 위대한 작품 : – David

+0

업데이트 : 나는 짧은 파이썬 프로그램 mpiexec 또는 당신이 그것을 전달하는 모든 명령을 호출 썼습니다. https : //gist.github.com/dstuebe/6170563 커맨드 라인에서 어떤 프로그램을 실행하기위한 간접적 인 지시자로 잘 작동하지만, Java에서 ProcessBuilder 내부에서 사용할 때와 같은 방식으로 실패합니다! – David

답변

0

Windows를 사용하고 있기 때문에 문제가 발생한 것으로 생각됩니다. OpenMPI가 Windows 지원을 중단했을 때 나는 기억이 나지 않지만 어느 시점에서 그랬습니다. Windows에서 작동하는 Microsoft의 MPICH 포트를 사용해보십시오. 필요한 포트가 있는지 확인하십시오. 공개적으로 URL을 기억하지 못하지만 MPICH 다운로드 페이지 (http://www.mpich.org/downloads/)에서 포트를 찾을 수 있습니다.

+0

cmd 창에서 작업을 실행하면 작동합니다. 터미널이라고 부르지 않을 것입니다. 너무 많이 빨려서 ...하지만 Windows에서 java를 실행하면 '작동하지 않습니다'. – David

+0

아. 그런 경우에, 나의 전문 기술은 잃어버린다. 나는 Windows/Java 사람과는 거리가 멀다. –

+0

필자는 Windows, Java 및 OpenMPI의 전문가 인 사람을 찾아야 만 파이썬과 MPI4py 만 보일 수도 있습니다. – David

0

나는 또한 왜 그런지 직접 말할 수는 없지만, java를 사용하는 시스템 프로세스를 사용하여 나의 expierence는 다른 어떤 사람이 그것을 처리하는 것이 가장 좋습니다.

여기 내 팁이 있습니다. 나는 항상 외부 애플리케이션을 호출 할 때 아파치를 exec 처리한다. 기본 튜토리얼에 대한 링크 http://commons.apache.org/proper/commons-exec/tutorial.html 잘하면 도움이됩니다. 사용하기 쉽고 구현하기 쉽습니다.

방금 ​​귀하의 요지를 읽었습니다. 누락 된 부분은 작업 디렉토리를 설정하는 곳입니다. 작업 디렉토리를 명령 행에서 실행할 수 있었던 디렉토리로 설정하십시오.

+0

커맨드 라인에서 똑같은 작업 디렉토리로 실행할 수 있습니다. env.py의 출력에서 ​​작업 디렉토리를 볼 수 있습니다.이 디렉토리는 MPI가 작동하지만 bcast.py와 같은 mpi 프로그램은 작동하지 않습니다. 나는 최후의 수단으로 아파치 commons-exec를 시도 할 것이다. 이미 ProcessBuilder를 중심으로 작성된 많은 코드가 있습니다. 도움 주셔서 감사합니다! – David

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 변수를 설정하면 윈도우에서 mpiexec.exe 작업을 시작합니까 MPI bin 및 lib 디렉토리? 나는 these Open MPI instructions apply 일 경우 긍정적이지는 않지만 환경 변수 PATH 설정을 언급합니다.

+0

ProcessBuilder environ에 경로를 추가하려고 시도했는데 env.py의 출력에서 ​​볼 수 있지만 여전히 mpiexec에서 오류가 발생합니다. – David