论文部分内容阅读
矩阵特征值问题作为线性代数的一个重要组成部分,是迅速发展的高性能计算领域中一个重要的研究问题,并在科学计算与工程领域中具有广泛和重要应用。而对称三对角矩阵特征值问题作为对称矩阵特征值求解的关键问题之一,一直是特征值计算中一个活跃的研究内容,因此很多学者提出了许多具有不同特性的算法。其中MRRR算法是近十年来发展起来的求解对称三对角矩阵特征值问题的高效和精确算法。
GPU专为密集型、高度并行化的计算而设计,CUDA技术的产生极大降低了GPU通用计算开发的难度。虽然GPU的计算能力已经很强大,但是对于具有实际意义的大规模矩阵特征值问题来说,单个GPU的计算能力还远远达不到要求,因此设计基于多个GPU的并行MRRR算法具有很大的研究和实用意义。在MRRR算法并行方面,国外已有一些研究,但至今还没有基于MPI+CUDA混合编程模型的并行MRRR算法。
本文针对特征值问题展开研究,主要研究内容如下:
1、对CUDA编程模型从硬件体系结构、软件模型等方面进行研究,并分析影响CUDA程序性能的因素。在此基础上,结合MPI消息传递模型的介绍,对MPI+CUDA混合编程模型的并行方式、适用范围及优势特点进行了深入分析。
2、通过研究支持CUDA架构的GPU多线程硬件体系结构和编程模型,并分析。MRRR算法原理、执行流程,根据GPU结构的特点,提出了适合CUDA架构的两步并行策略。并根据GPU的硬件特性,对算法进行优化,最终实现了基于CUDA的并行MRRR算法,对一万阶的矩阵进行测试,取得了20倍的加速。
3、由于单GPU的资源有限,求解的矩阵规模受到了很大限制,为了计算更大规模的矩阵,在深入研究MPI+CUDA的混合编程模式的基础上,在GPU集群上设计并实现了基于MPI+CUDA的并行MRRR算法,利用MPI进行粗粒度的任务划分;用CUDA来实现细粒度的并行。最终并行程序获得了50倍加速,进而从计算精度和计算时间上说明MRRR算法适合在MPI+CUDA混合编程模型上实现并行。