ASC25 超算竞赛

时间
2025.2 – 2025.4
赛事
ASC25 世界大学生超级计算机竞赛
角色
我与一位队友共同负责 m5C 赛题(团队 6 人)
奖项
一等奖和最受欢迎队伍
队员在 2025 ASC Finalist 背景板前合影

比赛简介

ASC 是全球规模最大的大学生超算竞赛,每年会从全球几百支高校队伍里筛出二十几支进决赛。ASC25 的 RNA 赛题来自 2023 年诺奖 mRNA 疫苗相关的成果,任务是在给定算力下跑通并优化一条 m5C 甲基化位点检测流程,要处理三个数据集、合起来大约 3.4 亿条测序数据。

听起来很专业,但其实我们是第一次参赛,也不是生物专业的学生。所以最开始拿到题的时候,心里多少是有点发虚的。

比赛过程

1 / 复原
先把流水线读懂

原项目几乎没有文档,能拿到手的只有一份 bash 脚本,所以我们第一件事并不是谈优化,而是安安静静地把这条流水线复原出来。我们顺着脚本一个一个去查每个工具在做什么,再把它们之间的依赖理清楚,顺便发现流程里其实有几步是可以拿掉的。

真正看懂它之后,才敢动后面的优化。

整条 m5C 流程我们早期画出来的全景图
2 / 第一轮
任务级并行

第一步我们尝试了任务级并行。把流水线画清楚以后,就能一眼看到有一些任务彼此之间其实并不依赖,完全可以同时跑起来。顺着这个思路重新调度,整体就拿到了 2.41× 的加速。

这个阶段没有什么花哨的东西,收获感却意外地强,因为我们第一次直观地感觉到,"看懂流程"本身就是一种优化。

2.41×
端到端加速
相对最初版本
fastq 被切成多片并发处理,最后合回 sorted BAM
3 / 第二轮
切开跑,再合回去

再往深一点看,瓶颈其实藏在 CPU 利用率里。有些工具是带多核选项的,但默认调度下离吃满核还差得很远,机器大部分时候都在空转。

于是我们顺着数据的特征做了切片。流程中间很长一段天然适合拆开跑,我们就让这些切片在多核上并发,再跨节点分发出去。到了后半段,有几个工具不太支持并行,就把之前拆散的切片重新合回去,按原本的方式老老实实跑完。跨机分发、结果汇总、断点恢复这些琐碎的事情,我们也陆续写成了脚本。

流程从此稳定下来,CPU 利用率也被推到了接近满载。

两位队员背对镜头盯着实时榜单

比赛收获

颁奖现场的 First Prize 大屏
回头看
走进 HPC 的视角

拿到一等奖当然是很开心的。但回头看,比名次更珍贵的,是第一次真正走进 HPC 的那个视角。

以前觉得"并行"是一种技巧,学会就能用。做完这道题才明白,它更像是任务结构、数据特性和硬件能力之间持续的平衡,没有银弹。

这次比赛也让我学到了一件在别的地方不太容易学到的事:面对一个完全陌生的领域,最划算的做法,往往不是急着动手写代码,而是先耐下心来把它读懂。

影像画廊

赛场实时成绩榜前,我们队和其他队伍的朋友一起竖起大拇指合影
决赛场馆里,各参赛队伍几百人席地而坐的大合影,身后是各校的展位
参赛选手和 Jack Dongarra 等评委在场地中央的 ASC 地贴前挥手合影
两位老师和五名队员在 Finalist 成绩榜前竖起大拇指
两位外籍评委和五名队员在 Finalist 成绩榜前竖起大拇指
晚宴上,队员们和来自其他国家队伍的同学合影
晚宴上,队员们和其他队伍的同学一起竖起大拇指合影
从看台俯瞰决赛场馆,各校机柜和展位沿四周排开,尽头是实时功耗大屏
戴着手套的手托着一块还没装机的 GPU 计算卡
机柜里的服务器,背面缠满了电源线和网线
颁奖典礼现场展开的一等奖证书,获奖单位是澳门科技大学
展开的“最受欢迎队伍”证书,获奖单位是澳门科技大学
举起的 2025 ASC 一等奖金色奖杯
闭幕式会场里举起的“最受欢迎队伍”奖杯,背后是领奖台
一等奖和最受欢迎队伍两座奖杯并排放在荣誉证书上
部分照片由 ASC25 赛事组委会拍摄发布,版权归原权利人所有。