曙光MPI用户手册.doc

曙光MPI用户手册.doc

ID:55585109

大小:186.00 KB

页数:20页

时间:2020-05-19

曙光MPI用户手册.doc_第1页
曙光MPI用户手册.doc_第2页
曙光MPI用户手册.doc_第3页
曙光MPI用户手册.doc_第4页
曙光MPI用户手册.doc_第5页
资源描述:

《曙光MPI用户手册.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、曙光MPI用户手册(TC1700&TC4000L)曙光信息产业有限公司2003-9目录MPI的使用11.MPI简介………12.MPI的程序设计12.1MPI的基本功能….12.2MPI的几个重要特征22.3消息…………..22.4point-to-point通信32.5集群通信…….53.MPI应用程序的编译63.1环境设置…….63.2make………….73.3mpif77和mpicc84.MPI应用程序的运行85.常见问题分析8附录MPI函数简表9C语言函数列表………………………………………………………………

2、………………………9FORTRAN语言函数列表…………………………………………………………………………...12MPI的使用1.MPI简介MPI(MessagePassingInterface)是消息传递接口的标准,当前通用的是MPI1.2规范。不久前制定的MPI2.0规范除支持消息传递外,还支持MPI的I/O规范和进程管理规范。MPI正成为并行程序设计事实上的工业标准。MPICH含三层结构,最上层是MPI的API,基本是点到点通信和点到点通信基础上构造的集群通信(CollectiveCommunication)

3、;中间层是ADI层(AbstractDeviceInterface),其中device可以简单地理解为某一种底层通信库,ADI就是对各种不同的底层通信库的不同接口的统一标准;最下层是具体的底层通信库,例如工作站机群上的p4通信库。MPICH在不同平台上的实现都是根据不同的device(即平台或底层通信)实现不同的ADI接口,这种实现机制的好处有:l将与device有关和无关的代码分开,减小实现难度;l利于MPI的不断升级;l提高MPI的性能。2.MPI的程序设计2.1MPI的基本功能MPI1.2标准中没有对如何产

4、生多个MPI进程作标准性规定,而把这一工作交给了具体的实现。但是它有如下众所周知的假设:静态加载,即所有进程在加载完以后就全部确定,直至整个程序结束才终止,在程序正常运行期间没有进程的创建和结束。一个MPI程序的所有进程形成一个缺省的组,这个组被MPI预先规定的CommunicatorMPI_COMM_WORLD所确定。MPI环境的初始化和结束流程如下:在调用MPI例程之前,各个进程都应该执行MPI_INIT,接着调用MPI_COMM_SIZE获取缺省组(group)的大小,调用MPI_COMM_RANK获取调用

5、进程在缺省组中的逻辑编号(从0开始)。然后,进程可以根据需要,向其它进程发送消息或接收其它进程的消息,经常调用的函数是MPI_SEND和MPI_RECV。最后,当不需要调用任何MPI例程后,调用MPI_FINALIZE消除MPI环境,进程此时可以结束,也可以继续执行与MPI无关的语句。上面提到的六个函数:MPI_INIT,MPI_COMM_SIZE,MPI_COMM_RANK,MPI_SEND,MPI_RECV,MPI_FINALIZE实际上构成了编写一个完整的MPI程序所需例程的最小子集。2.2MPI的几个重要

6、元素下面分别介绍MPI的几个重要元素:Communicator(通信子)、Group(进程组)、Context_id(上下文标识)、DataTypes(数据类型)。MPI提供Communicator来指定通信操作的上下文,提供了通信操作的执行空间。在某个通信空间(或上下文)中发送的消息必须在相同的空间中接收,不同空间中的消息互不干扰。定义一个Communicator,也就指定了一组共享该空间的进程,这些进程组成了该Communicator的Group。Communicator通过其特征属性Context_id来区

7、分,同一个进程不同的Communicator有不同的Context_id。因此Context_id是另一个区分消息的标志。MPI引入消息的DataType属性的目的有两个:一是支持异构系统计算;二是允许消息来自不连续的或类型不一致的存储区,例如,可以传送数组的一列,或传送一个结构值,而该结构的每个元素的类型不同。DataTypes定义了消息中不连续的数据项及其可能不同的数据类型。DataType由应用程序在执行时通过基本的数据类型创建。2.3消息一个消息(见图1.1)相当于一封信,消息内容相当于信本身,消息的接收

8、者相当于信封上的内容。因此通常将前者称为消息的buffer,后者称为消息的envelop。DestinationProcessIDMessageDataTypeMessageCountMessageTagMessageAddressSubroutineNameCommunicatorMPI_Send(&N,1,MPI_INIT,i,i,MPI_COMM_WORLD)buf

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

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

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