LINUX集群技术构建ANSYS分布式高性能计算平台

(转载请注明出处)随着仿真理论和求解技术越来越成熟,人们对产品虚拟的开发要求越来越高,系统级多体耦合和多物理场耦合计算已经成为计算机仿真的发展方向,用户不在追求单一个体在单一物理场(如结构力学,流体力学)的仿真结果,而是将研究对象的完整系统(如整机、整车)或影响系统性能的所有物理因素一次性纳入计算范畴,重点考察各物理因素综合起来对分析对象或者对整个系统的影响。随着计算机应用的日趋复杂,处理问题的规模也越来越大,对计算速度的追求也在不断地增长,尤其在计算力学,能源工程,生物制药,图像处理、气象预报等学科领域的问题都需要大量的数据进行计算以得到有效的结果,并且计算必须在能接受的时间内完成。如何快速而有效地提高计算速度已经成为众多领域内迫切需要解决的问题。

大规模复杂问题的求解通常需要更强的计算能力和更多的内存,而现有单台计算机的处理能力和内存都不可能无限制的增加,硬件环境已经成为制约产品创新与高水平科研的“瓶颈”,计算机集群技术的发展为解决这个问题提供了新的契机。随着PC机和工作站性能的提高和高速网络的出现,使得并行技术得到前所未有的发展,多种并行体系架构以及与这些架构相关的并行算法相继出现。在众多并行体系架构中,计算机集群架构通过高速网络将多个计算机连接在一起形成一个单一系统映像的高可用性,高性能,高扩展性的计算机集群系统,保持整体的性能优越的同时又具有很高的性价比,因而成为现代高性能计算的使用最广泛的体系架构。在最新的TOP500中,有424套系统采用集群(Cluster)结构,所占份额高达83%,再次验证了集群架构无与比拟的优势。

计算机集群通过网络技术将所有分布的计算资源集中管理和使用,一个机群就如同一个具有巨大配置的单一计算机系统。它利用所有被连接系统的综合能力处理大型任务,通过将计算任务进行分解,把单个任务划分成多个子任务,然后用相连机器(节点)的处理器处理这些子任务,最后得到计算结果。由于同时利用多个处理器资源进行并行计算,从而能更快的获得计算结果,显著缩短计算时间。由于集群架构的巨大优势,许多商业软件都致力于软件的并行化开发,目前,市场上通用的有限元计算软件都实现了集群中的并行运行,并取得良好的应用效果,本文以商业有限元软件ANSYS为例,介绍了基于Linux集群技术的分布式高性能计算平台的构建和测试使用情况。

1 ANSYS分布式并行计算

ANSYS软件是最常用的有限元求解软件之一,以其求解模块齐全,多物理场实现耦合求解以及实现协同仿真技术等特点而广受市场欢迎。其核心是一系列面向各个领域应用的高级求解器,其高性能并行计算主要是针对这些求解器而言。ANSYS支持在异种、异构平台上的网络浮动,其强大的并行计算功能支持“share memory”和“distributed memory”两种并行方式。“share memory”是共享内存式并行计算,指单机多CPU的并行计算。“distributed memory”是分布内存式并行计算,指多机多CPU的并行计算,一般来说,分布式并行往往比共享内存并行有更好的并行效率。 近几年,随着CPU多核,高速互联等技术的发展,低成本高效率的Linux集群系统成为高性能计算平台的主流。由于集群系统的计算资源是分布式布置的,采用ANSYS分布式求解技术将更有效地利用集群的资源,本文主要探讨ANSYS分布式并行计算在集群上的实现和应用。

分布式有限元算法的原理是将有限元模型分解成多个计算小域,子域的数量与参与计算的核心数相等,子域好像“居住”在不同的计算节点的处理器上,这些处理器分别对这些小域进行处理,不同节点多个进程之间通过MPI进行通讯数据交换,有限元模型越大,对MPI通讯的要求越高,ANSYS内置的MPI并行机制将大幅度提高分布式并行计算效率。

集群技术的互联技术大体上经历了从Ethernet到Giganet,Myrinet,Infiniband,Quadrics等发展历程,ANSYS软件通过HP-MPI支持Myrinet/Infiniband/Quadric等高速互联技术,表1显示了ANSYS12.1分布式计算在不同计算平台下支持的高速互联网络以及MPI版本,一般的,ANSYS在Linux和Windows平台下的版本内置了HP-MPI,用户可不在另外安装MPI。

