我目前正在研究ODE集成的并行方法。有很多新旧文献描述了各种各样的方法,但是我没有发现任何有关该主题的最新调查或概述文章。
Burrage着有这本书[1],但是它已经有20多年的历史了,因此没有涵盖许多更现代的想法,例如超现实算法。
[1] K. Burrage,常微分方程的并行和顺序方法,克拉伦登出版社,牛津,1995年
我目前正在研究ODE集成的并行方法。有很多新旧文献描述了各种各样的方法,但是我没有发现任何有关该主题的最新调查或概述文章。
Burrage着有这本书[1],但是它已经有20多年的历史了,因此没有涵盖许多更现代的想法,例如超现实算法。
[1] K. Burrage,常微分方程的并行和顺序方法,克拉伦登出版社,牛津,1995年
Answers:
我没有最近的概述文章,但我积极参与PFASST算法的开发,因此可以分享一些想法。
我知道三种大致的时间并行技术:
跨方法并行化的方法通常执行时非常接近规范,但不会超出少数(时间)处理器的范围。通常,它们比其他方法相对容易实现,如果周围有几个额外的内核并且正在寻找可预测的适度加速,则它们是一个好选择。
跨时域并行化的方法包括Parareal,PITA,PFASST。这些方法都是迭代的,并且包括廉价(但不准确)的“粗”传播器和昂贵(但准确)的“精细”传播器。它们通过并行地并行评估细传播者以改善使用粗传播者获得的串行解决方案来达到并行效率。
Parareal和PITA算法在并行效率:上存在一个相当不幸的上限,其中是在整个域中获得收敛所需的迭代次数。例如,如果您的Parareal实现需要10次迭代才能收敛,并且您正在使用100个(时间)处理器,那么您希望获得的最大加速将是10倍。PFASST算法通过将时间并行迭代与频谱延迟校正时间步长方法的迭代进行混合,并将完全近似方案校正合并到空间/时间离散化的层次结构中,从而放松了这一上限。
所有这些方法都可以玩很多游戏以尝试加快速度,似乎这些跨领域技术的性能取决于您要解决的问题以及哪些技术可以加快粗略的处理速度。传播器(粗网格,粗化算子,粗化物理等)。
一些参考(另请参见论文中列出的参考):
本文演示了如何在各种方法之间并行化各种方法: 高阶显式Runge-Kutta方法,外推法和递延校正方法的理论比较;凯奇森和瓦希德。
本文还展示了一种跨方法并行化的好方法,并介绍了RIDC算法:并行高阶积分器;克里斯特利布,麦当劳,王。
本文介绍了PITA算法:一种用于加速非线性结构动力学问题求解的时间并行隐式方法;Cortial和Farhat。
关于Parareal的论文很多(只是Google)。
这是一篇有关Nievergelt方法的论文:一种并行时间积分的最小通信方法;巴克。
本文介绍了PFASST:一种针对偏微分方程的有效的时间并行方法;埃米特和奴才;
这篇论文描述了PFASST的巧妙应用:大型时空并行N体求解器;Speck,Ruprecht,Krause,Emmett,Minion,Windel和Gibbon。
尽管此帖子现在已有两年历史了,以防万一有人偶然发现它,让我简要介绍一下:
马丁·甘德(Martin Gander)最近写了一篇不错的评论文章,它给出了该领域的历史观点,并讨论了许多不同的PINT方法:http : //www.unige.ch/~gander/Preprints/50YearsTimeParallel.pdf
现在,还有一个社区网站,其中列出了很多参考资料,并提供了不同方法的描述:http : //www.parallel-in-time.org/
特别是有关Parareal实时算法的讨论可以在这里找到:https://en.wikipedia.org/wiki/Parareal
这是波形松弛的简短介绍。在谈论诸如Parareal或PITA之类的时间并行方法或其他方法时,应该区分耗散ODE系统和保守ODI系统(哈密尔顿)。后者似乎更难通过划分时间间隔来在时间维度上并行化。这是汉密尔顿系统的超现实分析。耗散系统比较容易,因为由于耗散在初始时间引起的错误趋于消失