← 完整学习路线

UNIT 66 / 78 · W10-4

跨 PE scan 的消息必须包含什么

本单元预计 4 核心小时。可以分成多个学习时段,按完整小节推进;停下来时留下输入、命令、结果和下一步。

时间包含阅读、编码与检查,是学习预算而非期限。打开此页只保存阅读位置,不代表通过验收。

01 / READ

先知道自己在观察什么

多PE scan:消息里到底应该传什么 →

先手算局部scan、各区总和与exclusive offsets,再画链上每条消息的累计含义。

多PE scan:消息里到底应该传什么 →

读公开路由教程的color、数据描述符与完成任务定义;只将其作为API阅读,不照猜路由配置。

先备不清楚时,沿章节入口补读;不要依赖翻过页数判断进度。

02 / PREDICT & RUN

先留下自己的预测或独立尝试

预测输入[3,-1]、[4]、[2,2]的offsets为0、2、6,运行核对全序列。

三分区inclusive scan →
源码下载与编译入口

下载到自己的练习目录。按本节给出的完整命令编译;多文件与driver要求见原任务。需要时查阅文件保存与编译操作 →

43-a.cpp

先保存预测,再核对正文标明的预期或诊断。完整构建、多文件与设备实验按原任务命令执行。

03 / CHANGE ONE THING

通过一个变动看清原因

在副本把分区改为[1,2]、[]、[3],将手算输出期望从五项改为[1,3,6];同时保留另行生成的逐位置oracle比较,不只比较最终总和。

修改后应观察到什么

总和为3、0、3,offsets为0、3、3,最终scan为1、3、6。

04 / DO IT YOURSELF

换一组条件,独立解决

独立列出三节点链的发送者、接收者、消息序号与累计payload;再把某条累计量错误地改成本地总和,手算第一个错误位置。

用这些条件检查自己的实现

  • 原输入第二条应发送累计6,不能只发送本地4;错误版本第三分区变成6、8。
  • 空分区仍有明确协议角色;每个等待消息都存在发送者与结束条件。
05 / EXPLAIN & CHECK

用证据决定是否进入下一单元

  1. scan为何比reduction更容易被排列错误破坏?
  2. 数学单位元与通信终止为什么要分别规定?

本单元的验收依据

局部/全局结果及消息表逐项一致;未运行真实fabric,路由与任务调度仍列为待设备验证。

留下自己的代码或推演、测试输入、真实输出和仍不确定的问题。未达到要求时,下一次继续本单元。