pfelac 高性能计算概述 -...

30
PFELAC 高性能计算概述

Upload: others

Post on 27-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

PFELAC 高性能计算概述

Page 2: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

目录 1. 概论................................................................................................................ 4

2. 有限元计算并行架构.................................................................................... 5

2.1、 主从模式与对等模式优缺点比较.................................................... 5

2.2、 主从模式介绍.................................................................................... 5

2.3、 对等模式介绍.................................................................................. 10

3. 并行算法...................................................................................................... 11

3.1、 通信标志自适应算法...................................................................... 11

3.2、 分布式并行算法.............................................................................. 11

3.3、 同步与通信算法.............................................................................. 12

3.4、 划分与归并算法.............................................................................. 12

3.5、 区域分割算法.................................................................................. 12

3.6、 子区域共享...................................................................................... 13

4. PFELAC 并行求解器 .................................................................................. 14

4.1、 直接法 LU 分解并行求解器 .......................................................... 14

4.2、 迭代法并行求解器.......................................................................... 14

5. PFELAC 并行优势 ...................................................................................... 15

5.1、 对等的高密集度并行有限元计算程序并行架构.......................... 15

5.2、 有限元计算程序支持超大规模问题求解...................................... 15

5.3、 高度负载均衡.................................................................................. 16

5.4、 支持多种类型多种方式数据通信方式.......................................... 16

5.5、 点对点通信...................................................................................... 17

5.6、 开放源代码,可扩展性强.............................................................. 17

5.7、 完全自主知识产权.......................................................................... 17

5.8、 强兼容性.......................................................................................... 17

6. 典型应用案例.............................................................................................. 18

6.1、 弹性波在均匀介质中的传播.......................................................... 18

6.1.1、 计算规模及结果 .................................................................... 18

6.2、 三维土坝自由面渗流问题.............................................................. 20

Page 3: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

6.2.1、 计算规模及结果 .................................................................... 20

6.3、 三维热固耦合问题.......................................................................... 21

6.3.1、 计算规模及结果 .................................................................... 23

6.4、 A-Φ方法求解 Maxwell 方程:线性正弦稳态涡流问题 ............ 24

6.4.1、 计算规模及结果 .................................................................... 25

6.5、 实际工程防浪堤弹性与塑性计算.................................................. 27

6.5.1、 计算规模与结果 .................................................................... 27

Page 4: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

1. 概论

随着计算机硬件的迅速发展,计算机的功能越来越强大,价格越来越便宜。

但是由于工程与科学计算对计算机的要求是永无止境的,只有计算机的能力限制

了工程与科学计算的精度,而不会因为工程与科学计算的需求不够妨碍了计算机

的发展。

有限元计算是一种大规模的工程与科学计算,需要大计算量与大存储量。由

于 CPU的计算速度的限制,使得许多问题或者不能采用有限元方法求解,或者求

解的精度不能满足实际的需要。按照今天的计算机硬件与软件技术,单 CPU的计

算机对三维的有限元问题一般只能求解数十万个单元。这对于较复杂的有限元问

题,精度往往不能满足需要。但若采用近二十多年发展起来的并行机与并行有限

元软件技术,则可求解数百万、数千万甚至更多的单元,从而对复杂和大规模的

有限元问题,也能达到用户所需的精度。我国大气物理研究奠基人叶笃正院士曾

在 1985 年指出,超级计算使得大气科学从一门经验科学变成了理论科学和实验

科学,人们可以通过实验模拟来研究和预测天气和气候的变化。超级计算离不开

超级计算机,我国目前在天津、上海、广州、济南、深圳等地建立了超级计算机

中心,在硬件上达到了世界先进水平,然而与其相应的软件并没有达到相应的水

平。应用软件的研发对超级计算的发展有举足轻重的地位。所以应用软件,尤其

是具有自主知识产权的并行计算软件的研发研发成为当下亟待解决的问题。

高性能计算是发展航空航天、石油勘探开采、大型水利电力工程、机械制造

等多种工业和高科技产业,解决环境污染、气象预报等重大国计民生问题的先决

