冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

北京时间6月24日,中国科大鸿雁代表队以总分第一的成绩夺得ISC20国际大学生超算竞赛冠军!成功的背后是鸿雁队师生将近一年的参赛训练和23天高强度的线上比拼。下面,让我们一起走近鸿雁队,走近他们紧张充实的备赛经历。

冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

01 组队,强强联合优势互补

ISC20鸿雁队组建于2019年9月,由计算机学院安虹教授担任主教练,计算机学院的研二学生石军、邓静恒以及博士后陈俊仕担任助理教练。6名本科生队员中,大三学生刘紫檀(队长)、黄业琦和张博文来自少年班学院;大三学生詹佑翊、彭定澜和大四学生赵敏帆来自计算机学院。其中黄业琦和张博文都是00后。

2019年下半年,队员们参加了RDMA19和PAC19比赛,分别取得第一名和银奖的好成绩。之后,在完成正常学习任务的同时,他们又经历了六个月高强度的ISC20参赛训练,放弃了寒假的休息,完成了从参赛训练系统搭建、超算知识学习、应用软件和算例的分析理解、代码优化和技术创新,到答辩准备等一系列训练任务。

19年12月,ISC20竞赛组委会公布了部分赛题,队员们在应对学校期末考试压力的同时,已经开始进行赛题相关的背景知识学习和调研。2020年1月20日,期末考试结束的第一天,鸿雁队就召开了寒假集训动员会。

会上,指导老师安虹教授对队员们喜爱的研究方向和擅长的比赛项目做了调查,希望队员们能根据自已的爱好和专长选择承担的比赛任务。安老师说,大学生超算竞赛不只是单纯的编程比赛,也不只是软件优化比赛。它将挑战的是队员们对当代最复杂的超级计算系统软硬栈的深刻理解,也挑战对真实的超算软件的作用、原理、算法设计和编程实现的全面理解。队员们不仅需要熟悉多种超算系统和加速芯片的底层结构,掌握多种并行编程语言的使用,以及编译、调试和调优技术,还需要深入学习交叉学科领域里的背景知识。训练任务重、难度大,特别需要加强团队协作,提高训练效率。训练的时间非常宝贵,一天都不能耽误,每一天都要有新的进展。

黄业琦在地空专业室友的熏陶下,对于基于流体动力学做冰川模拟非常感兴趣,主动请缨接下了冰川模拟应用Elmer/ICE;而来自人工智能英才班的张博文和号称“ARM架构编译大师”的刘紫檀同学,则接下了分数占比最大的AI应用——自然语言处理软件BERT;编程能力极强的彭定澜同学勇敢地单挑了并行编程挑战项目;詹佑翊也根据自己的兴趣“喜提”了天体演化应用ChaNGa。其余的队员则和研究生教练一起去准备参赛系统的性能优化和测试。

就这样,鸿雁队开始了紧锣密鼓的备赛集训。

02

备赛,但行好事莫问前程

从集训一开始,队员们就感受到了前所未有的严峻挑战!

鸿雁队今年原定的参赛设备是自已“DIY”的一套ARM架构的服务器,并搭配AI加速卡进行参赛系统的搭建。由于这套参赛系统的GPU适配工作可能无法赶上比赛日程,这对鸿雁队而言无疑是一个巨大的难题!没有GPU,不只是绝无可能获得Linpack性能测试冠军。更重要的是,对这次比赛中一半以上适合用GPU加速的应用项目也十分不利,有可能造成参赛系统与其他队伍直接拉开几个数量级的性能差距。

技术上,今年能赢在哪里? 安虹老师心里其实一点底也没有!但是,有一点她是十分清楚的,这届队伍注定会从这次比赛中学到更多!相比起获得冠军,这一次她更希望看到的是一支处于硬件不利条件下的队伍,如何学会“绝处逢生,从不可能中去寻找可能!”失败了,知耻而后勇;成功了,磨砺出不屈不挠的坚强意志。对于安虹老师来说,每次组织参赛都是在做高性能计算教育。

有了这些想法,比赛赢不赢在队员们看来已经变得不重要了!背水一战,放手一搏,让这次比赛变得更精彩!就这样,队员们带着“必胜”的信念,满腔热忱地投入到参赛集训当中。

