ILU(k)预处理的位兼容共享存储器并行化及分布存储器位兼容推广
A Bit-Compatible Shared Memory Parallelization for ILU(k) Preconditioning and a Bit-Compatible Generalization to Distributed Memory
摘要:
ILU(k)是稀疏、非对称系统的迭代线性求解器的常用预处理器。它通常是为了它的稳定性。我们提出了TPILU(k),第一个有效的并行ILU(k)预条件,保持这一重要的稳定性。甚至更好的是,TPILU(k)预处理产生与顺序ILU(k)预处理位兼容的答案。在性能方面,TPILU(k)预处理被证明运行更快,只要更多的核心提供给它-同时继续作为顺序ILU(k)的稳定。这与一些竞争方法形成对比,如果线程并行度提高太多,这些方法可能会变得不稳定。如果Block Jacobi ILU(k)在应用中失败,则可以用TPILU(k)代替,以保持良好的性能,同时还实现完全的稳定性。作为进一步的优化,TPILU(k)提供了一个可选的基于水平的不完全逆方法,作为对原始ILU(k)预处理矩阵的快速近似。虽然这种增强与经典的ILU(k)不是位兼容的,但它与来自相同算法的单线程版本的输出是位兼容的。在16核计算机上的实验中,增强的基于TPILU(k)的迭代线性求解器的执行速度提高了9倍。随着我们进入众核计算时代,有效利用多核的能力将变得越来越重要。TPILU(k)在集群或网格上也表现出良好的性能。例如,新算法实现了50倍的加速与80个节点的一般稀疏矩阵的维数为160,000,是对角占优。
英文摘要:
ILU(k) is a commonly used preconditioner for iterative linear solvers for sparse, non-symmetric systems. It is often preferred for the sake of its stability. We present TPILU(k), the first efficiently parallelized ILU(k) preconditioner that maintains this important stability property. Even better, TPILU(k) preconditioning produces an answer that is bit-compatible with the sequential ILU(k) preconditioning. In terms of performance, the TPILU(k) preconditioning is shown to run faster whenever more cores are made available to it --- while continuing to be as stable as sequential ILU(k). This is in contrast to some competing methods that may become unstable if the degree of thread parallelism is raised too far. Where Block Jacobi ILU(k) fails in an application, it can be replaced by TPILU(k) in order to maintain good performance, while also achieving full stability. As a further optimization, TPILU(k) offers an optional level-based incomplete inverse method as a fast approximation for the original ILU(k) preconditioned matrix. Although this enhancement is not bit-compatible with classical ILU(k), it is bit-compatible with the output from the single-threaded version of the same algorithm. In experiments on a 16-core computer, the enhanced TPILU(k)-based iterative linear solver performed up to 9 times faster. As we approach an era of many-core computing, the ability to efficiently take advantage of many cores will become ever more important. TPILU(k) also demonstrates good performance on cluster or Grid. For example, the new algorithm achieves 50 times speedup with 80 nodes for general sparse matrices of dimension 160,000 that are diagonally dominant.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。