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