在离校前的最后一天,黄同学和研究生邓教练给所有的服务器配置了校外链接。为了以防万一,他们还在学校多待了几天进行测试。在确保从校外可以稳定持续地连接机器后,这才放心地回家过年。事后,大家一致认为,这是今年备赛准备工作中,做出的最明智的决定。

春节期间,新冠病毒席卷而来。所有参赛队员全部滞留在家中进行线上学习,参赛训练也因此转移到了线上。这平添了许多困难。机器出现故障,无法返校检修;线上沟通的效率根本无法跟线下相比;许多资料在家中无法查阅到……不过,庆幸的是,离校前的未雨绸缪,还是给队员们的正常训练提供了基本保障。

02备赛,但行好事莫问前程

从集训一开始,队员们就感受到了前所未有的严峻挑战!

鸿雁队今年原定的参赛设备是自已“DIY”的一套ARM架构的服务器,并搭配AI加速卡进行参赛系统的搭建。由于这套参赛系统的GPU适配工作可能无法赶上比赛日程,这对鸿雁队而言无疑是一个巨大的难题!没有GPU,不只是绝无可能获得Linpack性能测试冠军。更重要的是,对这次比赛中一半以上适合用GPU加速的应用项目也十分不利,有可能造成参赛系统与其他队伍直接拉开几个数量级的性能差距。

技术上,今年能赢在哪里? 安虹老师心里其实一点底也没有!但是,有一点她是十分清楚的,这届队伍注定会从这次比赛中学到更多!相比起获得冠军,这一次她更希望看到的是一支处于硬件不利条件下的队伍,如何学会“绝处逢生,从不可能中去寻找可能!”失败了,知耻而后勇;成功了,磨砺出不屈不挠的坚强意志。对于安虹老师来说,每次组织参赛都是在做高性能计算教育。

有了这些想法,比赛赢不赢在队员们看来已经变得不重要了!背水一战,放手一搏,让这次比赛变得更精彩!就这样,队员们带着“必胜”的信念,满腔热忱地投入到参赛集训当中。

在离校前的最后一天,黄同学和研究生邓教练给所有的服务器配置了校外链接。为了以防万一,他们还在学校多待了几天进行测试。在确保从校外可以稳定持续地连接机器后,这才放心地回家过年。事后,大家一致认为,这是今年备赛准备工作中,做出的最明智的决定。

春节期间,新冠病毒席卷而来。所有参赛队员全部滞留在家中进行线上学习,参赛训练也因此转移到了线上。这平添了许多困难。机器出现故障,无法返校检修;线上沟通的效率根本无法跟线下相比;许多资料在家中无法查阅到……不过,庆幸的是,离校前的未雨绸缪,还是给队员们的正常训练提供了基本保障。

冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

图1:中国科大超算鸿雁队ISC20参赛队

线上工作之余,大家也学会了苦中作乐。队员之间的友谊也在时不时的相互打趣、诙谐吐槽中逐渐加深。团队间的相互支持与鼓励,使得队员们的训练完全没有受到疫情的消极影响,依旧热情执着地准备着比赛,完成各自的训练任务。

性格沉稳、处变不惊的刘队长和大胆机灵的张同学负责AI赛题,他们负责的这个应用最终取得了单项第一的好成绩。他们从一开始心里就十分清楚没有GPU胜算不大,但他们仍旧抱着钻研学习的态度,不断在这个自然语言理解的领域里深入探究。他们在ARM训练系统上成功地编译了Tensorflow和Pytorch,被队员们戏称为“ARM架构编译大师”!没有GPU加速,他们便绞尽脑汁地寻找其他与平台无关的优化策略,不断地反复尝试。哪怕任务再艰巨,他们依旧兴趣盎然。刘紫檀虽然是在“缺席审判”的情况下被选为队长的,但后来证明,他真的做到了不负重托!哪需要他去哪儿,哪儿“失火”他就出现在哪儿!他在与张博文搭档基本搞定BERT应用后,又担起了新发布的Tinker-HP项目的重任!作为本队托福成绩最高的同学,他担负起了组织好技术答辩的重任,帮助队友们修改答辩PPT,训练如何更好地做表达。队友们戏称他的英语是“一元钱的”,而其他人都是“五毛钱的”。

