- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MPI点到点通信
MPI的消息传递过程三个阶段:
(1)消息装配
(2)消息传递
(3)消息拆卸
编写一个简单的实现发送和接收功能的程序
#include “mpi.h”main(int argc, int **argv ){ char message[20]; int myrank; MPI_Init( argc, argv ); /* MPI程序的初始化*/ MPI_Comm_rank( MPI_COMM_WORLD, myrank ); /* 得到当前进程的标识*/ if (myrank == 0) /* 若是 0 进程*/ {strcpy(message,Hello, process 1);
MPI_Send(message, strlen(message), MPI_CHAR, 1, 99,MPI_COMM_WORLD); } else if(myrank==1) /* 若是进程 1 */ {
MPI_Recv(message, 20, MPI_CHAR, 0, 99, MPI_COMM_WORLD, status); printf(received :%s:, message); } MPI_Finalize(); /* MPI程序结束*/ }
MPI消息的组成
MPI消息包括信封和数据两个部分,信封指出了发送或接收消息的对象及相关信息,而数据是本消息将要传递的内容。信封和数据又分别包括三个部分。可以用一个三元组来表示。 信封:源/目,标识,通信域 数据:起始地址,数据个数,数据类型
MPI_SEND 语句的消息信封和消息数据
MPI_RECV语句的消息信封和消息数据
MPI消息(数据类型)
MPI的消息类型分为两种:预定义类型和派生数据类型(Derived Data Type)
预定义数据类型:MPI支持异构计算(Heterogeneous Computing),它指在不同计算机系统上运行程序,每台计算可能有不同生产厂商,不同操作系统。
MPI通过提供预定义数据类型来解决异构计算中的互操作性问题,建立它与具体语言的对应关系。
派生数据类型:MPI引入派生数据类型来定义由数据类型不同且地址空间不连续的数据项组成的消息。
MPI消息(数据类型)
MPI提供了两个附加类型:MPI_BYTE和MPI_PACKED 。
MPI_BYTE表示一个字节,所有的计算系统中一个字节都代表8个二进制位。
MPI_PACKED预定义数据类型被用来实现传输地址空间不连续的数据项 。
消息标签
为什么需要消息标签?
当发送者连续发送两个相同类型消息给同一个接收者,如果没有消息标签,接收者将无法区分这两个消息
这段代码打算传送A的前32个字节进入X,传送B的前16个字节进入Y。但是,尽管消息B后发送,但可能先到达进程Q,就会被第一个接收函数接收在X中。使用标签可以避免这个错误
Process P:
Send(A, 32, Q)
Send(B, 16, Q)
Process Q:
recv (X, 32, P)
recv (Y, 16, P)
Process P:
send(A, 32, Q, tag1)
send(B, 16, Q, tag2)
Process Q:
recv (X, 32, P, tag1)
recv (Y, 16, P, tag2)
消息标签
添加标签使得服务进程可以对两个不同的用户进程分别处理,提高灵活性
通信域
通信域(Communicator)包括进程组(Process Group)和通信上下文(Communication Context)等内容,用于描述通信进程间的通信关系。
通信域分为组内通信域和组间通信域,分别用来实现MPI的组内通信(Intra-communication)和组间通信(Inter-communication)。
通信域
进程组是进程的有限、有序集。
有限意味着,在一个进程组中,进程的个数n是有限的,这里的n称为进程组大小(Group Size)。
有序意味着,进程的编号是按0,1,…,n-1排列的
一个进程用它在一个通信域(组)中的编号进行标识。组的大小和进程编号可以通过调用以下的MPI函数获得:
MPI_Comm_size(communicator, group_size)
MPI_Comm_rank(communicator, my_rank)
通信域
通信上下文:安全的区别不同的通信以免相互干扰
通信上下文不是显式的对象,只是作为通信域的一部分出现
进程组和通信上下文结合形成了通信域
MPI_COMM_WORLD是所有进程的集合
通信域
您可能关注的文档
- 2.9画法几何_轴测投影探索.ppt
- 2.14化学势的标准态及其表示式探索.ppt
- 轨道交通规划设计10-与其他交通衔接选编.ppt
- 70kw柴油发电机市场价格报价探索.docx
- 第四节中国的民族探索.pptx
- 70种减肥粥探索.pptx
- 第五章 学案28 化学键探索.docx
- 动力学问题热点选编.ppt
- 第一单元复习探索.docx
- 第一章 学案5 化学计量在实验中的应用(二)探索.docx
- 2025年金肯职业技术学院单招职业适应性测试题库带答案.docx
- 2025年钦州幼儿师范高等专科学校单招综合素质考试题库完美版.docx
- 2025年钟山职业技术学院单招职业适应性考试题库参考答案.docx
- 2025年金华职业技术学院单招职业技能测试题库附答案.docx
- 2025年闽南理工学院单招职业技能测试题库审定版.docx
- 2025年闽南理工学院单招综合素质考试题库审定版.docx
- 2025年闽南理工学院单招职业倾向性考试题库汇编.docx
- 2025年闽南理工学院单招职业倾向性考试题库推荐.docx
- 2025年闽北职业技术学院单招综合素质考试题库1套.docx
- 2025年长沙轨道交通职业学院单招职业技能考试题库一套.docx
最近下载
- 建筑工程图集 16J914-1:公用建筑卫生间.pdf VIP
- 90后婚礼邀请函 婚礼邀请函制作软件.doc VIP
- 2025年初中升高中英语衔接测试试卷(Word版,含答案).docx VIP
- 2025重大事故隐患判定标准解读(可编辑课件).pptx VIP
- 起重机地面操作安全培训.pptx
- 《造纸行业绿色工厂评价规范》团体标准 征求意见稿.pdf VIP
- XX市XX医院无痛医院建设方案55.docx VIP
- 水源井及配套设施项目(含地下水专项评价)环评环境影响报告表(新版环评).doc VIP
- 译林版八年级英语上册一二单元检测.pdf VIP
- 16bj7-1楼梯平台栏杆及扶手.pdf VIP
文档评论(0)