试图找出开放MPI中“全部减少”和“全部减少”之间的区别。根据我的理解,All-to-One Reductionm
从所有过程中获取一个片段(整数,数组等),并将所有片段与一个运算符(最小,最大,总和等)组合在一起,并将其存储在选定的对象中处理。据此,我认为“全部减少”是相同的,但是产品存储在所有过程中,而不仅仅是一个过程。从这份文件看来,All-Reduce基本上与All-to-All Reduction一样,这是对的还是我弄错了?
的全减少(MPI_Allreduce
)是一个组合的还原和广播(MPI_Reduce
,MPI_Bcast
)。他们可能已经打电话了MPI_Reduce_Bcast
。重要的是要注意,降低MPI并不会减少全球范围。因此,如果在5个进程中每个都有10个数字,那么MPI_Reduce
一个进程之后有10个数字。之后MPI_Allreduce
,所有5个进程都具有相同的10个数字。
相比之下,全部缩减执行缩减和分散,因此称为MPI_Reduce_scatter[_block]
。因此,如果您在5个进程中每个都有10个数字,则在a之后MPI_Reduce_scatter_block
,这5个进程每个都有2个数字。请注意,MPI本身并不使用术语“全部减少”,这可能是由于误导性歧义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句