我正在编写涉及for循环的代码,该循环在每个索引处进行计算。
这些计算中最小的一个存储在变量中,我在程序结束时使用MPI_Allreduce来确定所有进程的全局最小值。
但是,我需要一种方法来了解哪个进程具有最小值,即MPI_Allreduce可以告诉我哪个进程发送结果?价值最小的过程?我需要从该过程获得一些额外的数据。
提前感谢您的帮助!
答案 0 :(得分:2)
您可以在reduce操作中使用MPI_MINLOC
运算符来接收具有最小值的进程的排名(更具体地说,是具有最小值的排名最低的进程)。
请参阅http://www.netlib.org/utk/papers/mpi-book/node114.html#SECTION005103000000000000000