论文部分内容阅读
如何能够提前几个小时到几天时间预报空间天气不仅是空间天气研究的重要课题,也是现代科技发展和全球化对空间天气预报的重大需求。基于磁流体力学(Magnetohydrodynamic,MHD)的、以强大计算能力为基础的太阳风暴日冕行星际过程三维数值研究已经成为空间天气预报建模不可或缺的手段。其中背景太阳风是研究扰动传播、预测空间天气状况的重要基础。由于耦合了Maxwells电磁方程组和流体力学方程组,并受到·B=0的约束,背景太阳风控制方程的数值求解是一个复杂的问题。而相当大尺度的球壳计算区域及其特殊性使得数值计算难度加剧。此外,太阳风模拟和预报的近实时性,给数值计算效率提出更严格的要求。综合这些考虑,本文建立了一种新的、简洁而灵活的、快捷的太阳风模型。本文首先在六片网格的基础上,构造六面体作为网格单元,并建立了一套基础的、空间精度为二阶的有限体积计算方案。借助六片网格能很好地贴合太阳的球形表面、避免极区网格奇性的特点,我们在直角坐标系下求解方程组:采用Powell源项和双曲散度消去方法控制数值计算中的磁场散度,采用旋转矩阵简化计算公式和程序代码,采用Lax-Friedrichs、Roe等格式求近似黎曼解,采用线性最小二乘方法获得空间上的二阶精度。从测试算例和背景太阳风的模拟结果可以看出,这套计算方案不但能得到预期的空间精度,而且能较准确的捕获太阳风的基本特征和结构。然后将这套方案作为基础计算方案,用来研究三维背景太阳风的快捷模式,并且其表现将作为衡量加速模式效果的基准。本文分别从数值计算方法和计算设备两个角度对其进行加速研究。数值计算方法上,本文采用广义极小残差法(Generalized Minimum RESidual,GMRES)加LU-SGS预处理子(Lower–Upper Symmetric Gauss–Seidel)的隐式时间迭代方法。其中,GMRES是一种求解系数矩阵不对称或不正定的线性系统的迭代方法,将标准正交基所确定的子空间上的残差向量范数最小化。LU-SGS作为预处理子能将特征值聚类到单个值,从而提高GMRES的计算效率和稳定性。这种隐式方法不但计算速度快,而且不需要额外的计算量和内存来计算和存储线性系统的矩阵,非常适合我们大型的、分布式计算。由于预处理会改变控制方程的时间项,使求解的物理时间不可靠,我们还结合了双时间步的方法。与基础计算方案相比,它能把CFL条件数扩大超过100倍,将计算时间由若干天缩短至几个小时,取得30倍左右的加速比。计算设备上,利用GPU在密集型计算方面的优势,本文采用CUDA与MPI技术相结合的方式、将基础计算模型移植到多个GPU上实现。为了尽可能多得发掘异构计算设备的能力,在此考虑了基本的CUDA优化策略和负载平衡等因素。与数量相同的CPU进程并行的计算时间相比,采用多GPU方案也能取得20倍以上的加速比。