我如何声明MPI_COMM_WORLD以便我可以在任何地方使用它?

时间:2012-03-25 14:29:19

标签: c mpi

您可以注意到代码在MPI_COMM_WORLD中实例化,但正在函数send_code中使用!

我的代码是:

int send_code(char *code)
{
        //produce the codes for adding the code into the table
        printf("%s\n",code);
        MPI_Send(code, 8, MPI_CHAR,0, 0,MPI_COMM_WORLD);
}

int main(int argc, char *argv[])
{

        MPI_Status status;
        int outbuf, inbuf;

        MPI_Init(&argc, &argv);
        MPI_Comm_size(MPI_COMM_WORLD, &size);
        MPI_Comm_rank(MPI_COMM_WORLD, &rank);
        if (rank==0)
        {
               MPI_Recv(code, 8, MPI_CHAR, 0, 0, MPI_COMM_WORLD, &status);
               printf("%s by master\n",code);

        }
        else
        {
                ........
        }

        MPI_Finalize();
}

2 个答案:

答案 0 :(得分:3)

如果您询问MPI中的MPI_COMM_WORLD,它将在mpi.h中声明,并在其中一个MPI实现的库中定义。

答案 1 :(得分:0)

静态全局变量?如果这对您来说足够安全并且您已准备好承担风险; - )