MPI并行程序设计基础

MPI并行程序设计基础

ID:37827267

大小:1.58 MB

页数:62页

时间:2019-06-01

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

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

1、MPI并行程序设计解决方案中心何沧平目录MPI简介基本功能6个基本函数实例:Helloworld!集合通信数据广播、收集、散发、转置、归约综合实例:并行计算𝜋值MPI软件包的安装、使用OpenMPI,Mpich2,mvapich2MPI简介并行编程标准多线程库标准Win32API.POSIXthreads.编译制导标准OpenMP–可移植共享存储并行编程标准.消息传递库标准MPIPVM(并行虚拟机)消息传递程序特点消息传递并行程序设计指用户必须通过显式地发送和接收消息来实现处理机间的数据交换。

2、在这种并行编程中,每个并行进程均有自己独立的地址空间,相互之间访问不能直接进行,必须通过显式的消息传递来实现。这种编程方式是大规模并行处理机(MPP)和机群(Cluster)采用的主要编程方式。并行计算粒度大,特别适合于大规模可扩展并行算法由于消息传递程序设计要求用户很好地分解问题,组织不同进程间的数据交换,并行计算粒度大,特别适合于大规模可扩展并行算法.消息传递是当前并行计算领域的一个非常重要的并行程序设计方式MPI及其实现软件包MPI:MessagePassingInterface消息传递接口•MPI论坛开发,支持F

3、ortran、C/C++•一种新的库描述,不是一种语言。共有一二百个函数调用接口,在Fortran和C语言中可以直接对这些函数进行调•MPI是一种标准或规范的代表,而不是特指某一个对它的具体实现MPICHMVAPICHOpenMPIIntelMPI开发者ArgonneOhioStateOpenMPIIntelNationalLabUniversitydevelopmentTeam是否开源是是是否InfiniBand/InfiniBand/InfiniBand/支持的网络以太网以太网以太网以太网2.2MPI标准2.22.22.23.

4、0前身MPICHMVAPICHLAM-MPI/MPI的发展历程MPI1.1:1995MPICH:是MPI最流行的非专利实现,由Argonne国家实验室和密西西比州立大学联合开发,具有更好的可移植性.MPI1.2~2.0:动态进程,并行I/O,远程存储访问、支持F90和C++(1997).MPI2.2(2009年)MPI3.02012年9月21日MPI基本功能C和Fortran中MPI函数约定C必须包含mpi.h.MPI函数返回出错代码或MPI_SUCCESS成功标志.MPI_前缀,且只有MPI以及MPI_标志后

5、的第一个字母大写,其余小写.Fortran必须包含mpif.h(fortran77),usempi(fortran95)通过子函数形式调用MPI,函数最后一个参数为返回值MPI_前缀,且函数名全部为大写进程、通信器MPI程序中,一个独立参与通信的个体称为一个进程(process)一个MPI进程通常对应于一个普通的进程或线程在共享内存/消息传递混合模式程序中,一个MPI进程可能代表一组UNIX线程部分或全部进程构成的一个有序集合称为一个进程组。进程组中的每个进程都被赋于一个唯一的序号(rank),称为进程号,从0开

6、始编号一个进程组及其相关属性(进程拓扑连接关系等),称为一个通信器(communicator)两个内置通信器,MPI_COMM_WORLD包含所有进程,MPI_COMM_SELF只包含进程自身最基本的MPI函数MPI调用接口的总数虽然庞大,但根据实际编写MPI的经验,使用其中的6个最基本的函数就能编写一个完整的MPI程序去求解很多问题。这6个基本函数,包括启动和结束MPI环境,识别进程以及发送和接收消息。1.MPI_Init(…);2.MPI_Comm_size(…);MPI_Init(…);3.MPI_Comm_rank(

7、…);…并行代码;4.MPI_Send(…);…5.MPI_Recv(…);MPI_Fainalize();6.MPI_Finalize();只能有串行代码;启动、结束MPI环境最先被调用的MPI函数,完成MPI程序的所有初始化工作。启动MPI环境,标志并行代码的开始.参数argc和argv遇main函数传来,从而main必须带参数运行参数用来初始化并行环境(进程数、计算结点名、通信协议等)最后调后的MPI函数,清除MPI并行环境,转为串行此后,MPI语句的运行结果是不可预知的之后串行代码仍可在主进程(rank=0)上

8、运行(如果必须)基本的MPI通信域函数获得通信域comm/COMM内的进程数目,保存于size/SIZE中获得该进程在通信域comm/COMM内的进程序号,保存于rank/RANK中基本的MPI点对点通信函数将发送缓冲区中的count个datat

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

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

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