《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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述