第3 章消息传递编程

第3 章消息传递编程

ID:43220848

大小:308.50 KB

页数:50页

时间:2019-10-04

第3 章消息传递编程_第1页
第3 章消息传递编程_第2页
第3 章消息传递编程_第3页
第3 章消息传递编程_第4页
第3 章消息传递编程_第5页
资源描述:

《第3 章消息传递编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3章消息传递编程教师:彭四伟一、消息传递编程基础消息传递模型的特征多线程化由多个进程组成,每个进程有自己的控制线程,可执行不同代码,支持控制并行(MPMD)和数据并行(SPMD)。异步并行性各进程异步执行,使用专用操作如路障、锁定通信等专用操作对进程加以同步。分离的地址空间各进程留驻在不同的地址空间,一个进程中的数据对另一个进程是不可见的,进程间通过执行专用的消息传递操作实现交互。显式交互程序员负责解决所有的交互问题,包括数据映射、通信、同步和聚集。显式分配工作负载和数据均需用户用显式方法分配给进程。一、消息传递编程基础编程

2、工具的选择专用并行编程语言如occam语言对现有语言扩展语法来处理消息传递如CC+语言、FortranM语言专门的并行编译器不适用于消息传递机制使用现有语言,配备消息传递外部过程库如PVM、MPI。必须提供至少两类基本方法:1、创建分离进程以使它们能在不同的计算机上运行的方法;2、发送和接收消息的方法。一、消息传递编程基础进程的创建静态创建所有进程在执行前必须加以指定,系统将执行固定数目的进程。程序员通常需在进程或程序执行之前用命令行显式标识它们。通常有一个主进程(控制进程),其余的为从进程(工作进程)。SPMD模型将所有的进

3、程融合到一个程序中,由控制语句选择不同的执行部分。SPMD是MPI所采用的主要方法一、消息传递编程基础进程的创建动态创建可在其他进程的执行期间创建进程并启动执行它们,也可以撤销它们。在执行过程中进程数可以发生变化。动态进程创建功能更为强大,但在创建进程时也会导致显著的开销。动态进程创建最通用的模型是MPMD模型。通常采用主从方法,由一个处理器执行主程序(主进程),而其余进程在主进程中启动。一、消息传递编程基础消息传递方式同步消息传递消息传递过程结束后调用才返回的传递方式。同步消息传递不需要消息缓冲存储器。同步发送和接收操作过程

4、中通常需要某种形式的同步信号。P同步发送M到Q,等待Q同步从P接收S,直到消息M已被发送和接收,发送和接收调用才返回,这时X被赋值为11。进程P————————————————M=10;sendMtoQ;M=20;进程Q——————————————————————S=-100;receiveSfromP;X=S+1;使用三路协议的同步send和recv调用send();recv();进程1进程2请求发送,唤醒进程2确认开始发送进程2挂起recv在send之前调用send();recv();进程1进程2请求发送,进程1挂起确认,

5、唤醒进程1开始消息发送过程send在recv之前调用一、消息传递编程基础消息传递方式锁定消息传递使用消息缓冲区并在本地操作完成后就返回例程称为锁定的,或本地锁定的。消息缓冲区用来保存在recv接收之前发送的消息。发送例程当本地操作结束,消息已经安全上路,就可以继续执行后继工作。接收例程需要消息时,从缓冲区中获得消息。若消息缓冲区是空的,接收例程进入等待状态。当缓冲区已满时,发送例程将进入等待状态。进程P————————————————M=10;sendMtoQ;M=20;进程Q——————————————————————S=-

6、100;receiveSfromP;X=S+1;在锁定发送/接收方式下:当P发送M到Q,消息离开M时,调用即返回,此时消息可能还未到达Q,而是暂时缓冲在网络中的某处,或者已经到达接收结点的缓冲区。当Q准备从P接收消息到S中时,如果缓冲中已经有消息,不用等待相应的发送操作,就可执行锁定接收,然而在消息未被接收前,它不能返回。X将被赋值为11。一、消息传递编程基础消息传递方式非锁定消息传递进程不必等相应接收,立即返回的例程称为非锁定的。进程执行非锁定发送/接收,非锁定发送/接收在告知系统发送/接收请求之后,便立即返回,此时消息并不

7、一定已发出/接收。非锁定的消息传递需由程序员保证用于传送的数据在传送之前不能被后继的语句所修改。进程P——————————————————————M=10;sendMtoQ;执行某些不会改变Q的计算waitforMtobesentM=20;进程Q——————————————————————————S=-100;receiveSfromP;执行某些不会使用S的计算waitforStobereceivedX=S+1;在非锁定发送/接收方式下:依赖于两个进程的速度,X可能被赋为11、21、-99。进程P———————————————

8、—M=10;sendMtoQ;M=20;进程Q——————————————————————S=-100;receiveSfromP;X=S+1;一、消息传递编程基础消息传递方式三种方式的比较同步方式表述清晰且易用,不需设置额外的数据缓冲区,但可能导致某些周期的浪费。在几乎所有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。