ASC14 志愿者所见所闻

    4月21日~25日,我参加了ASC14的志愿者,并且和另外两位组员一起接待了华中科技大学的参赛队伍。虽然按石宣化老师的话来说,“让你们搬搬抬抬了那么多天”,但是还算是学到了不少东西。今天我的工作已经结束,便简单写一些志愿者的工作经历见闻与感(吐)想(槽)出来,与诸君共享。

 
    其实我原来应该4月20日就去广州南站接车的,不过那天我发烧刚刚好,所以还得在家休息,组委会从机动组那边派来了一个大三的师姐,于是我们组就比别的组多了一个人。
 
    21号我一早就来到超算中心门口等待参赛队伍的到来。16支参赛队伍坐了三车,我粗略地看了一下,在国内的高校里,国防科大的队伍以两名女生名列第一,完爆其他和尚队伍;然而台湾清华更加强悍,三个女队员傲视全场。其实说起来也有点搞笑,我们之前都一直不允许进入超算中心,组委会也没有告诉我们超算中心内的楼层分布和要带到哪里。所以我们最后带参赛队伍上楼的时候也是一边走一边看指示牌上去的,好在进去以后电梯到三楼就好了。超算中心一楼是展板层,二楼是天河二号,三楼有四间房间:媒体室、休息室、比赛室和储物室,四五楼还没投入使用,我们把参赛队伍带到了比赛室,然后他们就开始干活了。
    所有的队伍都有一个标准的机柜,里面有12台浪潮的双路E5(和天河的型号应该是一样的,12核心@2.2G)+128G内存的服务器,组委会提供英特尔的MIC卡(Xeon Phi协核加速卡,61核心@1.1G版),但是不少队伍的自带了nvidia的K20/K40加速卡。大部分队伍都把服务器卸载下来,开始自己加装加速卡。这一部分原本是不需要志愿者帮忙的,但是华中科大的队伍缺一个比较高的人把上面的两台机器拉下来,所以我就搭了把手。他们最后似乎是给10台装了K40加速卡,然后开始装系统。有些不使用加速卡的队伍就直接开始装系统了。
    我转了一圈看了一下,各参赛队伍用的系统基本上都是RedHat Enterprise 6,和CentOS 6这个翻版系统一起组成了这一次比赛的主流。由于服务器芯片组比较高大上,所以各队进BIOS中改启动模式的时候都遇到了一点小困难,当然一直卡在这上面的也有,那就是在华中科技左侧的香港理工。他们带的是Ubuntu Server系统,能够从U盘里Boot,但是由于没有配置好联网,所以无法安装。折腾了半天,非常蛋疼。他们有人提议说先装一个非服务器版的系统,然后再装别的系统上去;但是他们没有人带了桌面版的系统。我犹豫了一下以后拿出了我的Kubuntu安装盘,并且很不幸地,直到第一天结束为止,这是他们装进去的唯一一个系统……
    九点左右,工作人员把所有媒体组之外的志愿者都赶出去了,让我们自由安排。也就是说,直到吃饭之前,都没有我们接待组志愿者什么事了。在接下来的三天里,我们接待组的志愿者都只需要负责参赛队伍的吃饭问题,以及晚上送他们上车到酒店就可以了,剩下的时间完全自己掌握。考虑到下周一我还要考几代的期中考,所以那些时间我几乎都去图书馆里复习了。
    中午11点半回去赛场后,华中科大的队员们让我们帮他们打饭回来,他们待会在隔壁的休息室里吃,因为他们工作得投入,不想离开赛场。和某位老师的交流中我得知,因为这一次的试题里面只有一题是用到GPU的,其他的基本上都要靠CPU,有些能用协核加速,所以各队开多少节点挂多少卡就大概可以推断出他们的策略。因此,我开始打饭回来以后我便在比赛场地内问各队的集群配置——开了多少个节点,装了多少加速卡、什么类型的加速卡。其中最“有信仰”(国防科大老师语)的是韩国蔚山科学技术大学队伍,他们没有用加速卡,用的是6块GTX Titan游戏显卡!不过想来也可以理解,因为不是每个学校都会拨足够的经费给比赛,钱不够的情况下自然只好退而求其次。一块K40要将近3.5万的软妹币,一块Titan才8千软妹币,虽然Titan少6.7%的流处理器和一半的显存,但是由于主频高了将近20%,所以最后跑出来的结果并不差多少。有别的老师告诉我,实际上蔚山这么做并不会太吃亏,因为只有极限环境(核心超过95度)下Titan可能出错,否则并没有多少区别。使用MIC卡的队伍不多,我问了一下原因,他们说因为MIC卡虽然理论数值可以,但是在矩阵运算上绝对被GPU完爆,所以相对少人用。至于AMD的卡么,我问了三个老师,他们的回复高度一致——笑了笑,摇摇头。
    在休息室里,有四个大电视屏,一个单曲循环宣传片,一个是SYSUTV的直播(中午休息时间停掉了)还有两个是各队的功耗监测。我在那边也和各队的队员以及一些老师在聊那些功耗曲线,以及什么时候他们偏向于给CPU降频或者给GPU降频。一般来说,使用了加速卡的队伍都倾向于压低CPU的频率给GPU留出功率,但是也有例外,比如一些学校开了10个节点带4张卡,为了在各个项目之间取得平衡,便会考虑压掉GPU的频率来跑。不同的做法之间体现着不同队伍对功耗和运算效率的理解,而这一切都将在第三天的比赛中检测出来。
    晚上还是我们给参赛队员带饭,但他们调试程序似乎遇到了点困难,所以好多人都没有吃饭。有一位队员累得不行,便ssh上提交了程序到天河二号上运行的时候,抱着手提直接躺在地上睡了;他手提中Arch Linux系统的半透明窗口效果,令桌面的穹妹在那一行行滚动过的控制台输出中间若隐若现。千万组数据流过,不变的是他一如既往的追求和为所爱之事奉献的初心。可惜我当时没能拍下这个画面,而他已经起来继续工作了。
 
    第二天各队也还在搭建集群和测试,我得到消息后便去登记参观了天河二号。由于有外国队伍一起参观,所以我们先看了一个全英文的介绍片,我基本也能看得懂。然后就是绕着天河二号的计算节点和存储、管理节点机柜看了一圈。主机柜我们自然是不能进去的,很可惜的是我们没能看到展示用的主板,也就是说除了近距离看了一圈机柜以外没有得到比网上已公开的更多的资料。隔着一个玻璃墙,我能感受到里面空调的强劲。外面有两层工作区,一层是管理的,另一层是在给应用做上机优化的。今天听到一个比较新奇的东西就是讲解的博士告诉我,虽然CUDA的生态环境看起来成熟一点,但是英特尔的工具链更齐全,MIC卡移植更方便,因为指令集基本上是一样的。而且他提到,英特尔有往同构计算做的趋势,这将大大方便用户。想了一下昨天的遭遇,虽然我知道以前天河一号用的是AMD的HD4870*2来做加速卡,我还是没有再去问那个“丢脸”的问题。
    看着天河二号机箱上一闪一闪的灯,总让人有一种心潮澎湃的感觉。集成电路技术作为当代人类工艺的尖顶之一,可以让指甲片大小的芯片每秒达到数十万亿次的运算速度,或者把世界上所有的纸质图书装下几次,已经足够令人震惊了;而超级计算机们则以庞大的身躯和成千上万的芯片,在完成一些以前需要大费周章或者根本做不到的事情——风洞模拟,气象预测,甚至是核武器的数学物理模型推算。即令如此,世界上仍然还没有任何一台超算,能把人脑模拟出来,世界真是神奇啊。
 
    第三天正式开始比赛项目了。早上最先出来的是基准性能测试LINPACK的结果,中大以9.27TFlops刷新了三千瓦下的世界纪录,华中科大和台湾清华也在这个项目上打破了以前的世界纪录。一般来说,只要开了卡的,一般都是8张卡(功率限制着),基本上都能跑到8TF左右,中大的压功率能力令人称奇。蔚山的6张Titan最后跑出了6.4TF的成绩,证明Titan和K40比起来并不差到哪里去。在纯CPU的队伍里,清华大学超出平均的2TF多达30%,优化功力实在了得。其他的项目,第三天都还没出结果,要等到第四天才知道。
 
    第四天的时候麻烦出来了。在3D-EW这个项目上,国内有四家队伍:清华、中大、华中科大、国防科大,通过研究预先给出的算例,发现了相同的优化方式,并大幅度更改了算法。用清华带队老师的话来说,就是类似于在解方程的时候他们找到一种方法构造特解;中大的带队老师说得更直接,他们把计算的冗余部分给砍掉了。然而,浪潮公司不承认他们这种做法,说因为改动以后有这样那样的对应的物理模型上的问题,引起了他们的不满。华中科大的人觉得,给出了代码,他们只要能在数学等价的情况下进行并行化优化就好了,相关的物理知识他们并不需要去了解。并且,浪潮事先并没有说不允许改算法,所以他们就沿用了去年的旧例。受此事影响,华中科大的队员都没有心情周六留在广州游玩了,因为他们在这题倾注了大量的心血,比常规做法要快了一个数量级,但是结果却没有得到承认。尽管如此,他们也都还是非常认真地完成了剩下的比赛项目。另外,清华即使在那一题没有分,别的题目依然做得很好,并且总分相当高。
    第四天晚上,由于次日要去南校展示报告了,不会再回超算赛场,所以各队都在赛场合影留念。我和华中科大、香港理工的都合影留念了。这几天里,我已经和一些队员比较熟了,因此和其中两人互相加了Hangouts和G+圈子。台湾清华放在服务器上的两包绿色的乖乖(一种零食,寓意着服务器一路乖乖听话并亮绿灯)有一包给华中科大的拿去了,另一包不知道送给了谁。还有一个大学每人抱着一张K40来合影的,晒富晒得壕无人性啊!
 
    昨天(25号)下午,我们就送他们到南站去坐车了。五天的志愿者工作到此结束。我以自己的方式参与到了这场赛事中来,并不仅仅是作为一个志愿者。希望以后自己也能有机会,来体验一把超算的魅力吧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注