31、消息传递编程之MPI入门

消息传递编程之MPI入门

1. 消息传递编程模型概述

消息传递编程模型基于分布式地址空间的并行计算机抽象,在这种模型中,每个处理器都有自己的本地内存,且只能由该处理器独占访问。由于不存在全局内存,数据交换必须通过显式的消息传递来完成。例如,要将数据从处理器A的本地内存传输到处理器B的本地内存,A必须向B发送包含该数据的消息,B则需要在其本地内存的缓冲区中接收这些数据。

消息传递程序由一组进程执行,每个进程都有自己的本地数据。通常,一个处理器或核心执行一个进程,进程数量在程序启动时通常是固定的。虽然原则上每个进程可以执行不同的程序(MPMD,多程序多数据),但为了简化程序设计,通常采用SPMD(单程序多数据)方式,即所有进程执行相同的程序,不过不同进程可以根据自身的进程编号执行程序的不同部分。

进程之间通过通信操作交换本地数据,这些操作通常由通信库提供。参与通信的进程调用库中相应的通信函数来激活特定的通信操作。最简单的情况是进程A到进程B的点对点数据传输,此时A调用发送操作,B调用相应的接收操作。通信库通常提供大量的通信函数,以支持不同的点对点传输和全局通信操作(如广播)。

2. 通信库与MPI简介

通信库可以是特定于供应商或硬件的,但大多数情况下会使用可移植的库。这些库定义了通信函数的语法和语义,并支持多种并行计算机。目前,最流行的可移植通信库是MPI(消息传递接口),此外PVM(并行虚拟机)也有使用。

2.1 MPI标准的发展历程

  • MPI - 1(1994年) :定义了标准的MPI通信操作,基于静态进程模型,即进程数量在程序启动时设定,运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值