根据容错系统 https://www.elsevier.com/books/fault-tolerant-systems/koren/978-0-12-088525-1(第 6 章)由 Israel Koren 和 C. Mani Krishna 撰写:
检查点是进程整个状态的快照
拍摄的那一刻。它代表了我们想要的所有信息
需要从该点重新启动该过程。我们记录检查点
稳定存储上。
检查点是一种常见的容错技术。我打算通过在用 C++ 编写的不同 MPI 程序的源代码中实现检查点来测试检查点在实践中的工作原理。这是我第一次实现检查点,我不知道该怎么做。我正在寻找可以帮助我的示例或任何参考。我用谷歌搜索但没有找到有用的参考或教程。任何建议都非常感激。
C++ 和 MPI 不提供任何内置的检查点机制。您采取的策略可能取决于您正在编写的应用程序的类型。许多科学代码(求解偏微分方程/常微分方程)都有明确的时间步进或负载步进。
在这些情况下,我们倾向于分析重新启动算法所需的数据,并在每个时间步或每 n 个时间步结束时将其写入磁盘。
使用 MPI 分布式并行应用程序时面临的挑战之一是确保可以使用不同数量的列或数据分区读回数据。
您可能会发现将二进制文件写入磁盘很有趣的一种工具是Adios2 https://adios2.readthedocs.io/en/latest/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)