首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reduce()和Reduce() (大小写)

reduce()和Reduce() (大小写)
EN

Stack Overflow用户
提问于 2018-12-30 02:06:04
回答 1查看 731关注 0票数 0

在我的课程中,我的演讲特别推荐使用comm.reduce(小写)来解决特定的问题,但是所有关于MPI reduce语法的引用都是Reduce(大写),就像我在课堂讲稿中找到的所有例子和我自己做的例子一样,所以我不知道参数的精确语法。

在我当前的代码中,我尝试基于gather()命令的语法,该命令给出了:"A = comm.reduce(x_local,MPI.SUM)“,所以我将其放入此代码中,以检查它是否有效:

代码语言:javascript
复制
from mpi4py import MPI
import numpy as np

comm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()


x_local = 5*size
print("on rank:",rank," local value is: ",x_local)
A = np.zeros(size)
if rank == 0:
    A = comm.reduce(x_local,MPI.SUM)
    print(A)

然而,当我尝试在终端中运行这段代码时,它根本就不能工作,我会打印出除rank=0之外的任何等级,但它不会给出任何其他的错误,也不会给出任何反馈,它只是永远在那里,直到我按下crtl+c。我已经把它放在那里大约一个小时了,当我做其他事情的时候,当我回来的时候,它仍然在做同样的事情。我只能假设我的语法是错误的,但是我不知道为什么python会发出一个错误。任何帮助都将不胜感激

(以及一个实际包含reduce和其他mpi函数的大小写实例的链接)

EN

回答 1

Stack Overflow用户

发布于 2018-12-30 23:21:31

您的问题与大写/小写无关。

无论大小写如何,Reduce都是一种集体操作。通信器的所有级别都必须参与调用函数。

关于大写/小写,这是特定于mpi4py的。大写字母的变体使用“内存缓冲区”,而小写字母的变体可以与python对象通信。

另请参阅:https://mpi4py.readthedocs.io/en/stable/overview.html#communicating-python-objects-and-array-data

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53972088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档