和超算斗争的日子

超算,学术界大家都叫它“高性能计算”(HPC),但是我觉得还是超级计算机听起来更酷一些。

读研的这些日子,平日里接触最多的就是超算了。CFD计算是一个非常耗CPU的事情,动不动就是上百核心,连续一周,百分之百,满功率运行。这是普通计算机消受不起的。然而真正和超算打交道的时候,面对漆黑一篇的终端,很难相信这就是超算。没有鼠标,没有华丽的图标,只有命令行,别说错一个单词,大小写搞错,超算都不知道你要让它干什么。

记得第一次登录加拿大某个计算中心的登录节点,安装好要使用的软件,设置好环境变量,然后小心翼翼地提交任务,回车键铿锵有力,16核并行计算。喜悦之情溢于言表。可是好景不长,一会儿,管理员发来邮件:“亲爱的用户,请遵守我们的规定,登录节点是不允许进行正式计算的,您必须提交到系统里,由我们来决定您的任务何时开始。我们已经终止你所运行的任务。”吓得一身冷汗,好在没有过多的惩罚。

加拿大的超算系统不和中国,没有像天河1号或者2号那样的超级集群,而是将全加的所有超算资源统一在一起,一起管理。全加有19个组织,每个组织下设又有很多的集群。由于权限的问题,等待时间一直是一个大问题,每次提交上百核并行计算的时候,总是得等上好几天才能开始计算。然而这并不是令人绝望的,和超算斗争的日子里:

  1. 不同的组织之间还是有不同的地方,所以CFD软件在一个集群上能够顺利运行,并不代表就很轻松地在另一个集群上运行,这背后,意味着和管理员不停地协调。还记得和一个管理员沟通软件安装问题的时候,由于他家里着火了,所以很抱歉没能及时帮助上忙。真是超算好管理员。
  2. 好不容易写好了运行代码,提交超算,200多核并行计算,等待了三天,终于轮到了计算,结果运行没过一分钟,系统报错,终止运行。仔仔细细看报错,原来是一部分代码写重了。哎,重新提交,重新等待。
  3. 经常运行了一个星期,兴奋地打开计算结果,结果却大失所望,数值解完全没有物理意义,白算。
  4. 数值发散是常有的事情。网格做得不好,时间步长选得太大,差分格式精度太低,白算。
  5. SIMPLE算法一点也不简单,起这个名字的人真是太逗趣了。

唯一能感到欣慰的就是上传和下载速度了,100MiB/s 的上传和下载速度真得是快到飞起。很难想象没有这么高效的网络,何时才能毕业。不过最感激的还是那些管理员,有了他们的支持,和超算斗争的日子,多了一些底气。

PS: 截至2016年-12月 -12.91 core years.

@2016-12-09 00:50
Comments
Write a Comment