超算盛会中的高性能计算教育契机
在两大国际超算大会──欧洲国际超级计算大会(ISC)和美国全球超级计算大会(SC)上,与发布TOP500同样受到关注的事件,还有国际大学生超算竞赛(Student Cluster Competition, SCC)。
国际大学生超算竞赛要求每支参赛队伍由6名本科学生和1名指导教师组成,参赛队伍要在超算厂商的支持下,自行设计搭建总功率不超过3千瓦的小规模机群系统,并在该平台上完成针对系统性能优化的Linpack、HPCG和HPCC测试1,3个事先给定的并行应用软件优化测试,1~2个现场给定的神秘应用优化测试。在竞赛过程中,队员们还要接受组委会安排的现场答辩,考察参赛学生对高性能计算技术的全面理解。SC16-SCC还要求学生参加若干场技术报告会,制作技术展示海报。近年来,每年的竞赛规则不断创新,全面检验了参赛队员的高性能计算(High Performance Computing, HPC)技术水平和应变能力。因此,SCC是一场挑战大学生临场智力发挥和心理承受极限水平的世界顶级赛事。
中国科学技术大学自2012年组建超算鸿雁队以来,先后组织了17支队伍,102人次参加了国内外高性能计算相关竞赛,所参加的赛事均取得了优异成绩。特别是在SC16大学生超算竞赛中,中国科大代表队包揽了总分和最高Linpack性能两项冠军,成为SC大学生超算竞赛举办十年以来的首个双料冠军队。由参赛队员主持完成的大学生国家创新实践计划项目被推荐到全国大学生创新创业年会发表,多名参赛队员的本科毕业论文获校优秀毕业论文。迄今为止,中国科大超算鸿雁队已有5名本科生队员获得中国科大本科生学业成就最高奖——郭沫若奖学金。
2015年,清华大学获得了SC,ISC和ASC2三个主要国际赛事的总分第一名,被传为“三冠王”的佳话。国防科技大学和华中科技大学也屡获国际赛事Linpack系统性能测试的第一。国际大学生超算竞赛的冠军争夺战也越来越多地在中国参赛队之间展开。中国大学生在国际超算舞台上充分展示了我国的高性能计算教育水平,获得了国内外同行的高度评价。
SC16-SCC全体参赛人员
SC16参赛经历
中国科大超算鸿雁队SC16-SCC参赛队组建于2016年4月,共有6名参赛队员,由计算机学院安虹教授担任主教练。
美国时间2016年11月12日下午,队员们到达了SC16举办地盐湖城盐宫会展中心,用了两天的时间完成从安装CPU和内存条开始的参赛系统组装和调试。
这次竞赛,SC16-SCC组委会全面改革了竞赛规则,对参赛队提出了更大的挑战。这次的规则,更加强调求解问题的真实性,全面考察学生分析问题和学术交流的能力。在这次竞赛的7个大项25个小项的竞赛任务中,中国科大最终取得了Linpack和HPCG性能测试,ParaView计算可视化应用,宏基因组学应用三个大项的满分或最高分;密码破译应用,神秘应用Gromacs,以及学术交流和技术展示三个大项的排名也靠前,现场答辩这一项没有再像以前参赛那样出现特别大的丢分。
这次竞赛,中国科大主要采用了超微(SuperMicro)提供的SuperServer SYS-4028GR-TR服务器,英伟达(NVIDIA)提供的TESLA P100 GPU加速卡,蓝海创意云提供的NVIDIA GTX 1080加速卡,和迈络思(Mellanox)提供的100Gb/s Switch EDR IB交换机;面向竞赛应用和系统性能测试基准程序,构建了一套平衡折衷的参赛系统。深圳宝通公司和苏州超集公司为这次参赛提供了训练用系统和设备。北京并行科技公司提供了他们自主开发的并行分析和优化软件。美国能源部联合基因研究所(DOE JGI)和中国科学院国家天文台(NAOC)等单位的科学家,给队员们提供了理解应用问题的背景知识。在所有赞助厂商和科学家们的倾力支持下,中国科大在这次竞赛中成功打破了参赛系统Linpack性能测试的世界记录,创下了31.15TFlops的成绩,比SC-SCC最高记录提升了2.5倍。针对ParaView应用算例,当大部分参赛队伍不得不牺牲计算精度以求在数小时内完成可视化任务的情况下,中国科大仅用了20分钟便获得了高分辩率的可视化结果,取得了第一名的好成绩。
竞赛的教育意义
比赛的结果虽然重要,但真正的收获却体现在训练和竞赛的过程中。
参加ISC-SCC、SC-SCC和ASC国际竞赛,从组队、方案设计到最终比赛,前后大概需要一年的时间。在这个过程中,参赛学生与厂商一起设计和组装一套小规模的超算系统,通过对参赛系统方案的设计与优化,在领域科学家的指导下,在自建的参赛系统上根据参赛指定应用的特征优化软件性能,与来自世界各地著名大学的参赛选手在国际舞台上过招,这是一段很有趣且值得骄傲的人生经历。参加竞赛并力图取胜,这个过程对学生的综合能力提出了挑战,他们需要承受巨大的心理压力,并在半年时间内快速学习并行计算以及物理、化学、生物等交叉学科领域的知识,投身研究型学习和创新性实践,比赛现场需要经历几天加班加点甚至通宵达旦的紧张工作,这些会让学生的综合能力在短时间内得到快速提升。在竞赛过程中,学生们经历了解决工程实际问题面临的种种困难。看到工程师面对出现的问题,马上就能找出问题所在,让大学生们体会到了动手实践的重要性。
通过比赛训练,不仅可以使学生们学到最新的高性能计算技术,而且还能为大学生的创新能力培养提供强大的驱动力,激发学生对高性能计算这一交叉学科的专业学习兴趣和创造热情,引发学生对未来职业理想的重新思考,培养学生创新最需要的素质,如跨领域、多元化思维,自我表达,沟通合作等方面的能力。
通过参加比赛,教师也能从中体悟到在高性能计算这一交叉学科领域中国际同行新的教学思路和教育方法,并应用到今后的实践教学中,还可以发现一些计算机系统设计方面的新研究课题,开辟新的研究方向。
超算竞赛所采用的参赛系统能够在一定程度上反映一个国家未来的HPC发展的技术水平。大学生超算竞赛也给了学校与企业牵手合作的契机,通过合作开展高性能计算教学和培训项目、开设课程,更多的学生和教师能够直接从合作中受益。对于赞助企业而言,除了支持参赛队伍获取更好的比赛结果之外,更重要的是通过让学生使用最新的产品技术,进一步优化产品设计。
见证计算机系统设计技术的历史性进步
颁奖典礼
颁奖典礼
适应未来创新人才的需要
进入21世纪以来,工艺技术的进步和计算机应用的变化推动了计算机学科的迅猛发展,其内涵和外延不断拓展和丰富。与计算机相关的学科和研究领域不断增加,各种计算机理论、技术和应用层出不穷;计算机学科不断与其他学科交叉,在完善自身发展理论和技术的同时,不断拓宽计算机的应用领域。未来,计算机科学最重要的发展是计算机在其他各学科和工程中的应用,很多科学和工程学科的发展都离不开计算机科学方法的支持。例如,未来的医学突破很可能是在生物学家、化学家、计算机科学家跨领域合作研究下取得重大创新研究成果。
因此,未来计算机学科、科学和工程学科的发展,需要在高性能计算领域培养大量与计算机交叉的创新人才。中科院作为国家知识创新工程的主要力量,围绕知识创新工程搭建起来的教育和研究平台,为优秀人才的成长提供了不可多得的培养条件。中国科大发挥“全院办校、所系结合”的办学优势,借鉴国外计算机学科拔尖创新人才培养的有益经验,本着“创新型人才必须在创新实践中培养”的教育理念,将一流教学与一流科研相结合,立足培养在高性能计算领域具有世界前沿水平的高级专家,在高性能计算这一交叉学科方向探索了创新实践教学的改革途径和交叉学科创新人才的培养之路。
大数据时代高性能计算教育面临的挑战
过去几年,我国许多高校参加国际大学生超算竞赛都取得了不错的成绩。通过比赛,指导教师对高性能计算也有了更加深刻的认识,认识到了应该如何引导学生兴趣,如何理解系统,只有理解了系统才能用好高性能计算机,才能培养好人才。虽说如此,在大数据时代,高性能计算教育在中国依然面临着巨大的挑战。
第一,多样化的计算机体系结构设计。现在的计算机系统结构非常复杂,不仅应用科学家难以理解,计算机专业的教师也很难掌握。当代计算机系统的结构层次非常多,结构变化非常快,以至于许多传统的高性能计算企业和制造商都无力应对,有一些甚至退出了这个领域。复杂的体系结构变化无法及时地反映到大学课程中,很多学校的计算机学科都来不及更新课程体系和实践教学环境,难以跟上计算机结构快速发展的节奏。
第二,编程环境纷繁复杂。随着大数据和云计算的蓬勃发展,近几年出现了几十种并行编程模型和环境工具,包括MPI、OpenMP、CUDA、Java、OpenCL、HMPP、OpenACC等。即便在中国科学技术大学,并行计算教学和科研方面的历史较长、基础较好,教师仍感到难以快速跟上并行处理技术发展的步伐。可想而知,其他没有并行计算基础的高校就更难以适应这种变化。
第三,编程模型与硬件的对应关系模糊,没有统一的编程模型。我国本科教育缺乏对学生并行编程能力的培养,在向社会每年输送的约10万名计算机专业的学生中,能够编写并行程序的寥寥无几。随着计算机系统结构的发展和变迁,不管喜不喜欢,都应该学会写并行程序。这需要在计算机课程体系方面有大的变革。
尽管我国在高性能计算机系统研制方面开始占据世界领先位置,但从这些挑战来看,我们在教育方面还远远落后。
创办全国并行应用挑战赛,实现以赛促学,以赛促教
借鉴国际上通过SCC竞赛促进高性能计算创新实践教育的经验,结合中国高校HPC师资严重缺乏、应用水平低的基本国情,中国计算机学会(CCF)高性能计算专业委员会发起并创办了全国并行应用挑战赛(Parallel Application Challenge, PAC)和国产CPU并行应用挑战赛(China Parallel application Challenge on domestic CPU, CPC)。
PAC大赛立足HPC领域,通过培养学生理论实践相结合的能力,旨在寻找行业最佳HPC应用,发现顶尖人才,助推超算实现强国梦。参赛题目来源广泛,涉及能源、气象、计算流体力学、化学、粒子模拟、宇宙暗物质、航空航天、图像动画、金融分析等。选手们通过参加PAC大赛,将课本知识与实践应用相结合,有效促进了学生并行计算思维训练和方法的学习。竞赛结合专家走进高校授课等活动,还带动了国内高校并行计算课程的普及,吸引越来越多的教师加入并行与分布式计算的课程建设中,从教材、课程资源、实践等环节不断积累经验,以期形成更多优秀的课程。
PAC大赛首创于2013年,迄今已成功举办4届,吸引了全国300余所高校、613支队伍、2500余名师生参加。PAC受到各参赛单位及HPC领域专家的倾力支持,成为全国范围内(含香港、澳门、台湾地区)展开的最大规模并行应用挑战赛,已得到全国范围内高校的普遍认可,逐渐向建立高性能计算产业、学校、研究机构三方合作的生态系统方向发展,实现了以赛促学、以赛促教,促进了并行计算教育在全国的普及。
今年首次举办的CPC大赛旨在更好地利用自主可控国产CPU在高性能计算领域的性能优势,进一步完善其软件生态环境,推动国产超算平台的产业化进程。同时以理论与实践相结合的方式,通过并行应用挑战赛,激励学术界和产业界积极参与国产CPU应用的开发与创新,从而为国产CPU发掘典型应用,培养创新人才,储备人才队伍,提升我国高性能计算的整体水平。■
脚注:
1 HPCG:高性能共轭梯度基准测试(High Performance Conjugate Gradient Benchmark);HPCC:高性能计算与通信(High Performance Computing and Communications)。
2ASC世界大学生超级计算机竞赛(Asia Student Supercomputer Challenge,简称ASC超算竞赛),创办于2012年,由中国倡议成立,是世界最大规模的超算竞赛。
所有评论仅代表网友意见