【发布时间】:2017-06-08 16:17:36
【问题描述】:
我有最新的 MPICH2 (3.0.4) 在四核双 CPU (Intel Xeon) 机器上使用 intel fort 编译器编译。
我遇到了一个 MPI_bcast 问题,我无法广播数组
gpsi(1:201,1:381,1:38,1:20,1:7)
将其设为大小为 407410920 的数组。当我尝试广播此数组时,出现以下错误
Fatal error in PMPI_Bcast: Other MPI error, error stack:
PMPI_Bcast(1525)......: MPI_Bcast(buf=0x7f506d811010, count=407410920,
MPI_DOUBLE_PRECISION, root=0, MPI_COMM_WORLD) failed
MPIR_Bcast_impl(1369).:
MPIR_Bcast_intra(1160):
MPIR_SMP_Bcast(1077)..: Failure during collective
rank 1 in job 31 Grace_52261 caused collective abort of all ranks
exit status of rank 1: killed by signal 9
MPI launch string is: mpiexec -n 2 %B/tvdbootstrap
Testing MPI configuration with 'mpich2version'
Exit value was 127 (expected 0), status: execute_command_t::exited
Launching MPI job with command: mpiexec -n 2 %B/tvdbootstrap
Server args: -callback 127.0.0.1:4142 -set_pw 65f76672:41f20a5c
那么问题是,MPI_bcast 中的变量大小是否有限制,或者我的数组的大小是否超出了它可以处理的范围?
【问题讨论】:
-
是的,约翰,缩小尺寸是可行的。那么,广播超大数组的合适方法是什么?令我惊讶的是,运行相同代码但安装不同的同事没有收到错误。那么,它是否依赖于实现?如果是这样,哪个实现应该允许这样做?