条件。由于具有巨大的数值计算和数据处理能力,高性能计算被广泛地应用于国

民经济、国防建设和科技发展中具有深远影响的重大课题;随着 CAE 软件行业的

发展,用户对仿真模型的要求越来越大,尤其是随着硬件资源的发展,我国在高

性能计算的硬件发展令人叹为观止的同时,在软件方面却存在较大的缺失,除

PFELAC 软件尚未见成熟高效的并行有限元分析软件;由于超级计算在结构上千

差万别,其应用程序一般是源代码级兼容,这也对高效的并行有限元分析软件有

更好的技术要求。FELAC 有限元语言及其编辑器是采用新的技术架构,可以计

Page 5: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

算上百亿自由度的大规模并行计算,对国民经济和科学技术的发展、对军事和国

防建设具有十分重要的意义。公司参与的 “十二五”国家高技术研究发展计划

(863 计划),在“天河一号”测试通过。元计算依托成熟的并行仿真技术为国内用

户提供高性能并行仿真计算服务。

2. 有限元计算并行架构

经过二十几年的研究与实践积累,目前元计算公司针对不同的问题性质,分

别设计了主从模式的并行架构和对等模式的并行架构。

2.1、 主从模式与对等模式优缺点比较

主从模式并行程序的特点是构成一个程序的进程之一负责所有进程间的协

调及任务调度,该进程称为主进程(Master),其余进程称为从进程(Slave),通

常用户需要维护两份源代码。

首先主进程读如整个计算区域的所有计算需要的数据,分区,分完区后分到

各区域的数据再单独发送到子进程进行计算。

该模式的优点是主从模式程序架构所有数据的 I/O 操作均由主进程进行,程

序简单清晰,子进程之间除求解器除外不进行任何通信,所有通信只发生在主从

进程之间,处理起来比较简单、容易修改和差错。不过,该模式的并行程序分区

的时候需要由主进程读入整个区域的数据,而单个区域的内存总是有个瓶颈,这

就限制求解问题规模,另外分区是串行进行的,极大的降低了整个并行计算的并

行效率。

处理规模不是特别巨大的(两三千万规模以下)计算时,采用主从模式的并

行程序是绰绰有余的。但是随着需要解决的问题规模进一步扩大成超大规模的计

算问题,需要考虑对等模式的并行架构。

2.2、 主从模式介绍

主从模式的基本思想是元件化程序设计和程序自动生成技术相结合,根据区

域分解法的特点,将有限元程序分成:前处理分区、START、BFT、Solve、E和 U

Page 6: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

等六个模块,其中 E和 U元件程序程序根据用户给出的偏微分方程表达式和算法

表达式由系统自动生成,其余几个元件程序由系统给出,不随表达式的变动而变

动。以下简要说明这几个模块的功能:

前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

sgetpart 元件;该模块的功能事根据用户提供的前处理数据将整个求解区域根

据用户的要求合理划分成数个子区域,其中 partition元件由主进程运行,负责

将整个区域内的节点进行分区,给出各子区域所包含的整体节点号,局部节点编

号和整体节点编号的对应关系,并将各子区域的一些前处理信息,包括节点数、

时间信息等,以及各区域所含节点的坐标值分块发送给与各子区域对应的从进

程,而从进程运行 spart元件接收来自主进程 partition元件的坐标值;getpart

元件也是由主进程来运行,它的主要功能是根据 partition元件提供的各子区域

所含节点信息得到各自的局部单元信息、初边值信息、节点 ID 信息以及各子区

域节点的各自由度对应的整体方程号等,并发送各相应的从进程,而从进程将运

行与之对应的 sgetpart元件进行接收。

START 元件:在经过前处理分区模块之后,我们已经得到了各子区域相应的

前处理数据,开始各子区域各自的计算模块,首先执行的是 START 元件程序,该

元件给出每个节点的各个自由度与将来要形成的代数方程组的变量(即方程号)

的对应关系(即哪个节点哪个自由度将要对应方程组的哪个变量),并得到整体

