惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园_首页
T
The Blog of Author Tim Ferriss
罗磊的独立博客
The Register - Security
The Register - Security
IT之家
IT之家
D
Docker
爱范儿
爱范儿
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
L
LangChain Blog
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
K
Kaspersky official blog
Latest news
Latest news
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
人人都是产品经理
人人都是产品经理
C
CERT Recently Published Vulnerability Notes
The Hacker News
The Hacker News
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
MongoDB | Blog
MongoDB | Blog
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
DataBreaches.Net
Project Zero
Project Zero
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Check Point Blog
S
Schneier on Security
NISL@THU
NISL@THU
T
Tor Project blog
P
Proofpoint News Feed
N
News and Events Feed by Topic
Last Week in AI
Last Week in AI
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 最新话题
Help Net Security
Help Net Security
Blog — PlanetScale
Blog — PlanetScale

Peng's Blog

Vibe paper不负责指北 SPFC参考文献阅读《CONGA》 读《Uno:数据中心间和数据中心内拥塞控制与可靠连接的一站式解决方案》 Lenovo Legion Y9000P 在 Linux 下只有 30W:从现象、WMI 到驱动补丁 理解《From ATOP to ZCube》中的ZCube网络拓扑 Zotero在Wayland下侧边栏无法拖动的解决办法 再读CAVER 我读的第一篇论文--NSDI_26_CAVER 在archlinux下使用万象拼音实现更智慧的中文输入法 Traefik实现单Docker容器托管多个静态网站 Pengs.top浴火重生!备案、服务器迁移与全站Docker化 严谨与温度并存:北航宋友老师程设课的学习感悟 Android Studio全流程换源指南 解决linux系统下pipewire作为音频服务器持续播放声音中断问题 在ThinkBook 16+ 2025上安装archlinux驯服记录【基本信息与触摸板修复】 「行云流水」在挂载移动硬盘时自动启动Syncthing开始同步的丝滑体验 自建图床和PicGo闹不愉快?干脆自己写个脚本,深度整合到KDE右键菜单! btrfs各压缩等级速率测试脚本,选择最适合你的压缩级别 别当冤大头,Adobe全家桶破解源头方案:修图剪辑不求人,盗版网站也得从你这儿进货! 轻松配置aria2下载器,通过systemd设置开机自启并与浏览器集成 Git Commit 规范指南
集合通信原语学习
Pengbo · 2026-04-26 · via Peng's Blog

集合通信原语学习

在阅读《From ATOP to ZCube》写作理解《From ATOP to ZCube》中的ZCube网络拓扑的过程中,我发现自己对于集合通信原语的理解还不够熟悉,所以在此小记一下。

最基础的

发送send、接收receive、复制copy、组内进程栅障同步Barrier以及节点间进程同步(signal+wait)

其中的Barrier相当于一个特殊的节点。所有进程都必须调用同一个 Barrier。每个进程执行到 Barrier 时会阻塞,直到组内所有进程都到达了这一屏障点,之后所有进程才会同时被释放,继续向后执行。

关于signal和wait,可以这么理解:

A: 正常运行 B: 正常运行

A: 正常运行 B: 调用wait, B停下

A: 正常运行,调用signal B: 收到signal B继续 运行

可以认为Barrier是全局锁,而signal和sync是局部定义的阻塞与等待。

Broadcast

一个发送方,多个接收方,通信完成后所有节点内容相同。

1485868-20260228142957541-815339826

Scatter

一对多,但是是把发送方的数据切成多个等长的块发给每个接收方

1485868-20260228143024832-864308460

Gather

多对一,最终唯一的接收方得到了所有的数据

1485868-20260228143052127-621617726

All Gather

先多对一Gather到一处,再由刚才的接收方Broadcast到全部。可以理解为 All Gather = Gather + Broadcast。

1485868-20260228143115962-1964127711

AlltoAll

这个似乎复杂一点,n个节点中每一个节点将目前已经有的数据切为n份,第n份发送到第n个节点。这个通信原语似乎在MoE模型中用的比较多,具体的集合通讯原语与训练和推理过程的关系在后面再学习吧

1485868-20260228143142982-1829187480

Reduce

Reduce将多个节点的数据规约运算到一个节点上。

什么是规约计算呢?就是把很多的数据变成少的数据,背后是求和,取最大值等等操作。通信库往往就此做一些优化。

1485868-20260228143206631-187954385

ReduceScatter

Reduce之后Scatter一下,每个节点拿到Reduce后的彩虹条(见上图)中的一部分,分发的方式和Scatter一样。

1485868-20260228143230086-1071930056

AllReduce

有两种理解:

  1. Reduce + Broadcast 先reduce到了一个节点,那个节点再broadcast出去了
  2. ReduceScatter + AllGather

这里第二种看起来比第一种更长更复杂,我一开始好奇为什么要像第二种那样实现。研究了实际情形下的负载才知道:Reduce操作需要选一个节点作为主节点,其他的节点需要把数据都全量传过来,这个主节点进行规约计算,然后这个主节点还要向其他所有节点发送数据。这并没有利用到多节点的计算能力,并且在主节点形成了大量的收与发的流量,这是性能低下的。

而ReduceScatter + AllGather是这样的:

  1. 每个节点将所有数据中的第i部分发送到第i个节点,注意到这里不是发送所有数据,并且数据是从不同的节点过来的,能充分利用网络路径

  2. 每个节点将自己拿到的数据进行规约计算(这里利用到了每个节点的计算能力)

  3. 每个节点将自己规约计算后的结果发送给其他所有节点,注意,在所有节点将第i部分发给节点i之后,节点i实际上是有n部分数据的,也就是原先一整块数据的大小,但是在那里进行了规约计算,计算后的产物和第i部分一样大。这个第i个节点向其他所有节点发送的是1/n大小的数据量,所以流量也不是很大。

1485868-20260228143252397-725482794

评论

留下神评妙论