表1 ANSYS12.1分布式计算支持的互联网络和MPI版本 

Platform

Ethernet

GiGE

Myrinet

Infiniband

Quadrics

MPI Software

HP PA8000 64-bit / HP-UX 11.11 (64-bit)

 

 

 

 

       

       *    

HP-MPI 2.2.5

HP IA-64 / HP-UX 11.23

 

 

 

 

      *

HP-MPI 2.2.5

IBM AIX64 64-bit / AIX 5.3

 

  *

 

 

 

POE 4.3.2.6

Sun UltraSPARC III and IV / Fujitsu SPARC64 IV / 64-bit /Solaris 10

 

   

  *

 

 

 

HPC CLUSTER

-TOOLS 7.1

Sun AMD/Intel / 64-bit / Solaris 10

 

 

 

 

 

HPC CLUSTER

-TOOLS 7.1

Linux Intel (including EM64T) and AMD (32-bit and64-bit)

 

 

 

 

   

   *

HP-MPI 2.3.1
Intel MPI 3.2.1
SGI MPT 1.16

SGI

 

 

   *

 

 

 

SGI MPI 4.3,MPT 1.8 (Hardware Vendor)

Windows 32-bit (64-bit) / XP / Vista

 

 

    *

 

   *

HP-MPI 2.0
Intel MPI 3.2.1

Windows HPC Server 2008 x64

 

 

    *

 

   *

Microsoft HPC Pack (MS MPI)

           来源:www.ansys.com/servers/ss-interconnects.asp,* 代表未经ANSYS公司测试,但是预期可使用。

2利用Linux构建高性能计算集群((转载请注明出处))

集群就是通过高性能网络将多台同构或异构的计算机通过高性能网络或是局域网连接起来并协同完成特定任务的计算机群,它们对外部的表现就像一个系统在工作。Linux集群除了成本优势,还具有很好的扩展性,一旦需要更多的处理能力只需增加一定数量的普通电脑就可以,Linux集群的优势还是显而易见的。一个简易的高性能计算集群系统结构如图1所示,硬件非常简单:一个主节点(服务节点)、一系列从节点(客户节点)以及连接它们的交换机和网线,主节点是集群的控制器和对外的网关,负责对各个从节点进行管理和控制和对外的通信;从节点执行主节点分配来的任务。这样通过独立的计算机和高速网络搭建的集群属于分布式内存并行计算机,各个处理器之间通过消息传递来交换信息。

LINUX集群技术构建ANSYS分布式高性能计算平台_第1张图片

 

图1  简易的HPC集群系统结构示意图

   MPI是目前最主要的并行环境,它适用于基于分布式内存的并行计算系统,作为消息传递的标准已广泛被并行机厂商,并行库开发人员,并行程序设计人员所接受,指定该标准的目的是为了提高并行程序的可移植性和使用的方便性。有了统一标准,并行计算环境下的应用程序,软件库以及软件工具就可以透明的移植。各个厂商还可以依据该标准提供独具特点和优势的软件来实现对硬件的支持,从而提高并行处理能力。

目前集群系统节点中最流行的操作系统是Linux,其主要特点是开放性、标准化、多用户,多任务,对集群支持能力强,其优良的稳定性可以使系统连续运行数月、数年而无须重新启动。Linux 向用户提供三种界面:用户命令界面、系统调用界面和图形用户界面,每个Linux系统的用户可以拥有自己的用户界面和Shell,用以满足他们自己专门的Shell。对集群系统而言,Linux版本并不是越新越好,一般选用拥有稳定内核并经多次测试校验的linux版本,本文选用的linux版本是SuSE Linux Enterprise  Server 10_SP2。

在构造主要用于高性能计算的PC机群系统来说,最好是各节点机的性能一致,因为并行计算的多个子任务,分配给各节点计算,这里有一个各节点机之间的同步问题,各节点机的速度差异影响整个机群的计算速度,使机群内任务的调度难度加大。本文中每个节点含8个AMDBarcelona 1.9GHz四核处理器,128G共性内存,通过Infiniband交换机实现各节点互联,实现全线速集群内部无阻塞的网络交换,最大限度的为集群运算系统提供高效可靠的通讯环境。

