作者 | 陈大鑫
北京时间11月20日凌晨,SC20国际大学生超算竞赛总决赛结果公布,由清华大学计算机系组建的清华大学学生超算团队夺得SC20 国际大学生超算竞赛总冠军!
清华大学同时也取得了LINPACK基准测试最高性能奖,获得双料冠军。
图注:清华大学学生超算团队获LINPACK基准测试最高性能奖
这也是清华继SC18、SC19竞赛夺冠后拿下的三连冠!
比赛介绍
SC是国际超算领域的顶级会议,国际影响力巨大,由SC国际超算大会组委会主办,每年举办一次,主要由展会和学术会议构成。
作为会议的重要组成部分,SC超算竞赛吸引着世界各国家和地区的众多高校参与,与ASC超算竞赛和ISC超算竞赛并列为世界最具权威性的三大国际大学生超算竞赛。
比赛旨在促进大学生与工业界之间的联系,推动世界各地区超算青年人才交流和培养,提升超算应用水平和研发能力。
本次决赛共有来自清华大学、北京大学、上海交通大学、南方科技大学、上海科技大学、麻省理工学院、加州大学圣地亚哥分校、佐治亚理工学院、伊利诺伊大学、苏黎世联邦理工学院等海内外顶级的19支队伍参赛。
代表清华参加本次SC20比赛的队伍由6名来自清华大学计算机系的本科生组成:
张晨(2017级)、陈嘉杰(2017级)、王雨田(2017级)、钟闰鑫(2017级)、宋泽宇(2018级)、翟明书(2018级);
指导教师为清华大学计算机系副教授翟季冬、助理研究员韩文弢和助理研究员甘霖。
清华大学SC20参赛队员及指导老师:前排自左至右依次为钟闰鑫、陈嘉杰、张晨;后排自左至右依次为韩文弢、翟季冬、王雨田、宋泽宇、翟明书。
受新冠疫情影响,本次比赛改为线上举行。新的规则要求各参赛队伍在3700美元的云计算预算限制下,在组委会提供的云计算平台中自行选取机器配置搭建计算集群系统。
赛题包括五项任务:
1、基准测试程序LINPACK、HPCG和IO500;
2、地球系统模式CESM;
3、分子动力学模型GROMACS;
4、SC19论文复现题“大规模并行CT重建MemXCT”;
5、现场公布的神秘应用“图社区发现miniVite”。
值得一提的是,本次比赛中在LINPACK、HPCG、IO500三个经典的基准测试赛题中,清华以绝对优势排名第一,其中IO500在清华大学高性能计算研究所自主研制的MadFS支持下取得了143.73分的成绩,是第二名的5倍多。
比赛最终榜单
问答专访
在得知清华大学学生超算团队获得冠军后,AI科技评论第一时间联系到了他们,并针对本次比赛进行了交流。
清华大学学生超算团队
:我们需要在7月初的时候向主办方提交参赛提案,提案包括队伍的专长、历史成绩、成员的技术背景和多样性、比赛策略、比赛准备、可以获得的外部支持等方面的内容。最后主办方邀请超算领域专家对提出申请的队伍进行评估,选出入围队伍。
2、
AI科技评论:比赛的任务和指标以及比赛各种限制(时间、硬件)是什么?
清华大学学生超算团队:
赛前公布的规则要求队伍在 Azure CycleCloud 云计算平台上使用不超过3200美元的预算运行所有赛题。
我们需要在预算以及赛前申请的机器型号的限制下,合理分配各个赛题使用的云资源,从而使得队伍在所有赛题上综合获得最好的得分。
为考察队伍的应变能力,主办方在比赛结束前12小时突然将预算提升为3700美元,预算增多看似是个好事,对各个队伍冲高分肯定有好处,但却对整个比赛的策略应变、赛题资源分配提出了更高的要求,要比谁能更高效地利用增加的预算来产生最高的效益。
本次比赛的赛题包括基准测试程序LINPACK、HPCG和IO500、地球系统模式CESM、分子动力学模型GROMACS、SC19论文复现题“大规模并行CT重建MemXCT”,以及现场公布的神秘应用“图社区发现miniVite”,我们需要在吞吐量、总运行时间、计算效率等指标上获得尽可能好的结果。
此外,我们还需要设计在 SC20 会议上展出的海报,并在会议专门设置的环节上作报告展示我们的工作,这些活动的表现也会被记入总分。
比赛的时间是连续72小时,也就是不间断的三天三夜。可选硬件包括Azure CycleCloud 上的 Intel CPU、AMDCPU及 K80、P100、V100等型号的 GPU。
清华大学学生超算团队海报(节选)
3、AI科技评论:本次比赛的难点在哪里,咱们是如何突破的,以及有哪些创新点?
清华大学学生超算团队:
比赛的各个赛题都具有挑战。
LINPACK/HPCG是两个经典的基准测试程序,用以测试集群的浮点运算性能,只有使用极大的算力才能获得高分,但巨大的算力背后是极高的花费,我们在比赛中使用了144块 V100来运行这个题目,每小时的花费高达533美元,也就是一个小时就足以花去总预算的1/6,因而这两个程序对资源调配以及负责运行的队员的心理素质、突发情况处理都有极大的考验。
IO500是一个比较新的基准测试程序,主要测试文件系统的IO。
我们使用了清华大学计算机系高性能计算研究所自主研制的MadFS 文件系统,取得了143.73分的成绩。
这一文件系统也被用在了鹏城实验室的超算系统上,参加了全球公开的IO500测试,获得了今年IO500 榜单的第一名。
图源:https://www.vi4io.org/io500/start
CESM 的最大困难来自于编译,我们编译了大量依赖库,修复了很多版本兼容性问题,才得以成功运行程序。
因为程序的 IO 量巨大,我们需要对它使用的存储系统进行特殊考虑。
此外,为达到最优的性能,我们还需要手动为各个进程指定任务。GROMACS 是一个分子动力学程序,可以用于分析新冠病毒蛋白。
比赛云端资源消耗图
本次比赛中,这道赛题的总运算量十分巨大,数据处理极为繁琐,对相关队员的临场决策能力及对软件的熟悉程度都是极大的考验。
论文复现是 SC 竞赛的特色题目,负责此赛题的队员需要在72小时的时间里,复现出原论文的主要结果,并写出一篇接近国际期刊发表水平的复现报告,是对相关成员的实验设计能力、论文写作能力的极大考验。
现场公布的神秘应用miniVite是一个数千行的图计算程序,我们在比赛中迅速读懂了源代码,并对其中的核心数据结构进行了优化,从而加速了程序的运行过程。
冠军的背后
这是清华超算团队拿下的SC三连冠,冠军的背后是一群人的努力和奉献。
团队目前有三位指导教师,其中两位老师身经百战、曾带领团队多次拿下冠军:翟季冬老师从2014年就开始指导比赛、韩文弢老师则是从2016年开始指导。
另外团队成员如张晨、陈嘉杰、王雨田、宋泽宇、翟明书都参加过同样具有很高含金量的超算比赛ISC20并取得了很好的成绩;
“团队的选拔和培养主要以兴趣为主,我们其实是一个兴趣团队。”翟季冬介绍到,“同学们在日常培训中会表现出不同的兴趣,有人对硬件感兴趣,对程序优化和程序分析方面有很大的发挥空间……我们会在比赛中极力去发掘和培养他们的这些兴趣。”
清华大学超算团队在本学期学生返校后立即开始进行赛前训练准备,因为经历了半年疫情,导致队伍磨合不足,不过这个问题在团队紧锣密鼓的训练之后被逐渐地克服了。
图注:比赛现场
远程比赛带来了时差问题,另外比赛规则改变带来的新挑战及临场的各类技术难题等各方面困难,饶是实力超群的清华超算团队解决起来也是下了很大功夫。
“我们常说超算比赛就像F1方程式赛车,是非常综合的一个比赛。不仅要拥有先进的硬件设备,同时还需要队员们对相关科学领域的应用有深刻的理解,在高性能计算方面有扎实的基本功,极佳的现场应对策略及语言表达能力等等。”
连续72小时作战引起的疲劳是比赛很大的拦路虎,团队成员太困太累了就只能在现场稍作休息。
最终,凭借全面的综合能力、稳定的现场发挥和精准的资源调度,清华超算团队又一次拿下了总冠军。
团队中的每位成员都有自己的特长,特别是担任队长的张晨同学,她凭借各方面出色的综合能力在前不久的清华本科生特等奖学金答辩中成功入选。
在2018年时,张晨就曾跟在清华超算团队参加真实的比赛训练...
到了2019年秋天,她作为超算团队核心一员,参加了在美国举办的SC19世界大学生超级计算机竞赛,战胜了7个国家的16支计算机强校队伍,和老师同学一起为清华拿下了世界冠军。
清华大学学生超算团队在SC19 颁奖典礼上领取冠军奖牌,右四为张晨同学。(图源清华大学新闻网)
清华大学学生超算团队在SC19 决赛现场 图源清华大学新闻网
清华大学计算机系从2012年组建超算团队至今,共组织参加了20余次国际赛事,夺得十几次冠军。由于在高性能计算、并行系统和计算机系统等方面所具有的完整教学体系,清华大学计算机系为团队的建设给予了充分支持,同时积累了良好的梯队建设经验。指导教师翟季冬在超算领域所取得的多项科研成果,也对团队的多次夺冠有所帮助。
2018年时任队长于纪平曾说,通过参加比赛,同学们接触到了世界上最先进的硬件,比赛题目都是真实的科学计算应用,这更增进了自己的实践能力。
超算比赛对于本科教学是很好的扩展和补充。计算机系为本科同学设置了《编译原理》《高性能计算导论》等超算领域相关的专业选修课程,为同学们了解超算相关理论打下基础。团队通过训练研究比赛题目中的众多真实的科学计算程序,更好地锻炼了同学们的动手实践能力,实现理论与实践的紧密结合。
通过参加超算比赛,本科毕业后不少同学选择在超算领域继续走下去~
https://sc20.supercomputing.org/
https://mp.weixin.qq.com/s/iW_AEAE--pn1iuYAjltvNA
点击阅读原文,直达AAAI小组!