并行计算机体系结构 东南大学计算机学院 任国林 email: [email protected]
DESCRIPTION
并行计算机体系结构 东南大学计算机学院 任国林 Email: [email protected]. 一、课程目标 1. 并行性理论的研究 并行计算机系统模型与体系结构; 并行程序设计模型与通信模型; 并行计算机性能评测方法; 可扩展性原理及实现方法。. 2. 并行技术和结构的研究 微处理器并行技术; 互连网络技术; 共享存储技术及体系结构; 分布存储技术与可扩展体系结构; 通信时延包容技术。. 二、参考教材 1 、并行计算机体系结构,陈国良等著,高等教育出版社, - PowerPoint PPT PresentationTRANSCRIPT
2
一、课程目标1. 并行性理论的研究 并行计算机系统模型与体系结构; 并行程序设计模型与通信模型; 并行计算机性能评测方法; 可扩展性原理及实现方法。2. 并行技术和结构的研究 微处理器并行技术; 互连网络技术; 共享存储技术及体系结构; 分布存储技术与可扩展体系结构; 通信时延包容技术。
3
二、参考教材1 、并行计算机体系结构,陈国良等著,高等教育出版社, ISBN 7-04—11558-1 , 2002.92 、并行计算机体系结构, David E.Culler 等著,李晓明等
译,机械工业出版社, ISBN 7-111-07888-8 , 2002.10
3 、可扩展并行计算—技术、结构与编程,黄铠、徐志伟著,陆鑫达等译,机械工业出版社, 2000.5
4 、计算机系统结构—一种定量的方法 ( 第 5 版 ) , John L. Hennessy 等著,郑纬民等译,清华大学出版社, 2002.8
5 、计算机系统结构 ( 第二版 ) ,郑纬民、汤志忠著,清华大学出版社, 1998.9
4
第一章 系统结构设计基础
5
第一节 计算机系统结构概念 一、计算机系统结构概念 1 、计算机系统层次结构
软硬件交界面
L6 :应用语言级L5 :高级语言级L4 :汇编语言级L3 :操作系统级L2 :机器语言级
L1 :微程序机器级L0 :电子线路
硬件固件
软件
虚拟机器实际机器
翻译(应用程序包)翻译(编译程序)翻译(汇编程序)
解释硬件直接执行
部分解释
计算机语言实现技术
回下页
6
2 、计算机系统设计方法(1) 由上向下方法 从软件到硬件,适合专用机的设计 结果:形成软、硬脱节(2) 由下向上方法 从硬件到软件,适合通用机的设计 结果:形成软、硬脱节(3) 从中间开始方法 从软、硬件交界面开始设计 要求:不断进行交互、优化设计 → 需要较好的评价工具和方法
转上页
7
3 、系统结构定义 * 精确定义:机器语言程序员、编译程序编写者所看到的计算
机的属性,即概念性结构和功能特性 概念性结构—系统的软、硬件功能界面; 功能特性—界面的功能分配,即界面的接口或组织
* 实质:研究软硬件之间的界面定义及其上下的功能分配
* 基本定义:程序员所看到的计算机的属性
* 研究内容:数据表示、寻址方式、指令系统,寄存器组织 ; 存储系统; 中断机构、 I/O 结构; 机器工作状态定义和切换、信息保护
回下页
8
CPU
……
键盘接口键盘
显卡显示器
MEM
磁盘接口磁盘
机器语言级机器
输入设备触发程序执行
指令系统
程序员看到的属性
信息保护机器状态 存储系统I/O 系统 中断系统
计算机系统结构包含内容示意图
进程管理程序作业管理程序 文件管理程序
存储管理程序
设备管理程序信息保护操作系统级
机器
注: 作业管理包含用户界面功能
转上页
9
计算机组成包含内容—数据通路宽度、专用部件设计、各种OS 共享程度、功能部件并行度、控制机构组成方式、排队与缓冲技术、预估与预判技术、可靠性技术等 * 系统结构、计算机组成、物理实现三者关系: 1 : n 1 : m 系统结构 ─── 计算机组成 ─── 物理实现
* 计算机组成: 定义—计算机系统设计人员看到的基本属性 实质—是系统结构的逻辑实现
10
4 、计算机系统结构设计步骤(1) 需求分析 在应用环境、所用语言种类及特性、对OS 的特殊要求、所用外设特性、技术经济指标、市场分析等方面进行分析(2) 需求说明 形成设计准则、功能说明、器件性能说明等需求(3) 概念性设计 进行软、硬件功能分析,确定机器级界面(4) 具体设计 机器级界面各方面的确切定义,可考虑几种方案(5)反复进行评价及优化设计
11
5 、并行体系结构 * 并行计算机:是一组相互通信、相互协作的处理单元, 用以快速求解大型问题
总线或互连网络···
···SM SM SM
LM
MB
NIC
P/C
LM
MB
NIC
P/C
互连网络
···LM
MB
NICBridge
P/C
IOB
NIC
LM
MB
NICBridge
P/C
IOB
NIC
12
* 并行体系结构: 由宏体系结构、微体系结构两部分组成 微体系结构—节点内部结构 ,主要为处理器及其壳的结构 宏体系结构—并行计算机的整体结构,包括节点间互连、通
信、存储器访问等方面 * 并行体系结构研究内容: 互 连—结构模型、互连网络 存储器—访存模型、一致性模型 (Cache/ 存储 ) 交 互—编程模型、通信机构、同步机构
13
二、计算机系统结构分类1 、 Flynn 分类法 * 分类原理:按指令流和数据流的多倍性进行分类 * 结构种类: SISD , SIMD , MISD , MIMD
SISD
CU MMIS
ISPU DS
SIMD
CU…
MMm
…
DS1
IS
IS
MM1
PUn DSn
PU1
MISD
…
DSIS1 IS1
ISn
…
DSISn MMm
…
MM1PU1
PU1
CU1
CU1
MIMD
…
DS1IS1 IS1
ISn
…
DSnISn MMm
…
MM1PU1
PU1
CU1
CU1
*缺点:对流水线处理机的分类不明确
14
2 、 Handler 分类法 * 分类原理:在三个层次,按并行程度及流水处理程度分类 层次— PCU (程序控制部件或宏流水) K 级 ALU (算术逻辑部件或指令流水) D 级 ELC (基本逻辑线路或操作流水) W 级 描述— T(C)=<K×K’ , D×D’ , W×W’> 其中: K为 PCU 数、 K’为宏流水级数 (PCU 数 ) , D为每个 PCU 中 ALU 数、 D’为指令流水级数 (ALU数 ) , W为 ALU 或 PE字长, W’为操作流水线级数 (ELC套数 ) * 特点:对并行及流水线的程度有清晰的描述 注:①流水属并行的一种类型,但有所不同; ②并行程度越好,性能越高
15
3 、冯氏分类法 * 分类原理:按照系统的最大并行程度进行分类 *最大并行度:单位时间内能处理的最大二进制位数 即 Pm=位片宽 ×字宽
位片宽
字宽
SISD
SIMD ( MPP)SIMDMIMD
1
m
n
1 m’ n’
16
4 、按控制方式分类 * 分类原理:按程序执行的控制方式分类 * 分类结果:共有 4 种 控制流方式—指令按逻辑顺序执行 (如冯 ·诺依曼模型 ) ; 数据流方式—只要操作数到位,指令即可执行, 无序执行 (↓ ,源→目的求解过程 ) ; 规约方式—当需要该指令结果时,该指令才会执行, 无序执行 (↑ ,目的→源→目的求解过程 ) ; 匹配方式—由谓词模式匹配驱动指令的执行, 适合非数值型数据应用,常用于智能型计算机 * 特点:除控制流方式外,其它的并行程度较好
17
第二节 系统设计的定量原理 一、大概率事件优先原则 * 基本思想:对大概率事件赋予优先的处理权和资源使用权 ,以获得全局的最优结果 ※该原则是系统设计中最重要和最常用的原则 * 应用举例: 指令系统—指令操作码采用霍夫曼编码; 溢出处理—优化不溢出情况的处理; 存储系统—层次结构使高频使用数据存取速度更快, 虚拟存储器的 TLB 用高速芯片组成
18
二、 Amdahl 定律 * 基本思想:优化某部件所获得的系统性能的改善程度,取决于该部件被使用的频率,或所占总执行时间的比例
eref
ee fTT
pS
)1(10
* 应用:使用该定律可改善“系统瓶颈”性能
*举例:某功能处理时间占系统时间的 40% ,将其处理速度加快 10倍后,整个系统性能提高多少? 解—已知 fe=0.4 , re=10 ,利用 Amdahl 定律,则 Sp=1.56
0.0 0.5 1.0 fe
Sp
10
1
5
re=10 时 Sp 和 fe 的关系如右图: 方法—若改善某部件性能后,系统性能急剧提高, 则该部件为“系统瓶颈”
19
三、程序访问的局部性原理 * 基本思想:程序执行时,呈现出频繁重复使用那些“簇聚”的数据和指令的规律,包含时间局部性和空间局部性 时间局部性 -- 近期被访问的信息,可能马上被访问 空间局部性 -- 与被访问地址相邻的信息可能会一起被访问 * 应用:层次存储体系设计
20
四、软硬件取舍原则1 、现有软硬件条件下,所选方法应有助于提高系统的性能 / 价格 例:
2 、所选方法应尽量不限制计算机组成和实现技术 例:数据表示设计不应限制数据宽度与之一一对应; 主存容量设计不应限制是否采用多体交叉存储器等3 、所选方法应能够对编译程序和操作系统的实现提供好的支持
例:指令系统中增加OS 所需指令; 根据编译要求设置一定数量通用寄存器等
研制费用 生产费用 产品费用硬件方法 Dh Mh Dh/V+Mh
软件方法 C×Ds R×Ms C×Ds/V+R×Ms
说明: V— 设备数量, C—重复设计次数, R—复制次数
21
第三节 计算机系统性能评价 一、计算机系统性能 * 计算机性能:正确性、可靠性和工作能力
响应时间—指任务从输入到结果输出的所有时间, 反映 CPU 、 I/O 系统及 OS 等的总体性能;
·正确性:与数学计算结果比较,通常认为是正确的 · 可靠性:用平均无故障时间表示,通常认为是可靠的 · 工作能力:即系统的速度,通常用程序执行时间表示; 可分为峰值性能和持续性能
吞吐率—指单位时间内能处理的作业或任务数量, 反映系统的多任务处理性能
22
1 、响应时间 响应时间指一个任务从输入到输出的总时间 T 响应= TCPU= T 系统 CPU+ T 用户 CPU= IN×CPI×TC CPI 包含 ALU 、访问MEM 及 I/O 的时间 ( 含等待时间 )
性能因子系统属性 IN p m k TC
指令系统结构 × ×编译技术 × × ×PE 实现与控制技术 × ×Cache 和内存层次结构
× ×
* 特点:能够反映软硬件系统的总体性能,但不易测量 *影响 TCPU 的因素: TCPU = IN×CPI×TC= IN×(p+m×k)×TC
其中 p— 处理周期数 / 指令, m—访存次数 / 指令, k—访存时延
23
2 、吞吐率 * 定义:指单位时间内能够处理作业 ( 或任务 ) 的数量 吞吐率 = n÷n个任务总时间 *常用标准:对作业 ( 或任务 ) 的定义无法统一 MIPS(每秒百万次指令 )--
66C
6 10CPI10TCPI1
10MIPS
时钟频率
程序执行时间程序中指令条数
MIPS 不能反映指令功能强弱,常用相对MIPS 表示 MFLOPS(每秒百万次浮点运算 )—
610MFLOPS
程序执行时间程序中浮点操作次数
不同操作通过正则化方法实现关联, MFLOPS只能反映浮点操作能力
24
3 、利用率 * 定义:利用率=持续性能 ÷峰值性能 * 特点:不直接表示系统性能,与前两种指标有密切关系; 对系统性能优化及结构改进起着至关重要的作用!
*提高吞吐率方法: 流水化 --使多个作业流水处理; 并行处理 --给每个 PE 分配多个作业,各 PE相互协调
* 特点:吞吐率与 I/O 软硬件组织方式及 OS有很大关系; 能够反映软硬件系统对多任务的响应能力
25
4 、系统可扩放性 常用于评价多机系统的并行处理能力
),(),()1,(
),( nphnpTpT
npS
其中 p--问题规模, n-- 处理器数量, h-- 通信时间
衡量方法 -- 测量不同 n时的加速比, 得到性能可扩放性曲线
* 性能加速比:多机系统相对于单机系统性能提高的比例
* 系统可扩放性:系统性能随处理机数 n增加而增长的比例 Ψ=fS(n)
影响因素—结构、处理器数、问题规模、存储系统等
S
n1B 系统A 系统
26
二、性能评价与比较1 、评价技术(1) 分析技术 *思路:在一定假设条件下,计算机系统参数与性能指标间存在着某种函数关系,按其工作负载的驱动条件列出方程,用数学方法求解后评价 * 发展:从脱离实际的假设发展到近似求解 近似求解算法—聚合法、均值分析法、扩散法等 * 应用:可应用于设计中系统的分析与评价
回下页
例— A 机执行的程序中有 20%转移指令 ( 需 2TC) ,转移指令都需要一条比较指令 ( 需 1TC) 配合,其他指令均为 1TC 。 B机中转移指令包含比较指令功能,但 TC比 A 机慢 15% 。执行该程序时, A 机、 B 机哪个工作速度快?
27
(2) 模拟技术 *思路:建立模拟器,模拟系统性能模型和工作负载模型,对运行后的数据进行统计、分析和评价 * 方法: 按被评价系统的运行特性建立系统模型; 按系统可能有的工作负载特性建立工作负载模型; 用语言编写模拟程序,模仿被评价系统的运行; 设计模拟实验,依照评价目标,选择与目标有关因素,得出实验值,再进行统计、分析 * 应用:可应用于设计中或实际应用中系统的分析与评价; 可与分析技术相结合,构成一个混合系统
转上页
28
(3) 测量技术 *思路:通常采用基准测试程序对系统进行实际性能评价 * 基准测试程序: 有实际应用程序、核心程序、合成测试程序三个层次 第一个层次—用于测试系统总体性能; 后两个层次 -- 用于测试部件 (如 CPU 、 I/O 系统等 ) 性能 基准测试程序—具有三个层次的测试程序组,典型的有SPEC 程序组,包含测试多个领域、三个层次的测试程序 * 应用:只能应用于实际使用中系统的分析与评价; 通常根据系统的设计需求 ( 应用领域 )选择基准测试程序组中的部分测试程序进行测量
29
2 、比较技术 * 目的:根据多种测试结果,比较不同系统的优劣 * 方法:算术平均、几何平均、调和平均方法(1) 算术平均方法
n
iTn
n
iinm iRA
1
11
1
1
基准测试程序
处理机X Y Z
B1 20(1.00) 10(0.50) 40(2.00)B2 40(1.00) 80(2.00) 20(0.50)
Am (1.00) (1.25) (1.25)
基准测试程序
处理机X Y Z
B1 20(2.00) 10(1.00) 40(4.00)B2 40(0.50) 80(1.00) 20(0.25)
Am (1.25) (1.00) (2.13) * 特性:选择不同的参考机, Am 结论不同
回下页
30
(2)几何平均方法n
n
iT
nn
iim iRG )()(
1
1
1
基准测试程序
处理机X Y Z
B1 20(1.00) 10(0.50) 40(2.00)B2 40(1.00) 80(2.00) 20(0.50)
Gm (1.00) (1.00) (1.00) 特性: Gm 性能与参考计算机性能无关 依据— Gm(Xi)/Gm(Yi)=Gm(Xi/Yi)
基准测试程序
处理机X Y Z
B1 20(2.00) 10(1.00) 40(4.00)B2 40(0.50) 80(1.00) 20(0.25)
Gm (1.00) (1.00) (1.00)
(3)调和平均方法n
n
ii
n
iiR
TTn
T
nnmH
...1
11
1
特性: Hm最接近 CPU 的实际性能 依据— Hm 与所有测试程序时间总和成反比关系转上页
31
一、影响计算机系统结构发展因素1 、软件对系统结构发展的影响 *影响因素:软件可移植性(1) 系列机 *思想:具有相同系统结构或扩充原系统结构,组成或实现技术不同,来实现软件可移植性 *影响一:新的组成与实现技术很快得到应用,大量兼容产品的出现,推动了系统结构的发展 系列机要求—保证向后兼容, 力争向上兼容
时间
机器档次当前机器向上兼容
向下兼容高
低 向后兼容向前兼容 *影响二:要求系统结构基本不变,限制了系统结构的发展
回下页
第四节 系统结构的发展
32
(2) 模拟与仿真 * 模拟:用机器语言解释来实现软件移植 需模拟目标机指令系统、存储系统、 I/O 系统、 OS 等的操作 *仿真:用微程序直接解释另一种指令系统 需解释目标机 I/O 系统、 OS 等的操作 *比较:解释程序存放位置、是否有硬件参与方面不同; 在解释指令系统、存储系统、 I/O 系统、 OS 方面相同(3) 统一高级语言方法 存在一定的困难,可争取汇编语言或接口 / 技术的统一 * 方案 1 :采用统一的中间语言 (如 Java) ,通过解释执行以适应不同的系统结构 * 方案 2 :采用标准的开放系统 ( 具有可移植性、交互操作性 ), 用硬件抽象层技术适应不同的系统结构
转上页
33
2 、应用对系统结构发展的影响 * 应用背景:应用领域、功能及性能要求有所不同 * 应用需求:高速度、大容量、大吞吐率 * 系统结构设计思路: 分成不同级别的系统,以提高性能 / 价格 巨、大型机—研究专用系统结构、组成技术 其它型机—研究通用系统结构 (吸纳先进结构与技术 ) * 系统结构发展趋势: · 保持价格基本不变,提高性能 · 保持性能基本不变,降低价格
价格
时间等性能线
巨型机大型机中、小型机微型机 *对系统结构影响: 专用系统结构—无限制 ( 应用是原动力 ) 通用系统结构—如何有效实现专用结构→通用结构
34
3 、器件对系统结构发展的影响 * 器件使用方法: 通用片→现场片→半用户片→用户片 *对系统结构影响: · 器件的发展推动了系统结构与组成技术的发展 如—器件性能、使用方法影响系统结构及组成方法, 器件性 / 价提高,使结构、组成下移速度更快, 器件的发展,推动算法、语言的发展 · 系统结构的发展要求器件不断发展 如—新结构的使用,取决于器件发展能否提供可能 提高器件性能 / 价格,要求改变器件逻辑设计方法
35
二、并行性的发展 并行性—包括同时性 ( 时刻 ) 、并发性 ( 时段 )
* 开发方法: 时间重叠、资源重复、资源共享
* 并行性等级划分: 执行程序角度 处理数据角度 信息加工步骤 操作级 位串字串 存储器操作并行 指令级 位并字串 处理器操作步骤并行 任务或过程级 位串字并 处理器操作并行 作业或程序级 全并行 任务或作业并行
1 、并行性开发
36
2 、并行性发展 用三种并行性实现方法进行开发,得到如下系统结构树:
标量顺序的 先行控制
I/E重叠 功能并行多个功能部件 流水线
隐式向量 显式向量存储器 - 存储器 寄存器 - 寄存器
SIMD MIMD
联想处理机 处理机阵列 多计算机 多处理机计算机系统结构树
空间并行时间并行
37
本章思考1 、系统结构精确定义、包含内容是什么? 与计算机组成和实现的关系是什么? 进行系统结构设计的方法和步骤是什么?2 、系统结构的分类方法有哪些? 影响系统结构发展的因素又哪些?如何影响的?3 、系统结构设计的定量原理有哪些?举例说明其应用。4 、计算机系统的性能指标有哪些?其特点和影响因素是什么?5 、评价系统性能的方法有哪些?如何比较测量的结果?6 、并行计算机与单处理器计算机在系统结构上有哪些区别? 影响其性能的因素有哪些?如何评价?7 、并行性包含的内容是什么?开发并行性的方法有哪些? 系统结构树中结点采用哪些技术可实现变迁?