刚度矩阵的存储格式,该元件程序只在从进程执行。

BFT 元件:该元件由两个程序:bftm 和 bfts 组成,分别由主进程和从进程

执行,bftm 由主进程执行,主要是给出每一时刻解的边值,对时间进行更新,

进行结束与否的判断,并将判断结果和新的时间和各区域解的边值发送给从进

程;bfts 由从进程执行,接收由主进程发送的新的时间和解的边值。

SOLV 元件:此元件为求解器元件,由两个程序组成:solv 和 msolv,其中

solv 由从进程执行,对子区域经过 E 元件后形成的代数方程组系数矩阵和右端

项进行整理,以满足相应并行求解器所需的数据格式,然后调用相应的并行求解

器,得到各子区域各自的解,由于区域分解法知,各子区域的方程组的求解计算

依赖于相邻子区域公共边界上解的值,而为了使程序结构清晰,各从进程之间在

SOLV元件程序内部相互通信,不需要用户参与。msolv元件即主进程求解器,管

Page 7: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

理通信的协调工作。

E元件:该元件程序用于单元计算,包括单刚,单质和单元载荷计算,并把

它们由节点自由度表示转换成代数方程组的变量表示,同时处理边界约束条件,

并形成代数方程组的系数矩阵和右端项。

U 元件:U 元件程序用于把求解器求出的方程组变量解转换回节点各自由度

的位移值,并进行其它后处理计算,最后将各节点位移发送到主进程,转换为整

体区域上各节点各自由度的位移,该元件程序由从进程执行;主进程有相应于该

元件的解接收整理元件:recv 元件程序,该元件接收来自于各从进程的子区域

上的解,根据局部节点与整体节点的对应关系整理得到整体区域上的解,并进行

存盘处理。

这些元件程序的调用是分别由从进程主程序和主进程主程序来完成的,这两

个主程序根据用户填写的 GCN 文件自动生成,这两个主程序又由一个名为

mainmpi 的总调用程序根据进程号分别调用。

下面根据区域分解法的特点,给出主从模式对动态和稳态、线性和非线性问

题求解程序的流程框图:

图 2-1 线性稳态问题求解流程框图

Page 8: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 2-2 线性动态问题求解流程框图

Page 9: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 2-3 非线性稳态问题求解流程框图

图 2-4 非线性动态问题求解流程框图

Page 10: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

2.3、 对等模式介绍

对等模式并行程序架构,首先将计算数据分解成多文件形式,多个进程同时

读入各个数据文件,并行分区处理,生成分好后的各区域数据,得到前处理数据。

之后每个计算进程并行读入各自对应的分区数据,开始并行计算。

该模式并行程序中求解区域分区的前处理工作和计算部分均是并行进行的,

分区前的模型文件可分多个文件存储,解决了计算模型非常大时的内存问题跟并

行效率问题。能够进行超大规模模型的计算,且并行效率比主从模式高。元计算

目前正为上海交通大学 863 重大专项课题“大型工程设备结构力学并行计算软件

及应用”开发解决大型工程并行计算的对等模式并行计算程序。并行区域分割流

程图:

图 2-5 并行区域分割流程图

对等模式架构流程图如下:

Page 11: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 2-6 对等模式架构流程图

3. 并行算法

3.1、 通信标志自适应算法

在任意进程间通信的过程中,当一个进程发送消息到另一个进程,另一个进

程接收消息,正确的发送接收需要消息的发送和接收标志保持一致。在大规模并

行计算中,由于进程数量可能会达到数万个甚至更多,通信量会达到几十万甚至

上百万次以上。基于此,元计算公司研发了通信标志自适应技术来解决此类问题,

能够适用万核以上的进程间通信标志自适应问题。

3.2、 分布式并行算法

分布式算法是在分布式系统上执行的算法。分布式系统是指通过网络互连的

一组进程或者处理器组成的集合。分布式算法在求解问题的时候,算法的各部分

并发和独立的运行,每一部分只承载有限的信息。分布式算法的特点主要有两点,

