31、消息传递编程:MPI 入门与点到点通信

消息传递编程: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 的讨论正在进行中。各版本的主要特点如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值