Skip to content

推荐阅读索引:每篇材料该吸收什么

这份索引按“为什么读、抓哪个问题、迁移到 Muxi 的边界”组织。正文讲义已经把关键观点融入各周;这里用于反查。

第 1 周:通信库与数据路径

NCCL Documentation

  • 为什么读:建立 collective、communicator、rank、environment variable 的基本语义。
  • 抓的问题:AllReduce、Broadcast、ReduceScatter、AllGather 的语义差异。
  • Muxi 边界:NCCL 是通用心智模型;MCCL 的变量、算法名和默认行为必须回到沐曦文档与实际日志。

NCCL Tests Performance

  • 为什么读:避免误读 alg_bwbus_bw、time。
  • 抓的问题:benchmark 指标是如何按 collective 通信量折算的。
  • Muxi 边界:指标口径可迁移;具体实现和输出字段以当前脚本为准。

Demystifying NCCL / NCCL source

  • 为什么读:理解 channel、chunk、protocol、ring/tree 如何进入执行路径。
  • 抓的问题:通信库为什么不是简单 send/recv
  • Muxi 边界:NCCL 内部结构不能直接等价 MCCL,只能作为提问框架。

第 2 周:Ethernet/IP/ECMP/Clos

RFC 2992:ECMP 算法分析

  • 为什么读:理解 ECMP 是 flow hash 到 next-hop,不是自动平均分流。
  • 抓的问题:少量大象流为什么会 hash 不均;next-hop 变化为什么会造成 flow remap。
  • Muxi 边界:RFC 不告诉你 H3C 实际 hash 字段,必须靠配置、抓包和交换机 counter。

Fat-Tree

  • 为什么读:理解 Clos/fat-tree 如何用多路径和高 bisection 支撑数据中心横向通信。
  • 抓的问题:bisection、oversubscription、commodity switch scale-out。
  • Muxi 边界:理论拓扑不能直接证明 Muxi 物理超分比。

VL2

  • 为什么读:理解逻辑地址和物理位置可以解耦。
  • 抓的问题:为什么同子网/同逻辑网络不等于同 rack/同 leaf。
  • Muxi 边界:rail 子网只能证明逻辑隔离,不能证明物理独立交换平面。

Jupiter Rising

  • 为什么读:理解真实大规模 Clos 依赖集中控制、配置和遥测。
  • 抓的问题:端点观测为什么不足以恢复完整物理拓扑。
  • Muxi 边界:没有 host→switch port、queue、bytes、drop、PFC/ECN counter,就不能机制闭环。

第 3 周:RDMA verbs 与 RNIC

Linux userspace verbs

  • 为什么读:理解用户态如何高效操作 RDMA 设备。
  • 抓的问题:fast path 为什么可以少 syscall,但仍需要内核/驱动管理资源。
  • Muxi 边界:不要把“RDMA 快”误解为“CPU/驱动/轮询无关”。

RDMA Aware Networks Programming Manual

  • 为什么读:系统学习 MR、QP、CQ、PD、work request。
  • 抓的问题:一个 RDMA 程序从 open device 到 poll CQ 的对象顺序。
  • Muxi 边界:对象模型可迁移;xscale 具体 counter 和调优项需厂商资料。

rdma-core / perftest

  • 为什么读:用最小例子理解 QP 建连和 RDMA read/write/send 性能测试。
  • 抓的问题:ib_write_bw 测的是简单 RDMA 路径,不是 collective。
  • Muxi 边界:perftest 快不能证明 MCCL AllReduce 应该快。

第 4 周:RoCEv2、GID、MTU、QoS

RoCE / Cumulus QoS 文档

  • 为什么读:理解 DSCP/PCP、priority、PG/TC、PFC、ECN 的配置链。
  • 抓的问题:端点标记如何被交换机 trust 和映射。
  • Muxi 边界:NVIDIA/Cumulus 示例不能照搬到 H3C/Muxi。

RFC 2474 / RFC 3168

  • 为什么读:理解 DSCP 和 ECN 的 IP 字段语义。
  • 抓的问题:DSCP 是分类标签;ECN CE 是拥塞标记,不是完整拥塞控制。
  • Muxi 边界:字段存在不等于交换机按预期处理。

沐曦 C500 MCCL 编程指南

  • 为什么读:确认 MCCL_IB_TCMCCL_IB_GID_INDEX 等变量语义。
  • 抓的问题:MCCL 当前实现到底读哪些变量,如何影响 RoCE 数据面。
  • Muxi 边界:文档语义仍需实际日志、抓包和网络侧配置闭环。

第 5 周:PFC/ECN/CNP/DCQCN

DCQCN

  • 为什么读:理解 RoCE 数据中心如何用 ECN/CNP 做发送端速率控制。
  • 抓的问题:CE/CNP 如何构成反馈环。
  • Muxi 边界:具体参数、counter、实现路径依赖 xscale/H3C。

RDMA over Commodity Ethernet at Scale

  • 为什么读:理解大规模 RoCE 部署里 PFC/ECN/QoS/buffer 需要协同。
  • 抓的问题:lossless Ethernet 为什么不是打开 PFC 就结束。
  • Muxi 边界:论文经验提供检查清单,不提供当前集群配置事实。

第 6 周:NCCL/MCCL、多 rail 与指标

NCCL Collective Operations / source

  • 为什么读:理解算法、channel、chunk、protocol 如何影响通信模式。
  • 抓的问题:同一个 collective 为什么可能产生完全不同的网络压力。
  • Muxi 边界:MCCL 的实际算法选择必须看日志/厂商支持。

SuperBench

  • 为什么读:学习如何设计多层 benchmark,而不是只看一个最终吞吐。
  • 抓的问题:单机、P2P、incast、collective 如何组成证据链。
  • Muxi 边界:benchmark 是诊断工具,不是根因本身。

第 7 周:端侧 tomography 与实验方法

  • 为什么读:理解端点探测如何得到亲和分组,并指导 collective placement。
  • 抓的问题:亲和分组和物理拓扑命名是两件事。
  • Muxi 边界:无 ground truth 时不要把行为分组命名为 leaf/spine。

SIMON

  • 为什么读:理解共享瓶颈推断需要哪些观测假设。
  • 抓的问题:什么时候端到端测量不足以唯一推断路径。
  • Muxi 边界:对称 Clos、ECMP、四 rail 并行会削弱唯一性。

R-Pingmesh / C4

  • 为什么读:理解持续探测、随机化、collective-aware 诊断的价值。
  • 抓的问题:一次性矩阵为什么不如长期、多层、受控实验。
  • Muxi 边界:系统化探测仍不能替代交换机侧 counter。

第 8 周:Muxi 512 毕业项目

第 8 周不新增阅读,重点是把前 7 周的材料转成 evidence map:

text
候选机制 → 支持证据 → 反证 → 替代解释 → 缺失 ground truth → 下一步

优先回看:

  • plans/muxi-fabric-probe.md
  • project/lab-workspace/reports/rounds/muxi_fabric_final_20260719.md
  • project/lab-workspace/reports/rounds/muxi_topology_facts_20260719_102558.md