两级分区两次缩聚并行计算系统开发方法及并行计算系统的制作方法

文档序号:8257989阅读:480来源:国知局
两级分区两次缩聚并行计算系统开发方法及并行计算系统的制作方法
【技术领域】
[0001] 本发明涉及一种超级计算机应用技术领域的设计方法,具体是一种两级分区两次 缩聚并行计算系统开发方法。
【背景技术】
[0002] 虽然近年来我国在超级计算机研制上取得了许多重要突破,但在高性能计算软件 开发和应用上却远远滞后于硬件的发展。为了满足国内科学研宄和工程分析的需要,我国 每年都要为国外的大型商业软件支付昂贵的使用费用。在有限元分析领域,国外著名的大 型商业化软件如Ansys,Abaqus,Ls-Dyna和Adina等均已发布并行计算版本。但由于种种 原因它们对中国用户能够操控的最大并行求解核数进行了一系列限制,致使我国超级计算 机的高效计算性能不能得到充分的发挥。此外,这些商业软件在一些由我国完全独立自主 研发的超级计算机上还存在不能正常安装和运行的问题。对于超级计算机来说,缺乏合适 的应用软件就无法开展相应的应用,也就无法吸引用户使用超级计算机高效地解决科学和 工程中面临的大规模计算难题。我国高性能计算软件开发和应用远远滞后于硬件发展的现 状不仅导致了现有的超级计算机资源无法充分应用到国民经济建设、高科技研宄和国防安 全中去,同时也限制了我国高性能计算自身的发展。因此,如何高效地开发出有限元分析并 行计算软件以有效拓宽超级计算机的应用范围成为当务之急。
[0003] 经对现有技术文献的检索发现:陈玉震等在计算力学学报,2014, 31 (2) : 217-222 上发表文章"基于开放式结构有限元系统SiPESC. FEMS的动力时程分析通用算法构架",该 文基于SiPESC. FEMS软件采用面向对象的程序设计方法研发了一种结构动力分析通用算 法构架。虽然利用该构架进行并行计算软件开发可在一定程度上提高代码的重用性和可维 护性,但实际操作起来却存在很大的难度。首先SiPESC. FEMS的体系结构过于庞大,因此要 在短时间内弄清程序各部分的功能和子例程间的调用关系并非易事,而要在此基础上对程 序进行修改或添加新功能的难度则更大。其次,SiPESC. FEMS目前实现的功能还十分有限, 故在它的基础上开发的并行计算软件只适用于求解特定领域和特定类型的有限元分析问 题。

【发明内容】

