我正在尝试在 C(或 C++)中使用 MPI_REDUCE 来查找数组中的最小值(和索引)。我有这个适用于常规数组,但现在我想切换到一个动态计算值的数组。即 arr[n] 的值是通过调用 fun(n) 来计算的。由于内存问题,我无法计算所有值并将它们放入常规数组中。
我怎样才能做到这一点?
提前致谢,
我正在尝试在 C(或 C++)中使用 MPI_REDUCE 来查找数组中的最小值(和索引)。我有这个适用于常规数组,但现在我想切换到一个动态计算值的数组。即 arr[n] 的值是通过调用 fun(n) 来计算的。由于内存问题,我无法计算所有值并将它们放入常规数组中。
我怎样才能做到这一点?
提前致谢,
您需要使用MPI_Op_create()创建自定义 MPI 操作:在您的情况下,此操作将比较通过对数组的每个元素调用 fun() 获得的值,并选择最小值。然后,您可以在 MPI_Reduce() 的 Op 参数中使用此自定义操作。