收藏 分享(赏)

并行计算-多媒体课件-并行体系结构-lec04-performance.ppt

上传人:dzzj200808 文档编号:3696549 上传时间:2018-11-16 格式:PPT 页数:36 大小:389KB
下载 相关 举报
并行计算-多媒体课件-并行体系结构-lec04-performance.ppt_第1页
第1页 / 共36页
并行计算-多媒体课件-并行体系结构-lec04-performance.ppt_第2页
第2页 / 共36页
并行计算-多媒体课件-并行体系结构-lec04-performance.ppt_第3页
第3页 / 共36页
并行计算-多媒体课件-并行体系结构-lec04-performance.ppt_第4页
第4页 / 共36页
并行计算-多媒体课件-并行体系结构-lec04-performance.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、Parallel Computer Architecture 并行计算机体系结构 Lecture 5,Overview,Review of Lec4 Benchmark 性能提高(任务划分、分配、调度),Review of Lec4,并行计算机的性能评测 加速比性能定律 并行系统的加速比是指对于一个给定的应用,并行算法(或并行程序)的执行速度相对于串行算法(或串行程序)的执行速度加快了多少倍。 Amdahl 定律 Gustafson定律 Sun Ni定律 可扩放性评测标准 等效率度量标准 等速度度量标准 平均延迟度量标准,Overview,Review of Lec4 Benchmark 性能

2、提高(任务划分、分配、调度),程序级性能评测,基准测试程序(Benchmark) 一组标准的测试程序 提供一组控制测试条件 步骤的规则说明(测试平台环境、输入数据、输出结果和性能指标等 ) 基准测试程序的分类 真实程序 :C compiler, Text editor, spice 核心程序 : Livermore 24 loops, Linpack 小测试程序 : 皇后问题、排序问题、求素数 合成测试程序 : Whetstone 、Dhrystone 应用:科学计算、商业应用、网络服务、多媒体应用 宏观测试程序(Macro-benchmark):计算机系统作为一个整体来测试其性能 微观测试程

