我有一个由四个Raspberry Pi 2模型B组成的小集群。我正在使用它们来试验分布式计算。
我在Github上有一些代码:https://github.com/gordon1992/RPI-Cluster-Scratch
hello_world_c功能正常。 global_sum_c(和_f95)错误,输出如下:
pi@rpi-cluster-1 ~/RPI-Cluster-Scratch/global_sum_c $ ./run.sh
Assertion failed in file src/mpi/coll/helper_fns.c at line 491: status->MPI_TAG == recvtag
internal ABORT - process 0
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 26572 RUNNING AT rpi-cluster-1
= EXIT CODE: 1
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
[proxy:0:2@rpi-cluster-3] HYD_pmcd_pmip_control_cmd_cb (pm/pmiserv/pmip_cb.c:886): assert (!closed) failed
[proxy:0:2@rpi-cluster-3] HYDT_dmxu_poll_wait_for_event (tools/demux/demux_poll.c:76): callback returned error status
[proxy:0:2@rpi-cluster-3] main (pm/pmiserv/pmip.c:206): demux engine error waiting for event
[proxy:0:3@rpi-cluster-4] HYD_pmcd_pmip_control_cmd_cb (pm/pmiserv/pmip_cb.c:886): assert (!closed) failed
[proxy:0:3@rpi-cluster-4] HYDT_dmxu_poll_wait_for_event (tools/demux/demux_poll.c:76): callback returned error status
[proxy:0:3@rpi-cluster-4] main (pm/pmiserv/pmip.c:206): demux engine error waiting for event
[proxy:0:1@rpi-cluster-2] HYD_pmcd_pmip_control_cmd_cb (pm/pmiserv/pmip_cb.c:886): assert (!closed) failed
[proxy:0:1@rpi-cluster-2] HYDT_dmxu_poll_wait_for_event (tools/demux/demux_poll.c:76): callback returned error status
[proxy:0:1@rpi-cluster-2] main (pm/pmiserv/pmip.c:206): demux engine error waiting for event
[mpiexec@rpi-cluster-1] HYDT_bscu_wait_for_completion (tools/bootstrap/utils/bscu_wait.c:76): one of the processes terminated badly; aborting
[mpiexec@rpi-cluster-1] HYDT_bsci_wait_for_completion (tools/bootstrap/src/bsci_wait.c:23): launcher returned error waiting for completion
[mpiexec@rpi-cluster-1] HYD_pmci_wait_for_completion (pm/pmiserv/pmiserv_pmci.c:218): launcher returned error waiting for completion
[mpiexec@rpi-cluster-1] main (ui/mpich/mpiexec.c:336): process manager error waiting for completion
我正在使用gcc v4.9.2和MPICH 3.1-5(从Debian测试存储库安装)。
如果我只在一台设备(例如rpi-cluster-1)上执行代码,而在多台设备上执行代码,则代码运行正常。
我对这个问题可能有些困惑,特别是因为MPI_COMM_WORLD是一个内部通信器,而MPI_In_Place只对交互者有效。
有什么想法吗?
感谢。