【发布时间】:2011-03-04 07:25:26
【问题描述】:
我需要做一个关于 MPI 编程的演讲。我需要添加一个关于 MPI 如何在幕后工作的部分。例如,当我调用 MPI_Init 时会发生什么?
你知道我可以从哪里了解这些细节吗?
【问题讨论】:
-
好吧,总有来源:-)
标签: mpi
我需要做一个关于 MPI 编程的演讲。我需要添加一个关于 MPI 如何在幕后工作的部分。例如,当我调用 MPI_Init 时会发生什么?
你知道我可以从哪里了解这些细节吗?
【问题讨论】:
标签: mpi
MPI 规范包含对每个 API 的“黑匣子”外部的旋钮、滑块和显示器的描述。
黑匣子的内部细节将取决于实现......并且还将取决于互连(例如 TCP、IBV、DAPL 等)、操作系统(例如是使用 LSB 的实现还是本地库等) ),以及在较小程度上的许多其他因素(例如,消息大小阈值将触发不同的代码路径,等等)。在 a.out 上使用“strace”和“ltrace”可以提供对黑盒内部实际情况的一些了解。
最好的建议是选择一个开源实现并检查代码以确定内部细节。
【讨论】:
MPI 是一种规范,而不是特定的实现。可观察的行为在MPI spec 中给出。它如何在幕后工作取决于特定的实现。如果您想查看示例实现,您可能有兴趣查看 MPICH2 和 browsing their source code。
【讨论】:
补充您对 MPI 实现源代码的研究,并考虑如何在您选择的平台上实现 MPI_Init。 MPI 位于已经可用的 O/S 功能之上。我并不是要建议您可以弄清楚如何通过这种方法实现特定版本的 MPI,而是建议您可以通过从另一个角度解决问题来更好地了解幕后发生的事情。
【讨论】:
MPI 只是一个规范。 MPI 规范由各种团体和组织实施。你会想选择一种实现,比如 MPICH,你可以找到他们的设计文档。这将告诉您该组如何实施 MPI 规范。
如果您只想描述启动用 MPI 编写的应用程序时会发生什么,您可以阅读 MPI 和 MPI 编程。我强烈推荐http://www.citutor.org
【讨论】: