我目前正在研究 ODE 集成的并行方法。有很多新旧文献描述了广泛的方法,但我没有找到任何描述该主题的最新调查或概述文章。
有 Burrage 的书 [1],但它已经有将近 20 年的历史了,因此没有涵盖许多更现代的想法,例如超现实算法。
[1] K. Burrage,常微分方程的并行和序列方法,克拉伦登出版社,牛津,1995 年
我目前正在研究 ODE 集成的并行方法。有很多新旧文献描述了广泛的方法,但我没有找到任何描述该主题的最新调查或概述文章。
有 Burrage 的书 [1],但它已经有将近 20 年的历史了,因此没有涵盖许多更现代的想法,例如超现实算法。
[1] K. Burrage,常微分方程的并行和序列方法,克拉伦登出版社,牛津,1995 年
我不知道最近有任何概述文章,但我积极参与了 PFASST 算法的开发,因此可以分享一些想法。
我知道三大类时间并行技术:
跨方法并行化的方法通常执行非常接近规范,但不会扩展到少数(时间)处理器。通常,它们比其他方法更容易实现,并且如果您周围有一些额外的内核并且正在寻找可预测和适度的加速,那么它们是一个很好的选择。
跨时域并行化的方法包括 Parareal、PITA、PFASST。这些方法都是迭代的,并且由廉价(但不准确)的“粗”传播器和昂贵(但准确)的“精细”传播器组成。他们通过迭代地并行评估细传播器来改进使用粗传播器获得的串行解决方案,从而实现并行效率。
Parareal 和 PITA 算法的并行效率上限相当不幸:在哪里是在整个域中获得收敛所需的迭代次数。例如,如果您的 Parareal 实现需要 10 次迭代才能收敛,并且您使用 100 个(时间)处理器,那么您希望的最大加速将是 10 倍。PFASST 算法通过将时间并行迭代与光谱延迟校正时间步长方法的迭代混合并将完全近似方案校正合并到空间/时间离散化的层次结构中来放宽这个上限。
很多游戏都可以使用所有这些方法来尝试加速它们,似乎这些跨域技术的性能取决于您正在解决的问题以及哪些技术可用于加速粗略传播者(粗化网格、粗化算子、粗化物理等)。
一些参考资料(另见论文中列出的参考资料):
本文演示了如何在该方法中并行化各种方法: 高阶显式龙格-库塔法、外推法和延迟校正方法的理论比较;凯奇森和瓦希德。
本文还展示了一种跨方法并行化的好方法,并介绍了 RIDC 算法:并行高阶积分器;克里斯特利布,麦克唐纳,王。
本文介绍了 PITA 算法:一种用于加速非线性结构动力学问题求解的时间并行隐式方法;科蒂尔和法哈特。
有很多关于 Parareal 的论文(只是谷歌它)。
这是一篇关于 Nievergelt 方法的论文:并行时间集成的最小通信方法;巴克。
本文介绍了 PFASST: Toward an effective parallel in time method for偏微分方程;埃米特和小黄人;
这篇论文描述了 PFASST 的一个巧妙应用:一个大规模时空并行 N 体求解器;斯派克、鲁普雷希特、克劳斯、埃米特、小黄人、温德尔、长臂猿。
虽然这篇文章现在已经有两年了,但如果有人偶然发现它,让我做一个简短的更新:
Martin Gander 最近写了一篇很好的评论文章,给出了该领域的历史观点并讨论了许多不同的 PINT 方法:http ://www.unige.ch/~gander/Preprints/50YearsTimeParallel.pdf
现在还有一个社区网站,列出了很多参考资料并描述了不同的方法: http: //www.parallel-in-time.org/
可以在这里找到关于 Parareal 实时并行算法的讨论:https ://en.wikipedia.org/wiki/Parareal
更新:Ong 和 Schroder现在有一篇更新的 2020 年评论论文。