ASC25 超算竞赛
- 时间
- 2025.2 – 2025.4
- 赛事
- ASC25 世界大学生超级计算机竞赛
- 角色
- 我与一位队友共同负责 m5C 赛题(团队 6 人)
- 奖项
- 一等奖和最受欢迎队伍
比赛简介
ASC 是全球规模最大的大学生超算竞赛,每年会从全球几百支高校队伍里筛出二十几支进决赛。ASC25 的 RNA 赛题来自 2023 年诺奖 mRNA 疫苗相关的成果,任务是在给定算力下跑通并优化一条 m5C 甲基化位点检测流程,要处理三个数据集、合起来大约 3.4 亿条测序数据。
听起来很专业,但其实我们是第一次参赛,也不是生物专业的学生。所以最开始拿到题的时候,心里多少是有点发虚的。
比赛过程
原项目几乎没有文档,能拿到手的只有一份 bash 脚本,所以我们第一件事并不是谈优化,而是安安静静地把这条流水线复原出来。我们顺着脚本一个一个去查每个工具在做什么,再把它们之间的依赖理清楚,顺便发现流程里其实有几步是可以拿掉的。
真正看懂它之后,才敢动后面的优化。
第一步我们尝试了任务级并行。把流水线画清楚以后,就能一眼看到有一些任务彼此之间其实并不依赖,完全可以同时跑起来。顺着这个思路重新调度,整体就拿到了 2.41× 的加速。
这个阶段没有什么花哨的东西,收获感却意外地强,因为我们第一次直观地感觉到,"看懂流程"本身就是一种优化。
再往深一点看,瓶颈其实藏在 CPU 利用率里。有些工具是带多核选项的,但默认调度下离吃满核还差得很远,机器大部分时候都在空转。
于是我们顺着数据的特征做了切片。流程中间很长一段天然适合拆开跑,我们就让这些切片在多核上并发,再跨节点分发出去。到了后半段,有几个工具不太支持并行,就把之前拆散的切片重新合回去,按原本的方式老老实实跑完。跨机分发、结果汇总、断点恢复这些琐碎的事情,我们也陆续写成了脚本。
流程从此稳定下来,CPU 利用率也被推到了接近满载。
比赛收获
拿到一等奖当然是很开心的。但回头看,比名次更珍贵的,是第一次真正走进 HPC 的那个视角。
以前觉得"并行"是一种技巧,学会就能用。做完这道题才明白,它更像是任务结构、数据特性和硬件能力之间持续的平衡,没有银弹。
这次比赛也让我学到了一件在别的地方不太容易学到的事:面对一个完全陌生的领域,最划算的做法,往往不是急着动手写代码,而是先耐下心来把它读懂。



