詹同学被老师们戏称为“喜庆娃娃”,成天总是乐呵呵的!在队友们的心目中,他是团队的“开心果”。技术上,他总是觉得自已能力不足,工作做得不充分。他负责的天体物理应用是一个传统的科学计算应用。其间,由于编译出了问题,造成了内存泄露,导致ARM训练系统死机,但一时又无法回校远程重启。可这丝毫没有阻碍其项目的推进。没有可用的ARM机器,他就在x86的机器做起了计算热点分析;当x86的机器被其他队员占用时,他就去读相关的论文。最终,在实验室特批先期返校的博士生的帮助下,重启了ARM训练系统,问题得到解决,优化工作也得以继续进行下去。通过精益求精的不懈的努力,他最终取得这个单项的第一名。

负责冰川模拟应用的黄同学一直在默默工作,时不时产生一些奇思妙想让大家惊喜一番!但是,一开始由于缺乏流体动力学的背景知识,他的工作虽稳步推进却进展缓慢。历史悠久的冰川模拟软件Elmer/ICE,其代码是用“古老”的Fortran语言编写的。此外,该软件的许多依赖库都是“祖传代码”,完全没有可读性,有的只能找到无法重新编译的二进制包,有些可选的加速包甚至已经无法再找到。毫无疑问,在这种情况下,试图在ARM架构的新平台上移植这个软件,将面临何等巨大的挑战!x86平台上现成的数学优化库根本没法在ARM平台上直接用!而大多数的依赖软件包却是基于x86架构!于是,他只能一行行地读代码,在各种论坛上大海捞针一般搜索可行的解决方案。哪怕只有一丝可能,他都要亲自去试一试。比赛期间,他体验了两天睡一次觉的极客生活模式,感觉“这种极限的开发太刺激了”,达到了“寸心不昧,万法皆明”的境界。

这次比赛中最值得一提的就是样子看上去有点“高冷”、自称“码农”的彭同学!在队友眼里,他是个古董电脑、C++模板元、Fortran和CUDA编程爱好者。在编程挑战项目发布的第一周,他就以迅雷不及掩耳之势将其斩获。虽说他的性格平日看似不温不火,但在激烈的ISC比赛中,他用实力完美诠释了什么叫做“其疾如风”。比赛开始前,他采用异步并行的方法就已经把程序从100多秒的执行时间优化到了3秒。他不无得意地说:“我想到的这些方法,短时间里不可能有人想得到!没有人能比得过的!”安虹老师从他身上又看到了科大学生有点“狂妄”的自信!可没想到的是,比赛当天,组委会突然更改了比赛规则,让他前期的优化工作几乎要全部推到重来!十几天的时间里,他对多种算法不断尝试,最终成功地给出了满足组委会新规则的优化版本。在完成编程挑战项目之后,他还主动给其他队员提供技术支持,凭借其强大的编程能力和对各种编程技术的广泛涉猎,给团队带来极大的鼓舞。

一直在忙于本科毕业论文的赵敏帆,一开始有点不在备赛状态。他正在参加安老师与生命学院刘海燕老师合作的一个课题,做“蛋白质主链局部设计的玻尔兹曼采样深度网络”方面的研究工作。当竞赛组委会新增的两个分子动力学赛题公布以后,赵敏帆乐坏了!通过毕业论文的研究工作,他已经对蛋白质结构和折叠过程的模拟有了较深入的认识。接手新发布的GROMACS应用后,他很快就找到了工作的重点,形成了创新的研究思路,轻松地完成了这个应用挑战项目。

冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

图2:居家学习和工作的队员们远程参加线上集训会议

随着国内外疫情一日比一日加重,队员们知道出国比赛可能随时被取消!他们也知道,没有GPU加速,这次比赛基本与冠军无缘!但是,他们现在的目标早已不再局限于输赢,而是想尽一切办法去解决眼前不断遇到的一个又一个难题!

正所谓“但行好事,莫问前程!”

03 ISC20比赛,向新冠病毒开战

面对新冠疫情的压力,ISC竞赛组委会最终决定放弃线下比赛的计划。

4月8日,组委会宣布——比赛改在线上继续进行!

