【发布时间】:2015-03-08 23:16:45
【问题描述】:
我在接收 MPI 阵列时遇到问题。我正在做这样的事情:
int *b = new int[5];
for(int i = 0; i < 5; i++) {
b[i] = i;
}
MPI_Send(&b[0], 5, MPI_INT, procesDocelowy, 0, MPI_COMM_WORLD);
这就是我发送数组的方式。 接收:
int *b = new int[5];
MPI_Recv(&b, 5, MPI_INT, 0, 0, MPI_COMM_WORLD, &status);
我的问题是我无法接收动态分配的数组。我的进程在 MPI_recv 之后挂起,我得到:
job aborted:
rank: node: exit code: message
0: Majster: terminated
1: Majster: terminated
2: Majster: 0xc0000005: process exited without calling finalize
3: Majster: terminated
这很有趣,因为如果我以静态方式初始化我的数组,我的意思是
int b[5];接收时和
int b[] = {1,2,3,4,5}; 发送时
一切正常。
我不能以静态方式初始化数组,我必须动态地这样做。任何想法如何解决这个问题?
【问题讨论】:
-
您的问题究竟是什么?