第一,规避全局信息,可以避免大数组的开辟;第二,不需要统一的模式,即不

同进程可以在同一时间完成不同的计算工作。但是另一方面,分布式算法也会导

致全局信息丢失,无法统一全局程序执行进度协调工作。所以我们引入了同步与

Page 12: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

通信算法。

3.3、 同步与通信算法

同步是在时间上使个执行计算的处理器(或进程)在某一点必须相互等待,

以确保他们正确的执行顺序或对共享可写数据的正确访问。在分布式系统中可以

使用消息传递的办法或者采用同步函数的方法实现不同进程的同步等待。通信是

在空间上对各并发执行的进程施行数据交换,采用特有的适应于数值计算的共有

单元点对点通信技术,极大的减少了通信量,提高并行计算效率。

3.4、 划分与归并算法

划分算法考虑负载平衡将求解问题分割成多个几乎等尺寸的子问题,然后并

行求解诸子问题。在划分过程中,保持几何连续性,考虑未来归并组合。针对有

限差分算法的特点,我们在划分算法中考虑了边界共有单元的构建,将会在技术

方案章节详细描述如何构建。归并算法只需要将每一个子块的内部节点组合成整

体的有限差分结果。

3.5、 区域分割算法

区域分解算法是以节点为分区对象,将整个立方体块分解成不同区块,每

个区块带有自己的编号,区块内部包含本区块的节点信息,具体如下图所示。

图 3-1 区域分割系统

如图 3-1 所示,区域分割系统将整体按虚线位置划分为四个区块,四个区块按顺

序编号,每个区块内部节点带有整体编号信息(在整体区域的节点编号)和局部

区域编号(在当前区块的从 1 开始的编号),这样就把整个计算区域分解为多个

计算区域。由于采用的是结构化规则平均网格,所以该分解方法符合负载平衡和

Page 13: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

最小通信量的要求,对快速计算大有益处。

3.6、 子区域共享

区域分解系统在负载平衡和最小通信量的要求上将整体计算区域按节点分

解为多个区块。对于每个区块的边界层节点,仅仅包含本区域的节点是无法组件

这些节点的完整方程的,这是由于在其他子区域中有与其共单元的节点,以及差

分格式中需要用到的节点信息。这些都是需要构建的信息。

子区域共享系统用来构建共享单元。由于所采取的差分格式,需要用到共线

的两层节点,所以对于子区域的最外层节点,需要构建一层共有单元来保证子区

域最外层节点的单刚计算的有效性和整体计算区域方程的完整性。我们以区域分

解系统划分出来的 1 号分区为例,可以通过下图来描述共有单元的范围。

图 3-2 子区域共有单元构建图

如上图所示,其中作图为子区域本身,右图为添加共有单元(蓝色部分)的子区

域图。

图 3-3 子区域单元与节点结构图

,每一个子区域的构成都是有图中所示信息构成,其中折线对应的是分区信

Page 14: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

息,分区后 1 号分区为左边节点,右边节点为 2 号分区。两个分区中间单元为丢

失单元。节点分区后重新构建的单元为折线穿过的单元。

共享单元构建完成之后,通过对坐标、单元以及场信息分区,实现整体计算

所需数据的分块,每一个子区域可以实现自身所在区域的计算。在计算过程中,

整体区域的整体信息的分配以及子区域之间的相互通信通过子区域通信系统来

实现。

4. PFELAC 并行求解器

元计算公司在大规模线性方程组问题的计算中拥有丰富的求解器模块,对于

对称矩阵和非对称矩阵以及近奇异矩阵方程组的计算都有相应的处理技术。线性

方程租的并行求解步骤如下:

1.描述并行机(处理机的台数);

2.初始化矩阵和向量数据结构;

3.选取求解器算法、预处理方法和收敛准则;

4.初始化右端项和初值;

5.调用解算器并行通信协调求解。

在天津天河一号超级计算机我们实现了万核 60 亿阶超大规模线性方程组的

求解,其包含直接法 LU 分解并行求解器和迭代法求解器。

