论文部分内容阅读
矩阵特征值问题是科学计算的一个重要组成部分,其研究可以追溯到一个半世纪之前.许多应用都会归结为矩阵特征值问题,例如在材料科学和化学中离散偏微分方程后就需要求解矩阵特征值问题,而这些问题的矩阵规模很容易超过百万阶.然而,这类问题的矩阵通常是稀疏的,这使得我们可以用很少的运算量计算矩阵一向量乘积.而且这类问题只计算矩阵的一部分特征值.传统的正交变换方法将会产生稠密矩阵,因此受到问题规模的限制,迭代法被广泛用于计算大规模稀疏矩阵特征值问题.因为矩阵特征值问题经常是计算瓶颈,所以研究快速收敛的迭代方法及其高效的并行实现具有重要意义。
重新启动的Arnoldi算法是求解大规模稀疏矩阵特征值问题的一类重要方法.本文用向量与子空间的夹角分析了Krylov子空间的构造特点,分析了各种带有重新正交Arnoldi过程的并行实现的计算和通信开销.在此基础上,本文提出几种带有选择重新正交的Arnoldi过程的并行实现.本文所给方法减少了不必要的判断是否重新正交的次数,从而使其具有较少的计算和通信开销。
隐式重新启动的Arnoldi算法在求解许多矩阵特征问题上是一个成功的算法.然而对于某些困难问题,如果子空间维数较小,那么隐式重新启动的Arnoldi算法收敛很慢甚至收敛不到我们想要的特征信息.从并行计算的角度看,每个进程只存储矩阵和向量的一部分,并且只承担总的运算量的一部分,因此并行计算适于通过增大子空间维数来提高Arnoldi算法收敛速度.本文提出用流水线模型并行计算隐式重新启动过程中的一系列带位移的QR分解,使得子空间维数增大后,隐式重新启动的Arnoldi算法的并行实现仍然具有较大的加速比。
精化策略具有改善Arnoldi算法收敛性的特点,其核心思想是用精化Ritz向量代替Ritz向量作为特征向量的近似.求解每个精化Ritz向量需要计算与投影矩阵相关的奇异值分解.本文根据投影矩阵具有上Hessenberg矩阵的特点,提出用Givens变换部分代替Householder变换的奇异值分解算法,从而减少了求解精化Ritz向量的运算量.此外,本文利用各个奇异值分解之间不存在数据相关性的特点,提出二级并行方法计算精化Ritz向量,降低了奇异值分解的并行实现的弱扩展性对算法总的并行性能的影响。
分块Arnoldi算法具有浮点运算效率高,对重特征值或特征值簇问题快速收敛的优点.与Arnoldi算法类似,分块Arnoldi算法要求基向量在数值上正交.本文提出一种带有重新正交的分块Gram-Schmidt正交化过程,并将之应用到分块Arnoldi算法.误差分析的结果表明本文所给算法能够保证生成的基向量的正交性达到机器精度。