- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MPI编程总结
现代密码学理论与实践之五 MPI编程总结 计算机学院 MPI编程总结 1 引言 2 6个基本函数组成的MPI子集 3 MPI消息 4 点对点通信 5 群集通信 6 MPI扩展 1 引言 MPI(Message Passing Interface )是一个消息传递接口标准 MPI提供一个可移植、高效、灵活的消息传递接口库 MPI是一个编程接口标准,可运行在不同的操作系统和硬件平台上 MPI提供与C/C++和Fortran语言的绑定 1 引言 MPI的版本 MPICH:/mpi/mpich LAM (Local Area Multicomputer): Open-MPI: / CHIMP: ftp://ftp.epcc.ed.ac.uk/pub/chimp/release/ 2 6个基本函数组成的MPI子集 #include mpi.h /*MPI头函数,提供了MPI函数和数据类型定义*/ int main( int argc, char** argv ) { int rank, size, tag=1; int senddata,recvdata; MPI_Status status; MPI_Init(argc, argv); /*MPI的初始化函数*/ MPI_Comm_rank(MPI_COMM_WORLD, rank); /*该进程编号*/ MPI_Comm_size(MPI_COMM_WORLD, size); /*总进程数目*/ 2 6个基本函数组成的MPI子集 if (rank==0){ senddata=9999; MPI_Send( senddata, 1, MPI_INT, 1, tag, MPI_COMM_WORLD); /*发送数据到进程1*/ } if (rank==1) MPI_Recv(recvdata, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, status); /*从进程0接收数据*/ MPI_Finalize(); /*MPI的结束函数*/ return (0); } 2 6个基本函数组成的MPI子集 MPI初始化:通过MPI_Init函数进入MPI环境并完成所有的初始化工作。 int MPI_Init( int *argc, char * * * argv ) MPI结束:通过MPI_Finalize函数从MPI环境中退出。 int MPI_Finalize(void) 2 6个基本函数组成的MPI子集 获取进程的编号:调用MPI_Comm_rank函数获得当前进程在指定通信域中的编号,将自身与其他程序区分。 int MPI_Comm_rank(MPI_Comm comm, int *rank) 获取指定通信域的进程数:调用MPI_Comm_size函数获取指定通信域的进程个数。 int MPI_Comm_size(MPI_Comm comm, int *size) 2 6个基本函数组成的MPI子集 消息发送:MPI_Send函数用于发送一个消息到目标进程。 int MPI_Send(void *buf, int count, MPI_Datatype dataytpe, int dest, int tag, MPI_Comm comm) 消息接受:MPI_Recv函数用于从指定进程接收一个消息 int MPI_Recv(void *buf, int count, MPI_Datatype datatyepe,int source, int tag, MPI_Comm comm, MPI_Status *status) 3 MPI消息 一个消息好比一封信 消息的内容即信的内容,在MPI中称为消息缓冲(Message Buffer) 消息的接收/发送者即信的地址,在MPI中称为消息信封(Message Envelop) 3 MPI消息 MPI中,消息缓冲由三元组起始地址,数据个数,数据类型标识 消息信封由三元组源/目标进程,消息标签,通信域标识 三元组的方式使得MPI可以表达更为丰富的信息,功能更强大 3 MPI消息(数据类型) MPI的消息类型分为两种:预定义类型和派生数据类型(Derived Data Type) 预定义数据类型:MPI支持异构计算(Heterogeneous Computing),它指在不同计算机系统上运行程序,每台计算可能有不同生产厂商,不同操作系统。 MPI通过提供预定义数据类型来解决异构计算中的互操作性问题,建立它与具体语言的对应关系。 派生数据类型:MPI引入派生数据类型来定义由数据类型不同且地址空间不连续的数据项组成的消息。 3 MPI消息(数据类型) 3 MPI
您可能关注的文档
最近下载
- 第一章 2.2 水量平衡.ppt
- 《GB/T 19326-2022锻制支管座》.pdf
- 2022年11月陕西省从优秀村社区干部中考试录用200名乡镇街道机关公务员上岸冲刺卷I含答案详解版(3套).docx VIP
- 2020年银行业从业人员职业操守和行为准则.pdf VIP
- 转预备党员思想汇报【银行】.pdf VIP
- 【新教材】人教版(2024)七年级上册英语Unit 4 My Favourite Subject教案.docx
- 米厂恒温仓库工程设计方案.docx
- 2024年党校入党积极分子培训考试必考重点知识汇编(共160题).doc VIP
- 《世界经典神话与传说故事》 测试题及答案.pdf
- 智能制造设备安装与调试职业技能等级标准(2021年).pdf
文档评论(0)