Files
blog.hifuu.ink/source/_posts/One-Last-ASC.md
2026-05-30 20:53:31 +08:00

40 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 其作始也简,其将毕也必巨 - 回顾64-bit Brainstorm三年ASC征程
date: 2026-05-30 10:10:31
tags: [竞赛, 生活, 学习, ASC]
---
我的最后一次ASC之旅终于结束了回望过去如今我想表达的唯有感激不仅是对与我并肩作战的队友还有参赛过程中其他战队的朋友们以及辛苦付出的组委会老师们。正好借着这次机会我也想回顾一下这三年来的ASC参赛经历分享一些个人的感悟和体会。
### ASC24从零开始的挑战
2023年年末一位在网上认识的神秘学长lzd突然发给我一张海报说是有个非常好玩的比赛正在校队招新感觉我很适合参加让我也来试试。其实当时我刚从ACM校队招新大败而归不知道自己适合什么样的比赛于是让我试试那我就试一下好了结果这一试直接进入了64-bit Brainstorm战队并开启了我长达三年的ASC之旅。
那个时候毕竟才大一懂的也不多进入超算队后我听从学长的建议花了一个多月去自学MPI和CUDA编程。经过一段时间学习准备ASC24的预赛赛题发布了根据任务安排我和另一位学长hxh分配到了OpenCAEPoro这个多相多组分渗流模拟科学计算程序的优化任务。依稀记得当时因为这个程序本身依赖较多还要手动构建不少软件导致我们花了三天才成功把这个程序的baseline跑起来这让我第一次真正接触到了科学计算程序的复杂性和挑战性。之后我们又花了数周时间对这个程序进行了性能分析和优化xh学长负责算法优化进行了一些手动循环展开和向量化以及一些算子库的高性能版本替代我则负责一些算子的GPU移植工作并提供了快速fallback回CPU的开关以防万一预赛阶段我们最终实现的加速比只有1.2x不过好在也顺利进入了决赛。
决赛阶段是我最难忘的部分我第一次见识到了完整的小型集群搭建维护流程lzd学长简直像个超人一样什么都懂他和cyq学长双人完成了整个集群的部署系统方面有什么问题找他都能解决功耗过高他也有各种办法来控制甚至CAE这道题当时构建失败我还在排查原因时他也能一眼发现是我把一个头文件位置写错了真是太厉害了。终于到了OpenCAEPoro测例发布这天不出意外的是又出意外了决赛case可以说相当刁钻记得当时很多团队都卡在第一个测例无法运行结果后面几个测例由于规模远远超过预赛测例导致我们的GPU版本直接崩溃危急情况下我和xh学长迅速做出决定马上fallback回CPU版本把结果运行出来在运行后几个测例的同时我们也在空闲节点排查第一个测例的问题结果发现只要把我们选用的nvhpc编译链完全回退到gcc就能正确成功运行第一个测例了。最后结果也是非常出人意料我们只是把所有测例运行完了实际没有特别明显的优化却在这道题上取得了第二名的成绩只略逊于台湾清华大学通过赛后交流才知道有些队伍虽然有很快的加速比但是因为精度无法通过所以没能拿到相应的分数。
这一年我们的总成绩是rank 5是历年来最好的一次大家都非常开心晚宴阶段我也认识了非常多其他学校的新朋友并约定来年再见。值得一提的是这一年由于AI工具还没发展起来不管是程序排错还是性能优化我们都还是古法处理现在身处Agent时代回想起来那段人工手动处理问题的经历真的是非常不易。
### ASC25遭遇挫折的成长
时间转眼来到2024下半年在新学期的战队招新中我们又迎来了三位优秀的新队员分别是wlx, yx和zqr。此时lzd学长面临毕业由hxh和我作为老队员和三位新队员组建了一支新的超算团队出征ASC25。这一年我正值大二课业最为繁重的时候因此在ASC25赛题发布后我被分配到的任务只有集群运维和HPL/HPCG基准测试工作。为了尽可能更多地参与贡献我在课余时间也耗费了不少精力研究系统调优并产生了一些自以为不错的方案结果却是埋下了非常深的隐患让我赛后十分后悔。
这一年我给集群选用的Linux发行版是Intel出品的Clear Linux非常戏谑的是ASC25结束后不久Intel就宣布终止此项目并关闭了Clear Linux官网当时我由于网络上的一些宣传过于迷信这个发行版的性能表现却忽视了其兼容性带来的问题预赛阶段我们的机时大部分分给了AlphaFold和m5c两个赛题直到最后才进行HPL/HPCG测试这时候我才发现Clear Linux软件源里提供的IB驱动和nvidia-peermem模块完全不兼容并且没有办法修复而Nvidia官方的IB驱动也不支持Clear Linux无法在这个发行版上安装为了解决这个问题我最终配置了Rocky + Clear这个非常抽象的双系统方案虽然最终解决了兼容性问题但也为队友们的工作造成了不少麻烦。好在hxh和wlx都非常给力至少在预赛阶段我们的AlphaFold和m5c赛题都有亮眼表现以不错的成绩再次进入了决赛。
来到青海大学我们从一开始就各种问题不断先是装完机发现IB起不来排查了快一个小时发现是Clear Linux起不了opensm服务只能单开一个节点用Rocky Linux启动。而后又是HPL测试结果一直异常我们只能用双机跑出正常结果超过双机就会性能暴跌。最后更严重的是功耗不知为何完全不听话一直压不下来即便我给所有核心都调整频率至最低。结果就是决赛正式运行阶段的两天我们整个过程都非常崩溃虽然有五个节点但是大部分赛题我们都只能用三节点来跑才能控制功耗不会超出4KW限制。赛后我感到非常自责觉得自己在系统选择和功耗控制的失误给整个团队带来了很大的麻烦和压力这一年是我们表现最差的一年排名直接倒数除了wlx负责的AlphaFold表现不错之外其他赛题得分都非常惨淡。当时队长xh非常难受我却没脸去安慰他感觉自己拖了大家的后腿好在队友们都非常理解和包容我原本我打算今年结束就从超算队退役但是带着这份歉意我还是决定明年ASC26干回来争取用一个更好的结果来弥补。在AI方面相比去年这一年的不同是我们在网上发现了一个叫Deepseek V2.5的国产大语言模型其性能丝毫不逊于同期国外的大模型我们第一次感受到了AI工具在报错分析和代码优化方面的巨大帮助。
### ASC26Agent时代的思考
终于来到了2025年下半年我们在新学期的战队招新中又迎来了三位新队员分别是和我同级的dyz计算机学院大一的qhy以及电子科学学院大二的chb。这一年是我们人力资源最为丰富的一年lzd回归指导超算队hxh和wlx也分别被清华大学和上海交大录取他们作为外援继续参与到超算队的工作中同时我们另一支参加ISC的超算队也提供了不少帮助。
这一次我的工作依旧包括系统运维和基准测试同时还和chb一起负责了AMSS-NCKU数值相对论模拟程序的优化工作。在系统方面由于去年的经验教训我直接选择了Rocky Linux 10作为我们的操作系统它在兼容性和稳定性方面都非常可靠没有问题。而在程序优化方面Agent时代的到来也对我们的工作流带来了前所未有的改变我们可以把精力更多的放在性能分析和优化思路的探索上具体的实现细节则可以交给AI工具来完成这大大提高了我们的效率和创新能力。在AMSS-NCKU的优化过程中我们通过perf和vtune等工具分析了程序的性能瓶颈发现问题主要集中在通信和访存上而这些问题最终又主要由低效的插值函数引起于是在预赛阶段我们针对MPI和polint相关函数做了充分的针对性优化包括选用点对点通信和异步通信以及插值方面调换遍历顺序和提供快路径等最终在预赛阶段对于GW150914测例我们的每步耗时从14s多降低到了3s多取得了非常显著的加速效果。同时在世界模型赛题上dyz和qhy也表现优异我们得以第三次闯入决赛来到无锡学院与各路优秀的同仁汇合继续切磋交流。
进入决赛阶段我们在AMSS-NCKU的优化工作继续进行但是当我们继续调整优化将步时压缩到了2.6s左右之后却陷入了一个瓶颈即接下来我们无论再改动哪里耗时都不会降低了并且还会负优化这对我和chb造成了巨大的困扰接近两个礼拜我们都没有任何进展并且由于没有明显进展汇报我们还被怀疑骄傲自满躺平摆烂以及没有理解赛题好在有学长的鼓励支持我还是坚持了下来尽量忽略了不合理的外部干扰继续坚持工作最终我和chb决定推翻原本思路基于现在的CPU版本进行完整的GPU重构虽然这个决定工作量巨大但是我们觉得这是唯一有可能突破瓶颈的办法。AMSS程序本身有着大量参数支持为了充分准备决赛测例我们自费了大量token来利用Agent进行移植工作。移植初期由于效果不明显我们还被质疑找错了方向然而我和chb都对我们的GPU方案很有信心知道还有大量优化空间最终我们在前往无锡前取得了巨大突破GPU版本的每步耗时从2.6s降低到了0.8s多,满怀着信心和期待,我们踏上了前往无锡的旅程。
来到无锡学院相比去年一切都显得有条不紊尽在掌握我利用clonezilla顺利完成了现场四节点装机并且功耗也完全在可控范围内测试阶段每个赛题都进行了充分测试不像去年磕磕绊绊。然而在正式阶段却没有我们预期的那么容易。首先是设备代差带来的劣势导致我们在HPL/HPCGUnifoLM-WMA和AMSS-NCKU上基本丧失了竞争力同时由于大家都有了Agent加持每个赛题都会出现超快版本导致很多团队只能拿到基础分但拿不到性能分这在过去是完全不可想象的从前的ASC哪怕优化做得没那么好但是只要能把所有测例运行完成都能拿到不错的分数而现在只要优化水平不在第一梯队就基本拿不到分数。最终我们除了AMSS-NCKU以外其他赛题几乎全都没能够超过10分也没能突破ASC24的排名记录。
虽然结果没有达到我们最初的预期但是我觉得ASC26的经历依然非常宝贵并且令我满意。ASC的意义从来都不是最终排名而是在优化过程中的技术积累比赛过程中的团队协作以及赛后交流中的友谊建立这些都是无价的财富。通过这三年的ASC经历我不仅提升了自己的技术能力更重要的是结识了一群志同道合的朋友收获了许多珍贵的回忆和经验。与此同时我们也充分认识到了自己和其他优秀团队之间的差距这些差距既有技术层面的也有资源层面的它们都为我们提供了未来努力的方向和动力。
最后我想对所有支持和帮助过我们的人表达最诚挚的感谢。首先是我的队友们与你们共事让我感到无比幸运和自豪我从未觉得上大学开心过除了在超算队和你们一起工作的时候。其次是我在其他高校超算队尤其是齐鲁工业大学福州大学等认识的朋友们与你们的交流和切磋让我受益匪浅也让我感受到了ASC赛事的温暖和活力。最后是组委会的老师们你们的辛勤付出和专业支持为大家提供了一个展示自我和提升自我的平台非常感激你们的努力。比赛结束后碰到两位组委会老师还向我们告别说到希望明年再见虽然明年我因为考研不可能再重回ASC赛场了希望将来还是能有机会以非队员的身份继续参与到ASC的活动中来。
虽然我的ASC之旅已经结束了但我相信在这个过程中建立的友谊和积累的经验将会伴随我们继续前行。在此衷心祝愿ASC赛事越办越好培养出更多优秀的超算人才也祝愿每一位为ASC辛勤工作的同学都能在未来的道路上取得更大的成功