【文件属性】:
文件名称:编程模式-grid layout in css
文件大小:1018KB
文件格式:PDF
更新时间:2021-06-16 01:08:47
MPI
§2.2 一些名词与概念
程序与代码 我们这里说的程序不是指以文件形式存在的源代码、可执行代码等, 而是指为了完成一
个计算任务而进行的一次运行过程.
进程 (process) 一个 MPI 并行程序由一组运行在相同或不同计算机/计算结点上的进程或线程构成.
为统一起见, 我们将 MPI 程序中一个独立参与通信的个体称为一个进程. 在 Unix 系统中, MPI
的进程通常是一个 Unix 进程. 在共享内存/消息传递混合编程模式中, 一个 MPI 进程可能代表
一组 Unix 线程.
进程组 (process group) 指一个 MPI 程序的全部进程集合的一个有序子集. 进程组中每个进程被
赋于一个在该组中唯一的序号 (rank), 用于在该组中标识该进程. 序号的取值范围是 0 到
进程数− 1.
通信器 (communicator) 通信器 (也有译成通信子的) 是完成进程间通信的基本环境, 它描述了一组
可以互相通信的进程以及它们之间的联接关系等信息. MPI 的所有通信必须在某个通信器中进
行. 通信器分域内通信器 (intracommunicator) 和域间通信器 (intercommunicator) 两类, 前者用
于属于同一进程组的进程间的通信, 后者用于分属两个不同进程组的进程间的通信. 域内通信器
由一个进程组和有关该进程组的进程间的拓扑联接关系构成.
MPI 系统在一个 MPI 程序运行时会自动创建两个通信器, 一个称为 MPI_COMM_WORLD, 它包
含该 MPI 程序中的所有进程, 另一个称为 MPI_COMM_SELF, 它指单个进程自己所构成的通信器.
序号 (rank) 序号用来在一个进程组或通信器中标识一个进程. MPI 程序中的进程由进程组/序号或
通信器/序号所唯一确定. 序号是相对于进程组或通信器而言的: 同一个进程在不同的进程组或
通信器中可以有不同的序号. 进程的序号是在进程组或通信器被创建时赋予的.
MPI 系统提供了一个特殊的进程序号 MPI_PROC_NULL, 它代表空进程 (不存在的进程). 与
MPI_PROC_NULL 间的通信实际上没有任何作用.
消息 (message) MPI 程序中在进程间传送的数据称为消息. 一个消息由通信器、源地址、目的地址、
消息标签和数据构成.
通信 (communication) 通信指在进程之间进行消息的收发、同步等操作.
§2.3 编程模式
SPMD 编程模式 Single Program Multiple Data 的缩写. 指构成一个程序的所有进程运行的是同一
份可执行代码. 不同进程根据自己的序号可能执行该代码中的不同分支. 这是 MPI 编程中最常
用的编程方式. 用户只需要编写、维护一份源代码.
10