3 Linux集群关键网络服务

Linux集群中每个节点都有独立的处理器和内存,运行独立的操作系统,不能直接访问其他节点的处理器、内存或其他设备。而实现MPI并行环境却要求这样的访问,这就需要内部网络和通信协议的支持。首先要实现每个节点无密码互访,其次,由于并行计算的特点,每个节点上的账号信息或者是计算程序路径通常是相同的,只是所分配的计算域不同,这就需要网络信息服务系统和网络文件系统的支持。下面就构建集群过程中关键网络服务做简要说明。

(1)RSH/SSH设置

运行并行计算首先要求各个节点之间必须能够无需密码登陆。为实现rsh无需密码登陆,在每个节点安装完Linux 操作系统后,确认已安装rsh套件并启动rsh服务。修改/etc/hosts文件,将其他节点的IP地址和主机名等加入其中,然后建立/etc/hosts.equiv 文件,在此文件中添加其他节点主机名或IP地址列表。运行“rsh 节点名”,即可直接登陆该节点,这样通过rsh即可实现各节点的无需密码登陆。root用户由于安全原因最好使用ssh进行远程登陆。要实现ssh无需密码登陆,先要用“ssh_keygen”生成密钥,再将密钥对应的公钥拷到各个需要远程登陆节点.ssh目录下authorized keys 文件中,运行“ssh 节点名”,即可直接登陆该节点。

(2)网络信息服务(NIS)

NIS是网络信息系统的简称,目的是为集群网络上所有机器提供所需账号信息。该数据库建立在服务器上,用于统一管理集群中服务器和节点机的用户信息,使得一个用户可以登入集群中任何一台节点机,而不需要管理员另外为用户在每台节点机上设置账户和密码。NIS虽然存在一定的安全隐患,但在内部网络,安全问题不大。在构建网络信息系统时需要在服务器端和客户端做相应的配置。首先保证所有节点上安装有yp-tools和portmap套件,yp-tools主要是提供NIS相关的查询指令功能,portmap是协调主节点和从节点的RPC通讯端口程序,涉及到RPC的服务都要用它。在主节点用来设定NIS的套件是ypserv,在从节点设定NIS的套件是ypbind,在主从节点上启动相关的服务即可完成NIS服务配置。

(3)网络文件系统(NFS)

此部分虽然不是运行并行程序所必需的,但该设置便于并行系统各节点间的管理使用。其功能为在一个节点实现对其他节点目录的共享,从而实现无需登录其他节点就可直接将其目录作为本节点的当前目录进行操作。NFS与NIS结合使用时,把主节点home目录分享出去,在从节点的home目录挂载该目录,则在从节点登陆NIS账号时也能找到自己的家目录。另外并行任务启动时,需要所有节点都能载入并行计算程序的执行代码,并行计算程序执行代码文件、输入输出数据文件等必须让所有节点机共享,通过NFS设置大大优化集群内部组织框架,便于集群资源的集中管理,用户在任何节点登入,看到的是单一文件系统印象,感觉不到多台计算机的存在。



http://blog.sina.com.cn/s/blog_6817db3a0100mhbs.html

4 ANSYS分布式并行平台(转载请注明出处)

在集群系统中,通常采用NFS共享方式实现并行,即MPI软件和商业软件只安装在主计算节点的共享目录,而其它的节点可通过NFS挂载该目录的镜像,如ANSYS软件的安装。这种方式的好处是一次安装即可实现集群内各节点资源共享,省去大量的软件安装及文件复制时间,我们把基于这种方式的并行称为共享式并行。基于Linux集群构建ANSYS分布式并行计算平台过程中,遇到的关键问题主要有如下几个方面:

(1)Linux集群网络环境配置好后,在主节点新建ANSYS的安装目录/software,并在其他节点挂载该目录在相同的路径上,使得其他节点也能访问到该目录,同样可以建立ANSYS的工作目录,通过同样的方式可以使各个节点指向相同的路径。由于从节点账号通过NIS从主节点映射过来的,各个节点上对应相同的账号和.bashrc,用户感觉整个集群系统就是一台超强配置的机器。

