●编译命令:mpif77-o exam.e example.f ●运行命令:mpirun-np4exam.e ·运行效果:MPI系统选择相同或不同的4个处理机, 在每个处理机上运行程序代码exam.e。 MPI函数 进程0进程1 进程2进程3 InitO) 进入MPI系统 Comm_rank()my_rank=0 myrank=1 myrank=2 my_rank=3 Comm size() D=4 p=4 p=4 p4 tag=5,data=0 tag=5,data-0 tag=5.data-0tag=5,data-0 source=3 source=0 source=1 source=2 dest=1 dest=2 dest=3 数据交换 send() recv( recv( recv() data=data+l send( data=data+l send() data=data+l 消息传递 send() Broadcast() send() recv() recv() recv() output“data Finalize() 退出MPI系统
13 ⚫ 编译命令: mpif77 -o exam.e example.f ⚫ 运行命令: mpirun –np 4 exam.e ⚫ 运行效果:MPI 系统选择相同或不同的 4 个处理机, 在每个处理机上运行程序代码 exam.e。 MPI 函数 进程 0 进程 1 进程 2 进程 3 Init() Comm_rank() my_rank=0 myrank=1 myrank=2 my_rank=3 Comm_size() p=4 p=4 p=4 p=4 tag=5,data=0 tag=5,data=0 tag=5,data=0 tag=5,data=0 source=3 source=0 source=1 source=2 dest=1 dest=2 dest=3 dest=0 数据交换 send() recv() recv() recv() recv() data=data+1 空 send() 闲 data=data+1 等 send() 待 data=data+1 消息传递 send() Broadcast() send() recv() recv() recv() output “data” Finalize() 进入 MPI 系统 退出 MPI 系统
3.MPI重要概念 ●进程序号(rank):各进程通过函数MPI_Comm_rank()获取各 自的序号: ·消息号:消息的标号: ●通信器(Communicator):I)理解为一类进程的集合,且在该集 合内,进程间可以相互通信:类比:邮局、电话局、国际网: 2)任何MPI通信函数均必须在某个通信器内发生;3)MPI系 统提供省缺的通信器MPI COMM WORLD,所有启动的MPI 进程通过调用函数MPI Init(0包含在该通信器内:4)各进程通 过函数MPI Comm size()获取通信器包含的(初始启动)的 MPI进程个数, ●消息:分为数据(data)和包装(envelope)两个部分,其中, 包装由接收进程序号、发送进程序号、消息标号和通信器四 部分组成,数据包含用户将要传递的内容: ●进程组:一类进程的集合,在它的基础上,可以定义新的通 信器: ·基本数据类型:对应于FORTRAN和C语言的内部数据类型 (INTEGER,REAL,DOUBLE PRECISION,COMPLEX, LOGICAL,CHARACTER),MPI系统提供已定义好的对应 数据类型(MPI_INTEGER,MPI_REAL, MPI DOUBLE PRECISION MPI COMPLEX MPI LOGICAL,MPI CHARACTER);
14 3.MPI 重要概念 ⚫ 进程序号(rank);各进程通过函数 MPI_Comm_rank()获取各 自的序号; ⚫ 消息号:消息的标号; ⚫ 通信器(Communicator):1)理解为一类进程的集合,且在该集 合内,进程间可以相互通信;类比:邮局、电话局、国际网; 2)任何 MPI 通信函数均必须在某个通信器内发生;3) MPI 系 统提供省缺的通信器MPI_COMM_WORLD,所有启动的MPI 进程通过调用函数 MPI_Init()包含在该通信器内;4)各进程通 过函数 MPI_Comm_size()获取通信器包含的(初始启动)的 MPI 进程个数; ⚫ 消息:分为数据(data)和包装(envelope)两个部分,其中, 包装由接收进程序号、发送进程序号、消息标号和通信器四 部分组成,数据包含用户将要传递的内容; ⚫ 进程组:一类进程的集合,在它的基础上,可以定义新的通 信器; ⚫ 基本数据类型:对应于 FORTRAN 和 C 语言的内部数据类型 (INTEGER,REAL,DOUBLE PRECISION,COMPLEX, LOGICAL,CHARACTER),MPI 系统提供已定义好的对应 数 据 类 型 ( MPI_INTEGER , MPI_REAL , MPI_DOUBLE_PRECISION , MPI_COMPLEX , MPI_LOGICAL,MPI_CHARACTER);