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