文件名称:编程模式-grid layout in css
文件大小:1018KB
文件格式:PDF
更新时间:2024-07-05 18:55:27
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