我计划将 MPI 用于我的 C++ 代码。我已经在我的电脑上安装了 MPICH2。但是我对MPI了解不多,希望能找到一些资料来阅读。希望各位高手给我推荐一些好的材料。任何建议将被认真考虑。
7 回答
我假设你已经知道如何很好地编写 C++ 并且对并行编程有基本的了解(或者至少知道你想如何并行化你的代码)。
我会先查看使用 MPI的书。使用 MPI 2 是讨论使用 MPI-2 中的新位的后续书。这两本书都是由编写 MPI 库并领导标准化工作的人编写的。使用 MPI 的一个好处是它可以在线获得,因此您可以在不花钱的情况下查看它:-)
Peter S. Pacheco 的Parallel Programming with MPI是一本很好的介绍书。请注意,本书使用 C,但应该很容易过渡到使用 C++ MPI 绑定。
LLNL 有一个相当不错的。
正如@semiuseless 所指出的,MPI 论坛正在弃用 C++ 绑定。原因之一是boost MPI 接口做得更好。
我建议不要将 MPI C++ 绑定用于任何新开发。程序本身可以是 C++,但要花费额外的精力来使用 MPI 库的 C 接口。
MPI 论坛正在弃用 C++ 绑定。因此,MPI 的未来实现可能会放弃对 C++ 的支持。一般来说,当涉及到 C++ 时,大多数实现都会忽略功能。基本可以工作,但对动态进程(即 spawn)、PMPI 接口等的支持不太好。
C 和 Fortran 绑定得到了所有主要实现的相当好的支持,并且将在可预见的未来继续得到支持。
一些入门手册可以在LAM/MPI 网站上找到
Mpich2 附带了许多 C++/C 示例。最著名的可能是 cpi,它并行计算 pi。通读该程序以及其他人建议的手册/书籍。通过这种方式,您将立即看到实际的工作代码,并且可以进行自己的修改以使用事物。