《MPI并行程序设计实例教程》PART1.MPI并行环境及编码模型

1.并行编程模式-消息传递:

具有通用功能的消息传递库有PICL、PVM、PARMACS、P4、MPI等;面向特定系统定制的消息传递库有MPL、NX、CMMD等。

消息传递模型的主要缺点是:要求在编程过程中参与显式的数据划分和进程间同步,因此会需在解决数据依赖、预防死锁上话费较大精力。

2.MPI消息传递通信的基本概念

  • 缓存区

MPI环境定义了3种缓存区:

应用缓冲区

指保存将要发送或接受的数据的地址空间,既消息格式定义的内容部分。

系统缓冲区

MPI环境为通信所准备的存储空间。

用户向系统注册的缓冲区

指用户使用某些API(MPI_Bsend)时,在程序中显式申请的存储空间,然后注册到MPI环境中供通信使用。

  • 通信子(communicator)

通信子是MPI环境管理进程及通信的基本设施。(eg:MPI_COMM_WORLD)。对某个进程的操作必须放在通信子内方可有效。

  • 通信协议:

MPI环境采用以下通信协议:

立即通信协议(Eager)

总是假定目标进程具备保存消息数据的能力。注:该方式减少了同步延迟,简化编程,但需要相当数量的缓冲区。

集中通信协议(Rendezvous)

在目标准备好后,才可执行发送动作。注:该方式可确保可靠和安全,并提供消除多次数据的可能,但增加了编程复杂性(需结合wait/test等机制),同时也带来了同步延迟(等待进程许可需要时间)。

断消息协议(Short)

消息数据与信封封装在一起发送。

From:《MPI并行程序设计实例教程》

张武生 等著 清华大学出版社

More:http://blog.donews.com/me1105/archive/2011/02/10/115.aspx

原文地址:https://www.cnblogs.com/me115/p/1950707.html