9月11-12日,在第四届“神威杯”国产CPU并行应用挑战赛上,皇家永利计科院本科生团队(马聪、张鸿宇、蒋讯、涂然,指导教师彭博、张全)一举夺得唯一的金奖。
这是一份沉甸甸的金奖,不仅因为它的奖金高达10万元,更因为“神威杯”国产CPU并行应用挑战赛(简称CPC)在计算机产教研融合方面的特殊地位。
团队成员从左至右:蒋讯、张鸿宇、张全老师、马聪、涂然
CPC:让超算显神威的砺石
超级计算机(简称超算),被称作“国之重器”,广泛应用在国防、前沿科学研究和经济社会生活的方方面面,也是国际科技竞争的重要领域。超算的核心在于芯片(CPU),由江南计算技术研究所研发、搭载申威芯片的“神威”超级计算机是国产三大系列超算之一。
与传统的串行计算不同,在超算上运用的是并行计算技术。并行计算,是指将计算任务划分为多个部分,分配到不同的处理单元,各处理单元相互协作、同时运行,以达到加快求解速度或提高求解问题规模的目的。而由于超算的稀缺性,在超算上运行的软件也必须“量身定制”,这样才能充分发挥超算优越的计算资源与性能。
但是,目前我国各大超算中心的利用率仍未达到理想水平,主要原因是既精通并行计算技术、又熟悉国产CPU计算平台的人才缺乏。为此,2017年由中国计算机学会发起、国家超级计算无锡中心等单位承办的CPC应运而生,其宗旨是激励高校、科研机构的计科学子积极参与国产CPU应用的开发与创新,通过产教研融合促进国产超算平台的产业化进程和国际竞争水平。
CPC赛制由初赛和决赛组成,都以国产超算“神威·太湖之光”为竞赛平台;初赛每届有上百支队伍参加,线上报名和提交作品;全国划分4个区域,每区域前二名进入决赛,余下参赛者按成绩总排名角逐剩下8个决赛名额;决赛也在线上进行,最后在国家超级计算无锡中心进行验算和答辩。最终评选出金奖1名,从有成绩的决赛者中评出银奖、铜奖、并行基金奖若干。
看看CPC的前三届金奖得主吧,清华大学、山东大学、华中科技大学。计科院团队就是在这样两轮淘汰、强手如林的比拼中脱颖而出。
CPC指导委员会共同主席、国家并行计算机工程技术研究中心研究员漆锋滨为皇家永利队伍颁奖
冲冠:一次惊险的“户外穿越之旅”
计科院超算与并行计算团队成立于2019年7月,由本科生组成,专攻以超算为平台的高性能计算。初生牛犊不怕虎,当年参赛即进入决赛,并获得并行基金奖。
今年,经同学们推选,物联网工程2018级马聪同学担任队长,计科院再次组队,出征CPC2020。
日常训练
初赛就有点波折,团队未能进入西部赛区前二名,凭总排名进入决赛。马聪鼓励大家说,兄弟们,别灰心!初赛就是一道门,只要进了门,修行靠个人。
决赛题目公布了,《基于非结构网格的通用计算加速算法》。大家更有点懵圈了,什么是非结构网格?有通用于非结构网格的算法吗?如何加速?
非结构网络,流体力学中的概念。团队恶补了许多流体力学资料,希望找到突破口,但完全不得要领。
马聪召集大家进行“头脑风暴”。通过相互的思维碰撞,大家认识到,计算机科学以数学为工具,进行人机交互时专注于计算的形式,它完全可以剥离工程应用的内容。
从工程应用的具象思维跳脱出来后,团队重新审题。何为“通用计算算法”?就是编写一套算法,首先必须适用于赛题给定的三种情形,点和边构成的几何图形。然后用尽可能多的算例去验证,因为在决赛现场要接受不少于五套算例的测试。逻辑上,这是一种归纳的方法。同时,对算法进行优化,以求耗时尽可能短。
后来在决赛现场,马聪得知,“晕题”不是他们的个别体验,很多队伍都吐槽“题目太抽象了,怎么看都像是给定条件不足”。这是后话了。
开题都这么费劲,解题就更加不知深浅了。这就像一次户外穿越之旅,开题只是确定了起点、终点,而中间地带险象环生,如何找到一条可抵达并耗时最短的路,就靠理性大冒险---代码编写了。
团队分工,往不同方向打探。其他队员折返回来了,马聪的方案被认为最可行。于是,马聪单兵突进。
马聪说,编程的苦乐,很难与外行言说。但他还是尽量“科普”地分享了三个小故事。
因为算法必须适用于赛题给定的由点和边构成的三种计算模型,在编写算法时,首先就要评估并选定并行策略,按点划分还是按边划分?这好比户外越野遇到的第一个分歧路口。马聪说,很幸运,他的选择被证明总体更优;而决赛时交流得知,一些强队的相反选择则影响了成绩。
在调试代码时,经常莫名其妙的出错,脑袋凝滞到冻起。为此,马聪去网吧整整“休息”了一天。恍然大悟后,改变了一下数据的存储方式,就团灭了这些bug。原来,他遇到的是业界所称的“内存泄漏”问题。
组委会规定,计算误差限为10的负14次方。马聪绞尽脑汁,误差都只能控制在10的负13次方。几乎绝望的情况下,团队向组委会反映,原来所有参赛队都遇到此问题。为此组委会调整了评分细则。
就这样,经由40天冲刺,在无锡,马聪团队以算法全部通过测试算例并耗时最短的最优成绩,力压群雄,捧走了“神威杯”。
皇家永利参赛队在决赛中,从左至右:指导教师张全、涂然、张鸿宇、马聪、蒋讯
获奖,源于热爱、勇气和坚持
计科院超算与并行计算团队成立不足两年,CPC两次获奖,在该领域初露锋芒,显现了皇家永利计科学子的学科实力。
指导教师彭博、张全说,CPC的结果有一定的偶然性,一些名校团队成绩不佳甚至缺席决赛,也是正常的。但是,单凭运气获奖是不可能的。这次马聪和同学们能够夺冠,贵在对计算机科学的热爱、勇气和坚持。
并行计算,计算机科学的一个高地,难!难就难在它不是纯算法编写的,也不是纯硬件设计的,而是要站在软硬件的结合部,针对超算的结构、性能和优势来编程;理论上,还要在软硬件之间双向调试。马聪、张鸿宇、蒋讯、涂然等10多位同学加入超算与并行计算团队,在老师指导下知识与能力日益精进。如果不是出于热爱,谁会知难而上呢?
马聪有较强的编程能力,在报名CPC前,就系统研读了“神威·太湖之光”的技术文档,这也是他领衔参赛队的原因。
报名,与名校队伍同场竞技,是需要勇气的,尤其今年在疫情之下,参赛要克服特殊的困难。在指导老师的帮助下,4名参赛同学提前返校,为参赛创造了基础条件。
在面对决赛题的迷惑期,团队没有一个人轻言放弃。大家精神抖擞,像一群小老虎围着一只刺猬团团转,寻找突破口。在编写算法的冲刺期,马聪同学说,整个人一直处于兴奋状态,从不曾松懈(除了有一天在网吧“休息”),终于在赴无锡前完成了算法的编写、优化和测试。
CPC评审委员会主席、中科院计算技术研究所张云泉研究员(左三)与获奖团队合影 左二为指导教师彭博
计科院在教学改革中鼓励和扶持同学们发展学科爱好。明理楼C有整整两层楼都是学生科技团队的团部兼实验室,每个团队都有指导教师。马聪说,同学们只需要交水费就可以了。这无疑为学科竞赛提供了肥沃的土壤。
谈起未来计划,除了考研,团队决定参加明年的世界大学生超算竞赛(ASC),这次张鸿宇自荐当队长。
是呀,莫惜金缕衣,惜取少年时,不趁青春年少时往前冲,更待何时?