论文部分内容阅读
在对自然科学与社会科学中诸多实际问题进行数值模拟时,最终大都是归结为稀疏线性方程组的求解问题。例如:在结构设计、数值天气预报、油气资源探测、数值风洞、恒星大气分析与核爆模拟等领域,常利用偏微分方程作为数学模型,而在偏微分方程的离散求解中,稀疏线性方程组扮演着十分重要的角色。此外,稀疏线性方程组在数学规划、网络分析、经济分折、离散Markov链等领域中也有着重要的应用。同时,伴随着模拟问题规模的不断增大,稀疏线性方程组求解时间所占的比重也越来越大,在有些应用领域中,其比重已占到了近80%之多。正是由于稀疏线性方程组的求解既特别重要,计算又非常耗时,其计算量常为O(n2)甚至更多,因此众多的科研机构与科学工作者投入了大量的人力和物力来进行研究。特别地,并行计算机系统的出现,各种可扩展并行求解技术的研究更是如火如茶,使得有更多更新的算法层出不穷。目前,采用多核CPU、众核MIC与GPU混合的异构并行计算环境正逐步成为大型并行计算环境的主流,因此,研究适合混合的异构并行计算环境的大规模稀疏线性方程组的高精度、高效、可扩展并行求解算法十分必要。Gaussian Belief Propagation(GaBP)算法是一种针对对称对角占优线性方程组的迭代算法,它是基于递归更新的概率推理算法,具有低计算复杂性和高并行性。正是由于GaBP算法的这两个性质,它很适合用来处理大规模稀疏线性方程组。GaBP算法不同于经典的迭代算法,也不同于Krylov子空间算法,GaBP算法对于对称对角占优线性方程组的求解具有良好的收敛性。通过研究经典GaBP算法,实现了同步和异步GaBP算法程序设计和计算实验,并对结果进行了系统的分析。本文旨在深入研究求解大规模稀疏线性方程组的高性能的GaBP的并行算法,并取得了如下创新性研究成果。首先,研究了求解线性方程组的迭代加速方法和预处理方法,提出了多种的预优处理与迭代加速的GaBP优化算法,迭代加速的GaBP优化算法提高了迭代计算的求解速度,比经典GaBP算法有更快的迭代收敛速度,预优GaBP算法拓展了GaBP算法的适应性,让预优GaBP算法可以适应于不完全对称对角占优的线性方程组的求解:其次,基于并行计算环境,开展并行计算性能研究。其中,研究了各种稀疏矩阵存储方法,深入挖掘GaBP算法的特性,提出了两种的稀疏矩阵存储方法,从而降低算法的空间复杂度,并提高了算法的计算速度;研究了GPU、MIC众核计算机系统下的并行算法的实现和并行优化策略,开发了多核CPU、众核GPU和MIC下的GaBP并行程序,提出了各种并行环境的GaBP并行算法的优化策略和实现方法:研究了多核并行算法的实现和并行优化策略,进一步挖掘GaBP算法的并行特性,提出了动态负载均衡的多核并行GaBP算法,实验结果表明动态负载均衡的多核并行GaBP算法有很好的加速比和更高的执行效率。最后,研究了MPI+OpenMP混合并行算法的实现和并行优化策略,给出了大规模稀疏线性方程组求解的MPI+OpenMP混合GaBP并行算法,针对三对角线性方程组求解下的一般稀疏线性方程组求解的MPI+OpenMP混合编程的GaBP并行算法进行的迭代计算优化和数据通信的优化,给出了三对角线性方程组求解的高可扩展性的MPI+OpenMP混合编程的GaBP优化并行算法,并且对应于三对角线性方程组求解的GaBP并行算法,给出了大规模带状线性方程组求解的MPI+OpenMP混合编程的GaBP并行算法和实现方法。