【发布时间】:2016-05-15 02:15:58
【问题描述】:
我用 MPI 写了一个简单的程序,在调用 MPI_Wait 后它崩溃了:
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Request request;
double test = 0;
if (rank == 0) {
MPI_Isend(&test, 1, MPI_DOUBLE, 1, 2, MPI_COMM_WORLD, &request);
} else {
MPI_Irecv(&test, 1, MPI_DOUBLE, 0, 2, MPI_COMM_WORLD, &request);
MPI_Wait(&request, NULL);
}
我可能多次忽略了代码,但无法理解程序崩溃的原因。
我正在使用 Visual Studio 2010。
【问题讨论】:
-
@flatmouse "test.exe 已触发断点"。 Stackstrace 以
Kernelbase.dll中的未知过程结束。 -
尝试将
MPI_Status传递为非空