ILU(k)预处理的位兼容共享内存并行化及其向分布式内存的位兼容推广
分布式、并行与集群计算
2011-05-13 v4
摘要
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)在集群或网格上也表现出良好的性能。例如,新算法在维度为160,000的一般稀疏对角占优矩阵上使用80个节点实现了50倍加速。
引用
@article{arxiv.0803.0048,
title = {A Bit-Compatible Shared Memory Parallelization for ILU(k) Preconditioning and a Bit-Compatible Generalization to Distributed Memory},
author = {Xin Dong and Gene Cooperman},
journal= {arXiv preprint arXiv:0803.0048},
year = {2011}
}
备注
25 pages