线性代数中的稀疏矩阵、迭代方法与快速傅里叶变换
1. 求解泊松方程的迭代步骤
在求解泊松方程时,不同的预条件子在不同网格大小下所需的迭代步骤不同。以下是在 31x31 和 63x63 网格上,以相对残差精度为 10⁻⁶ 求解泊松方程时,采用 PCG 方法结合不同预条件子的迭代步骤:
| 预条件子 | n = 31 | n = 63 |
| — | — | — |
| Jacobi | 76 | 149 |
| Block Jacobi | 57 | 110 |
| Symmetric Gauss - Seidel | 33 | 58 |
| Symmetric block Gauss - Seidel | 22 | 39 |
| SSOR (w = 1.8) | 18 | 26 |
| Block SSOR (w = 1.8) | 15 | 21 |
从表格数据可以看出,随着网格大小的增加,所需的迭代步骤也相应增加。同时,不同的预条件子对迭代步骤的影响显著,例如 Block SSOR 预条件子在两种网格大小下所需的迭代步骤都相对较少。
2. 并行化
PCG 和 GMRES 方法中最耗时的部分是系统矩阵 A 与向量的乘法以及使用预条件子 M 求解线性系统。当向量分布在连接较弱的内存中时,内积和向量范数的计算也会变得昂贵。因此,我们考虑对这三个关键操作进行并行化。
假设稀疏矩阵按块行分布在各个处理器上,相应地,向量也按块分布。虽然我们确定了数据的存储方式,但不预先固定矩阵中行和列的编号,因为这种编号会强烈影响 PCG 和 GMRES 中关键操作的并行性。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



