概述
这个竞赛目前还是一个相对小众的竞赛。而且,因为其独特的竞赛准备条件——首先你得有一套高性能计算集群——我认为这个比赛短时间内不会发展成学科竞赛那样的大型竞赛项目,尤其是有着大学生的奥运会之称的ACM-ICPC这种比赛。
但是个人觉得,大学生超算大赛比较类似于F1。每个队伍都有一套自己的集群,但是集群总功耗不能超过3000W(方程式),可以携带加速卡(Tesla/MIC),这样一来与F1颇有几分相似。每支队伍都有自己的赛车(小型集群),比赛不是一场定胜负,而是有很多场,每一个单独项目都有单设的冠军;这就好比F1的分站冠军,最终还有一个总冠军。
参加这个比赛是有一定门槛的。有两个方面:首先,不是有一个个人计算机就能搞定这一切的(如果从没接触过超算,或者加速卡的话)。更重要的是,超算应用所需要的专业知识都比较深奥。一般来说,这些应用侧重于高性能并发。涉及的方面很多,诸如:科学计算;流体力学;大气、海洋模式;其他的大规模模拟;等等。
超级计算机普遍来说都是具备通用计算能力的,但是也不一定每部都要设计成用来通用计算的。有的超算就是为了解决特定问题而专门定制的。这次比赛有一个项目会在我国的天河2号超级计算机上进行评测,这部机子就是一个通用机。
比赛内容
本次比赛的题目如下所示:
- Quantum Espresso,量子分子动力学
- Stanford University Unstructured, 流体力学
- 3D-EW, 三维纵横波分离的弹性波方程模拟方法(天河2号测试)
- LICOM,LASG气候海洋模式
- HPL,高性能浮点能力测试(每年必考)
- 神秘应用
目标只有一个:在保证正确性的情况下,让应用的加速比达到最高。可以使用的手段如下:
- 优化算法,修改代码
- 硬件加速,使用加速卡,更多的计算节点
- 参数调试,MPI参数/编译参数等
专业技能与人员配比
很综合,首先上述应用若要能够看懂算法,最好有相关专业领域的队员。比如如果有一个环境/地理学院的同学,那么LICOM或者3D-EW就比较好办。如果有量子化学领域相关专业的人,那么对于QE也是如此。这些算法包括数值方法与ACM中的算法不太一样,它们大都侧重于连续数学(这样说不是很严格,领会精神)。
一个比较合理的队员配比应当是交叉学科。
有各种数学、自然科学与工程学院的同学负责理解优化应用算法,同时还要有计算机相关专业的同学负责系统方面的工作。你要知道基础的系统要是搭建的比较失败的话,就算前期应用做得再好,到比赛时跑不动就是0分了;同理,系统做得再好,对于应用的算法一窍不通,优化时无从下手也没得玩了。而且交叉学科可以专业优势互补。比如程序或者系统方面,计算机相关专业能够帮上忙,应用算法方面则有数学、自然科学与工程学院的同学能够帮上忙。
总结
其实大学生超级计算机大赛是做系统调试与应用调优的。并不是从很基础的层面去设计一套超级计算机。不过随着大赛的发展,也希望以后能够深化,让参赛队真的如同F1车队一样去设计自己独有的计算机。这样或许会更加有趣。
我们队伍最终的成绩是:总排名第六,Linpack测试破世界纪录。算是比较中规中矩的成绩了,但是通过比赛认识了海内外很多高校的优秀选手,也结交了很多朋友,所以总的来说还是挺好的,而且也刷新了我的三观,打开了眼界,更重要的是明确了自己未来的方向。期待这个比赛能够持续发展下去,让更多充满热情的大学生能够接触到这个领域,拓展自己的人生经历。