消息传递并行编程环境MPI 一、进程与消息传递 二、MPI环境的应用现状 三、MPI并行程序设计入门(程序例1) 四、初步的MPI消息传递函数 五、作业一 六、先进的MPI函数 七、MPI并行程序示例2(求解-△u=f): 八、MPI环境的发展 九、作业二
3 消息传递并行编程环境 MPI 一、 进程与消息传递 二、 MPI 环境的应用现状 三、 MPI 并行程序设计入门(程序例 1) 四、 初步的 MPI 消息传递函数 五、 作业一 六、 先进的 MPI 函数 七、 MPI 并行程序示例 2(求解-u=f); 八、 MPI 环境的发展 九、 作业二
一、进程与消息传递 1.单个进程(process) ●进程是一个程序,同时包含它的执行环境(内存、寄 存器、程序计数器等),是操作系统中独立存在的可 执行的基本程序单位: ●通俗理解:串行应用程序编译形成的可执行代码,分 为“指令”和“数据”两个部分,并在程序执行时“独 立地申请和占有”内存空间,且所有计算均局限于该 内存空间。 进程1 进程2 一内存 2.单机内多个进程 ●多个进程可以同时存在于单机内同一操作系统:由操 作系统负责调度分时共享处理机资源(CPU、内存、 存储、外设等): 。进程间相互独立(内存空间不相交):在操作系统调 度下各自独立地运行,例如多个串行应用程序在同一 台计算机中运行: ·进程间可以相互交换信息:例如数据交换、同步等待, 消息是这些交换信息的基本单位,悄息传递是指这
4 一、进程与消息传递 1.单个进程(process) ⚫ 进程是一个程序,同时包含它的执行环境(内存、寄 存器、程序计数器等),是操作系统中独立存在的可 执行的基本程序单位; ⚫ 通俗理解:串行应用程序编译形成的可执行代码,分 为“指令”和“数据”两个部分,并在程序执行时“独 立地申请和占有”内存空间,且所有计算均局限于该 内存空间。 2.单机内多个进程: ⚫ 多个进程可以同时存在于单机内同一操作系统:由操 作系统负责调度分时共享处理机资源(CPU、内存、 存储、外设等); ⚫ 进程间相互独立(内存空间不相交):在操作系统调 度下各自独立地运行,例如多个串行应用程序在同一 台计算机中运行; ⚫ 进程间可以相互交换信息:例如数据交换、同步等待, 消息是这些交换信息的基本单位,消息传递是指这 进程 1 进程 2 内存
些信息在进程间的相互交换,是实现进程间通信的唯 一方式: ●最基本的消息传递操作:发送消息(send)、接受消 息(receive)、进程同步(barrier)、规约(reduction); 。消息传递的实现:共享内存或信号量,用户不必关心: 进程1 进程2 发送数据口 接收数据口 (消息传递 内存空间 3.包含于通过网络联接的不同计算机的多个进程: ●进程独立存在:进程位于不同的计算机,由各自独立 的操作系统调度,享有独立的CPU和内存资源; ·进程间相互信息交换:消息传递: ●消息传递的实现:基于网络socket机制,用户不必关 心; 4.消息传递库函数 ●应用程序接口(API):提供给应用程序(FORTRAN、 C、C+语言)的可直接调用的完成进程间消息传递 5
5 些信息在进程间的相互交换,是实现进程间通信的唯 一方式; ⚫ 最基本的消息传递操作:发送消息(send)、接受消 息(receive)、进程同步(barrier)、规约(reduction); ⚫ 消息传递的实现:共享内存或信号量,用户不必关心; 进程 1 进程 2 发送数据 接收数据 (消息传递) 内存空间 3.包含于通过网络联接的不同计算机的多个进程: ⚫ 进程独立存在:进程位于不同的计算机,由各自独立 的操作系统调度,享有独立的 CPU 和内存资源; ⚫ 进程间相互信息交换:消息传递; ⚫ 消息传递的实现:基于网络 socket 机制,用户不必关 心; 4.消息传递库函数: ⚫ 应用程序接口(API):提供给应用程序(FORTRAN、 C、C++语言)的可直接调用的完成进程间消息传递
的某项特定功能的函数: ●消息传递库:所有定义的消息传递函数编译形成的软 件库,调用其内部函数的应用程序,通过与之联接, 即可成为可并行执行的程序: ●目前流行的消息传递函数库:PVM3.3.11、MPICH 1.2、LAMMPI6.4等: 5.标准消息传递界面(MPI:Message Passing Interface): ●MPI标准:根据应用程序对消息传递功能的需求, 全球工业、应用和研究部门联合推出标准的消息传递 界面函数,不考虑其具体实现,以保证并行应用程序 的可移植性: ●MPI的具体实现:消息传递库函数,目前有影响的 为MPICH和LAMMPI,我们注重MPICH系列; 6
6 的某项特定功能的函数; ⚫ 消息传递库:所有定义的消息传递函数编译形成的软 件库,调用其内部函数的应用程序,通过与之联接, 即可成为可并行执行的程序; ⚫ 目前流行的消息传递函数库:PVM 3.3.11、MPICH 1.2、LAMMPI 6.4 等; 5.标准消息传递界面(MPI:Message Passing Interface): ⚫ MPI 标准:根据应用程序对消息传递功能的需求, 全球工业、应用和研究部门联合推出标准的消息传递 界面函数,不考虑其具体实现,以保证并行应用程序 的可移植性; ⚫ MPI 的具体实现:消息传递库函数,目前有影响的 为 MPICH 和 LAMMPI,我们注重 MPICH 系列;
6.基于消息传递的并行程序执行模式: ●SPMD模式:单程序多数据流 并行应用程序代码 一可执行代码 运行 复制多份并独立执行,形 成多个独立的进程 禮 进程一 (内存 (内存) (内存) 消息传递(交换数据、同步、规约)协同 ●MPMD模式:多程序多数据流,除初始启动多个可 执行代码,其余与SPMD模式一致: 7.共享存储与分布式存储: ·。属于并行机体系结构的范畴,与消息传递并行程序设 计平台无关:
7 6.基于消息传递的并行程序执行模式: ⚫ SPMD 模式:单程序多数据流 可执行代码 运行 ⚫ MPMD 模式:多程序多数据流,除初始启动多个可 执行代码,其余与 SPMD 模式一致; 7.共享存储与分布式存储: ⚫ 属于并行机体系结构的范畴,与消息传递并行程序设 计平台无关; 并行应用程序代码 复制多份并独立执行,形 成多个独立的进程 进 程 一 ( 内 存 ) 进 程 二 ( 内 存 ) 进 程 三 ( 内 存 ) 消息传递(交换数据、同步、规约)协同