并行®超算云服务试用
发表日期 : 2018/12/04  61 收藏
xukejing
向TA提问
3103
总阅读量
15
作品

这几年,我们已经试用过很多有趣的ARM小电脑了。

万万没想到,我竟然还获得了超算服务器的试用资格。

10月末的时候,我去了一趟西安,在工程热物理会议上做了一个小小的报告。会议间隙里,“并行®”给我推荐了一下他们的超算服务器。

   

与一般的多节点高性能计算服务器不同的是,它们的服务器不需要把设备运到本地,而是可以在云端操作。这种云超算平台的名字叫超算网格,是基于国家高性能计算环境与云计算技术,提供多家各大超算与数据中心的计算资源、优化网络、应用与工具、软件与服务的一站式平台,降低了高性能计算应用成本,用户不管身居何处,都能对超算“触手可及”。

   

超算云使用的是linux操作系统,这个与哈工大的计算服务器相同,但多了云端桌面,方便了远程操作。下面是云端桌面的客户端界面。

客户端界面.JPG

   

客户端带有网速测试功能。因为本地电脑只作为客户端,并不参与计算,所以云端对本地的网速并没有太高的要求,只要不影响正常操作就行。

网速测试.JPG

   

putty连接后,可以查看cpu和内存参数。当然,这里只能查看到其中一个节点的20个核。

实际使用中我们可以操作多个节点。比如8个节点,每个节点20核,就有160个核心可以用了。

内存和cpu.JPG

   

服务器已经预先装上了常用的软件和并行计算库,其中GCC版本是4.8.5

gcc编译器版本.JPG

   

网管已经预先帮我装上了FLUENT,这是个流体力学计算软件。

已经装上了fluent16.JPG

   

我们把算例文件上传一下。文件稍大,是个6百万网格的流场计算算例。

 上传算例文件.JPG

  

我们可以以多种方式向服务器提交计算工作

作业提交.JPG

   

其中,srun命令属于交互式提交作业,有屏幕输出,但容易受网络波动影响,断网或关闭窗口会导致作业中断。

   

我们用sbatch 提交脚本。这种方式不受本地网络波动影响,提交作业后可以关闭本地电脑。由于sbatch命令没有屏幕输出,默认输出日志为提交目录下的 slurm-xxx.out文件,我们可以使 用tail -f slurm-xxx.out 实时查看日志,其中 xxx 为作业号。

   

举个例子,把一个名字叫fluent.sh的计算脚本提交,命令可以这样写:sbatch fluent.sh

   

在向服务器提交计算任务前,先查看一下计算节点的空闲情况。我们发现还有六十多个节点处于闲置状态,妥妥地够用啦。

查询闲置节点.JPG

   

我们先写个fluent计算使用的jou文件,里面定义了算例文件名,和计算迭代次数。

这是个定常流动的计算算例,本身计算量就比非定常计算要小。

然后这里只做速度测试,所以只迭代10次。这种定常计算,正常一般都是1万次以上迭代才能获得一个收敛的结果。

jou文件.JPG

   

然后我们写一下计算脚本,分别使用不同的节点数量进行计算速度测试。

   

第一个脚本使用2个节点,共40个核心并行计算

 2节点40核.JPG

  

第二个脚本使用4个节点,共80个核心并行计算

 4节点80核.JPG

  

第三个脚本使用8个节点,共160个核心并行计算

 8节点160核.JPG

  

接着,提交作业,然而发现了一个小问题。Unix的文本换行格式与windows不一样。这个只要用dos2uninx命令转一下就好了。

 换行符问题的解决.JPG

  

下面,正式提交第一个工作。

 提交第一个工作.JPG

  

下图中,我们可以发现,两节点40个核心的计算速度还不错的。大约每3秒完成一次迭代步(刚开始,剩余时间估计还没稳定,后来就稳定了)。

 40核的计算成绩.JPG

  

这种多机并行的计算环境,CPU与内存之间的交互很快,然而机群节点间的网络传输往往会形成瓶颈,即使是千兆网络往往也会让性能大打折扣。我们用ip命令会发现这种云超算使用了一种叫IB的网卡。

 ib网卡.JPG

  

使用ethtool命令可以看到这个IB网卡的具体参数,速度达到了56Gb/s,已经超过1万兆啦。难怪并行速度那么快呢。

 ib网卡速度.JPG

  

下一步,我们继续提交第二个测试算例,使用4节点的80核并行计算。

 提交80核工作.JPG

  

下图的计算结果可看出,4节点80核的计算条件下,每步迭代时间在12秒之间。

 80核的计算成绩.JPG

  

再提交第三个160核的计算任务吧。

这一步,发生了一些郁闷的事情。当申请的节点比较多时,需要排队。

 提交160核工作.JPG

  

我们排了几分钟,还没排上,等不及了,最后就取消这个任务了。

 等了半天还没排上队我们就取消了.JPG

  

最后,我们模拟正常的计算情况,来一次1万步的迭代计算。

其中计算资源使用4个节点,80核并行。

 1万步迭代.JPG

  

算了几步以后,通过下面这个输出文件,我们可以发现计算总耗时约在4小时左右,也就是说平均约1.4秒就能完成一个迭代步。

 1万步迭代的时间估计.JPG

  

 

以上就是并行®超算云服务的试用体验。

  

我觉得,这种服务器的性能是非常好的,内存大,CPU速度快,CPU核心数量多,甚至可以用50个节点进行一千核的并行计算(只是需要排队)。当然,这些都不是最大的亮点了,最大的亮点是在云平台。

我们不用担心占地面积是否过大,不用担心供电功率是否足够,更不用担心噪音扰民,只要通过云端操作就可以把需要巨大计算量的工作给搞定了。

技术 linux 超算 云服务器
【你的赞赏是对原创作者最大的认可】
打赏
0人已打赏
xukejing
向TA提问
3103
总阅读量
15
作品
相关文章推荐
换一批
相关回答
换一批
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
12月问答积分兑换板卡出炉