第六章、并行处理技术和多处理机 6.1概述 6.2并行处理技术的发展 6.3SIM并行处理机 6.4多处理机结构 6.5多处理机高速缓冲存储器( cache)一致性 6.6并行处理软件 6.5多处理机举例 本章重点书P25261~6.9
6.2 并行处理技术的发展 6.3 SIMD并行处理机 6.4 多处理机结构 6.5 多处理机高速缓冲存储器(cache)一致性 6.5 多处理机举例 第六章、并行处理技术和多处理机 6.1 概述 6.6 并行处理软件 本章重点书P252 6.1~6.9
6.1概迷 并行性概念 并行处理是一种有效的强调开发计算过程中并行事件的信息处 理方式 在数值计算,数据处理,知识处理或人工智能求解过程中,可 能存在某些能同时进行运算或操作的部分。 同时性( simultaneity):指两个或多个事件在同一时 刻发生在多个资源中 并发性( concurrency):指两个或多个事件在同一时 间间隔内发生在多个资源中 在同一时刻或同一时间间隔内完成多个性质相同 或不同的任务
一 并行性概念 并行处理是一种有效的强调开发计算过程中并行事件的信息处 理方式. 在数值计算,数据处理,知识处理或人工智能求解过程中,可 能存在某些能同时进行运算或操作的部分。 同时性(simultaneity):指两个或多个事件在同一时 刻发生在多个资源中。 并发性(concurrency):指两个或多个事件在同一时 间间隔内发生在多个资源中 6.1 概述 在同一时刻或同一时间间隔内完成多个性质相同 或不同的任务
并行的等级和分类 1.从计算机信息加工步骤和阶段看,并行性等级可分为: 存贮器操作并行—并行存贮器系统和以相联存贮器为核心 构成的相联处理机。 处理器操作步骤并行一可以是一条指令的取指、分析、执 行等操作步骤,也可以是具体运算。 处理器操作并行一为支持向量、数组运算,可以通过重复 设置处理单元进行,如并行处理机 指令、任务、作业并行—称为较高级并行,属于多指令流 多数据流计算机。 2.从系统结构发展看: 高性能的单处理机SIMD并行处理机,多处理机,多计算机系统 非冯诺依曼计算机(属于多处理机系统)
1.从计算机信息加工步骤和阶段看,并行性等级可分为: 存贮器操作并行----并行存贮器系统和以相联存贮器为核心 构成的相联处理机。 处理器操作步骤并行----可以是一条指令的取指、分析、执 行等操作步骤,也可以是具体运算。 处理器操作并行----为支持向量、数组运算,可以通过重复 设置处理单元进行,如并行处理机 指令、任务、作业并行----称为较高级并行,属于多指令流 多数据流计算机。 二. 并行的等级和分类 2. 从系统结构发展看: 高性能的单处理机,SIMD并行处理机,多处理机,多计算机系统 非冯.诺依曼计算机(属于多处理机系统)
3.程序划分和粒度 并行性的开发还可以按程序大小划分不同粒度的开发方式。 我们先来介绍两个概念: 颗粒规模( grain size)或粒度( granularity) 是衡量 软件进程所含计算量的尺度。测量方法是数一下颗粒(程序段 )中的指令数目。一般用细、中、粗来描述, 时延一(TC)是机器各子系统间通信开销的时间量度。如:存 贮时延是处理机访问存贮器所需时间;同步时延是两台处理机 互相同步所需的时间。 并行性粒度:每次并行处理的规模大小。用字母G表示 G=TW/TC TW:所有处理器进行计算的时间总和; TC:所有处理器进行通信的时间总和。(设系统共有P个处理 器) 当TC较大时,通信量大,则G较小处理粒度较细。反之对于 粗粒度的并行,通信量较小
并行性的开发还可以按程序大小划分不同粒度的开发方式。 我们先来介绍两个概念: 颗粒规模(grain size)或粒度(granularity)---- 是衡量 软件进程所含计算量的尺度。测量方法是数一下颗粒(程序段 )中的指令数目。一般用细、中、粗来描述, 时延-(TC )是机器各子系统间通信开销的时间量度。如:存 贮时延是处理机访问存贮器所需时间;同步时延是两台处理机 互相同步所需的时间。 3. 程序划分和粒度 并行性粒度:每次并行处理的规模大小。用字母G表示 G=TW/TC TW:所有处理器进行计算的时间总和; TC:所有处理器进行通信的时间总和。(设系统共有P个处理 器) 当TC较大时,通信量大,则G 较小处理粒度较细。反之对于 粗粒度的并行,通信量较小
级5 作业级(程序) 任务级(过程或程 粗粒度 级4序段) 中粒度 通信需求与 调度开销级3 子任务级(例行程 序,或子程序) 并行程度 级2 循环或递归循环 C细粒度 级1指令或语句 五种程序执行级别体现了不 现代计算机程序运行并行性级别 同的算法粒度规模以及通信和控 制要求的变化。级别越低,软件 进程的粒度越细。一般情况,程 序可在这些级别的组合状态下运 行
作业级(程序) 任务级(过程或程 序段) 子任务级(例行程 序,或子程序) 指令或语句 循环或递归循环 级5 级4 级3 级2 级1 通信需求与 调度开销 并行程度 粗粒度 中粒度 细粒度 现代计算机程序运行并行性级别 五种程序执行级别体现了不 同的算法粒度规模以及通信和控 制要求的变化。级别越低,软件 进程的粒度越细。一般情况,程 序可在这些级别的组合状态下运 行
(1)指令级:并行性发生在指令内部微操作之间或指令之间。 取决于程序的具体情况。可借助于优化编译器开发细粒度并行 性,它能自动检测并行性并将源代码换成运行时系统能识别的 并行形式。 (2)循环级:相当于迭代循环操作,典型循环包含的指令大 约几百条,循环级并行性是并行机或向量计算机上运行的最优 程序结构,并行处理主要由编译器在循环级中进行开发。 (3)子任务级:属于中粒度。子程序是在单处理机或多处理 机的多道程序设计这一级进行的。这一级并行性由算法设计者 或程序员开发而非用编译器开发。 (4)任务级:这是与任务、过程、程序段、协同程序级相对 应的中粒度或粗粒度规模。典型粒度包含的指令几千条,检测 本级的并行性比细粒度级困难得多,需要更多地涉及过程间的 相关性分析。需编译器支持。 (5)作业(程序)级:对于少量几台高性能处理机构成的超 级计算机开发这种粗粒度并行性切实可行
(1)指令级:并行性发生在指令内部微操作之间或指令之间。 取决于程序的具体情况。可借助于优化编译器开发细粒度并行 性,它能自动检测并行性并将源代码换成运行时系统能识别的 并行形式。 (2)循环级:相当于迭代循环操作,典型循环包含的指令大 约几百条,循环级并行性是并行机或向量计算机上运行的最优 程序结构,并行处理主要由编译器在循环级中进行开发。 (3)子任务级:属于中粒度。子程序是在单处理机或多处理 机的多道程序设计这一级进行的。这一级并行性由算法设计者 或程序员开发而非用编译器开发。 (4)任务级:这是与任务、过程、程序段、协同程序级相对 应的中粒度或粗粒度规模。典型粒度包含的指令几千条,检测 本级的并行性比细粒度级困难得多,需要更多地涉及过程间的 相关性分析。需编译器支持。 (5)作业(程序)级:对于少量几台高性能处理机构成的超 级计算机开发这种粗粒度并行性切实可行
小结: 细粒度并行性常在指令级或循环级上借助于并行化或向 量化编译器来进行开发的。 任务或作业步骤(过程级)中粒度并行性开发需要程序 员和编译器的共同作用。 开发程序作业级的粗粒度并行性主要取决于高效的操作 系统和所用算法的效率 共享变量通信常用于支持中、细粒度计算。消息传递型 多计算机用于中粒度和粗粒度的计算。通常情况下,粒度越 细,并行性潜力越大,通信和调度的开销也越大。细粒度能 提供较高的并行度,但与粗粒度计算相比,其通信开销也较 大。大规模并行性通常是在细粒度级上开发。如:SIMD或 MIMD计算机上开发的数据并行性
小结: ✓ 细粒度并行性常在指令级或循环级上借助于并行化或向 量化编译器来进行开发的。 ✓ 任务或作业步骤(过程级)中粒度并行性开发需要程序 员和编译器的共同作用。 ✓ 开发程序作业级的粗粒度并行性主要取决于高效的操作 系统和所用算法的效率。 ✓ 共享变量通信常用于支持中、细粒度计算。消息传递型 多计算机用于中粒度和粗粒度的计算。通常情况下,粒度越 细,并行性潜力越大,通信和调度的开销也越大。细粒度能 提供较高的并行度,但与粗粒度计算相比,其通信开销也较 大。大规模并行性通常是在细粒度级上开发。如:SIMD或 MIMD计算机上开发的数据并行性
6.2并行处理技术及发展 提高计算机系统的并行性的技术途径:(单机系统) 时间重叠( Time Interleaving):在并行性概念中引入时间 因素。让多个处理过程在时间上相互错开,轮流重叠地使用同 套硬件设备的各个部分,以加快硬件周转而赢得速度。 资源重复( Resource Replication):并行性概念中引入空 间因素。通过重复设置的硬件资源来提高系统可靠性或性能。 例如,通过使用两台或多台完全相同的计算机完成同样的任务 来提高可靠性。 >资源共享( Resource Sharing):利用软件的方法让多个用 户按一定时间顺序轮流地使用同一套资源,以提高其利用率, 这样相应地提高整个系统的性能。例如多道程序分时系统 (多机系统) 功能专用化机间互连,网络化技术途径发展成 异构型多处理机,同构型多处理机,分布式处理机系统
提高计算机系统的并行性的技术途径:(单机系统) ➢时间重叠(Time Interleaving):在并行性概念中引入时间 因素。让多个处理过程在时间上相互错开,轮流重叠地使用同 一套硬件设备的各个部分,以加快硬件周转而赢得速度。 ➢资源重复(Resource Replication):并行性概念中引入空 间因素。通过重复设置的硬件资源来提高系统可靠性或性能。 例如,通过使用两台或多台完全相同的计算机完成同样的任务 来提高可靠性。 ➢资源共享(Resource Sharing):利用软件的方法让多个用 户按一定时间顺序轮流地使用同一套资源,以提高其利用率, 这样相应地提高整个系统的性能。例如多道程序分时系统. 6.2 并行处理技术及发展 (多机系统) 功能专用化,机间互连,网络化技术途径发展成 异构型多处理机,同构型多处理机,分布式处理机系统
单处理机 资源共享 时间重叠 资源重复 多道程序 多存储体 现行控制高速缓 分时系统 虚拟存储器 作部 多终端 相联处理机 指令操作宏流水 远程终端 分布处理系统 同构型多处理机 异构型多处理机 局域计算机网 可重构,容错多处 高级语言数据库 理机 通信处理机计算 紧密耦合 松散耦合系统、专用 L外围处理机 多机互连 网络化 功能专用化 多计算机 系统 并行处理技术发展
多道程序 分时系统 虚拟存储器 多终端 远程终端 分布处理系统 局域计算机网 通信处理机计算 机网 多存储体 多操作部件 相联处理机 并行处理机 同构型多处理机 系统 可重构,容错多处 理机 紧密耦合 系统 现行控制高速缓 存 指令操作宏流水 线 异构型多处理机 系统 高级语言数据库 处理机 松散耦合系统、专用 外围处理机 多计算机 系统 单处理机 资源共享 资源重复 时间重叠 多机互连 功能专用化 网络化 并行处理技术发展
6.3SM并行计算机(阵列处理机) 、并行处理机的基本构成 并行处理机是通过重复设置大量相同的处理单元PE( Processing Element),将它们按一定的方式互连,在统一的 控制部件CU( Control unit)控制下,对各自分配来的不同数 据并行地完成同一条指令所规定的操作。它依靠操作一级的并 行处理来提高系统的速度。 并行处理机的控制部件中进行的是单指令流,因此与高 性能单处理机一样,指令基本上是串行执行,最多加上使用 指令重叠或流水线的方式工作。 指令重叠是将指令分成两类,把只适合串行处理的控制 和标量类指令留给控制部件自己执行,而把适合于并行处理 的向量类指令播送到所有处理单元,控制让处于活跃的那些 处理单元去并行执行。因此这是一种标量控制类指令和向量 类指令的重叠执行
一、并行处理机的基本构成 并行处理机是通过重复设置大量相同的处理单元PE( Processing Element),将它们按一定的方式互连,在统一的 控制部件CU(Control Unit)控制下,对各自分配来的不同数 据并行地完成同一条指令所规定的操作。它依靠操作一级的并 行处理来提高系统的速度。 并行处理机的控制部件中进行的是单指令流,因此与高 性能单处理机一样,指令基本上是串行执行,最多加上使用 指令重叠或流水线的方式工作。 指令重叠是将指令分成两类,把只适合串行处理的控制 和标量类指令留给控制部件自己执行,而把适合于并行处理 的向量类指令播送到所有处理单元,控制让处于活跃的那些 处理单元去并行执行。因此这是一种标量控制类指令和向量 类指令的重叠执行。 6.3 SIMD并行计算机(阵列处理机)