消息传递编程:MPI 入门与点到点通信
1. 消息传递编程模型概述
消息传递编程模型基于具有分布式地址空间的并行计算机抽象,其中每个处理器都有自己的本地内存,且只能由该处理器独占访问。在这种模型中,由于没有全局内存,数据交换必须通过显式的消息传递来完成。例如,要将数据从处理器 A 的本地内存传输到处理器 B 的本地内存,A 必须向 B 发送包含数据的消息,而 B 则需在其本地内存的缓冲区中接收这些数据。
消息传递程序由一组进程执行,每个进程都有自己的本地数据。通常,执行平台的每个处理器或核心执行一个进程,并且进程数量在程序启动时通常是固定的。每个进程可以访问其本地数据,并通过发送和接收消息与其他进程交换信息和数据。为了简化程序设计,通常假设所有进程执行相同的程序(SPMD,单程序多数据),不过每个进程仍可根据其进程排名执行程序的不同部分。
消息传递程序中的进程可以使用通信库提供的通信操作来交换本地数据。这些操作可以是简单的点到点数据传输,也可以是涉及多个进程的全局通信操作,如广播。通信库通常提供大量的通信函数,以支持不同的点到点传输和全局通信操作。
2. MPI 简介
MPI(Message-Passing Interface)是消息传递库接口规范的标准化,它定义了标准通信模式的库例程的语法和语义。MPI 支持 C、C++、Fortran - 77 和 Fortran - 95 等语言绑定,这里主要关注 C 语言接口。
MPI 标准于 1994 年首次引入(MPI - 1),此后经历了多次扩展。当前版本是 2021 年引入的 MPI - 4,并且关于 MPI - 5 的讨论正在进行中。各版本的主要特点如下:
超级会员免费看
订阅专栏 解锁全文
479

被折叠的 条评论
为什么被折叠?