3、序(Micro-benchmark :测试机器的某一特定方面的性质 Benchmark Suites,程序级性能评测(contd),Whetstone 和Dhrystone测试程序,Whetstone: 浮点性能 合成测试程序 最早用Algol-60写成,后用Fortran改写 英国国立物理实验室最频繁使用的数值计算程序段。转换到称之为Whetstone虚拟计算机上的指令 包括整数运算、浮点运算,涉及到数组下标索引、子程序调用、参数传递、条件转移和三角/超越函数等,使用Kwhetstone/s数来度量。 Dhrystone 测试整数与逻辑运算性能合成测试程序 用Ada、C和Pascal写成 C

4、PU密集(CPU-intensive)型测试程序,包括很多整型语句与逻辑语句的小循环,使用KDhrystone/s数来度量 VAX11/780(1MIPS)的性能为1.7KDhrystone/s Whetstone和Dhrystone的缺点:它们不能预测用户程序性能,对编译程序比较敏感。,LINPACK测试程序,Fortran语言 求解线性代数方程组的子程序,于1979年正式发布了LinPACK包 ,使用BLAS1 测试的基准是用全精度64位字长的子程序求解100阶线性方程组的速度,测试的结果以Mflops,LAPACK测试程序和ScaLAPACK测试程序,LAPACK: LinPACK作为测

5、试程序现在仍很有生命力,但作为实际求解线性代数问题的软件包已经落伍了。 1992年推出了代替LinPACK及EisPACK(特征值软件包)的LAPACK,它使用了数值线性代数中最新、最精确的算法,同时采用了将大型矩阵分解成小块矩阵的方法,从而可有效地使用存储器。 LAPACK是建立在BLAS1、BLAS2 和BLAS3基础上的,其中BLAS2执行矩阵-向量运算,BLAS3执行矩阵-矩阵运算 ScaLAPACK: LAPACK 的增强版,主要为可扩放的、分布存储的并行计算机而设计 ScaLAPACK支持稠密和带状矩阵上各类操作,诸如乘法、转置和分解等。 ScaLAPACK例程可以加入多个并行算法

6、,并且可根据数据分布、问题规模和机器大小选择这些算法,然而用户却不必关心这些细节,LMBENCH和STREAM测试程序,LMBENCH SGI的Larry McVoy所维护 用于测试不同Unix平台上OS开销以及处理器、高速缓存、主存、网络和磁盘之间数据传输能力STREAM SGI的John McCalpin所维护。 测试可持续的存储带宽(MB/s)及其相应的计算速率 迭代地执行4种向量操作,并行基准测试程序,NPB测试程序 NAS(Numerical Aerodynamic Simulation)Parallel Benchmark 8个程序组成,测试范围从整数排序到复杂的数值计算 EP M

7、G CG FT IS LU SP BT PARKBENCH测试程序 PARallel Kernels and BENCHmarks 目前分布存储的多计算机编写,使用Fortran77加上PVM或MPI 底层基准程序、核心基准程序、密集应用基准程序、HPF编译基准程序 STAP测试程序 Space-Time Adaptive Processing APT(Additive Processing Testbed)、 HO-PD(High-Order Post- Doppler)、BM-stag(Beam Space PRI-Staggered Post Doppler)、EL-stag(Eleme

8、nt Space PRI-Staggered Post Doppler)、GEN(General),商用基准测试程序,TPC Transaction Processing Performance Council TPC已发布了4个基准测试程序,TPC-A和TPC-B于1995年6月废弃;TPC-C用于测试事务处理系统的性能与价格/性能比;而TPC-D测试决策支持系统的性能。 TPC-C是目前最流行的在线事务处理(OLTP)商用基准测试程序,能模拟一个大公司的整个销售环境 (仓库、区域、用户、定单、各种事务的比例、响应时间) 性能结果tpmC:描述了系统在执行Payment、Order-stat

9、us、Delivery、Stock-Level这四种交易的同时,每分钟可以处理多少个New-Order交易。所有交易的响应时间必须满足TPC-C测试规范的要求。 流量指标值越大越好。 和价格/性能结果/tpmC:性价比越小越好 各厂商的TPC-C测试结果都按TPC组织规定的两种形式发布:测试结果概要(Executive Summary)和详细测试报告(Full Disclosure Report)。测试结果概要中描述了主要的测试指标、测试环境示意图以及完整的系统配置与报价,而详细测试报告中除了包含上述内容外,还详细说明了整个测试环境的设置与测试过程 TPC-C允许被测系统放大和缩小,但终端数和

10、数据库规模也必须按比例调整,SPEC测试程序,Standard Performance Evaluation Cooperation 第一组基准程序叫作SPEC89,包含10个程序; SPEC92扩充至20个程序,6个整数程序和14个浮点程序,分别称为SPECint92和SPECfp92。 SPEC又发布了一些新的基准测试程序(如SPEC95、SPEChpc96、SPECweb96等)。 SPEC原主要是测试CPU性能的,现在强调开发能反映真实应用(如实际负载等)的基准测试程序,并已推广至客户/服务器计算、商业应用、I/O子系统等。 SPEC基准测试程序使用的单位是所测试机器执行性能与所参照机

11、器执行性能之比,新SPEC测试程序组,SPEC95:测试CPU、存储器和编译器代码生成性能; SPEChpc96:测试工业型应用高性能计算系统的性能 地震处理测试程序SPECseis96和计算化学测试程序SPECchen96; SPECweb96:测试基于WWW服务的Web服务器性能 SFS(System-Level File Server):测试不同负载情况下NFS文件服务器的响应时间和吞吐率; SDM(System Development Multitasking): 测试系统处理大量用户发出典型Uinix软件命令(如make、cp、grepl等),包括由Unix Shell脚本构成的两个

12、多用户Unix命令测试程序 GPC(Graphics Performance Characterization): 测试图形学功能,包括3个在研项目: PLB(Picture Level Benchmark)测试每秒向量数和每秒多边形数的图形处理能力, XPC(X Performance Characterization)开发测试X窗口性能的Xmark93基准测试程序工具,OP OPC(OpenGL Performance Characterization) 开发测试OpenGL性能的Viewperf基准测试程序,SPEC95,SPEC95 CPU基准测试程序是广为使用、著名的测试程序 它从整

13、体上测量CPU速度、高速缓存/存储器系统以及编译器等的性能,但不计操作系统和I/O操作的时间。 SPEC95由CINT95(8个整数程序)和CFP95(10个浮点程序)组成,它们均是CPU密集型应用。 通过对各基准测试程序的比值取几何平均值再将所有的基准测试程序总计起来就是每个指标之值,其中速度指标测试单拷贝基准测试程序的比值,而吞吐率指标测试多拷贝基准测试程序的比值。 SPEC同时报告性能的“基线”(Base)值和“峰值”,分别对应着“保守”值和“最优”值,其中峰值速度就是SPEC95通常所引用的值。 Alpha 21164的SPEC95指标,它表示成与参照机器SUN SPARC工作站10/

14、40的性能之比(例如5就意味着被测机器比SPARC工作站快4倍)。,Overview,Review of Lec4 Benchmark 性能提高(任务划分、分配、调度),并行算法的设计过程,并行算法(程序)的设计步骤: 任务划分(Partitioning):将整个计算分解为一些小的任务,其目的是尽量开拓并行执行的机会; 通信(Communication):分析确定诸任务执行中所需交换的数据和协调诸任务的执行,由此可检测上述划分的合理性 任务组合(Agglomeration):按性能要求和实现的代价来考察前两阶段的结果,必要时可将一些小的任务组合成更大的任务以提高性能或减少通信开销 处理器映射(

15、Mapping):将每个任务分配到一个处理器上,其目的是最小化全局执行时间和通信成本以及最大化处理器的利用率。,并行算法的设计过程(contd),任务划分,域分解(Domain Decomposition)也叫数据划分 算法(或程序)的输入数据、计算的输出数据、或者算法所产生的中间结果。 首先分解与问题相关的数据,使这些小的数据片尽可能大致相等;再将每个计算关联到它所操作的数据上。 划分将会产生一系列的任务,每个任务包括一些数据及其上的操作。当一个操作可能需要别的任务中的数据时,就会产生通信要求。 功能分解(Functional Decomposition)也称计算划分。 关注于被执行的计算上

16、,而不是计算所需的数据上; 如果所作的计算划分是成功的,再继续研究计算所需的数据,如果这些数据基本上不相交,就意味着划分的成功; 如果这些数据有相当的重叠,就意味着必然带来大量的通信,这暗示着应该考虑数据分解。 一个并行程序通常同时存在数据和功能并行的机会。 功能并行的并行度通常比较有限,并且不会随着问题规模的的扩大而增加;不同的函数所涉及的数据集的大小可能差异很大,因此也难于实现负载平衡。 数据并行则一般具有较好的可扩放性,也易于实现负载的平衡。 现有的绝大多数大规模的并行程序属于数据并行应用,但功能分解有时能提示问题的内在结构展示出优化的机遇,,任务划分例1,Decomposition o

17、f dense matrix-vector multiplication into n tasks, where n is the number of rows in the matrix. The portions of the matrix and the input and output vectors accessed by Task 1 are highlighted.,任务划分例2,数据库并行搜索Model=“civic” AND Year=“2001” AND (Color=“Green” OR Color=“White”) 任务依赖图(Task dependency graph

18、),例2的另一种任务依赖图,粒度与并发度,粒度(Granularity): Fine-grained:分解成很多小的任务,如例1 Coarse-grained:分解成不多的大的任务,如在例1中分解成4个任务 并发度(Concurrency): 最大并发度:任何时刻可以同时执行的任务数。 平均并发度:整个执行过程中平均并行执行的任务数。 通常粒度和任务依赖图都会影响并发度 任务交互图(task interaction graph):影响并发度 由于编程模式和任务划分,在任务依赖图中不相关的任务间也有交互 在分布存储,例1的各个任务间共享向量。,例2的并发度,数字表示执行时间 关键路径,a的平均并

19、发度为2.33,b的平均并发度为1.88,任务相关图,A decomposition for sparse matrix-vector multiplication and the corresponding task interaction graph. In the decomposition Task i computes 0j11,Ai, j =0 Ai, j .b j .,任务划分的几种方法(1),Recursive decomposition: Divide-and-conquer 划分成子任务,子任务递归解决。子任务间存在并发性。 例子:快排序,任务划分的几种方法(2),Part

20、itioning Output Data: 输出的每个元素可以分别独立计算出。 例子:矩阵相乘,任务划分的几种方法(3),Partitioning Input Data: 每个任务在输入的子集上独立计算。 例子:事务查找 Partitioning Input and Output Data:,任务划分的几种方法(4),Partitioning Intermediate Data: 例子:矩阵相乘,任务划分的几种方法(5),Exploratory Decomposition: A search of space for solutions 例子:15-puzzle,任务划分的几种方法(6),Sp

21、eculative Decomposition: May take one of many possible computational significant branches depending on the output of other computations that precede it. 例子:Parallel discrete event simulation,通信分析,通信分析: 静态/动态通信:不随时间改变或可变的且由运行时所计算的数据决定 静态:如矩阵相乘 动态:如15-puzzle问题。消息传递编程较困难 结构化/非结构化通信:通信图 规整结构(如树、网格等)或任意图

22、 结构化:如 image dithering,2维mesh通信 非结构化:如前面的稀疏矩阵-向量乘。消息传递编程困难 只读/读写: One-way/two-way: Two-way: 通信存在生产者-消费者关系 One-way: 通信只需要一方发起并完成。如只读 局部/全局通信:较少的几个近邻或与很多别的任务通信 同步/异步通信:接收方和发送方协同操作或无需协同,任务组合,任务组合: 增加粒度 :大量细粒度任务有可能增加通信代价和任务创建代价 表-容效应(Surface-Volume Effect) :一个任务通信需求比例于它所操作的子域的表面积,而计算需求却比例于子域的容积 保持灵活性 :可

23、移植性和可扩放性,处理器映射,处理器映射策略:指定任务到哪个处理器上去执行就是映射(Mapping),其主要目标是减少算法的总执行时间,策略有二: 把那些可并发执行的任务放在不同的处理器上以增强并行度; 把那些需频繁通信的任务置于同一个处理器上以提高局部性 负载平衡 :使得所有处理器完成等量的任务 。 不是简单的任务平均划分,减少同步等待的时间,这包括等待其它进程结束运行的时间和串行执行的代码部分(包括临界区代码和因数据相关造成的串行执行) 递归对剖(Recursive Bisection) 局部算法 概率方法 循环映射(Cyclic Mapping),并行任务分配,静态调度:任务到进程的算术

24、映射 静态地为每个处理器分配连续的循环迭代 轮转 动态调度:动态调度技术可以取得较好的负载平衡效果 基本自调度SS(Self Scheduling):每次取一个任务 块自调度BSS(Block Self Scheduling):每次取k个任务(块) 指导自调度GSS(Guided Self Scheduling) 因子分解调度FS(Factoring Scheduling) 梯形自调度TSS(Trapezoid Self Scheduling) 安全自调度SSS(Safe Self Scheduling)耦合调度AS(Affinity Scheduling):分布式任务队列 自适应耦合调度AAS(Adapt Affinity Scheduling),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 多媒体

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报