4.1、 直接法 LU 分解并行求解器

直接发 LU 并行求解器包含通信管理系统和内存管理系统,保证在求解计算

中能够正确的通信和内存的存取问题。对于矩阵性态很差的线性方程组的求解,

为了促进求解器的正确快速的求解,其包含以下列排序功能:列近似最小度排序、

基于矩阵与矩阵转置的和的最小度排序、基于矩阵与矩阵转置乘积的最小度排序

以及基于 Parmetis 图论技术的排序功能,这些都是适用于不同的问题。

4.2、 迭代法并行求解器

迭代法并行求解器包括求解对称正定问题的共个梯度算法(CG),针对非对

Page 15: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

称矩阵问题的重启动广义极小残差方法(GMRES)、稳定化的双共个梯度方法

(BICG-STAB),无转置拟极小残差法(TFQMR)和共轭梯度平方法(CGS)。

预条件技术包括对角尺度化预条件子、块雅克比预条件子、高斯赛德尔预条件子、

纽曼和最小二乘多项式预条件子以及基于重叠区域的预条件子。子区域预条件包

括稀疏 LU 分解、不完全 LU 分解、k 步 LU 不完全分解、块不完全 LU 分解以及

ICC 预条件等。该求解器适用于超大规模稀疏矩阵线性方程组的求解。

5. PFELAC 并行优势

本系统的主要功能是根据用户的有限元表达式由计算机自动产生基于区域

分解法的并行有限元计算源程序。它大大降低了并行有限元程序和软件对程序编

制人员的要求,用户只需输入有限元方法所需的各种表达式,即可自动产生并行

有限元计算的全部源程序,免去了大量的繁琐的编程劳动,并容易保证程序的正

确性和统一性。并且程序易阅读,易修改,从而保证了软件的再用性和易维护性。

生成的并行程序可扩展性好,对 cpu数没有任何限制,对操作系统没有任何特殊

要求,可以在任何一台并行机上进行编译链接和计算。比较而言,PFELAC 自动

生成系统生成的并行程序具有如下几点优势。

5.1、 对等的高密集度并行有限元计算程序并行架构

对于超大规模问题,对等模式的并行架构采用元计算公司自主的通信算法,

其万核并行效率在 57%以上,这些都是与该架构息息相关的。该架构使得强烈依

赖性的复杂有限元问题转变为高密集性并行计算问题,使得在最大程度上提高有

限元问题的并行性。数据的初始化、单元刚度计算、总刚的组装以及后处理计算

果的输出都是完全对等不需要通信的,只有求解器和耦合场信息的边界层需要通

信来交互数据。

5.2、 有限元计算程序支持超大规模问题求解

元计算参与的超大规模结构力学 863 项目中,完成了万核 20 亿网格节点,

Page 16: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

60 亿阶线性方程组的求解。其并行效率在 57%以上,线弹性并行计算效率在 66%

以上。

5.3、 高度负载均衡

在并行计算过程中,并行计算的效率是以计算最慢的处理机为标准的,比如

对于一个超大规模问题,单击运行时间为 10 秒,采用 10 台机器并行计算,其中

9 台机器的计算时间为 1s,1 台机器的计算时间为 2s,则我们认为并行计算最后

的时间为 2s,也就是说并行计算的效率和加速是以计算时间最慢为准的。这就

是典型的负载不平衡导致的。PFELAC 软件中利用的图论算法的两个目标函数,

第一为通信量最小,第二即为负载均衡,使得在每个处理机上的计算负载处于一

个最优平衡状态。从而保证了出现以上某个处理机影响整个计算时间的问题的出

现。

5.4、 支持多种类型多种方式数据通信方式

子区域通信系统支持进程间任意数据通信交换,包括整型、实型、数组、结

构体、指针以及字符型等数据类型的通信和交换,具体需要根据用户的需求添加。

用户只需要通过调用数据交换函数即可以实现进程间的数据交换。进程间的交换

包括用户自定义进程间的数据交换、通信域内相邻进程间的数据交换以及通信域

内单个进程对多个进程间的数据交换。

