MPI_Reduce不会从我的数组发送最小值的位置

时间:2019-01-10 13:35:00

标签: mpi

我的问题是什么! 下面是我的代码,我不知道为什么,它传输的是最小数据,但不是MPI_Reduce手册中所说的位置!

//where b is an array with N data, int //and min and array with 2 data, int MPI_Reduce(b, min, 1, MPI_2INT, MPI_MINLOC,0, MPI_COMM_WORLD); if(rank==0){ printf("MIN from B table is =%d\n",min[1]); printf("Position of minimum =%d\n",min[0]); }

1 个答案:

答案 0 :(得分:1)

MPI_MINLOC不会返回最小值的位置,而是返回结构中第二个元素的值,在该元素中找到第一个元素的最小值。

此外,如果您使用count=1,将仅使用第一对b

如果您认为自己使用正确,请使用Minimal, Complete and Verifiable Example

更新问题。