大家好,我对一般的编码和MPI都很陌生。 我确定这一定是一个非常愚蠢的错误,但我无法理解为什么这个代码:
<input type="text"
data-link="{:Data.ListName linkTo=Editing.ListName:}
id{:'txtListName_' + #getIndex()}" >
给了我以下错误:
#include <mpi.h>
int main(int arg, char** argvs) {
int rank, numOfProcess;
MPI_Init(&arg, &argvs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &numOfProcess);
int ranks[1] = { 0 };
MPI_Group orig_group, new_group;
MPI_Comm new_comm;
MPI_Comm_group(MPI_COMM_WORLD, &orig_group);
MPI_Group_excl(orig_group, numOfProcess - 1, ranks, &new_group);
MPI_Comm_create(MPI_COMM_WORLD, new_group, &new_comm);
MPI_Finalize();
return 0;
}
如果我错了,请纠正我,但我正在创建的“new_group”应该包含每个进程,但是等级为0的进程。 为什么它给我这个错误?我在数组“rank”中指定我要删除等级0,我迷路了。
非常感谢。
答案 0 :(得分:0)
您没有正确使用MPI_Group_excl()
。
<强>语法强>
int MPI_Group_excl(MPI_Group group, int n, const int ranks[], MPI_Group *newgroup)
INPUT PARAMETERS
n Number of elements in array ranks (integer). ranks Array of integer ranks in group not to appear in newgroup.
由于ranks
是一个包含一个元素的数组,因此您应该如何更新通话
MPI_Group_excl(orig_group, 1, ranks, &new_group);