c++ - 如何使用 MPI 库为进程子集调用 (c++) 函数?

标签 c++ mpi openmpi

这个问题说明了一切。我有三个通讯器(组也可用)。现在我只想为一个通信子集调用一个函数。那就是屏蔽其他子集的功能。这是否可能,或者我应该明确地纠正一个循环并检查组中是否存在当前进程,然后调用该函数。

谢谢,

最佳答案

除了在 MPI_Allreduce() 中滥用用户定义的缩减运算符之外,没有办法在子通信器的所有成员上调用函数。最干净的做法是:

int group_rank;
// Test if current process belongs to "group"
MPI_Group_rank(group, &group_rank);
if (group_rank != MPI_UNDEFINED)
   call_the_function();

关于c++ - 如何使用 MPI 库为进程子集调用 (c++) 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11545047/

相关文章:

c++ - bWait = false 的 GetOverlappedResults block

c++ - cmake3 : set path to mpi headers

python-3.x - 使用 SLURM 和 MPI(4PY) : Cannot allocate requested resources

python - 如何从 Jupyter 笔记本运行 MPI 兼容应用程序?

c - openMPI 在服务器集群上运行期间无限等待?

c++ - pow() 在使用类型转换时给出意想不到的结果

c++ - 人们需要什么来运行我的应用程序?

c++ - 如何使用 MPI_Irecv?

c - 如何终止 fork 另一个进程的 MPI 程序

c++ - 如何使用不同的函数计算三个数字的总和、平均值和乘积