← 完整学习路线

UNIT 50 / 78 · W07-3

把两个固定任务推广为完整分区

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

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

01 / READ

先知道自己在观察什么

并行分解、分块与负载均衡 →

从n=10,p=3推导商余数、起点与终点,再核对相邻不重叠和总覆盖。

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

02 / PREDICT & RUN

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

手推[0,4)、[4,7)、[7,10),运行已有穷举检查;解释为什么允许空任务。

商余数分块与边界穷举 →
源码下载与编译入口

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

27-a.cpp

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

03 / CHANGE ONE THING

通过一个变动看清原因

在副本新增n=2,p=4的区间打印,保留零worker拒绝和原穷举。

修改后应观察到什么

区间为[0,1)、[1,2)、[2,2)、[2,2),每个有效元素恰好覆盖一次。

04 / DO IT YOURSELF

换一组条件,独立解决

把主项目固定分区原型改为1到64个worker的商余数划分;先独立实现覆盖计数,再接回求和。

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

  • n=0、1、2、7、31,p=1、2、3、8、64均覆盖每项一次,无越界。
  • p=0或65拒绝;相邻end等于下一begin,最后end等于n。

接回贯穿练习

Reading Pipeline stage 08 →
21线程句柄/捕获与27分区完成后回访;这是整合阅读,不替代该单元独立练习或本人主项目。

05 / EXPLAIN & CHECK

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

  1. 为什么每个任务加同样的向上取整长度容易重叠或越界?
  2. 任务数大于元素数时空任务怎样处理?

本单元的验收依据

独立分区检查与主项目所有合法worker结果一致;失败清理仍存在,才能记录通用并行正确性。

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