在类似gmres或bicgstab的方法中,使用另一种krylov方法作为前置条件可能会很有吸引力。毕竟,它们很容易以无矩阵的方式并在并行环境中实现。例如,一个库尔使用未经预处理的bigcstab的几次迭代(约5次)作为gmres的预处理器,或krylov方法的任何其他组合。在文学界,我没有太多参考这种方法,所以我希望这是因为它不是很有效。我想了解为什么效率不高。在某些情况下,这是一个不错的选择吗?
在我的研究中,我对在并行(MPI)环境中解决3D椭圆问题感兴趣。
在类似gmres或bicgstab的方法中,使用另一种krylov方法作为前置条件可能会很有吸引力。毕竟,它们很容易以无矩阵的方式并在并行环境中实现。例如,一个库尔使用未经预处理的bigcstab的几次迭代(约5次)作为gmres的预处理器,或krylov方法的任何其他组合。在文学界,我没有太多参考这种方法,所以我希望这是因为它不是很有效。我想了解为什么效率不高。在某些情况下,这是一个不错的选择吗?
在我的研究中,我对在并行(MPI)环境中解决3D椭圆问题感兴趣。
Answers:
有趣的是,这个问题昨天出现了,因为我昨天才完成一个实现此目的的实现。
刚开始时,请告诉我,虽然我的教育背景是科学计算,但自毕业以来我已经做过的所有工作,包括目前的博士学位。工作,一直在计算电磁学中。因此,我想我们的背景有些相似,因为您似乎也在研究物理学(基于您的个人资料)。
首先,正如Guido Kanschat在评论中已经提到的那样,您要查找的内容称为Flexible GMRES或FGMRES。参考文献,包括伪代码,在[1]中。虽然有时我会发现SIAM的数字论文有些难以阅读,但[1](和Saad的大多数其他工作,包括出色的[B1],显然可以免费在线获得)与众不同;本文是一本引人入胜的读物,写得非常清晰,并提供了一些不错的示例和应用建议。
FGMRES易于实施,尤其是如果您已经拥有可以正常使用RIGHT的GMRES。注意此处的关键字RIGHT-如果您具有LEFT预处理的GMRES,即您习惯于求解MAx = Mb,则必须进行一些修改。比较[B1,算法9.4 on pg。282]至[B1,算法9.5,pg。284]。您也可以在[B1,算法9.6,页。287],但我真的鼓励您阅读[1],因为它简短,写得很好并且仍然有许多有趣的细节。
如果需要,FGMRES基本上允许您为每个迭代切换预处理器。其中一个应用程序是,您可以使用一些预处理器,当您离解决方案较远时,该预处理器会很好地工作,然后在您靠近解决方案时切换到另一个预处理器。我尚未详细阅读的[2]似乎在讨论与此类似的内容。
但是,在我的案例中,最有趣的应用是您可以使用(预处理的)GMRES作为FGMRES的预处理器。这就是FGMRES典型名称“内外GMRES”背后的原因。在此,“外部”是指FGMRES求解器,它(作为前置条件)使用“内部”求解器。
以我为例,这确实很棒。在内部循环中,我“解决”了问题的简化表示。就其本身而言,此解决方案对于我们的使用而言是非常不准确的,但作为前提条件,它的作用绝对出色。注意“ solve”周围的“”-无需运行内部求解器进行收敛,因为您仅在寻找粗略的近似值。在我的情况下,我从使用151次迭代(每次花费64秒)到72次迭代(每次花费79秒)(我在内部GMRES中使用固定的5次迭代)开始。这总共节省了一个小时,而且没有准确性的损失,并且几乎没有编码工作,因为我们已经有了可以正常运行的GMRES,而我们只是将其递归进行了。
对于这些东西的一些应用,展示了潜在的性能,请参见[3](实际上使用了三级FGMRES,所以FGMRES以FGMRES作为内部,而GMRES作为内部-内部)和[4],可能也是如此特定于您的应用程序,但包含几个有趣的测试用例。
[1] Y. Saad,“一种灵活的内外预处理GMRES算法”,SIAM J. Sci。比较卷 14号 2,第461-469页,1993年3月。http: //www-users.cs.umn.edu/~saad/PDF/umsi-91-279.pdf
[2] D.-Z. 丁R Chen和Fan Fan,“用于开放物体散射的MLFMM分析的SSOR预处理内外柔性GMRES方法”,《电磁学研究进展》,第1卷。89,第339–357页,2009年。http: //www.jpier.org/PIER/pier89/22.08112601.pdf
[3] TF Eibert,“通过表面积分方程和混合有限元边界积分技术计算出的一些散射结果,通过多级快速多极方法得到了加速”,IEEE天线和传播杂志,第1卷。49号 2,第61–69页,2007年。
[4]Ö。Ergül,T。Malas和L.Gürel,“使用迭代内外方案结合普通和近似多级快速多极算法解决大规模电磁问题”,《电磁研究进展》,第1卷。106,第203-223页,2010年。http: //www.jpier.org/PIER/pier106/13.10061711.pdf
[B1] Y. Saad,稀疏线性系统的迭代方法。SIAM,2003年。http: //www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf