MPI_Allreduce来源

时间:2012-02-19 17:59:14

标签: c mpi

我正在编写涉及for循环的代码,该循环在每个索引处进行计算。

这些计算中最小的一个存储在变量中,我在程序结束时使用MPI_Allreduce来确定所有进程的全局最小值。

但是,我需要一种方法来了解哪个进程具有最小值,即MPI_Allreduce可以告诉我哪个进程发送结果?价值最小的过程?我需要从该过程获得一些额外的数据。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以在reduce操作中使用MPI_MINLOC运算符来接收具有最小值的进程的排名(更具体地说,是具有最小值的排名最低的进程)。

请参阅http://www.netlib.org/utk/papers/mpi-book/node114.html#SECTION005103000000000000000