MPI.Op和执行操作

时间:2014-03-24 23:48:48

标签: python mpi4py

我想使用MPI.Op类来执行由它的实例表示的一些操作(在本例中为MPI.SUM)。

这是我的代码:

input = numpy.array(3, dtype='i')
output = numpy.array(3, dtype='i')
MPI.SUM.Reduce_local(input, output)

但是当我尝试运行它时,我得到了这个追溯:

Traceback (most recent call last):
  File "./mpi.py", line 37, in <module>
    MPI.SUM.Reduce_local(input, output)
  File "Op.pyx", line 75, in mpi4py.MPI.Op.Reduce_local (src/mpi4py.MPI.c:54825)
AttributeError: 'mpi4py.MPI.Op' object has no attribute 'scount'

我是python的新手,所以很有可能我犯了一些容易犯的错误。有什么想法吗?

我正在使用Python 2.6.6。

1 个答案:

答案 0 :(得分:2)

好的,我对这个问题有了答案。

似乎这是mpi4py库中的一个错误,现在已修复: https://bitbucket.org/mpi4py/mpi4py/commits/43c7388ad740e90cc7074c1c21857c3fd3880190

但是如果你没有最新版本的mpi4py,你仍然可以这样做:

buffers = [[1,1],[2,2]]
result = reduce(MPI.SUM, buffers)

结果将是:     [3,3]