分享

Broadcast,Scatter,Gather,Reduce,All

 520jefferson 2023-09-06 发布于北京
 Broadcast

看名字就很好理解了,其实就是把同一份数据分发广播给所有人,示意图如下:

Broadcast,Scatter,Gather,Reduce,All-reduce分别是什么?_并行计算

Scatter

不同于Broadcast, scatter可以将不同数据分发给不同的进程。

Broadcast,Scatter,Gather,Reduce,All-reduce分别是什么?_并行计算_02

Gather

这个也很好理解,就是把多个进程的数据拼凑在一起。

Broadcast,Scatter,Gather,Reduce,All-reduce分别是什么?_编程开发_03

Reduce

reduce就是将多个进程中的数据按照指定的映射函数进行运算得到最后的结果存在一个进程中,例如下面两个图中的归约操作都是求和,将4个不同进程的数据归约求和后存在了第一个进程中

Broadcast,Scatter,Gather,Reduce,All-reduce分别是什么?_编程开发_04

Broadcast,Scatter,Gather,Reduce,All-reduce分别是什么?_编程开发_05

All-reduce

All-reduce与reduce的区别就在于后者最后的结果是只保存在一个进程中,而All-reduce需要每个进程都有同样的结果。所以All-reduce一般包含scatter操作,所以有时候也会看到reduce-scatter这种说法,其实reduce-scatter可以看成是all reduce的一种实现方式

Broadcast,Scatter,Gather,Reduce,All-reduce分别是什么?_并行计算_06

参考


MARSGGBO原创





2019-9-10


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多