我想使用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。
最佳答案
好的,我对这个问题有一个答案。
看来这是mpi4py库中的错误,现已修复:
https://bitbucket.org/mpi4py/mpi4py/commits/43c7388ad740e90cc7074c1c21857c3fd3880190
但是,如果您没有最新版本的mpi4py,您仍然可以这样做:
buffers = [[1,1],[2,2]]
result = reduce(MPI.SUM, buffers)
结果将是:
[3,3]
关于python - MPI.Op和执行操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22622859/