基于有限元方法的泊松方程求解并行加速的实现文献综述
2020-04-14 19:49:14
本次毕业设计目的在于基于有限元的方法对泊松方程进行并行加速求解,利用多图像处理器(Graphics Processing Uint,GPU)对求解的过程并行加速,并且达到加速比5-10倍,从而提高泊松方程求解的实时性。
随着现代科学技术的发展,以及GPU硬件的高速发展和不断完善,基于GPU的通用计算已然成为并行计算领域的后起之秀。有限元方法作为一种重要的数值计算方法,在热学、流体力学、电磁学、声学等学科中有着极其特殊的应用,而这些学科的相关过程中都可以用椭圆型方程来描述,其中最为典型的椭圆型方程就是泊松方程。在许多工程中泊松方程都有很广泛的应用,例如分析计算静电场、密度投影场等,它们的解析计算往往是不现实的,而且某些应用需要在很短的时间内完成泊松方程的求解,例如聚变实验装置托卡马克的位型控制,往往需要在1ms以内提供一次控制命令,而每次的控制量都需要通过求解类二维泊松方程(Grad-Shafranov,,G-S)来获得。在现代计算机上仅G-S方程的串行求解就需要1ms以上的时间,因此有必要研究快速求解泊松方程的并行算法。在分析数据方面往往需要实时传输数据,这就要求计算机处理数据的速度要很快。现存的串行有限元方法求解大规模问题时效率低下,设计并行有限元算法是提高求解效率的有效途径,有限元方法的思想很适合利用并行计算机资源设计相应的并行算法。同时更快计算速度将允许算法更加细化地剖分网格,可以提高计算精度,获得高质量的解。近年来,国内外对于这方面的研究也取得不少成效。
目前,基于有限元分析利用GPU高性能的浮点计算能力在求解由有限元生成的稀疏线性方程组的研究比较多,这主要是由于在求解方程组时数据量大而且计算比较集中,方便我们进行并行运算,提高求解的时效性。Nathan等讨论稀疏矩阵的数据结构,并探讨几种有效的基于统一计算架构(Compute Unified Device Architecture,CUDA)的高效的稀疏矩阵与向量相乘的方法;Ail等探讨针对多GPU的基于CUDA的快速共轭梯度法,并探讨共轭梯度法中最耗时的稀疏矩阵与向量相乘的操作;Joldes等研究基于GPU的以六面体单元为主的混合网格及在有限元中寻求稳定解的问题,并通过CUDA实现基于非线性力学模型的自动模拟神经外科的过程;Pawel等探讨基于GPU的三维有限元数值积分算法和计算方面的内容;Cecka等探讨基于GPU的有限元法刚度矩阵组装方法,评估每种方法的优缺点;李熙铭验证基于CUDA的复电阻率问题,并详细研究复共轭梯度法;胡耀国运用单元分组的方式计算得出有限元中的总刚矩阵,并研究基于GPU的共轭梯度法;岳小宁等提出了一个适用于CUDA的泊松方程并行算法,通过离散正弦变化,将计算任务“化整为零”剖分求解,然后所有剖分求解完成后将其“合而为一”获得最终解;戴青运用GPU并行计算能力结合几何多重网格和变分框架快速计算且设计并实现了一套可交互实时流体模拟系统;王青平等提出多重网格的算法将其引入有限单元中来快速计算线性方程组。从以上国内外的研究结果来看,利用GPU高性能计算求解由有限元法解泊松方程并行加速在许多实际工程应用需要快速获得解析解中是非常有研究必要的。
{title}
2. 研究的基本内容与方案
{title}一、研究的基本内容:
(1)利用有限元方法对二维泊松方程进行求解。
(2)掌握CUDA架构,同时了解且掌握GPU的性能,学习如何进行CUDA的编程。
(3)由于本次要实现的是对二维的泊松方程求解过程进行并行加速,所以必须要研究并行算法的设计等相关事项。
(4)研究学习本次并行算法中要用到的多重网格法,多重网格法是用来来对由有限元方法产生的方程组的快速求解的方法。
二、技术方案