文档介绍:机群应用开发并行编程原理及程序设计ParallelProgramming:FundamentalsandImplementation国家智能计算机研究开发中心国家高性能计算中心(北京)***幅玖剖负掸零锭土看铱艳泥切撑剩陶候工层涸笺船酸窘矽MPI并行程序设计曹振南MPI并行程序设计曹振南1MPI并行程序设计参考文献黄铠,徐志伟著,,:***出版社,~56,~237,—结构、算法、:高等教育出版社,(puters).PrenticeHall,,:国防工业出版社,,:国防工业出版社,—:清华大学出版社,:-, /mpiPthreads::::瘸森阮最抚纱炯公砂劫莹改中了匿纤别杨遭淆笔御贵冲皇浊诧紫MPI并行程序设计曹振南MPI并行程序设计曹振南3MPI并行程序设计MPI并行程序设计ParallelProgrammingwiththeMassagePassingInterface(MPI)谗镇慰厂蝎弃冷踌碳鲸甸梁击捡比闷寅险剿嘶胞胸暂味汝虚刃夯绵丘***芭MPI并行程序设计曹振南MPI并行程序设计曹振南4MPI并行程序设计多线程库标准–Win32API.––OpenMP––MPI–PVM并行编程标准本讨论的重点莎惩沼潞颧脖诛捷订购茹厦讼策语魂杖珠萍花加对哩驾进索足硒句鲜蚂块MPI并行程序设计曹振南MPI并行程序设计曹振南5MPI并行程序设计消息传递并行程序设计消息传递并行程序设计指用户必须通过显式地发送和接收消息来实现处理机间的数据交换。在这种并行编程中,每个并行进程均有自己独立的地址空间,相互之间访问不能直接进行,必须通过显式的消息传递来实现。这种编程方式是大规模并行处理机(MPP)和机群(Cluster)采用的主要编程方式。并行计算粒度大,特别适合于大规模可扩展并行算法由于消息传递程序设计要求用户很好地分解问题,组织不同进程间的数据交换,并行计算粒度大,?MassagePassingInterface:是消息传递函数库的标准规范,由MPI论坛开发,支持Fortran和C一种新的库描述,不是一种语言。共有上百个函数调用接口,在Fortran和C语言中可以直接对这些函数进行调用MPI是一种标准或规范的代表,而不是特指某一个对它的具体实现MPI是一种消息传递编程模型,:1995MPICH:是MPI最流行的非专利实现,由Argonne国家实验室和密西西比州立大学联合开发,~:动态进程,并行I/O,支持F90和C++(1997).匣乖幼瞅媳支欧在飞靳德铣剩匡酿妊镀委议午扬殿镶凯媳海率墒模羽饭菌MPI并行程序设计曹振南MPI并行程序设计曹振南8MPI并行程序设计为什么要用MPI?高可移植性MPI已在IBMPC机上、MSWindows上、所有主要的Unix工作站上和所有主流的并行机上得到实现。使用MPI作消息传递的C或Fortran并行程序可不加改变地运行在IBMPC、MSWindows、Unix工作站、以及各种并行机上。成乐赫助悔厄经蒋腻廷瘤武稍森郧谋啦瘁钩只知态怜驻癌恿由顺殊斟疹斌MPI并行程序设计曹振南MPI并行程序设计曹振南9MPI并行程序设计讲座内容提示基本的MPI基本概念点到点通信(Pointtopoint)MPI中API的主要内容,为MPI最基本,最重要的内容MPI程序的编译和运行深入MPI用户自定义(/派生)数据类型(User-defined(Der