首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPJ-Express错误mpjdev.MPJDevException:在Comm.irecv()中,大小为%1的通信器中不存在请求的源%1

MPJ-Express错误mpjdev.MPJDevException:在Comm.irecv()中,大小为%1的通信器中不存在请求的源%1
EN

Stack Overflow用户
提问于 2014-04-02 06:52:29
回答 1查看 250关注 0票数 0

我正在尝试运行在http://alchemy.cs.washington.edu/spn/找到的一些和积网络代码

当我尝试在我的mac (10.8.4版)上运行它时,我遇到了以下错误:

代码语言:javascript
复制
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

对于我给出的任何np值,都会发生这种情况。我假设这不是SPN代码的问题,而是我使用MPJ-Express所做的事情。我已经尝试了MPJ-Express的0.40和0.37版本,并获得了相同的结果。

耽误您时间,实在对不起。

EN

回答 1

Stack Overflow用户

发布于 2016-11-16 20:14:29

当我运行代码并在SPN用户指南中找到答案时,我也遇到了同样的问题。运行SPN的命令是:

代码语言:javascript
复制
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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22798432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档