图 5-1 任意进程间数据通信交换

上图中,左图为任意两个进程 A 和 B 间的数据交换,中图中 A、B、C 三个

进程表示三个相邻进程,也就是之前提到的具有共有单元的进程,它们之间需要

频繁的数据交换,任意两个进程间都可以根据共有单元信息交换所需数据。右边

图为进程 A 作为主进程,与其他从进程间交换数据,分配不同数据到不同进程

进行计算。

Page 17: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

5.5、 点对点通信

在对等模式的并行程序中,各进程通过接口程序直接读取对应进程的计算模

型相关信息,而不再通过从主进程中接受获得该信息。求解中各进程之间需要人

为干预的通信只在单元区域边界间发生。

为了使计算实现快速高效的并行计算,我们采用了 MPI 点对点通信技术。所

谓的点对点通信技术是指,一对进程之间进行消息收发操作,一个进程发送消息,

另一个进程接收消息,此外该系统支持主从通信和对等通信两种通信模式,用户

可以通过主进程分配任务到子进程,也可以在进程之间实现完全对等通信交换数

据。

5.6、 开放源代码,可扩展性强

Pfelac 软件是开放并行源代码的并行有限元程序,用户可以根据自己的需求

修改并行有限元计算程序,也可以方便的集成自己的算法、单元计算、本构方程、

求解器、前处理数据等,具有极大的灵活性和适应性。对于重大科学研究问题不

需要学习二次开发等繁琐操作。用户可以根据自己的问题,实时的修改脚本或源

代码完成不同的载荷模式、边界条件以及算法的计算。

5.7、 完全自主知识产权

元计算公司具有完全自主知识产权的国产并行有限元计算软件、先进的适

应于数值计算的自主并行算法、自主的通信管理、内存管理算法以及源代码研发,

其对于发展我国高性能能力具有极大的促进作用,增强了我国对国外大规模

CAE 软件技术的反封锁能力。

5.8、 强兼容性

元计算公司研发的并行有限元计算软件在GNU编译器和 INTEL编译器以及

济南国产申威处理器的编译器上都通过了正确性测试。适应 INTEL MPI、

MPICH、OPENMPI 以及 MVAPICH 等并行通信库接口的计算。实践说明其对不

Page 18: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

同的编译器和处理器都是具有强大的兼容性的。

6. 典型应用案例

6.1、 弹性波在均匀介质中的传播

如图 6-1 所示, 一个内径 0.5m, 外径 5m 的弹性球环, 内球面作用脉冲压

强 p 后,产生弹性波。球环外为某种均匀介质。忽略材料自重影响,求弹性波在

介质中的传播过程。弹性球环的弹性模量为 210 /100.1 mN , 泊松比 3.0 , 密

度 3/3000 mkg , 脉冲压强 2/100 mNp 。

图 6-1、弹性波问题的求解区域截面图及其尺寸

这里我们取计算区域为一个半径为 500m 的大球。

6.1.1、 计算规模及结果

采用六面体网格剖分,规模为:节点数=95418,六面体单元总数=94080,

Page 19: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-2 弹性波问题中 t=0.2s 时的位移场云图

图 6-3 弹性波动问题中 t=0.6s 时的位移场云图

Page 20: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

6.2、 三维土坝自由面渗流问题

在各向同性土层上有一个水坝, 截面如图 6-4,土坝高为 17.0m,上游边坡

系数=3,下游边坡系数=2,上游水深 H1=15.0m,下游水深 H2=2.0m,坝顶

宽 6.0m,坝长 100m. 确定浸润面和逸出线的位置,求出均质坝体中的稳定渗流

场。

图 6-4 土坝渗流问题的求解区域剖面图

6.2.1、 计算规模及结果

采用六面体网格剖分、规模为:节点数 302211,六面体单元总数为 288000。

图 6-5 土坝渗流问题的并行分区效果图

Page 21: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-6 土坝渗流问题的第 1 个迭代步计算结果

图 6-7 土坝渗流问题的第 20 个迭代步计算结果(稳定结果)