在这个消息发布的15个小时之前,队员们如往常一样正在线上开会。那一周,组委会发布了不少细致的参赛要求。如要求各个参赛队在得到计算结果之后,要在Twitter上进行展示。收到赛制更改的通知,对于鸿雁队而言,可谓喜忧参半。喜的是,所有的队伍公平地使用完全相同的系统配置参赛,我们也可以用上GPU了;忧的是,之前几个月在ARM平台上做的大部分工作都要放弃。相比于其他一开始就在x86+GPU平台上训练的参赛队伍来说,转移平台后,鸿雁队针对新的目标系统做优化的时间已经没有多少了!

不过,既然有GPU可用了,等于平添了几分夺冠的机会,队员们顿时踌躇满志起来!他们立刻更换新的训练系统,轻车熟路地复现起了几个月来的工作。话又说回来,如果没有前几个月在ARM参赛训练系统上做的工作,临时转为线上比赛,鸿雁队几乎可以断定胜算渺茫。天道酬勤,我们的前期努力其实并没有完全白费!

为了抢抓时间,安虹老师调整了训练计划,并安排强化训练以提高训练效率。她邀请了工程学院的吴恒安院长帮助队员们深入理解Elmer/ICE软件功能和算法原理;物理学院的王慧元老师帮助队员们理解ChaNGa软件的物理背景知识;生命学院的刘海燕老师帮助队员理解GROMACS和Tinker-HP软件在新冠病毒研究中的作用和他认为可以开展的研究工作;科大讯飞的自然语言理解团队帮助理解BERT软件的优化技术。队员们在各交叉学科专家的指导下,进一步加深了对软件应用背景和计算方法的理解,萌生了一系列创新的研究思路。

6月1日,线上开幕式结束后,比赛正式开始。为了营造现场参赛的氛围,实验室里特意挂起了校旗,贴上了ISC20会标。

冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

图3:队员们参加线上ISC20-SCC开赛典礼和颁奖典礼

冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

图4:USTC Booth:No. 1411, 欢迎您来围观比赛!

刚一登陆上比赛集群,就有队员发现了问题:“计算节点和登陆节点的软件环境是不一样的!” “集群太挤啦,算题需要排队。大家要趁早提交计算任务!”在随后的比赛过程中,一个又一个问题接踵而至,队员们在不断在发现问题和解决问题的过程中度过了大部分的比赛时间。6月16日,距离算题结束的期限仅剩两天的时间了,队员们排好轮班作息的时间表,通过轮休维持着24小时不间断的线上计算,进行最后的冲刺,力图将每个应用的结果做到最好。6月18日凌晨,随着最后一个计算结果的提交,所有的技术努力告一段落。

冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

图5:队员们在参赛过程中的讨论协作

接下来,六位队员要为6月23日中午的线上技术答辩做准备。安虹老师告诫队员们:“高手过招,细节决定成败!你们做得好也要讲得好,希望大家不要输在技术答辩上。” 最终,队员们在规定的时间里用流利的英语向评委们介绍了他们的研究工作和取得的丰硕成果。评委们对每一位同学一一提问,对他们提出的创新思路表示了浓厚的兴趣,对他们取得的出色成果表示了一致赞许。

冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

图6:校内的超算专家们来“比赛现场”围观

冠军是如何诞生的?探秘中国科大鸿雁队ISC20备赛经历

图7:计算机学院的领导们来实验室看望和勉励队员们

介绍

中国科学技术大学超算鸿雁队历次参赛得到了曙光、华为、Supermicro、AMAX、INTEL、NVIDIA、Mellanox、并行科技等众多的国内外系统集成商、部件供应商和软件厂商的慷慨赞助和倾力支持,也得到了中科院网络中心、中科院计算所、中科院物理所、中科院大气物理所、中科院地质与地球所、中科院力学所、国家天文台、国家超算天津/广州/无锡中心、科大讯飞等超算应用单位的技术指导。并行科技、科大讯飞、中科类脑、合肥微尺度物质科学国家研究中心、科大超算中心等单位对本次参赛提供了训练资源和技术指导。

转载声明:图文来源

中国科技大学少年班公众号

中国科技大学本科班招生公众号

版权属于中国科技大学,转载纪念,侵权删除

展开阅读全文

页面更新:2024-05-16

标签:鸿雁   中国科技大学   冰川   中科院   组委会   中国   队员   队伍   机器   冠军   同学   老师   项目   学院   工作   系统   软件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top