[论文解读] A Parallel Algorithm for Calculation of Large Determinants with High Accuracy for GPUs and MPI clusters
本文提出了一种新颖的并行算法,用于在GPU和MPI集群上以任意精度计算大型行列式及其相关子式,利用经过优化的数据分布进行高斯消去法。该算法在最多168个核心上实现了近线性可扩展性,并成功计算了精度达10,000位小数的N=12,000行列式,为黎曼ζ函数零点分布提供了新见解。
We present a parallel algorithm for calculating very large determinants with arbitrary precision on computer clusters. This algorithm minimises data movements between the nodes and computes not only the determinant but also all minors corresponding to a particular row or column at a little extra cost, and also the determinants and minors of all submatrices in the top left corner at no extra cost. We implemented the algorithm in arbitrary precision arithmetic, suitable for very ill conditioned matrices, and empirically estimated the loss of precision. The algorithm was applied to studies of Riemann's zeta function.
研究动机与目标
- 解决在黎曼ζ函数研究中计算极大且病态的行列式时,对极高精度(高达10,000位小数)的挑战。
- 在集群环境中最小化跨计算节点的数据移动,同时保持高数值精度。
- 在不增加额外计算成本的情况下,不仅计算行列式,还计算给定行或列的所有子式以及所有主子式。
- 实现对高精度算术中病态矩阵进行高斯消去过程时精度损失的经验估计。
- 通过高精度行列式计算,支持Artless方法对黎曼ζ函数非平凡零点分布的研究。
提出的方法
- 该算法采用改进的高斯消去过程,在单次遍历中同时计算特定列或行的所有子式,并重用中间分解步骤。
- 通过保持递归结构,将所有主子式(左上角子矩阵的行列式)的计算扩展到无额外成本。
- 该方法在多种架构上实现并行化:GPU(CUDA)、共享内存多核(pthreads、OpenMP)以及基于消息传递的分布式内存集群(MPI)。
- 使用任意精度算术库(如cump、GMPLIB)处理最高达32,768位(10,000位十进制小数)精度的计算。
- 在MPI实现中,对负载均衡进行了仔细管理,确保在最多200个核心上实现近线性加速。
- 该算法通过最小化计算节点间的数据移动并优化数据布局以支持分块计算,减轻内存带宽压力。
实验结果
研究问题
- RQ1并行算法能否在GPU和集群架构上高效计算具有10,000位精度的大型行列式?
- RQ2对于接近奇异的矩阵,高斯消去过程中精度如何退化?所选精度是否足以获得有意义的结果?
- RQ3能否在几乎不增加额外成本的情况下,与行列式一同计算单列对应的子式?
- RQ4在分布式环境中,该算法是否随计算核心数量呈线性扩展?
- RQ5计算出的子式是否能揭示与黎曼ζ函数背景下素数分布相关的有意义模式?
主要发现
- 该算法在集群上最多168个核心时实现了近线性加速,将N=12,000矩阵的运行时间从超过18小时缩短至4小时以下。
- 对于N=12,000的矩阵和32,768位精度,144个进程的运行时间为654,120秒(约7.5天),确认了O(N³)复杂度。
- GPU实现的性能与单个CPU核心在使用任意精度算术时相当,表明此类工作负载下GPU收益有限。
- CPU时间近似符合O(N³)规律,当精度加倍时,时间增加约2.8倍(与Karatsuba乘法一致),GPU上则增加约3.95倍(与基础乘法一致)。
- 经验分析表明,所选精度足以在N=12,000规模的矩阵上保持准确性,未发现超出预期范围的灾难性精度损失。
- 计算出的子式揭示了与素数分布一致的模式,支持了Artless方法在研究黎曼ζ函数时的理论预期。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。