方超《浅谈MPI编程环境及基础》

方超《浅谈MPI编程环境及基础》

ID:46710785

大小:83.50 KB

页数:5页

时间:2019-11-27

方超《浅谈MPI编程环境及基础》_第1页
方超《浅谈MPI编程环境及基础》_第2页
方超《浅谈MPI编程环境及基础》_第3页
方超《浅谈MPI编程环境及基础》_第4页
方超《浅谈MPI编程环境及基础》_第5页
资源描述:

《方超《浅谈MPI编程环境及基础》》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、论文题目:浅谈MPI编程环境及基础学院专业班级学号姓名继续教育学院计算机科学与技术计科110(夜升)26110706方超摘要本文针对MPI的发展历程做了详细的介绍,讲解了MPI的编程环境及程序设计基础,重点描述了结合使用C语言的调用格式,以便于参考。关键词:MPI;MPI概述;MPI发展及并行编程环境;MPI程序设计基础MPI(MessagePassingInterface)是消息传递并行程序设计的标准Z—,由MPI论坛开发,当前通用的是MPI1.1规范。正在制定的MPI2.0规范除支持消息传递外,述支持MPI的I/O规范和进程管理规范。MPI正成为并行程序设计

2、事实上的工业标准。对于MPI的定义,必须明确以卜•几点:1)MP1是一个库,而不是一门语言;2)MPI是一种标准或规范的代表,而不是特指某一个对它的具体实现;3)MPI是--种消息传递编程模型,并成为这种编程模型的代表和事实上的标准。MPI通过提供一个非专利且独立于语言与平台的消息传递库的标准方法來达到它的可移植性的目的。在MP11.0中明确提出了MPI和F0R2TRAN与C语言的绑定,并口给出了通用接口和针对FORTRAN与C语言的专用接口说明。这就意味着以标准C或FORTRAN书写的,使用MPI作消息传递的程序,可以不加改变地在异构环境下实现。二、MPI发展

3、及编程环境概述1)MPI的发展1994年6月,全球工业、政府和科研应用部门联合推出消息传递并行编程环境的标准用户界面(MPI),它将消息传递并行编程环境分解为两个部分,第一是构成该环境的所有消息传递函数的标准接II说明,它们是根据并行应用程序对消息传递功能的不同要求而制定的,不考虑该函数能否具体实现;第二是各并行机厂商提供的对这些函数的具体实现。这样,用户只需学习MPI库函数的标准接口,设计MPI并行程序,便可在支持MPI并行编程环境的具体并行机上执行该程序。通常意义下所说的MPI系统就是指所冇这些具冇标准接口说明的消息传递函数所构成的函数库。在标准串行程序设计

4、语言(C、Fortran.C++)的基础上,再加入实现进程间通信的MPI消息传递库函数,就构成了MPI并行程序设计所依赖的并行编程环境。MPI吸收了众多消息传递系统的优点,例如P4、PVM、Express>PARMACS等,是目前国内外最流行的并行编程环境之一。当前,大量工业、科学与工程计算部门(例如气象、石油、地震、空气动力学、核物理等)的科研与工程软件已经移植到MPI平台。MPI是一个消息传递接口的标准,用于开发基于消息传递的并行程序,其目的是为用户提供一个实际可用的、可移植的、高效的和灵活的消息传递接口。2)MPI并行编程环境MPI由一组库函数组成,在Fo

5、rtran77,Fortran99,C和C++语言中皆可以直接对这些函数进行调用。作为一种消息传递式的并行编程环境,MPI并行程序要求将任务分块,同时启动多个进程并发执行,各进程Z间通过调用MP1的库函数实现消息传递。(1)进程创建和执行一个MPI并行程序山若干个并发进程组成,这些进程可以相同也可以不同。MPI只支持静态进程创建,即:每个进程在执行前必须在MPI环境中登记,且它们必须一起启动。通常启动可执行的MP1程序是通过命令行來实现的。启动方法山具体实现确定。例如在MPICH实现屮通过下列命令行可同时在独立的机器上启动相同的可执行程序:mpirun-npNp

6、rogramname其中N是同时运行的进程的个数,program-name是可执行的MPI程序的程序名。以这种方式执行时,需要首先对可用的机器进行配置,配置文件是$HOME/mpich/util/machines/machines.LINUX。在这个文件屮,每一行写上可用的机器名。例如:linuxl.comlinux2.comlinux3.com这样就有3台机器可供MPI使用,每台机器执行一个进程。(2)MPI的初始化与结束MPI程序的初始化工作是通过调用MPI_Init()函数完成的,该函数是MPI程序的第一个函数调用,也是MPI程序的第一条可执行语句。NIP

7、I_FimdizeO函数是MPI程序的最后一个调用,它结束MPI程序的运行,是MPI程吊的最后一条执行语句,如果没有该函数调用,程序的运行结果是不可预知的。命令行的参数将传递给MPI.Init(),以允许MPI进行设置要发生的动作,即:main(intargc,char*argv[]){MPI_Init(&argc,&argv);MPI_Finalize();}初始化后,MPI自动创建一个通信域称为MPI_COMM_WORLD,由它定义通信操作的作用域。并为域内每个进程分配一个独立的序号(进程标志),如果冇n个进程,则其标识为0~n~l。用户可以使用MPI初始化

8、创建的通信域,也可以按照

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

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

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