让A是一个nxn稀疏矩阵,由(i,j,a)形式的m个元组的序列表示,索引为i,j(介于0和n-1之间),a为值a在基础字段F中。
在实践中,使用什么算法求解形式为Ax = b的线性方程组?请描述一下,不要仅仅链接到某个地方。
注意:
答案 0 :(得分:1)
我使用和并行化的两个主要算法是Wiedemann algorithm和Lanczos algorithm(以及GF(2)计算的它们的块变体),这两个算法都比结构化高斯消去更好。
LaMacchia-Odlyzo论文(用于Lanczos算法的论文)将告诉您您需要了解的内容。这些算法涉及将稀疏矩阵乘以一系列向量。为了有效地做到这一点,您需要使用right data structure(链接列表)来使矩阵向量的乘积时间与矩阵中非零值的数量(即稀疏度)成正比。
这些算法的并行化是微不足道的,但是优化将取决于系统的体系结构。矩阵-向量乘法的并行化是通过将矩阵分成行块(每个处理器获得一个块)来完成的,每个行块分别乘以向量。然后,将结果合并以得到新的向量。我已经广泛地进行了这些类型的计算。打破RSA-129 factorisation的原始作者花了6周的时间在16,384个处理器MasPar上使用结构化高斯消除。在同一台计算机上,我与Arjen Lenstra(作者之一)合作,用Wiedemann块在4天之内和使用Lanczos块在1天之内求解矩阵。不幸的是,我从未发表过结果!