[0004] 针对现有技术中的缺陷,本发明的目的是提供一种两级分区两次缩聚并行计算系 统开发方法。该方法不但能够为各个学科和领域的有限元分析问题提供并行解决方案,而 且能够提高有限元分析并行计算软件开发的质量和效率。
[0005] 根据本发明提供的一种两级分区两次缩聚并行计算系统开发方法,包括如下步 骤:
[0006] 第一步,根据求解问题的数学方程表达式通过有限元程序自动生成系统FEPG产 生有限元分析串行计算所需的全部程序源代码;
[0007] 第二步,去除所述全部程序源代码中的求解线性方程组模块,并基于区域分解法 对所述全部程序源代码中的剩余模块进行并行化改造;
[0008] 第三步,基于两级分区和两次缩聚策略开发并行求解线性方程组模块,并与第二 步中并行化改造后的所述剩余模块实现无缝集成,得到集成后的系统;
[0009] 第四步,对所述集成后的系统进行编译和调试,生成有限元分析并行计算可执行 程序。
[0010] 优选地,所述第一步中,所述全部程序源代码由四个模块组成:单元分析模块、形 成系统平衡方程模块、求解线性方程组模块以及计算应变应力模块;
[0011] 所述单元分析模块,用于根据单元的类型和插值函数实现单元刚度矩阵和质量矩 阵的计算;
[0012] 所述形成系统平衡方程模块,用于通过组集单元刚度矩阵和外部载荷向量完成系 统总体刚度矩阵和总体外部载荷向量的计算以形成系统平衡方程;
[0013] 所述求解线性方程组模块,用于通过求解系统平衡方程得到系统各节点处的位移 值;
[0014] 所述计算应变应力模块,用于根据求得的位移值实现系统应变、应力的计算。
[0015] 优选地,所述第二步中,所述基于区域分解法对剩余模块进行并行化改造,具体包 括步骤:并行计算环境的添加、各子区域节点的重新编号以及程序数据传递方式的改变; 其中:
[0016] 所述并行计算环境的添加,是利用消息传递接口 MPI初始化和退出指令将串行程 序转换成并行程序;
[0017] 所述各子区域节点的重新编号,是将每个子区域的节点编号映射到从1开始的连 续正整数集上;
[0018] 所述程序数据传递方式的改变,是指通过将不同子列程间的数据传递方式由文件 传输改为函数接口参数传输。
[0019] 优选地,所述第三步中,所述两级分区策略,是通过两级剖分实现的,具体为:
[0020] 首先将结构有限元网格并行剖分为M个一级子区域,然后再将每个一级子区域进 一步独立地剖分为N个二级子区域;其中,为与多核分布式并行计算环境相适应,M等于并 行计算每次启动的节点机总数,N等于每个节点机的处理器内核总数。
[0021] 优选地,所述第三步中,所述两次缩聚策略,是通过依次在二级子区域和一级子区 域上应用舒尔补方法实现缩聚过程的,具体为:
[0022] 首先同时独立形成各二级子区域平衡方程,并经缩聚消去各二级子区域内部自由 度;然后通过将同一节点机内所有二级子区域界面方程组集以形成相应一级子区域平衡方 程;再经缩聚消去各一级子区域内部自由度,得到各一级子区域仅与边界自由度相关的界 面方程。
[0023] 根据本发明提供的一种并行计算系统,所述并行计算系统是通过权利要求1至5 中任一项所述的两级分区两次缩聚并行计算系统开发方法得到的。
[0024] 与现有技术相比,本发明具有如下的有益效果:
[0025] (1)能够为各个学科和领域的有限元分析问题提供并行解决方案,从而突破了目 前专业软件和商业软件只适用于求解特定领域和特定类型问题的限制。由于FEPG是一个 通用的有限元程序自动生成系统,因此在它的基础上开发的并行计算程序适用于求解各个 学科和领域的有限元分析问题。
[0026] (2)可以减少大量繁琐复杂的编程工作,从而有效提高有限元分析高性能计算软 件开发的质量和效率。用户只需根据求解问题的数学方程表达式就可通过FEPG平台自动 生成有限元分析串行计算所需的全部源代码,然后基于区域分解法对其进行并行化改造就 能高效实现并行计算软件的开发。
[0027] (3)能够实现任务级的粗粒度并行,从而有效提高并行程序的执行效率。基于区域 分解法实现对串行程序的并行化改造后,除了界面方程求解外,其余大部分计算任务如:子 区域单元刚度矩阵的计算、总体刚度矩阵和总体外部载荷向量的组集、缩聚以及内部自由 度的回代等均可独立完成,因此系统具有较高的并行度。
[0028] (4)能够实现节点内和节点间通信的分离,从而有效提高并行程序的通信效率。基 于两级分区和两次缩聚策略开发的并行计算系统在并行计算时能够将大量局部通信限制 在各节点机内部,并确保各节点机只有一个进程参与全局通信。这就实现了节点内与节点 间通信的分离,减少了进程间通信和同步的开销,从而有效提高了系统通信效率。
【附图说明】
[0029] 通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、 目的和优点将会变得更明显:
[0030] 图1为本发明实施例中的总体实现流程图;
[0031] 图2为本发明实施例中的节点重新编号实现流程图;
[0032] 图3为本发明实施例中的数据传递方式改变实现流程图;
[0033] 图4为本发明实施例中的两级分区示意图;
[0034] 图5为本发明实施例中的两次缩聚示意图。
【具体实施方式】
[0035] 下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术 人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术 人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明 的保护范围。
[0036] 本发明提供一种并行计算系统,该并行计算系统是通过两级分区两次缩聚并行计 算系统开发方法得到的,所述两级分区两次缩聚并行计算系统开发方法,包括四个步骤: (1)根据求解问题的数学方程表达式通过有限元程序自动生成系统(FEPG,Finite Element Program Generator)产生有限元分析串行计算所需的全部程序源代码;(2)去除程序源代 码中的求解线性方程组模块,并基于区域分解法对剩余模块(单元分析模块、形成系统平 衡方程模块以及计算应变应力模块)进行并行化改造;(3)基于两级分区和两次缩聚策略 开发并行求解线性方程组模块,并与上一步并行化改造后的模块实现无缝集成;(4)对集 成后的系统进行编译和调试,生成有限元分析并行计算可执行程序。本发明不但能够为各 个学科和领域的有限元分析问题提供并行解决方案,而且能够提高有限元分析并行计算软 件开发的质量和效率。
[0037] 具体地,本实施例中的总体实现流程如图1所示。一种两级分区两次缩聚并行计 算系统开发方法总体流程主要包括:首先根据求解问题的数学方程表达式通过FEPG产生 有限元分析串行计算所需的全部程序源代码;接着去除程序源代码中的求解线性方程组模 块,并基于区域分解法对剩余模块进行
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1