2014-04-01 13 views
0

(10.8.4 버전) 내 Mac에서이 작업을 실행하려면, 나는 다음과 같은 오류로 실행MPJ-익스프레스 오류 mpjdev.MPJDevException는 : Comm.irecv() 요청 소스 1 크기의 의사 소통에 존재하지 않는 내가하려고하면 <a href="http://alchemy.cs.washington.edu/spn/" rel="nofollow">http://alchemy.cs.washington.edu/spn/</a></p> <p>에서 발견 된 일부 합계 제품 네트워크 코드를 실행하기 위해 노력하고있어 1

mpjrun.sh -np 1 eval.Run -d O 
MPJ Express (0.40) is started in the multicore configuration 
[Rank=0] *** Parameters *** 
[Rank=0] domain=O 
[Rank=0] numSumPerRegion=20 
[Rank=0] numComponentsPerVar=4 
[Rank=0] sparsePrior=1.0 
[Rank=0] baseResolution=4 
[Rank=0] numSlavePerClass=50 
[Rank=0] numSlaveGrp=1 
[Rank=0] <TIME> init 1687 ms 

mpjdev.MPJDevException: In Comm.irecv(), requested source 1 does not exist in 

communicator of size 1 
     at mpjdev.Comm.recv(Comm.java:864) 
     at mpi.Comm.recv(Comm.java:1294) 
     at mpi.Comm.Recv(Comm.java:1255) 
     at spn.SPN.recvUpdate(SPN.java:650) 
     at spn.GenerativeLearning.learnHardEM(GenerativeLearning.java:52) 
     at spn.GenerativeLearning.learn(GenerativeLearning.java:16) 
     at eval.Run.runOlivetti(Run.java:147) 
     at eval.Run.proc(Run.java:46) 
     at eval.Run.main(Run.java:40) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at runtime.starter.MulticoreStarter$1.run(MulticoreStarter.java:277) 
     at java.lang.Thread.run(Thread.java:744) 
    java.lang.reflect.InvocationTargetException 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at runtime.starter.MulticoreStarter$1.run(MulticoreStarter.java:277) 
     at java.lang.Thread.run(Thread.java:744) 
    Caused by: mpi.MPIException: mpi.MPIException: mpjdev.MPJDevException: In Comm.irecv(), requested source 1 does not exist in communicator of size 1 
     at mpi.Comm.Recv(Comm.java:1259) 
     at spn.SPN.recvUpdate(SPN.java:650) 
     at spn.GenerativeLearning.learnHardEM(GenerativeLearning.java:52) 
     at spn.GenerativeLearning.learn(GenerativeLearning.java:16) 
     at eval.Run.runOlivetti(Run.java:147) 
     at eval.Run.proc(Run.java:46) 
     at eval.Run.main(Run.java:40) 
     ... 6 more 
    Caused by: mpi.MPIException: mpjdev.MPJDevException: In Comm.irecv(), requested source 1 does not exist in communicator of size 1 
     at mpi.Comm.recv(Comm.java:1317) 
     at mpi.Comm.Recv(Comm.java:1255) 
     ... 12 more 
    Caused by: mpjdev.MPJDevException: In Comm.irecv(), requested source 1 does not exist in communicator of size 1 
     at mpjdev.Comm.recv(Comm.java:864) 
     at mpi.Comm.recv(Comm.java:1294) 
     ... 13 more 

이것은 내가 줄 순이익의 값을 발생합니다. 나는 이것이 SPN 코드의 문제가 아니라 오히려 내가 MPJ-Express로하고있는 일이라고 가정하고있다. 나는 MPJ-Express에 0.40과 0.37 버전을 모두 시험해 보았고 같은 결과를 얻었다.

감사합니다.

+0

MPJ Express가 검사를 통과했는지 확인 했습니까? – Bibrak

+0

그 오류는 ** src/mpjdev/comm.java **에서 다음 줄에 의해 호출 된 것으로 보입니다. ** else if (src> = this.size() && src! = -2) { throw new MPJDevException ("In Comm.iprobe(), 요청 된 소스 "+ src + "은 (는) 크기가 "+ this.size())의 커뮤니케이터에 존재하지 않습니다. }' np = 1 일 때 src = 1이 존재할 수 없습니다. – Bibrak

답변

0

코드를 실행하고 SPN 사용자 가이드에서 대답을 찾으면 같은 문제가 발생합니다. SPN 을 실행하는 명령은 :

mpjrun.sh -np [NUM_PROCESSOR] -dev niodev -mx8000m eval.Run [SPN OPTIONS] > [LOG FILE] 

NUM_PROCESSOR 각 이미지 분류 슬레이브 프로세스의 수에 따라, 슬레이브 기의 수 곳. 그것은 (numSlavePerCat + 1) × numSlaveGroup과 같아야하고, numSlavePerCat 및 numSlaveGroup은 common/Parameter.java에서 찾을 수 있습니다. 많은 프로세서가없는 머신에서 실행하려면 numSlavePerCat을 수정할 수 있습니다.