论文部分内容阅读
几乎所有的科学和工程领域以及越来越多的其他领域,正在用计算科学作为他们所在学科上进行深入研究的关键工具。日益增长的计算能力提供了前所未有的解决复杂方程、模拟自然和人为的复杂处理和可视化数据的能力。随着计算能力的迅速提高,计算工具、程序库和计算范式本身也在向前推进。在这样的环境下,即使是经验丰富的计算科学家和工程师可以很容易地发现自己落后于变革的步伐,他们需要重新设计和返工他们的代码以支持下一个计算机体系结构。 为了降低科学家和工程师使用科学计算工具的难度,满足科学计算的新需求,需要一种面向新型开发模式的框架软件。SC_Tangram正是为解决上述问题而开发的高性能计算框架,其具有如下特性:有运行时的并行支撑,可以大幅度降低编程难度,加速应用的开发和移植,SC_Tangram建立在当前超级计算机主流的并行编程模型之上,如Charm++,对运行时的数据通信、容错、负载均衡等高性能计算相关技术进行封装,为应用领域专家屏蔽超级计算机体系结构和并行技术的复杂性[30]。 SC_Tangram框架的并行驱动组件叫PUGH,它提供了框架的均匀网格的并行驱动支持。本文着眼于另一种被广泛应用的网格类型——非结构网格,致力于在SC_Tangram框架中实现非结构网格的并行驱动组件,以扩展SC_Tangram框架的适用范围,为有限元法提供框架底层的并行支撑。 有限元法现在已经被广泛应用于固体力学、流体力学、电磁学、热传导、声学等领域,可求解各类单元构成的弹性、黏弹性和弹塑性问题,各类场分布问题等[26]。随着计算机技术的迅猛发展,有限元法已成为解决各种问题的有力手段,很多国家开发了大型的有限元软件。 有限元法首先采用非结构化网格对模型进行离散。非结构网格可以很方便地剖分任意形状的区域,具有复杂区域适应性好、局部加密灵活和便于自适应的优点,能很好地模拟自然边界及复杂的水下地形,提高边界模拟精度,这对结构化网格而言这是很难实现的[27]。 本文基于并行框架软件SC_Tangram,实现了非结构网格组件及其配套的IO组件,提供底层的并行支撑,并且针对研发中发现的框架的不足之处做了分析和改进。主要工作如下: 第一,分析了框架目前的整体结构,介绍了框架的开发理念和框架的执行流程。分析了目前框架内仍然存在的问题:flesh组件和thorn组件的强耦合。这个问题又可以细分为三个方面的耦合:初始化的耦合,归约通信的耦合以及ci文件的耦合。最后针对这些问题本文提出了相应的解决方案:flesh内新增注册函数,基础组件添加辅助类以及对CST工具的扩展,并在框架中得已实现。 第二,根据非结构网格的特点以及SC_Tangram框架的组件化开发理念,设计并实现了非结构网格组件“Mesh”,以及为非结构网格组件定制的基础IO组件。首先介绍了非结构网格组件的设计,重点在MeshGH数据结构,MeshGH数据结构与flesh组件的cGH数据结构的链接关系,以及组件的整体流程。其次介绍了组件的具体实现方案,主要从组件的初始化过程和组件的迭代过程介绍。 第三,在SC_Tangram框架上开发了基于非结构网格的应用软件,并且在该应用上做了组件的正确性、扩展性、IO等方面的测试。证明了该组件确实可以成为SC_Tangram框架内新的基础架构组件,可以满足上层应用层的开发需求。