高性能计算服务器下的Abaqus安装及并行计算
本文标签: Abaqus 高性能 计算机 HPC 

     前言:技术工程师的一项工作就是装机,看似简单,其实有时候蛮复杂的。尤其是现在,高性能计算机越来越普遍的今天,有时候安装一台机器甚至都需要跑个好几趟。Windows机器很容易,一路Next问题不大,Linux可就麻烦了,回想第一次怀着忐忑的心情杀向客户,安装linux系统,插上U盘以后,居然发现系统找不到U盘,急得满头大汗,到处电话求助,才知道Linux需要Mount一说,还好林博士宽宏大量,没把我当场撵出去。如今,安装的高性能机器少说也有几十台了吧,虽说对Linux还是有些发怵,不过,难题吗,还是一般都能解决的。  本文读者只限于Abaqus用户,其他用户可以参考。

     在传统的linux并行计算中,一般用户都是自己采购几台配置相同的主机,安装linux redhat系统,搭上网线,一个小型的Cluster就搭配好了。这个架构非常简单,容易搭配,软件安装起来也很方便,只需要将软件安装在每台机器的同一个位置,配置好RSH SSH服务即可。随着硬件价格的大幅降低,企业采购各种计算服务器也很普遍,最常见的的类型就是刀片服务器,刀片服务器的大幅度推广给安装工作带来了新的挑战。

clip_image002

     如图,如果把刀片服务器打开来,一般分为上边几个组成部分。一个管理节点,几个计算节点,计算中心还有存储节点等等,通过网络交换机连接,另外还有电源管理系统,用户本地计算机等。为了保证信息的安全,用户一般都不能直接登录到计算节点,必须先登录到管理节点,通过管理节点再SSH登录到计算节点,进行所有操作。当然,除了软件安装和用户管理需要登录到计算节点外,通常情况下,普通用户是没有必要登录到计算节点的。

     管理节点一般都拥有两块或者两块以上的网卡,一块和外面的操作用户联系,一块和下面的计算节点联系。在申请license的时候,申请和外面联系的网卡Mac地址即可。

    管理节点会虚拟一块网络硬盘(NFS)和计算节点共享,这块网络硬盘可能是在管理节点上,也可能会在某个单独的存储节点上。虚拟出来硬盘以后,所有的计算节点的同一位置都可以看到这个文件夹。如需要查看挂载位置 可以计算节点下查看 Exports文件。 命令行是:

Vi /etc/exports

    或者 输入命令 showmount 即可查看网络硬盘的挂载情况。这种结构给我们的工作带来简化的同时,也带来一些问题。带来的便利就是没有必要每台机器都安装了,只需要安装一次即可,环境变量也只需要配置一次。

第一步:安装Abaqus

    安装软件的时候需要注意的事项是:安装product的时候,license host 一定要写 hostname,而不能以IP地址代替。要不然子节点在计算的时候会找不到license文件,因为子节点和管理节点连的网卡是不一样。

    顺利安装以后,最好通过环境变量配置,让linux系统能够认识Abaqus的命令,这样对于用户来收,没有必要每次提交任务的时候都需要写绝对路径。配置办法:

Vi /etc/profiles

编辑这个文件,在文件中加入

export PATH="$PATH:/share/abaqus/610-2/Commands"

保存,重新登录即可。管理节点和计算节点,每一台都需要配置。

    安装的时候可能也会因为因为某些系统补丁包没有安装完全而出现无法安装的情况,大家可以上http://www.simulia.com/support/v610EF/v610EF_sysinfo.html 下载相应系统的检测工具,查看需要哪儿RPM,安装即可。

第二步,确认RSH通信协议的存在

     现在RSH由于安全性问题已经不再是标准linux搭配了,由SSH所代替。倒是Abaqus的并行还是以RSH协议为主。SSH也可以,

mp_host_list =[['compute-00-01',8],['compute-00-02',8],['compute-00-03',8],['compute-00-04',8],['compute-00-05',8],['compute-00-06',8],['compute-00-07',8],['compute-00-08',8]]

这一步很多时候,都可以要求硬件提供商配置好。

第三步,确认文件夹的可操作性。

   理论上,这个时候就可以进行并行计算了。但是运气好,你可能会成功,运气不好,Abaqus会通过预处理pre程序,但是在计算的时候会毫无道理的退出,而且在sta和msg文件中没有任何提示错误的信息。为什么呢,这是因为文件夹属性问题。Linux对于文件和文件夹的属性非常详细,分为“可读,可写,可执行”,另外,组和用户还不一样,安装的软件时候最好使用最高权限的Root用户。

     但是还会存在一些问题。由于提交任务的时候是通过管理节点提交的,也就是计算生成的文件夹和文件都是有管理节点所创建的。由于计算节点在计算的时候会在当前工作目录(/share下的某文件夹)写入一定的数据,所以必须要求当前工作目录对于计算节点也是可写的。

    但是,很多情况下,如果是通过管理节点登录SSH到计算节点下,会发现一个在管理节点创建的文件夹对于计算节点并不可写,就算SSH用的是Root用户!但是你在查询文件夹属性的时候明明看到这个文件夹是可写的。

    这是由于网络硬盘(NFS)的协议所引起的,解决这个问题的办法就是让登录计算节点的ROOT用户拥有真正的Root权限。编辑管理节点的 exports文件:

vi /etc/exports
/Share *(rw,no_root_squash)
/home/test 192.168.0.100(rw)

     加入no_root_squash的意思是如果用计算节点登录共享目录,如果是 root 的话,那么对于这个贡献目录来说,他就具有 root 的权限!

第四步,修改环境变量

    设置ABAQUS环境变量,进入abaqus/6.10-2/site目录,编辑abaqus_v6.env文件: 在mp_rsh_command下面加一行
mp_host_list =[[‘PCnode1’,1],[‘PCnode2’,2],[‘PCnode3’,3]]

这个就是调用计算机及其Cpu个数的次序了。

第五步,计算。

拼RP的时候了,如果你的RP够好,应该不会再出现叉子了。

     PS:在管理节点提交认为的时候,如果只调用一个CPU,那计算程序将会在管理节点上运行。只有2个或者超过2个以上的CPU,才会调用mp_host_list里面的计算节点。

    关于并行计算的效率,大家可以上http://www.simulationclusters.com上查询Abaqus不同版本不同算例的加速比。

HPC

感谢 Alex Xiao对本文做了巨大贡献。 

                  By  草木春秋

发表于: 2011-09-27 21:18 阅读(13718) 评论(3) 收藏 好文推荐
# re: 高性能计算服务器下的Abaqus安装及并行计算
2011-09-28 16:38 | 【匿名用户】:E-works热心网友 | 1楼
太过专业,曲高和寡
# re: 高性能计算服务器下的Abaqus安装及并行计算
2011-09-29 20:17 | 龚炜 | 2楼
挺详细的Step by step,Linux平台上就是缺少便捷的配置工具,也许我们可以开发一些,让大家更方便的利用。
# re: 高性能计算服务器下的Abaqus安装及并行计算
2012-11-02 18:51 | 【匿名用户】:E-works热心网友 | 3楼
有个问题请教,是这样,在网格划分可以使用多cpu吗?我的模型比较大,qq:315880495,谢谢!!!

发表评论(网友发言只代表个人观点,不代表本网站观点或立场。)

您尚未登录,请先【登录或注册