MPI并行程序设计.ppt

MPI并行程序设计.ppt

ID:48043025

大小:670.01 KB

页数:80页

时间:2020-01-13

MPI并行程序设计.ppt_第1页
MPI并行程序设计.ppt_第2页
MPI并行程序设计.ppt_第3页
MPI并行程序设计.ppt_第4页
MPI并行程序设计.ppt_第5页
资源描述:

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

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

2、序设计方式。什么是MPI?MPI(MassagePassingInterface):是消息传递函数库的标准规范,由MPI论坛开发,支持Fortran和C。一种新的库描述,不是一种语言。共有上百个函数调用接口,在Fortran和C语言中可以直接对这些函数进行调用。从语法上,它遵守所有对库函数/过程的调用规则,与一般的函数/过程没有区别。MPI是一种标准或规范的代表,而不是特指某一个对它的具体实现。一个正确的MPI程序,可不加修改在所有的并行机上运行。MPI是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准。最终目标

3、是服务于进程间通信。MPI的发展过程发展的两个阶段:MPI1.1:1995MPICH:是一种最重要的MPI实现,每当MPI推出新的版本,就会有相应的MPICH的实现版本。由美国Argonne国家实验室和密西西比州立大学联合开学,具有更好的可移植性。MPI1.2~2.0:动态进程,并行I/O,支持F90和C++。为什么要用MPI?—优点高可移植性:MPI已在IBMPC机上、MSWindows上、所有主要的Unix工作站上和所有主流的并行机上得到实现。使用MPI作消息传递的C或Fortran并行程序可不加改变地运行在IBMPC、

4、MSWindows、Unix工作站、以及各种并行机上。消息传递方式是广泛应用于多类并行机的一种模式,特别是分布存储并行机。这种模式在一些重要的计算应用中已取得了实质性进步。为什么要用MPI?—优点MPI是被正式的详细说明的:它已经成为一个标准。消息传递标准的定义能提供给生产商清晰定义的程序库,以便他们能有效地实现这些库或在某些情况下为库程序提供硬件支持,因此加强了扩展性。MPI有完备的异步通信:使得send,receive能与计算重叠。可以有效的在MPP上或Cluster上用MPI编程。MPI+C实现的“HelloWorld

5、!”#include#include"mpi.h"main(intargc,char*argv[]){MPI_Init(&argc,&argv);printf("Hello,world!");MPI_Finalize();}MPI+C实现的“HelloWorld!”mpi.h是MPI标准规定的,每个MPI实现都要包含。它提供用户MPI程序需要的所有必要的原型和外部变量声明。MPI函数返回出错代码或MPI_SUCCESS成功标志。MPI-前缀,且只有MPI以及MPI_标志后的第一个字母大写,其余小写。MP

6、I函数的参数被标志为以下三种类型:IN:参数在例程的调用中不会被修正。OUT:参数在例程的调用中可能会被修正。INOUT:参数在一些例程中为IN,而在另一些例程中为OUT.MPI初始化-MPI_InitintMPI_Init(int*argc,char**argv)MPI_INIT(IERROR)MPI_Init是MPI程序的第一个调用,它完成MPI程序的所有初始化工作。所有的MPI程序的第一条可执行语句都是这条语句。启动MPI环境,标志并行代码的开始。并行代码之前,第一个mpi函数(除MPI_Initialize()外)。

7、要求main必须带参数运行,否则出错。MPI结束-MPI_FinalizeintMPI_Finalize(void)MPI_FINALIZE(IERROR)MPI_Finalize是MPI程序的最后一个调用,它结束MPI程序的运行,它是MPI程序的最后一条可执行语句,否则程序的运行结果是不可预知的。标志并行代码的结束,清理和关闭除主进程外的其它进程。之后串行代码仍可在主进程(rank=0)上运行(如果必须)。MPI程序的的编译与运行mpif77hello.f或mpicchello.c默认生成a.out的可执行代码。mpif7

8、7–ohellohello.f或mpicc–ohellohello.c生成hello的可执行代码。mpirun–np4a.outmpirun–np4hello4指定np的实参,表示进程数,由用户指定。a.out/hello要运行的MPI并行程序。输出文件命名Hello是如何被执行的?SPM

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

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

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