6.3、 三维热固耦合问题

如图 6-8 所示轴对称机械零件,厚度为 2.8m, 横截面尺寸如图 6-9。弹性模

量 29 /100.1 mNE , 泊松比 3.0v , 热膨胀系数 5100.1 , 材料密度为

3/7000 mKg 。零件材料的导热系数 k = 1.0, 零件内没有内热源。零件内侧圆

环表面温度为 50,外侧圆环表面温度为 20。内侧圆环表面的变形完全被约束,

求在此情形下零件的温度 T 分布、变形(位移)u 和应力 。

Page 22: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-8 热固耦合问题的机械零件图

图 6-9 热固耦合问题的求解区域及其尺寸

Page 23: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

6.3.1、 计算规模及结果

采用六面体网格剖分,规模为:节点数 105028,八节点六面体单元总数为

92500.

图 6-10 热固耦合问题的并行分区效果图

图 6-11 热固耦合问题的温度分布云图

Page 24: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-12 热固耦合问题第三主应力云图

6.4、 A-Φ方法求解 Maxwell 方程:线性正弦稳态涡流问题

TEAM Workshop 问题 7是用来检验三维线性正弦涡流场分析方法计算精度

的实验模型,其结构如下图 6-13 和图 6-14 所示。该模型由带有方孔的铝板和

载流线圈组成,线圈中通有随时间按正弦规律变化的电流,其幅值为 2742 安匝。

铝板的电导率为 17 )(10526.3 m . 这是一个开域问题,计算时,将开域问题

归结为是够大的求解域逼近(例如取为线圈尺寸的 10 倍大小的空间)。

Page 25: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-13 TEAM 7 问题的几何模型 I 及其尺寸

图 6-14 TEAM 7 问题的几何模型 II 及其尺寸

6.4.1、 计算规模及结果

采用四面体和六面体两种剖分组合,规模为:节点总数为 35554,单元总数

117013。

Page 26: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-15 TEAM 7 问题的并行分区效果图

图 6-16 TEAM 7 问题的磁通密度分布曲线

Page 27: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-17 TEAM 7 问题体表为 z=0.019m 处的涡流矢量分布图

6.5、 实际工程防浪堤弹性与塑性计算

图 6-18 防浪堤分区图

6.5.1、 计算规模与结果

采用四面体网格剖分,四面体单元 2 亿节点,近十亿网格规模的防浪堤模型。

Page 28: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-19 防浪堤模型

位移场结果图如下:

图 6-20 防浪堤模型整体位移场分布图

弹塑性计算结果:

图 6-21 防浪堤模型弹塑性位移场

Page 29: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

图 6-22 防浪堤模型弹塑性计算塑性变形分布

为验证对实际的工程中比较复杂模型的处理能力,我们针对工程实际模型及

防浪堤模型也进行了计算效率测试:

首先,我们分区软件将防浪堤模型分别分割为 4000、6000、8000 和 10000

个子区域;然后用并行计算软件一次对其进行计算。具体计算时间如下表所示:

表 6-1 规模为 10 亿四面体单元的并行计算测试

核数(分区数) 时间(s) 加速比 效率(%)

4000 1229.65 1 1

6000 977.78 1.26 84

8000 767.461 1.60 80

10000 749.12 1.64 66

①时间分析:

在计算规模不变的情况下,核数(分区数)对并行计算总时间的影响:

图 6-23 防浪堤模型并行计算时间随核数(分区数)变化曲线图

Page 30: PFELAC 高性能计算概述 - CAScscgrid.cas.cn/yhfw/kxgcsq/201611/W020170203374330438723.pdf前处理分区模块:该模块又分成四个元件程序:partition、getpart、spart、

②加速比分析:

在计算规模不变的情况下,核数(分区数)对并行计算加速比的影响:

图 6-24 防浪堤模型加速比随核数(分区数)变化曲线图

③效率分析:

在计算规模不变的情况下,核数(分区数)对并行计算效率的影响:

图 6-25 防浪堤模型并行效率随核数(分区数)变化曲线图