(2)ANSYS LICENSE管理采用FLEXlm许可证管理工具,它可以在一个节点上运行许可证而其他用户可以通过网络与之通信而获取许可后可在在网络中任何一台客户机上运行应用软件。一般的ANSYS LICENSE安装在主节点上,其他节点通过在.bashrc中设置ANSYSLMD_LICENSE_FILE变量来获取浮动license授权。需要指出的是,ANSYS分布式计算需要HPC licenses,对于超过两个进程的分布式计算将需要更多的HPC licenses。

(3)确认各计算节点的hostname,这些节点名称将用来设置$HOME/.rhosts文件和生成分布式计算配置文件hosts121.ans。.rhosts一般需要注明各个节点的hostname和用户(相同的用户名),对文件所有者至少需要有读写的权限。hosts121.ans的生成一般需要打开ANSYS安装目录下的ans_admin121交互窗口,如图2所示,根据对话框提示,选择hosts121.ans文件位置和配置对象,确认后,依次添加参与分布式计算的节点名称,机器类型以及计算核数。这些节点和核心将参与ANSYS分布式计算。

LINUX集群技术构建ANSYS分布式高性能计算平台_第2张图片

 

图2 ANSYSCLUSTER配置

(4)ANSYS12.1默认安装HP-MPI 2.3.1,通过设置MPI内置变量可实现对ANSYS分布式计算的控制。默认情况下,ANSYS求解目录是主节点的当前目录和从节点的$HOME目录,通过在主节点上设置MPI_WORKDIR变量可以使ANSYS在各个节点上的进程指向同样的工作目录。另外,ANSYS分布式计算默认远程登陆shell方式是RSH,可以通过设置MPI_REMSH来更改远程登陆方式。

(5)ANSYS分布式作业提交一般可以采用launcher形式或者命令行格式。ANSYS launcher可通过人机交互窗口指定求解参数来提交分布式作业;命令行格式一般采用后台提交:ansys121 –dis –machinesnode1:np:node2:np:node3:np –b –i ansysjob.cdb形式,参数-dis表示激活ANSYS分布式求解器,-machines后面指定参与计算的节点hostname和计算核数np,–b表示程序以后台方式运行,–i表示执行输入文件,ansysjob.cdb为ANSYS的命令流格式求解文件。

(6)ANSYS分布式并行环境配置完成后,即可测试ANSYS分布式并行计算。我们设计一个计算桁架模态的小例子(test-1.cdb),设置ANSYS工作目录为/home/test/dis-ansys。主节点node1,从节点node2,node3,node4均提供1个核参与计算,共计4个核,通过观察在四个主机上均有ansysdishpmpi.e121这个进程,说明ANSYS分布式计算已经正常启动。计算结束后,ANSYS将会对这次分析做一个统计,如图3所示,ANSYS作业监控窗口显示了作业运行的基本信息,同时也显示主节点到从节点的延迟时间以及通讯速度,其大小反映了节点间网络通信的情况好坏。一般地,低延迟和高带宽将有利于提高分布式并行计算效率。

LINUX集群技术构建ANSYS分布式高性能计算平台_第3张图片

 图3 ANSYS分布式计算求解统计

5总结

本文首先介绍了集群技术的应用背景,结合高性能计算应用领域,对集群技术的基本工作原理和有限元软件ANSYS的分布式并行计算做了简要论述。利用现有的资源,采用Linux集群技术架构了含有数个计算节点的ANSYS并行环境,并详细论述了集群搭建过程中的关键网络设置和ANSYS分布式并行计算环境设置。

(1)集群技术下的ANSYS分布式计算不仅可以有效降低求解时间,而且可以求解单机环境下复杂的模型,同时,基于Linux的集群架构技术可以充分利用现有的资源并具有很好的可扩展性,具有较高的应用价值和不可替代的优势。

(2)对于更大规模的集群系统,其网络配置和实践应用比本文所描述的要复杂的多,集群资源的管理和作业调度往往由第三方管理软件来实现,为用户访问集群内资源提供更为透明的服务,提高用户工作效率。通过本文,希望能够给从事有限元高性能计算的单位和研究人员提供一个简单易用的并行计算平台,同时关于集群技术架构中更多的问题也值得我们继续探讨。


你可能感兴趣的:(运维)