Krylov 加速多重网格(使用 MG 作为预处理器)的动机如何?

计算科学 线性代数 线性求解器 多重网格 克雷洛夫法
2021-12-21 00:47:14

多重网格 (MG) 可用于求解线性系统Ax=b通过构建初始猜测x0并重复以下i=0,1..直到收敛:

  1. 计算残差ri=bAxi
  2. 应用多重网格循环以获得近似值Δxiei, 在哪里Aei=ri.
  3. 更新xi+1xi+Δxi

多重网格循环是一些平滑、插值、限制和精确粗网格求解操作的序列,应用于ri生产Δxi. 这通常是 V 循环或 W 循环。这是一个线性运算,所以我们写Δxi=Bri.

可以将此过程解释为预处理 Richardson 迭代。也就是说,我们更新xi+1xi+Bri.

Richardson 迭代是一种典型的 Krylov 子空间方法,它建议使用多重网格循环来预处理其他 Krylov 子空间方法。这有时被称为使用 Krylov 方法的“加速”多重网格,或者可以看作是 Krylov 方法的预处理器的选择。

扩展上述算法的另一种方法是采用完全多重网格 (FMG)。有关简明描述,请参阅此答案

在什么情况下,Krylov 加速 MG 优于 MG 或 FMG?

1个回答

在某些情况下,(F)MG 提供了一种具有最佳属性的算法。例如,经过适当调整的 FMG 可以在少量“工作单元”中解决一些椭圆问题,其中工作单元被定义为表达问题本身所需的计算量——在这种情况下,形成残差的操作bAx在最好的网格上。这是一种如此高效(因此难以击败)的算法,它是 HPC 基准测试的基础,旨在测量超级计算机解决实际物理问题 ( HPGMG ) 的最大容量。如果有这样的方法,当然建议使用它。

然而,在许多实际情况下,并未使用最优或有效的多重网格方法。这可能是因为

  • 对于给定的问题,这种方法是未知的或不可用的
  • 平滑器和网格间算子不足以提供教科书式的收敛
  • 粗网格求解器不精确

在这些情况下,解决方案可能会因错误而降级,而该错误不会像多重网格循环那样减少。然而,如果这个误差包含在低维子空间中,Krylov 方法可以在少量迭代中解决这个误差,因此在不完美的多重网格求解后“清理”。也就是说,如果BA有一些离群的特征值,Krylov 方法应该能够捕获相应的特征空间。

请注意,选择使用次优方法可能会导致“更便宜”的多重网格循环,以至于 Krylov 加速得到了回报。也就是说,可能存在 Krylov 加速 MG 的性能优于 MG 的问题(和计算系统)。我有兴趣找到一个具体的例子。

(感谢上面的@chris 和Matt Knepley,他在教程中提到了上面的一些内容)