550 likes | 706 Views
第四章 性能评测 . 第一节 性能评测概述. 一、并行计算机性能指标. 1 、硬件性能 参数 -- 反映硬件系统基本性能. * 硬件性能 的辅助 参数: 存储系统 — 主存 /Cache 容量、页 / 块大小、关联度等; 通信系统 — 通信服务、 IN 及 NIC 性能参数. 2 、系统性能 指标 -- 反映软硬件系统性能和可扩放性. * 程序参数: 问题规模、工作负载、负载不平衡开销、工作集尺寸、通信 - 计算比、通信与同步开销、并行性开销 等.
E N D
第一节 性能评测概述 一、并行计算机性能指标 1、硬件性能参数 --反映硬件系统基本性能 *硬件性能的辅助参数: 存储系统—主存/Cache容量、页/块大小、关联度等; 通信系统—通信服务、IN及NIC性能参数
2、系统性能指标 --反映软硬件系统性能和可扩放性 *程序参数:问题规模、工作负载、负载不平衡开销、工作集尺寸、通信-计算比、通信与同步开销、并行性开销等 *影响系统性能因素:硬件参数(结构与速度)、程序参数(应用与算法),及两者的相互作用 回24页 回23页 回27页 回7页 回13页
二、为何要进行性能评测 1、购买者进行性能评测的目的 主要是降低投资风险,提高投资效益 ·有利于选择并行机型号(性/价、RARS、可扩展性) ·有利于配置系统相关参数(需求、性能、性/价) 2、设计者进行性能评测的目的 主要是为优化设计提供量化依据 ·有利于发现系统设计中存在的问题 ·有利于合理地进行软/硬件功能分配,提高系统性/价 ·有利于优化结构-算法-应用的组合,设计高效算法
三、如何进行性能评测 *系统性能指标:不同测试者所关心的性能指标种类不同 *性能评测层次:机器级、算法级、程序级 1、机器级性能评测 *评测内容: CPU及存储器基本性能(Tn、Rn等); 并行与通信开销(Tpar、t0、R∞等); 可用性、好用性(运行正常百分比、环境及界面); 性能与成本 *评测方法:通过基准测试程序, 不断改变硬件参数进行测试 回7页
2、算法级性能评测 *评测内容:应用-算法-结构组合的可扩放性; 即给定应用背景,系统扩放时的性能 *评测方法:通过基准测试程序, 不断改变问题规模及机器规模进行测试 3、程序级性能评测 *评测内容:各种系统性能(如Tn、Rn、U、TP等) *评测方法:通过基准测试程序进行测试 *基准测试程序种类: 按生成方式—真实、核心、小、综合程序; 按应用类型—科学计算、商业应用、信息处理等; 按程序功能—宏观测试程序、微观测试程序 回15页
并行度 n 1 时间 第二节 机器级性能评测 一、 CPU及存储器的基本性能指标 1、CPU性能指标 *基本参数:工作负载(W)、顺序执行时间(T1) 工作负载—计算量,常用指令或浮点运算表示;(算法相关) 顺序执行时间—工作负载在单处理器上的执行时间 *基本性能指标: 并行执行时间—Tn=Tcomput+Tcomm+Tsync+Tpara 速度--Rn=W/Tn,为系统实际速度(非峰值) 转5页 转3页
2、存储器性能指标 *存储器层次结构: REG 一级Cache 二级Cache 主存 磁盘 远程存储器 各层性能指标—容量C、延迟L、带宽B; 相关参数—交换粒度、一致性粒度、层间管理方案等 *影响容量C设计的因素: 与应用的进程数及各进程工作集尺寸等有关 *影响延迟L设计的因素: 与CPU主频f、指令系统CPI及带宽B等有关 *影响带宽B设计的因素: 与应用的数据通信量、通信频率和通信延迟等有关
二、 并行及通信开销 1、开销来源 *并行开销:包括进程/进程组管理、数据分配等时间 *通信开销:包括通信及同步操作时间(软硬件) 2、开销量化方法 *测量准备:选择测量所用的参数,它们会影响测量结果 (数据结构、语言及编译器、通信硬件及协议、计时方法等) *测量方法: 点点通信—乒-乓法、热土豆(又称救火队)法等 集合通信—较复杂,原则是尽量避免/减少额外干扰 *测量结果表示: 表格法、曲线法、表达式法等
3、开销量化 *并行性开销: 特性--生命周期中分期偿还(总开销/计算量); 量化—测量并行性开销对应的计算量; 如:POWER2处理器的T进程创建=372,000T浮点运算 结果—计算粒度较大时,才有创建进程的可能 *点点通信(通信、互斥/事件等)开销: 量化--测量t(m)=t0+m/R∞的各项参数; 结果--根据t0与R∞关系确定最佳m(平衡设计原理) *集合通信(广播、集合、栅障等)开销: 量化--测量t(m,n)=t0(n)+m/R∞(n)的各项参数; 结果--根据测量确定软/硬件功能分配(高性/价)
三、 可用性与好用性 1、可用性 指系统正常运行时间占总时间的百分比 *量化方法:根据实际使用情况进行测量与统计 注意—排除环境、人为等因素的干扰 *可用性的提高: 方法--增加MTTF,或减少MTTR; 技术—分隔的冗余设备(双管理机), 故障诊断、通知与接管(如系统监控), 故障恢复(如检查点)等
2、好用性 指用户环境的好用性,包括环境系统及界面2方面 *并行机用户环境:命令行+远程登录、GUI+X协议、 客户GUI+服务器、浏览器+WEB服务器 *用户环境系统的好用性: ·灵活、易扩充和易集成; ·使应用软件开发与平台无关; ·用户可不了解低层系统的实现细节; ·提供单一系统映像 *用户界面的好用性: 实用性(提供服务)、高效性(提供帮助)、易学习性(简单/易理解/风格统一)、交互性(交互手段多)、美观性(感觉好)
四、 性能与成本 1、成本与价格 常见关系为: 平均折扣 33.3% 毛利润 毛利润 价格 50% 33.3% 直接成本 25% 直接成本 8.3% 直接成本 12.5% 成本 原料成本 原料成本 原料成本 原料成本 100% 75% 37.5% 25.1% 2、性能/价格 指性能/买价,性能常用速度(Rn)表示 ※高性能/价格—性能或性能/成本不一定好 3、成本有效性 指性能/成本,性能通常用利用率(U)表示 ※高性能/成本—体系结构较为合理 转3页
第三节 算法级性能评测 一、 并行计算性能参数 1、加速比 指对给定应用,并行相对于串行的性能提高程度 即 Sn=T1/Tn=Rn/R1,通常 1≤Sn≤n ※给定应用--指工作负载W、处理器数n为给定值 *影响Sn的因素:算法并行性、并行机体系结构 *研究加速比的目的: +对并行算法,研究顺序/并行部分对性能的影响; +对算法/结构,研究基于结构的并行性开发方法 ※性能提高方法—有并行化和容量增加2方面
2、可扩放性 指对给定应用背景,性能随P增加(n)的按比例提高能力 即 Ψ(n,n’)=[Sn(W)/n]/[Sn’(W’)/n’ ],Ψ(n,n’)∈(0,1) ※应用背景—扩放时对W及Tn的要求或限制; Ψ(n,n’)—为曲线,希望很快接近常数 *特征:反映应用-算法-结构组合的有效性(有效利用n) *影响Ψ(n,n’)的因素: 算法并行性、并行体系结构、应用背景等 *研究可扩放性的目的: +对给定问题,选择算法及结构,以充分利用可扩充资源 +对给定应用及算法,评测体系结构的扩放性能 +对给定结构,评测并行算法的扩放性能 +对给定可扩充资源,指导改进体系结构和并行算法 转6页 回下页 回23页
二、扩放模型及性能分析 1、应用背景与扩放模型 *应用背景种类: ①实时性要求较高—关注Tn,W可不变,如Web服务 ②结果精度要求较高—关注Δ,Tn可不变,如天气预报 ③充分利用硬件资源—关注Un,Tn及W均可变,如计算中心 └→充分利用CPU和MEM等 *扩放模型种类: ①固定负载扩放模型—增加n(W固定),以减小Tn ②固定时间扩放模型—增加n及W,以提高精度(保持Tn) ③存储器受限扩放模型—增加n及W,以提高Un *扩放模型性能分析: 可用3个加速比性能定律进行性能分析 转上页 回下页 回19页 回21页
2、Amdahl定律 --适用于固定负载扩放模型 *基本思想:W不变,增加n,以提高处理速度(减小Tn) *定律公式:设W =fW +(1-f)W,f 为顺序部分比例,则 *定律几何意义: 加速比Sn 工作负载 执行时间 W1 W1 W1 W1 T1 1024 × Wp Wp Wp Wp Tp T1 Tp T1 91 T1 × Tp 48 31 24 Tp × × × n n f 1 2 3 4 1 2 3 4 0% 1% 2% 3% 4% (b)减少执行时间 (a)固定负载 (c)固定负载的加速比 回下页 转上页 回19页
*定律含义: --性能分析 ①对给定工作负载,Sn≤1/f; ②仅增加n,顺序部分依然是瓶颈 *引入开销的加速比:设额外开销为T0(含通信/同步/并行化) 转上页
3、Gustafson定律 --适用于固定时间扩放模型 *基本思想:保持Tn不变,增加n及W,以增加计算量(精度) *定律公式:设W’ =fW +(1-f)nW,f为顺序部分比例,则 *定律几何意义: 加速比Sn 工作负载 执行时间 W1 1024 1004 983 × × × Wp × × 1014 993 W1 Wp W1 S1024=1024-1023f W1 T1 T1 T1 T1 Wp Wp Tp Tp Tp Tp n n f 1 2 3 4 1 2 3 4 0% 1% 2% 3% 4% (b)固定执行时间 (a)规模扩展的负载 (c)固定时间的加速比 回下页 转16页 转17页 回21页
*定律含义: --性能分析 ①当W可扩展以保持Tn不变时,Sn是n的线性函数 ②当n充分大、W’成比例增加时,顺序部分不再是瓶颈 └→关键:顺序部分fW基本不变 *引入开销的加速比:设额外开销为T0(含通信/同步/并行化) 转上页
4、Sun和Ni定律 --适用于存储器受限扩放模型 *基本思想:增加n及W ,以提高Un(充分利用CPU和MEM资源) *定律公式:设W’=fW +(1-f)G(n)W,f为顺序部分比例,则 *定律几何意义: 工作负载 执行时间 加速比Sn W1 1024 1007 991 × × × Wp × × W1 1016 999 T1 W1 Wp G(n)=1.25n T1 Tp T1 Wp W1 T1 Tp Tp Wp Tp n n f 1 2 3 4 1 2 3 4 0% 1% 2% 3% 4% (b)执行时间稍增 (a)规模扩展的负载 (c)存储器受限的加速比 回下页 转16页 转19页
δ Sn 存储器受限 扩放模型 γ 存储器界限 存储器受限扩放模型 固定时间 扩放模型 工作负载W(问题规模) 固定时间扩放模型 固定负载 扩放模型 α 固定负载扩放模型 通信界限 n 机器规模 n *定律含义: --性能分析 ①若G(n)=1,Sn性能与Amdahl定律等效; ②若G(n)=n,Sn性能与Gustafson定律等效; ③若G(n)>n,Sn性能比固定负载、固定时间扩放模型都高 └→即W增加速度>MEM增长速度(n增长速度) *引入开销的加速比:设额外开销为T0(含通信/同步/并行化) 转上页 回下页
三、可扩放性评测标准 1、可扩放性评测标准 *可扩放性的特征:可用效率、速度、利用率等反映 *可扩放性的度量: 存在问题—W较大时T1(W)无法测量→Sn等无法测量 解决方法—同时增加n及W,以保持性能不变,用所增加的W来衡量可扩放性 度量方法—解析法、测量法 *可扩放性评测标准: 现状—无公认的、定义严格的评测标准 标准--等效率标准、等速度标准、等延迟标准 (解析法) (测量法) (测量法) 回下页 转15页 转上页 转3页 回28页
2、等效率标准 用维持效率不变时,所需增加的W来度量可扩放性 (1)等效率函数 设问题规模为s,工作负载W(s)为s的函数, 并行开销为T0(s,n)为s及n的函数 则 解析法 *等效率需求:增大n时,需增大s,E才可能保持不变 *等效率函数:为保持效率E不变,增大n时增加W(s),此时W(s)与n的函数关系即为等效率函数 由效率公式得,W(s)=E/(1-E)×nT0(s,n) 因E为常数,则对上式求解方程,可得s=y(n) 等效率函数为 fE(n)=W(s)=W(y(n)) 回下页 回26页 转3页
效率E 等效率函数fE(n) 系统3 1 系统2 E系统1=E系统2=E系统3 系统1 n n 可扩放性排序(好→差)结果:系统1→系统2→系统3 效率E 等效率函数fE(n) 系统1 系统2 1 E系统1=E系统2 0.5 0.3 n n (2)可扩放性评测 *度量:对给定的等效率值,可获得具体的等效率函数 *评价:等效率函数fE(n)越小,可扩放性越好 *等效率值的特性:等效率值E越小,可扩放性越好 转上页
例—两个N×N矩阵相乘,W(s)=cN3,A、B两系统运行时间分别为 、 ,评价等效率值Ec分别保持1/3和1/4时,哪个系统具有更好的可扩放性。 (1)当Ec=1/3时,1/3=cN3/(cN3+T0) 对A系统有 ,即 , 等效率函数 对B系统,等效率函数 (2)当Ec=1/4时,1/4=cN3/(cN3+h) 对A系统有 ,即 , 等效率函数 对B系统,等效率函数 即当Ec=1/3时,可扩放性A、B系统相同 即当Ec=1/4时,可扩放性B系统比A系统好 转24页
*平均速度: 3、等速度度量标准 用维持平均速度不变时,所需增加的W来度量可扩放性 (1)等平均速度(简称等速度)可扩放性 *等速度特性:Rn与n呈线性关系(∵Rn=Rn×n) *等速度可扩放性:增大n时增大W,若能够保持平均速度不变,则称该算法(或结构)是可扩放的 即 ,Ψ值越大,可扩放性越好 *等速度可扩放性测量: 问题—无法保持平均速度不变 方法—因平均速度不变时,有 则有 ,即可测量并行时间 回下页 转3页
1 2 4 8 16 32 1.0 0.8 0.6 0.4 0.2 0.0 Ψ(n,n’)-n’ 曲线簇 (2)可扩放性度量 *度量方法:测量法、计算法、预计法 *计算法度量步骤: ①对各种n,分别测得W→W’时的Rn-Tn曲线; (已知W为s的函数,测得Tn后,可求得Rn) ②对选定的平均速度RSel,求得各种n时的等速度Tn; RSel ③根据公式,求得Ψ(n,n’) 矩阵,可画出曲线簇 T1T2T3T4 Rn n1 n2 n3 n4 W’ W T Ψ(n,n’)矩阵 Rn-T曲线及等速度的Tn 转上页 转23页
第四节 程序级性能评测 一、 性能评测与测试程序 1、性能评测 *性能指标:不同评测者关心的系统性能指标不同 *性能度量:均通过在机器上运行测试程序来测量 2、测试程序 *种类:多种,可反映不同应用领域的特征 *级别:多级别,可反映不同机器层次的性能 *参数:参数可选,可调节不同的工作负载及机器规模 ※基准测试程序:相对公正的、业界可接受的测试程序 ※基准测试程序组件:能反映特定领域、不同层次系统性能的一组测试程序 回下页
二、 基准测试程序分类 *按生成方式分: 真实程序、核心程序、小测试程序、综合测试程序 (实际的程序) (人为编写的程序) *按应用方式分:科学计算、商业应用、信息处理、网络服务等 *按性质与功能分:宏观测试程序、微观测试程序 三、 基准测试程序 *基本基准测试程序:Whetstone、LinPACK、LMBENCH等 *并行基准测试程序:NPB、PARKBENCH、STAP等 *商用基准测试程序:TPC系列等 *基准测试程序组件:SPEC、WinBench等 转上页
第五节 如何提高性能 一、 并行程序设计过程 1、系统性能 *并行执行时间:Tn=Tcomput+Tcomm+Tsynch+Tpara *影响性能的主要因素: ①并行处理能力— 硬件—节点结构及性能(CPU、MEM及NIC),可扩放性等 软件—算法并行性及可扩放性、负载平衡等 ②通信/同步/管理开销-- 硬件—通信、同步及一致性模型,IN性能等 软件—数据组织、任务粒度、OS性能等
划分 分 解 分 配 P2 P3 P0 P1 P2 P0 P0 P1 P2 P3 P1 P3 协 调 映 射 串行计算 并行程序 处理器 任务 进程 2、并行程序设计步骤 *设计过程: ①David E. Culler—分为分解、分配、协调、映射4个阶段 ②Bal H E等—分为划分、通信、组合、映射4个阶段 △比较—David的协调阶段=Bal的通信及组合阶段 *基本要点:①开拓算法的并发性和可扩放性; ②优化算法的全局执行时间和通信成本 回下页 回37页
并行度DOP 并行度DOP n n k 1 1 时间 时间 fk 串行算法 并行算法并发态曲线 (1)问题的分解 *目的:选择最佳算法,将计算分解成多个任务 *目标:开发并行性(数据并行及功能并行)、兼顾管理开销 可扩放性较好←┘ └→可扩放性有限 *分解方法: 数据分解(域分解)—数据片尽量小、计算与数据关联; 功能分解(任务分解)—开发并行化、兼顾开销 *分解要点: 使数据集和功能集互不相交←避免复制 转上页 回下页 回39页
(2)任务的分配 *目的:将各任务分配到进程中 *目标:平衡负载,减少通信量、管理分配开销 *任务分配方法: --各进程负责哪些任务 静态分配—编程时分配,无管理开销、负载平衡不好; 动态分配—运行时分配,有管理开销,负载平衡好 *任务调度方法: --各进程中任务何时执行 √静态调度—按空间或轮转调度; (适用于静态分配) 动态调度—维护任务队列,按一定算法、适时调度 *任务划分特性: (划分=分解+分配) 侧重算法性能的分析与设计, 独立于编程模型和体系结构 回40页 转上页 回下页
(3)进程的协调 *目的:选择有效机制,以高效实现划分阶段的算法 *目标:降低通信开销及同步开销,降低并行性管理开销 └→可重新选择任务划分阶段的算法 *实现机制: 开发进程中数据局部性,减少附加通信量; 通信结构化,以降低通信开销; 减少操作序列化现象,降低同步开销 *协调的特性: 侧重算法性能的分析与实现; 与编程模型和体系结构及程序语言有很大关系 回41页 回下页 转上页
(4)处理器的映射 *目的:将进程映射到处理器上 *目标:最小化全局执行时间和通信成本 └→从处理器角度平衡负载(任务分配是从进程角度平衡) *映射策略: ①可并发执行的进程映射到不同处理器上; ②需频繁通信的进程映射到同一处理器上 *映射方法: --系统常2者都支持 ①绑定—程序可将进程静态映射(绑定)到处理器上; 例—作业脚本实现静态映射 ②调度—OS可将进程动态映射(调度)到处理器上 例—进程调度及迁移实现动态映射 转上页
3、程序并行化与体系结构关系 转32页
4、并行程序设计例题 (0)有限差分方法求解偏微分方程(串行)程序 int n; float **A, diff=0; main() { read(n); A←malloc(n+2,n+2); initialize(A); Solve(A); } procedure Solve(float **A) { inti, j, done = 0; float temp=0; while (!done) { diff = 0; for (i = 0, i<n; i++) for (j = 1, j<=n; j++) { temp = A[i,j]; A[i,j]=0.2*(A[i,j]+A[i,j-1] +A[i-1,j]+A[i,j+1]+A[i+1,j]); diff += abs(A[i,j]-temp); } if (diff/(n*n) < TOL ) done = 1; } } 回下页
反对角线法 红-黑序法 区域法 (1)问题分解 *功能分解方法:相同次迭代操作并行,不同次迭代操作串行 *域分解方法: 全并行法—DOP=n2,点点同步增加,迭代次数增多 反对角线法—DOP≤n1/2(不稳定),全局同步频繁 红-黑序法—DOP=n2/2,迭代次数翻倍(计算量相近) 区域法—DOP=n,全局同步次数少 *问题分解结果:红-黑序法、区域法 转上页 转33页
P0 P1 P2 P0 P1 P2 P0 P1 P2 轮转调度方式 空间调度方式 (2)任务分配 *问题分解方案确定: 区域法(负载平衡较好、通信量小) *分配方法:静态分配(任务可预测), 每进程负责1行或1块 *调度方法:静态,按空间调度较好 按条的区域法 转34页
(3)进程的协调 *基于共享变量模型的进程协调: 通信及同步机制—隐式通信,显式进程创建及同步; 数据局部性—增加冗余计算(减少通信); 增加私有变量操作(减少通信及同步) 转35页 回下页 回43页
并行程序—基于共享变量编程模型 int n, nproc; float **A, diff; LOCKDEC(diff_lock); BARDEC(bar1); main() { read(n); read(nproc); A←G_MALLOC(n+2,n+2); initialize(A); CREATE(nproc-1,Solve,A); Solve(A); WAIT_FOR_END(nproc-1); } procedure Solve( float **A) { inti,j,pid,done = 0; float temp, mydiff=0; …… } intmymin = 1+(pid*n/nproc); intmymax = mymin+n/nproc-1; while (!done) { mydiff= diff = 0; BARRIER(bar1, nproc); for (i = mymin, i<mymax; i++) for (j = 1, j<=n; j++) { temp = A[i,j]; A[i,j]=0.2*(A[i,j]+A[i,j-1] +A[i-1,j]+A[i,j+1]+A[i+1,j]); mydiff+= abs(A[i,j]-temp); } LOCK(diff_lock); diff += mydiff; UNLOCK(diff_lock); BARRIER(bar1,nproc); if (diff/(n*n) < TOL ) done = 1; BARRIER(bar1,nproc); } 转上页
*基于消息传递模型进程的协调: 通信及同步机制—显式通信,显式进程创建, Send/Recv匹配实现一个同步事件 数据局部性—各进程增加2个边界行(减少通信开销), 各进程每次迭代开始产生一次通信 回下页 转41页
并行程序— 基于消息传递编程模型 intn,,nproc; float **myA; main() { read(n); read(nproc); CREATE(nproc-1,Solve); Solve(A); WAIT_FOR_END(nproc-1); } procedure Solve() { inti, j, pid, done = 0; intn’=n/nprocm; intnsize=n*sizeof(float); float temp, tempdiff,mydiff=0; myA←malloc(n’+2,n+2); initialize(myA); …… } while (!done) { mydiff = 0; if (pid != 0) SEND(&myA[1,0],nsize,pid-1,ROW); if (pid != nproc-1) SEND(&myA[n’,0],nsize,pid+1,ROW); if (pid != 0) RECEIVE(&myA[0,0],nsize,pid-1,ROW); if (pid != nproc-1) RECEIVE(&myA[n’+1,0],nsize,pid+1,ROW); //省略有限差分求和 if (pid != 0) { SEND(mydiff,sizeof(float),0,DIFF); RECEIVE(done,sizeof(int),0,DONE); } else { for (i=1;i<=nproc-1;i++) { RECEIVE(tempdiff,sizeof(float),*,DIFF); mydiff += tempdiff; } if (diff/(n*n) < TOL ) done = 1; for (i=1;i<=nproc-1;i++) SEND(done,sizeof(int),i,DONE); } } 转上页
二、划分阶段的性能提高 *并行程序的执行时间: T(n)=Tcomput+Tlocal+Tcomm+Tsynch+Tpara,Tcomm=T固有+T附加 *划分阶段可提高的性能: Tcomput、Tcomm中T固有、Tsynch和Tpara 1、平衡负载与同步等待时间 *目标:极小化同步等待时间,使各进程任务量相近 *过程:识别足够的并发性、决定并发性的管理方式、 确定任务的粒度、降低序列化现象 (1)识别足够的并发性 *数据并发性:充分开发并行性(nTcomput→Tcomput) *功能并发性:尽量减少全局同步量(min{Tsynch}) 回48页 回下页 回47页
(2)决定并发性的管理方式 *静态/动态分配特征: 在负载平衡效果、管理开销、通信代价等方面不同 *选择:常选静态分配方式(∵ΔTcomput<<Δ(Tcomm+Tpara)) (3)确定任务的粒度 *粒度特征:并行性粒度—通信/同步/管理开销性能矛盾 *粒度确定:折中并行性与三种开销(∵ΔTcomput<<ΔTcomm) *折中方法:粒度组合、重复计算、静态分配等 (4)降低序列化现象 序列化现象—此处指同步点上的串行化现象 *影响因素:同步类型、同步粒度、同步次数 *措施:使用最适宜的同步类型(最小化参与者数), 折中同步粒度与同步次数(开销最小化)等 转上页
2、减少固有的通信开销 *方法一:减少通信-计算比 例—区域法分解中,块划分通信量少于行或条划分 *方法二:尽量使访问相同数据/频繁通信的任务在同一进程 优点—Tcomm→Tlocal; 缺点—负载可能不平衡; 折中—倾向性取决于系统的通信代价大小 注:通信代价为实现延迟,与通信量概念不同 转45页
3、减少划分的额外开销 *额外开销类型一:分配及调度算法增加的管理开销 处理方法—权衡负载不平衡—划分算法的代价 如:对可预测任务,尽量采用静态分配及调度方法 对不可预测任务,则采用半静态/动态方法 *额外开销类型二:并行化管理带来的开销 处理方法—减少进程管理开销(Tpara) 如:减少进程创建次数! 可通过冗余计算减少同步等待时间 转45页
三、协调阶段的性能提高 *并行程序的执行时间: T(n)=Tcomput+Tlocal+Tcomm+Tsynch+Tpara,Tcomm=T固有+T附加 *协调阶段可提高的性能: T附加,Tcomm代价 1、附加通信产生原因 (1)人为产生的附加通信 回下页 回51页
数据通信量 程序第一工作集 因容量不够所产生的 通信量(包括冲突扑空) 程序第二工作集 其他和容量无关的通信 固有通信量 冷启动(强迫)通信量 Cache容量 (2)扩展存储层次结构产生的附加通信 *扑空类型:冷启动扑空、容量扑空、冲突扑空,通信扑空 ※通信扑空—多处理机系统才有(Cache-本地MEM-远程MEM) 由程序固有通信及附加通信引起 *Cache容量与程序的数据通信量: Cache中工作集—算法的工作集(反映访问数据的时间局部性) 其它层中工作集—与算法工作集、层次管理有关 转上页