MPI 参考建议

计算科学 参考请求 mpi
2021-12-23 17:42:07

我正在学习 MPI,以便将 MPI 与用 Fortran 编写的模型一起使用。有哪些好的资源(书籍、网站等)?介绍性/初学者材料和详细的参考资料都将不胜感激。

3个回答

想到的两本书是 Gropp 和 Lusk 的 Using MPI 和 Using Advanced MPI。它们去年也发布了第三版,所以它们是最新的。正如其他人所说,参考手册是开放的并且免费提供。很高兴有帮助您入门的书籍和查找某些细节的参考手册。

首先,您应该确保首先了解并行处理的基础知识。如果不了解分布式计算的原理,很难写出好的 MPI 代码。您可能会发现并行编程模式很有用,尽管还有很多其他关于并行编程主题的书籍。

全面披露:我为“并行编程模式”的作者之一工作,但我已经确认没有一个作者从中赚到足够的钱来证明我出于技术价值以外的任何其他原因推荐。

其次,阅读编写良好的 MPI 应用程序(不一定是 Fortran 应用程序 - 请参阅下一点)以获得洞察力。通常情况下,适用于教科书和教程的示例掩盖了您需要了解才能在工作中取得成功的一些细微差别。例如,我在 MPI 上看到的每一本书都涵盖了使用 Jacobi 方法的 2D 热方程求解器,但绝对没有人应该在“现实世界”中使用 Jacobi。

第三,您可能会发现有很多为 C 程序员编写的优秀 MPI 材料,这意味着您在搜索知识时不应该专门关注 Fortran。并不想成为语言的偏执狂,我发现 C 程序员编写的 MPI 示例 - 平均而言 - 比 Fortran 程序员编写的要好。这是相关性(主要与作者的学术训练),而不是因果关系。

第四,你不可避免地有一天会编写一个不正确的 MPI 程序并需要对其进行调试。OpenMPI 的常见问题解答:并行调试应用程序是了解该主题的一个很好的起点。

我还想推荐Using MPI我在学校用这本书在集群上实现了一些 CFD 代码。这是一本很好的参考书,讨论了将 MPI 与 C、C++ 和 Fortran 结合使用。

这本书提供了一些简单的例子来帮助你进入将你的问题分解成一个可以分布在不同计算机上的思维方式,如果你不太熟悉这种思维方式的话。

如果您有兴趣进一步提高您的技能并进入异构编程(CUDA、OpenCL),您还可以查看Coursera上的课程,其中介绍了一些漂亮的方法和概念。