曙光MPI用户手册
(TC1700 & TC4000L)
曙光信息产业有限公司
2003-9
目录
MPI的使用 1
……… 1
1
…. 1
MPI的几个重要特征 2
…………. .2
point-to-point通信 3
……. 5
6
……. 6
make…………. 7
8
8
8
附录 MPI函数简表 9
C语言函数列表………………………………………………………………………………………9
FORTRAN语言函数列表…………………………………………………………………………...12
MPI的使用
MPI(Message Passing Interface)是消息传递接口的标准,。,还支持MPI的I/O规范和进程管理规范。MPI正成为并行程序设计事实上的工业标准。
MPICH含三层结构,最上层是MPI的API,基本是点到点通信和点到点通信基础上构造的集群通信(munication);中间层是ADI层(Abstract Device Interface),其中device可以简单地理解为某一种底层通信库,ADI就是对各种不同的底层通信库的不同接口的统一标准;最下层是具体的底层通信库,例如工作站机群上的p4通信库。
MPICH在不同平台上的实现都是根据不同的device(即平台或底层通信)实现不同的ADI接口,这种实现机制的好处有:
将与device有关和无关的代码分开,减小实现难度;
利于MPI的不断升级;
提高MPI的性能。
MPI的基本功能
,而把这一工作交给了具体的实现。但是它有如下众所周知的假设:静态加载,即所有进程在加载完以后就全部确定,直至整个程序结束才终止,在程序正常运行期间没有进程的创建和结束。
一个MPI程序的所有进程形成一个缺省的组,municator M_WORLD所确定。
MPI环境的初始化和结束流程如下:在调用MPI例程之前,各个进程都应该执行MPI_INIT,M_SIZE获取缺省组(group)的大小,M_RANK获取调用进程在缺省组中的逻辑编号(从0开始)。然后,进程可以根据需要,向其它进程发送消息或接收其它进程的消息,经常调用的函数是MPI_SEND和MPI_RECV。最后,当不需要调用任何MPI例程后,调用MPI_FINALIZE消除MPI环境,进程此时可以结束,也可以继续执行与MPI无关的语句。
上面提到的六个函数:MPI_INIT,M_SIZE,M_RANK,MPI_SEND,MPI_RECV,MPI_FINALIZE 实际上构成了编写一个完整的MPI程序所需例程的最小子集。
MPI的几个重要元素
municator(通信子)、Group(进程组)、Context_id(上下文标识)、Data Types(数据类型)。
municator来指定通信操作的上下文,提供了通信操作的执行空间。在某个通信空间(或上下文)中发送的消息必须在相同的空间中接收,不同空间中的消息互不干扰。
municator,也就指定了一组共享该空间的进程,municator的Group。
Communicator通过其特征属性Context_id来区分,municator有不同的Context_id。因此Context_id是另一个区分消息的标志。
MPI引入消息的Data Type属性的目的有两个:一是支持异构系统计算;二是允许消息来自不连续的或类型不一致的存储区,例如,可以传送数组的一列,或传送一个结构值,而该结构的每个元素的类型不同。Data Types定义了消息中不连续的数据项及其可能不同的数据类型。Data Type由应用程序在执行时通过基本的数据类型创建。
消息
一个消息()相当于一封信,消息内容相当于信本身,消息的接收者相当于信封上的内容。因此通常将前者称为消息的buffer, 后者称为消息的envelop。
DestinationProcess ID
Message Data Type
Message Count
Message Tag
Message Address
Subroutine Name
Communicator
MPI_Send (&N, 1, MPI_INIT, i, i, M_WORLD)
b
曙光MPI用户手册 来自淘豆网m.daumloan.com转载请标明出处.