gpt4 book ai didi

c++ - MPI:获取给定通信器中所有处理器的排名

转载 作者:行者123 更新时间:2023-11-30 00:49:08 25 4
gpt4 key购买 nike

我有一个通信器,我如何获得该通信器中处理器的所有等级?

我能找到的只是如何获取给定通信器中的处理器数量,但似乎没有获取排名集合的函数。

最佳答案

添加到帕特里克的回答:

要获得从 comm_1 到 comm_2 或反之的进程等级,您可以先提取底层 MPI_Group,然后使用 MPI_Group_translate_ranks

MPI_Comm comm = MPI_COMM_WORLD;
MPI_Comm my_comm;

int n;
MPI_Comm_size(comm, &n);

int rank1[n] = {0,1,2,3,...}
int rank2[n];

// Some Code

MPI_Group world_group;
MPI_Group my_comm_group;

MPI_Comm_group(comm, &world_group);
MPI_Comm_group(my_comm, &my_comm_group);

MPI_Group_translate_ranks(world_group, n, rank1, my_comm_group, rank2);

你会在数组rank2中得到数组rank1对应的ranks。

关于c++ - MPI:获取给定通信器中所有处理器的排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29311526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com