【发布时间】:2013-02-22 16:12:43
【问题描述】:
我正在编写一个 mpi python 代码。例如,四个 proc 的数据如下:
data on procs0: [1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0]
data on procs1: [0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 0, 0]
data on procs2: [0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0]
data on procs3: [0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12]
我想使用mpi4py库中的reduce函数来减少procs0上的数据,结果:
result on procs0: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
如何使用 mpi4py 库函数来实现?
编辑: 上面是一个简单的特殊情况,set不能用,下面看另一种情况:
data on procs0: [1,0,0,0,0,0]
data on procs1: [0,2,0,0,0,0]
data on procs2: [0,0,0,3,0,0]
data on procs3: [0,0,0,0,4,5]
理想的结果必须是:
result on procs0: [1,2,0,3,4,5]
【问题讨论】:
-
我不确定 mpi4py,但我认为您应该使用 MPI_Reduce 和 MPI_MAX 作为操作。
标签: python python-2.7 parallel-processing mpi reduce