曙光MPI用户手册.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
曙光MPI用户手册

曙光MPI用户手册 (TC1700 TC4000L) 曙光信息产业有限公司 2003-9 目 录 MPI的使用 1 1.MPI简介……… 1 2.MPI的程序设计 1 2.1MPI的基本功能…. 1 2.2 MPI的几个重要特征 2 2.3消息…………. .2 2.4 point-to-point通信 3 2.5集群通信……. 5 3.MPI应用程序的编译 6 3.1环境设置……. 6 3.2 make…………. 7 3.3 mpif77和mpicc 8 4.MPI应用程序的运行 8 5.常见问题分析 8 附录 MPI函数简表 9 C语言函数列表………………………………………………………………………………………9 FORTRAN语言函数列表…………………………………………………………………………...12 MPI的使用 1.MPI简介 MPI(Message Passing Interface)是消息传递接口的标准,当前通用的是MPI1.2规范。不久前制定的MPI2.0规范除支持消息传递外,还支持MPI的I/O规范和进程管理规范。MPI正成为并行程序设计事实上的工业标准。 MPICH含三层结构,最上层是MPI的API,基本是点到点通信和点到点通信基础上构造的集群通信(Collective Communication);中间层是ADI层(Abstract Device Interface),其中device可以简单地理解为某一种底层通信库,ADI就是对各种不同的底层通信库的不同接口的统一标准;最下层是具体的底层通信库,例如工作站机群上的p4通信库。 MPICH在不同平台上的实现都是根据不同的device(即平台或底层通信)实现不同的ADI接口,这种实现机制的好处有 : 将与device有关和无关的代码分开,减小实现难度; 利于MPI的不断升级; 提高MPI的性能。 2.MPI的程序设计 2.1 MPI的基本功能 MPI1.2标准中没有对如何产生多个MPI进程作标准性规定,而把这一工作交给了具体的实现。但是它有如下众所周知的假设:静态加载,即所有进程在加载完以后就全部确定,直至整个程序结束才终止,在程序正常运行期间没有进程的创建和结束。 一个MPI程序的所有进程形成一个缺省的组,这个组被MPI预先规定的Communicator MPI_COMM_WORLD所确定。 MPI环境的初始化和结束流程如下:在调用MPI例程之前,各个进程都应该执行MPI_INIT,接着调用MPI_COMM_SIZE获取缺省组(group)的大小,调用MPI_COMM_RANK获取调用进程在缺省组中的逻辑编号(从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程序所需例程的最小子集。 MPI的几个重要元素 下面分别介绍MPI的几个重要元素:Communicator(通信子)、Group(进程组)、Context_id(上下文标识)、Data Types(数据类型)。 MPI提供Communicator来指定通信操作的上下文,提供了通信操作的执行空间。在某个通信空间(或上下文)中发送的消息必须在相同的空间中接收,不同空间中的消息互不干扰。 定义一个Communicator,也就指定了一组共享该空间的进程,这些进程组成了该Communicator的Group。 Communicator通过其特征属性Context_id来区分,同一个进程不同的Communicator有不同的Context_id。因此Context_id是另一个区分消息的标志。 MPI引入消息的Data Type属性的目的有两个:一是支持异构系统计算;二是允许消息来自不连续的或类型不一致的存储区,例如,可以传送数组的一列,或传送一个结构值,而该结构的每个元素的类型不同。Data Types定义了消息中不连续的数据项及其可能不同的数据类型。Data Type由应用程序在执行时通过基本的数据类型创建。 消息 一个消息(见图1.1)相当于一封信,消息内容相当于信本身,消息的接收者相当于信封上的内容。因此通常将前者称为消息的buffer, 后者称为消息的envelop。 MPI_Send (N, 1, MPI_INIT, i,

文档评论(0)

daoqqzhuan3 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档