MPI并行程序设计自学教程

MPI并行程序设计自学教程

ID:35616968

大小:593.00 KB

页数:53页

时间:2019-04-02

MPI并行程序设计自学教程_第1页
MPI并行程序设计自学教程_第2页
MPI并行程序设计自学教程_第3页
MPI并行程序设计自学教程_第4页
MPI并行程序设计自学教程_第5页
资源描述:

《MPI并行程序设计自学教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、并行程序设计简介曙光信息产业(北京)有限公司1讲座内容提示基本概念基本的MPI点到点通信(Pointtopoint)MPI中API的主要内容,为MPI最基本,最重要的内容MPI程序的编译和运行实例2参考文献MPI--thecompletereference.MarcSnir,MITPress,1998.ISBN0262692155,0262692163.UsingMPI:portableparallelprogrammingwiththemessage-passinginterface,Will

2、iamGropp,MITPress,1999.2ndedition.ISBN0262571323.UsingMPI-2:advancedfeaturesofthemessage-passinginterface.WilliamGropp,MITPress,1999.ISBN0262571331.高性能计算并行编程技术-MPI并行程序设计,都志辉,清华大学出版社,2001年8月.3多线程库标准–Win32API.–POSIXthreads.编译制导标准–OpenMP–可移植共享存储并行编程标准.消

3、息传递库标准–MPI–PVM并行编程标准本讨论的重点4消息传递并行程序设计消息传递并行程序设计指用户必须通过显式地发送和接收消息来实现处理机间的数据交换。在这种并行编程中,每个并行进程均有自己独立的地址空间,相互之间访问不能直接进行,必须通过显式的消息传递来实现。这种编程方式是大规模并行处理机(MPP)和机群(Cluster)采用的主要编程方式。并行计算粒度大,特别适合于大规模可扩展并行算法由于消息传递程序设计要求用户很好地分解问题,组织不同进程间的数据交换,并行计算粒度大,特别适合于大规模可扩

4、展并行算法.消息传递是当前并行计算领域的一个非常重要的并行程序设计方式5什么是MPI?MassagePassingInterface:是消息传递函数库的标准规范,由MPI论坛开发,支持Fortran和C一种新的库描述,不是一种语言。共有上百个函数调用接口,在Fortran和C语言中可以直接对这些函数进行调用MPI是一种标准或规范的代表,而不是特指某一个对它的具体实现MPI是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准6MPI的发展过程发展的两个阶段MPI1.1:1995MPICH

5、:是MPI最流行的非专利实现,由Argonne国家实验室和密西西比州立大学联合开发,具有更好的可移植性.MPI1.2~2.0:动态进程,并行I/O,远程存储访问、支持F90和C++(1997).7为什么要用MPI?高可移植性MPI已在IBMPC机上、MSWindows上、所有主要的Unix工作站上和所有主流的并行机上得到实现。使用MPI作消息传递的C或Fortran并行程序可不加改变地运行在IBMPC、MSWindows、Unix工作站、以及各种并行机上。8:从简单入手—Init和Finali

6、ze下面我们首先分别以C语言和Fortran语言的形式给出一个最简单的MPI并行程序Hello(下页).该程序在终端打印出HelloWorld!字样.“HelloWorld”:一声来自新生儿的问候.9Helloworld(C)#include#include"mpi.h“main(intargc,char*argv[]){MPI_Init(&argc,&argv);printf("Hello,world!");MPI_Finalize();}10Helloworld(For

7、tran)programmaininclude‘mpif.h’integerierrcallMPI_INIT(ierr)print*,'Hello,world!'callMPI_FINALIZE(ierr)end11C和Fortran中MPI函数约定C必须包含mpi.h.MPI函数返回出错代码或MPI_SUCCESS成功标志.MPI-前缀,且只有MPI以及MPI_标志后的第一个字母大写,其余小写.Fortran必须包含mpif.h.通过子函数形式调用MPI,函数最后一个参数为返回值.MPI-前缀

8、,且函数名全部为大写.MPI函数的参数被标志为以下三种类型:IN:参数在例程的调用中不会被修正.OUT:参数在例程的调用中可能会被修正.INOUT:参数有初始值,且在例程的调用中可能会被修正12MPI初始化-MPI_INITintMPI_Init(int*argc,char**argv)MPI_INIT(IERROR)MPI_INIT是MPI程序的第一个调用,它完成MPI程序的所有初始化工作。所有的MPI程序的第一条可执行语句都是这条语句。启动MPI环境,标志并行代码的开始.并行代码之前,第一个

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

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

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