【发布时间】:2011-01-17 12:37:26
【问题描述】:
我计划将 MPI 用于我的 C++ 代码。我已经在我的电脑上安装了 MPICH2。但是我对MPI了解不多,希望能找到一些资料来阅读。希望各位高手能给我推荐一些好的材料。任何建议将不胜感激。
【问题讨论】:
-
MPI:消息传递接口,一种用于并行计算的计算机通信协议。见en.wikipedia.org/wiki/Message_Passing_Interface
我计划将 MPI 用于我的 C++ 代码。我已经在我的电脑上安装了 MPICH2。但是我对MPI了解不多,希望能找到一些资料来阅读。希望各位高手能给我推荐一些好的材料。任何建议将不胜感激。
【问题讨论】:
我假设您已经非常了解如何编写 C++ 并且对并行编程有基本的了解(或者至少知道您希望如何并行化您的代码)。
我会先看看Using MPI 这本书。使用 MPI 2 是讨论使用 MPI-2 中的新位的后续书。这两本书都是由编写 MPI 库并领导标准化工作的人编写的。使用 MPI 的一个好处是它可以在线获得,因此您可以在不花钱的情况下查看它:-)
【讨论】:
Parallel Programming with MPI Peter S. Pacheco 是一本很好的介绍书。请注意,本书使用 C,但应该很容易过渡到使用 C++ MPI 绑定。
【讨论】:
LLNL 有a pretty good one。
【讨论】:
正如@semiuseless 所指出的,MPI 论坛正在弃用 C++ 绑定。原因之一是boost MPI interface 做得更好。
【讨论】:
我建议不要将 MPI C++ 绑定用于任何新开发。程序本身可以是 C++,但要花费额外的精力来使用 MPI 库的 C 接口。
MPI 论坛正在弃用 C++ 绑定。因此,MPI 的未来实现可能会放弃对 C++ 的支持。一般来说,当涉及到 C++ 时,大多数实现都会忽略功能。基础知识将起作用,但动态进程(即 spawn)、PMPI 接口等的支持不太好。
C 和 Fortran 绑定得到了所有主要实现的相当好的支持,并且在可预见的未来将继续得到支持。
【讨论】:
一些入门手册可以在LAM/MPI site找到
【讨论】:
Mpich2 带有许多 C++/C 示例。最著名的可能是 cpi,它并行计算 pi。通读该程序以及其他人建议的手册/书籍。通过这种方式,您将立即看到实际工作的代码,并且可以自己进行修改以进行操作。
【讨论】: