MPI_Recv行为

时间:2013-11-03 19:10:50

标签: c mpi

我正在使用C制作MPI应用程序而且我遇到了一些问题..

我有这样的事情:

if (rank == 0)
{
    toRank = 1;
    for(i=3;i<=k;i++)
    {
        MPI_Send(&result, 1, MPI_INT, toRank, 0, MPI_COMM_WORLD);
        printf(%d\n", result);

        MPI_Recv(&result, 1, MPI_INT, toRank, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
        printf("%d\n", result);

        toRank++;
        if (toRank >= numProcessos)
            toRank = 1;
    }
}
else
{
    MPI_Recv(&k, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
    printf("%d\n", k);

    MPI_Send(&result, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);  
}

但是当主节点将为秩1发送另一条消息时,该节点永远不会收到该消息。

此代码有什么问题吗?

提前致谢!

0 个答案:

没有答案