论文部分内容阅读
科学计算对计算机的计算能力的需求是无止境的,随着计算机硬件的飞速发展,计算机的运行速度已从每秒几万次到每秒百万甚至千万上亿次。算法也相应地由串行的算法发展到适合大规模并行计算机的并行算法。计算规模的扩大带来了许多新的问题。首先,并行计算机的体系结构要求相应的算法能充分挖掘计算能力,促进了并行计算方法的研究;其次,大规模的数值计算对于计算方法的稳定性和并行性提出了更高的要求;再次,大多数二阶偏微分方程(组)离散后都是一个三对角(或块三对角)线性方程组。基于上述原因,本文对偏微分方程数值解法进行了研究,提出了求解二阶偏微分方程的一种解耦并行算法及一种新的并行迭代算法,并通过实验分析验证了该算法的有效性。具体工作如下:
首先,针对在Cluster工作环境(分布式并行机)下并行计算全局通信量较大的问题以及块三对角线性方程组无法直接并行求解的事实,本文利用矩阵的LU分解,提出了求解块三对角线性方程组的解耦并行算法,该算法主要有三个步骤。首先,主处理器对大型块三对角线性方程组进行解耦预处理,然后将处理所得的2n个小型线性方程组发送到2n个分处理器上;其次,各分处理器接收对应的线性方程组并对接收到的小型线性方程组利用追赶法进行直接求解,并将计算结果发送到主处理器;最后,主处理器接收计算结果,并根据接收到的结果计算出原大型方程组的解。
其次,鉴于直接求解过程中全局通信量比较大和迭代求解过程中局部通信次数较多的问题,本文将直接求解法和迭代求解法进行了有机的结合,提出了一种新的求解块三对角线性方程组的迭代并行算法,该算法有三个主要步骤,首先对迭代矩阵进行变形,将迭代矩阵变成适合直接法求解的形式,然后用高斯消去法和cannon算法对迭代矩阵进行直接并行求解,最后用迭代法对迭代式进行并行求解。通过与原有算法对比,该算法具有通信量小,迭代次数少的优点。
最后,对本文提出的两种算法进行了编程实现,实验结果证明了本文提出的算法具有较好的并行性,且处理器间通信量较少。