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

标签 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();
}

最佳答案

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

关于c - 我如何声明 MPI_COMM_WORLD 以便我可以在任何地方使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860945/

相关文章:

c - 如何判断文件是否在FAT系统上(看是否真的可执行)

c - 数字总和不显示

c - 为什么 `int ( *array )[10] = malloc(...);` 是有效的 C 代码?

c - C 中的 TrueType 字体解析

c - MPI 数组搜索

arrays - OpenMPI:广播数组的某些元素

c - C并行编程,信号: Segmentation fault: (11)11 Signal code: Address not mapped (1)

python - OpenMP中有没有类似Python的threading.Event的机制?

c - 让从机等待来自主机的 MPI_Bcast

parallel-processing - 如何指定并行程序中哪些进程在哪个节点上运行