← 完整学习路线

UNIT 52 / 78 · W07-5

用主项目回答一个性能问题

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

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

01 / READ

先知道自己在观察什么

可信测量、原始样本与性能模型 →

对照真实样本程序,确认校验和计时不共用错误假设。

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

读局部累加、partial槽位与join后合并,把同样责任应用到自己的实现。

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

02 / PREDICT & RUN

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

先运行42个边界组合的教学基线,再对照本人分区测试;不复制它作为独立作品。

局部累加再合并 →
源码下载与编译入口

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

27-b.cpp

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

03 / CHANGE ONE THING

通过一个变动看清原因

在副本加入p=8和64对应的小规模输入,保留全套原检查并更新案例计数说明。

修改后应观察到什么

所有合法组合与顺序oracle相同;线程数增加不改变整数答案。

04 / DO IT YOURSELF

换一组条件,独立解决

在同一Reduction Lab测n=0、1000、100000,workers=1、2、4;保存Release原始样本,并只回答‘线程创建成本在小输入上是否明显’。

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

  • 每个结果先通过合法输入合同与独立oracle;每组合先预热再多次采样。
  • 注明计时是否含线程创建;没有稳定优势时不发布speedup结论,仍保留原始数据。
05 / EXPLAIN & CHECK

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

  1. 局部累加减少的是哪些共享操作?
  2. 如何区分算法变快与计时范围偷偷变小?

本单元的验收依据

代码、测试、原始CSV和一个可证伪假设形成闭环;通过后再进入GPU共性模型,不购买设备。

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