MPI_Win_allocate()不返回

时间:2017-02-07 17:30:15

标签: c++ c mpi mpi-rma

当我使用mpirun -n 2 ./out运行以下代码时,它可以正常工作,但mpirun -n 3 ./out MPI_Win_allocate()不会返回。我通过在MPI_Win_allocate()之前和之后打印到屏幕来检查了这一点。另外,如果我注释掉MPI_Bcast(),代码就可以了。有什么问题?

编辑:将升级功能更改为标准功能以简化问题。

#include <mpi.h>

int main()
{
    MPI_Init(NULL, NULL);

    int nmesh;
    MPI_Bcast(&nmesh, 1, MPI_INT, 0, MPI_COMM_WORLD);         

    MPI_Win win;
    int* narrival;
    MPI_Win_allocate(1*sizeof(int), sizeof(int), MPI_INFO_NULL, MPI_COMM_WORLD, &narrival, &win);
    MPI_Win_free(&win);

    MPI_Finalize();

    return 0;
}

0 个答案:

没有答案