




已阅读5页,还剩71页未读, 继续免费阅读
(计算机软件与理论专业论文)smp高性能集群性能监测与分析系统研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着高性能计算技术的发展,基于高性能集群系统的并行计算应用逐 渐成为一种趋势。高性能集群系统为众多领域提供了满足高性能计算需求 的最佳解决方案。为了充分利用计算资源,提高并行程序的运算效率,本 文在s m p 高性能集群上提出并实现了性能监测与分析系统模型。 本文首先介绍了高性能集群性能监测与分析技术,其中着重论述了并 行计算性能测试的主要研究方法和高性能集群系统性能分析的主要内容。 同时对典型的高性能集群性能监测工具也进行了分析,对其进行了分类论 述。在此基础上,论述了集群性能监测的可视化方法,提出了可扩展的性 能数据可视化。 随后本文介绍了s m p 集群体系结构,针对s m p 集群的结构特点,本 文提出了一种基于s m p 集群系统的负载计算方法,并在此基础上建立了一 个高性能集群性能监测与分析系统模型。本文所研究的系统能够以可视化 方法监测和分析集群系统的性能数据,并为用户提供系统的性能分析结果。 本文实现了集群性能监测与分析系统模型的主要功能。通过融合作业 管理系统实现了基于w e b 的并行任务提交功能;通过选择三种不同的进程 到处理器的映射方法,实现了对并行任务进行初始负载平衡;通过采用多 线程性能数据采集方法,实现了高效率的、基于w e b 的集群负载信息可视 化,并在此基础上实现了对并行任务的性能分析。最后结合实例对系统的 运行进行了测试。 关键词高性能计算;负载监测;性能分析;s m p 集群;网格计算 燕山大学工学硕士学位论文 a b s t r a c t w i t ht h ef a s t d e v e l o p m e n t o f h i 曲- p e r f o r m a n c ep a r a l l e lc o m p u t i n g t e c h n o l o g y ,t h ea p p l i c a t i o no fp a r a l l e lc o m p u t i n gi sb e c o m i n gm o r ea n dm o r e e x t e n s i v e h i g hp e r f o r m a n c e c l u s t e rp r o v i d ean e ws o l u t i o ni nh i g h p e r f o r m a n c e c o m p u t i n gf a c e t f o rm a n yf i e l d ap e r f o r m a n c em o n i t o ra n da n a l y s i ss y s t e m m o d e li sg i v e nb a s e do ns m pc l u s t e r sa n di m p l e m e n t e db ys o f t w a r e f i r s t l y , t h i sp a p e ri n t r o d u c e st h et e c h n o l o g yo fh p cp e r f o r m a n c em o n i t o r a n d a n a l y s i s i n t h i s p a r t ,t h e r e s e a r c hm e t h o do f p a r a l l e lc o m p u t i n g p e r f o r m a n c et e s ta n da n a l y s i si se m p h a s i z e d b a s e do nt h ed e e ps t u d yo nt h e h p cp e r f o r m a n c em o n i t o ra n da n a l y s i st o o l s ,ap e r f o r m a n c ed a t av i s u a l i z e m o d ei sg i v e n s e c o n d l y , t h i sp a p e r i n t r o d u c e st h es m pc l u s t e ra r c h i t e c t u r e an e wm e t h o d i nc o m p u t i n gt h el o a do fs m pc l u s t e r si sg i v e n b a s e do ns m pa r c h i t e c t u r ea n d t h en e wl o a dc o m p u t i n gm e t h o d ,am o d e lo fh p cp e r f o r m a n c em o n i t o ra n d a n a l y s i ss y s t e mi sg i v e n t h i ss y s t e mc a nm o n i t o r t h ed a t ao fc l u s t e r sl o a da n d t h ed a t ao fp a r a l l e l c o m p u t i n gp e r f o r m a n c e ,a n d t h e ns h o wt h eu s e r b y v i s u a l i z e sg r a p h i c s f i n a l l y , t h i sp a p e ri m p l e m e n t st h et e c h n o l o g yo ft h e h p cp e r f o r m a n c e m o n i t o ra n da n a l y s i ss y s t e m c o m b i n e dw i t ho p e n p b st h es y s t e mi m p l e m e n t p a r a l l e l s u b m i tm o d u l e ;u s e dt h r e e p r o c e s s - p r o c e s s o rm a p p i n gs t r a t e g y t h e s y s t e mm a k et h ep a r a l l e l l o a db eb a l a n c e d ;u s e dm u l t it h r e a di n g a t h e r i n g p e r f o r m a n c e d a t at h e s y s t e mi m p l e m e n t l o a dv i s u a l i z e sa n dp e r f o r m a n c e a n a l y s i sm o d u l e a tl a s t ,a ne x a m p l e i si m p l e m e n t e dt ot e s tt h es y s t e m k e y w o r d sh i 曲p e r f o r m a n c ec o m p u t i n g ;l o a dm o n i t o r ;p e r f o r m a n c ea n a l y s i s s m p c l u s t e r ;g r i dc o m p u t i n g i i 第1 章绪论 1 1问题提出 第l 章绪论 高性能计算的发展趋势正在从传统的专用超级计算平台,转变到价格 低廉而通用性强、松耦合、由单一或多个处理器的p c 机或工作站所构成的 系统。这种变化趋势带来了很多优势,包括可以按照给定的任务建造计算 平台,以适应较大型的应用程序和高强度的工作负载,而且高性能计算不 再局限于传统的向量机和阵列机。高性能计算最近的一种应用趋势是以网 络为中心的某些应用,这些应用均运行在通过网络连接的多台计算机上, 其中网络可以是l a n 或者w a n ,这些应用要求更加有效的通信、协同和 互操作性以及良好的安全性。 近年来,随着集群技术的发展和普及,为了充分发挥高性能集群系统 的潜力,提高并行程序的性能,国内外都开展了大量关于并行程序性能分 析的工作,并提出了很多种性能分析方法,研究开发了一系列的性能分析 工具包。这类工具软件可以用来获取和分析并行程序的性能参数,从而能 够帮助用户分析并行程序的性能,找出性能瓶颈。特别是伴随着网格技术 的出现,传统的并行分布式计算逐渐转移到网格计算领域,对于高性能计 算性能监测的研究从单一的集群系统要能够支持计算网格中性能参数的测 定和分析即j ,所以对于高性能计算系统的性能监测与分析就提出了更高的 要求。 1 1 1 并行计算的性能问题 高性能计算的发展要求计算机系统的性能不断提高,然而并行程序的 执行又引出了一系列新的、导致系统性能下降的因素,例如,负载不平衡、 通信开销过大、同步等待等等。这就要求程序员对并行程序的性能进行分 析和研究,利用性能分析工具测试、分析并行程序的性能来评价和改进算 法,提高并行加速比和计算通信比,从而能够更加充分地利用计算系统的 1 茎生盔堂三兰堡主兰篁丝墨 硬件性能。并行程序质量优劣的一个重要指标是它在目标计算机上的性能 高低。高性能不仅意味着问题求解时间的减少和系统资源开销的节约,还 能够使某些对时间要求紧迫的任务成为可能。特别是随着计算结点数量的 增加,而系统的性能与结点增加的比例并不呈现线性增长,到了一定的程 度反而呈现下降趋势。因此,并行程序实际性能的提高是人们非常关心的 问题,在大规模科学计算中更是需要针对目标平台进行高度的性能优化。 可是,在高性能计算中,实际的运算速度往往与峰值速度有很大距离。由 于并行程序设计的复杂性及其与运行环境的密切关联性,并行软件性能的 好坏已成为能否充分发挥高性能并行计算机效率的关键。 随着并行技术及并行应用的不断发展,并行程序的设计、开发、调试、 优化成为并行技术应用的关键。由于并行系统硬件体系结构、软件平台等 方面的差异,并行程序在不同平台上的运行效率差别也很大。因此,并行 程序的优化就成为并行应用方面的一个关键性问题。并行程序不同于以往 的串行程序,它的执行过程较为复杂,具有一定的随机性和不确定性,运 行过程不可再现。因而,并行程序的性能优化过程比较困难。这就使得对 并行程序的运行性能进行监测、可视化和分析具有了非常重大的意义【4 l 。为 了充分发挥并行计算机的潜力,提高并行程序的性能,国外开展了大量的 关于并行程序开发支撑环境的研究工作,其中并行程序的性能分析和集群 系统的负载评价都是十分重要的研究对象。 一般来说,在正确性得到保证的基础上,评测并行程序的性能,有两 方面的意义。一方面从应用程序的角度看,性能分析能够找出应用程序的 瓶颈,从而有助于用户改进算法,提高对并行机的利用率。在这方面,通 过性能分析通常回答如下的问题: ( 1 ) 代码的哪些部分占去了大部分运行时间? ( 2 ) 是什么资源导致了进程间的竞争? ( 3 ) 程序中的什么部分以串行方式运行? 另一方面,从更宽的角度看,性能分析有助于用户理解底层并行体系 结构和机器特性对并行程序性能的影响,并且更有助于考察计算模型、编 译及操作系统的影响,这些问题的认识则又将对底层体系结构及编程模型 , 第1 章绪论 产生有益的影响。 1 1 2 性能分析工具的产生 性能分析工具的基本目标是帮助程序员了解程序的性能参数。特别是 分析和定位应用程序中性能较差的、造成程序性能瓶颈的部分。这样的工 具可以用来了解普通的串行应用程序的效果,对于分析并行应用程序的性 能参数也有很大的帮助。大部分的性能分析工具都具有以下特点:在用户 的应用程序中插入性能监控例程的测试调用:包括一套监控例程的运行时 性能库,这些例程能够测量和记录程序性能的不同方面;处理和显示性能 数据的工具。性能监测工具要注意的问题是跟踪调用的可信性和对应用程 序性能的影响。应非常注意的是所加入的测试对并行应用程序性能参数的 影响,它有可能对性能提供错误的报告。 1 2 国内外研究现状 集群系统的巨大潜能使得并行与分布式计算机技术得到高速发展和广 泛应用,然而如何缩短并行与分布式计算机实际性能和潜在的最高性能之 间的显著差距,则是人们越来越关心的问题,集群系统监测技术正是这种 背景下获得了很大发展。并行计算最主要的目的是为了获得比串行计算更 好的程序性能,然而由于并行计算环境的各个组成部分、并行应用程序本 身的复杂性以及它们之间的匹配程度,包括硬件体系结构、操作系统、并 行程序设计语言、编译器、应用程序算法、由于消息传递而引发的不确定 性等各种因素的交互影响,使如何获得更好的并行计算性能成为程序员们 仍需面对的巨大挑战。 1 2 1 高性能计算性能分析方法研究现状 当前的性能分析工具按工作方式可以分为监测型和预测型两类。监测 型工具通过在程序实际运行时收集性能数据,然后进行统计分析。预测型 工具要求建立一个数学模型,使用若干参数来表示影响程序性能的因素, 3 燕山大学工学硕士学位论文 然后通过对程序结构进行静态分析,估计这些参数的值,进而预测程序性 能。由于这些参数与操作系统、编译器等许多因素有关,因此要建立一个 数学模型来预测程序的性能非常困难 5 l 。 按照实现手段来分类,性能监测的实现有事件抽样( e v e n ts a m p l i n g ) 、硬 件监测和软件监测等方法。其中事件抽样方法可以产生最小的数据集,但 不便于监测和显示整个程序的执行过程及其细节,如果没有相应硬件监测 部件的支持,事件抽样的干扰也会比较大。 硬件监测实现方式的事件采集部分均由硬件实现,这种监测实现需要 将一些传感器直接连接到计算机系统的一些硬件单元上,如总线、寄存器 等,当这些单元上的数据模式正好同某一预设的模式匹配时,即触发一个 事件。这种监测方式实现的优点是对程序的运行进行没有任何干扰,因而 由这种监测实现方式所获得的数据能最准确地反映程序在非监测情况下的 运行状况。但是这种监测实现方式有一个关键的弱点,就是事件的定义非 常复杂和困难。对于用高级语言编写的并行程序来讲,一个一般的面向问 题的参考点很难简单地用一些硬件单元的状态来惟一刻画。硬件监测方法 对程序执行行为的干扰比较少,但它依赖于硬件制造商的设计,不方便用 户根据自己的需求进行取舍。 软件监测实现方式的采集事件部分均由软件来实现,它需要在被监测 程序的所有监测点处插入一段特定的监测指令序列,这段指令序列将相应 的事件描述存入存储器中某个指定的位罱,等到整个程序结束后再由分析 程序来分析这些记录下的数据。其优点是有很大的灵活性,缺点是执行这 段监测指令分别需要花费一定时间,对被监测系统干扰较大,统一时钟处 理困难,不易构成程序的精确模型,因而这种监测实现方式所获得的数据 一般同程序在非监测情况下的运行状况有较大的失真。对于软件监测来说 有两种具体的实现方式:一种方式是使用系统软件中附带的监测功能,另 一种是在应用软件中使用软件事件记录器。第一种方案是使操作系统和通 信库等具有监测功能,这对用户来讲是非常方便的,因为可以不必修改程 序代码就能够获得所需的性能数据,然而它需要系统软件商的参与,而且 不能方便的提供在程序不同部分开关监测器的简单方法。相比而言,在源 4 第1 章绪论 程序中插入事件记录器的方法既不需要系统软件商参与,又便于用户准确 搜集其希望测量的数据。软件事件记录方法有时又被称作软件监测器或者 软件插桩( s o f t w a r e i n s t r u m e n t a t i o n ) ,应用起来比较灵活,即便于用户根据 自己的需求进行取舍,又便于移植和实现跨平台间的兼容性,可以支持在 不同计算机环境下或通过不同的平台进行统一的性能评估。因此,软件监 测方法是目前广泛使用的一种监测方法。 混合监测实现方法的标记事件可以用软件实现,识别和记录事件可以 用硬件实现,它是前两种实现方法的折衷。同硬件实现方式不同的是,在 混合监测实现方式中,事件的标记也是通过在被监测程序的监测点处插入 监测指令来完成的,因此很容易将高级语言源程序中的任意一个被执行到 的位置定义成一个事件,事件的定义可以在源程序级十分容易且规范化完 成:同软件实现方式不同的是插入的监测指令只是一个很简单的输出指令, 对程序的运行状态影响很小。记录下的数据一般能真实反映程序在非监测 情况下的运行状态。混合监测方法既保持了软件监测的灵活性,又接近硬 件监测的精度,对被监测程序只有较小的干扰。 1 2 2 性能监测与分析工具研究现状 对持续运行的集群系统而言,当系统正常运行时,需要一些工具监测 系统各部分的运行状态,如系统进程、c p u 利用率和内存利用率等。在普 通的u n i x 系统上,可以简单的用p s 和t o p 指令来实现这些功能。但是在高 性能集群系统中则需要一些特殊的工具,而且监测系统要能够支持多种网 络管理协议,比如s n m p 和w b e m 。而当集群系统工作不正常时,则需要 另外一些工具来协助系统诊断。如当某个系统不服务时,你可能需要用p i n g 指令来诊断是不是网络出了问题,而在高性能集群系统中则存在多个计算 结点,所以需要使用类似并发的p i n g 指令来诊断网络错误,这样才能保证 监测系统的有效性和及时性。 所以对于运行于普通单机系统上的专用监测工具,比如监测c p u 运行 状态的:n e t p m o n 、s y s c a l l s 、v m s t a t 等工具,监测内存使用的:v m s t a t 、s v m o n 等工具,这些监测工具在集群系统上就不能胜任了。 垄些奎堂三堂堡主堂垡堡苎 目前,一些集群管理软件除了能够对集群系统进行管理之外,还具有一定 的性能监测功能,比如c s m 、x c a t 、m o r t 这样的集群管理工具,见表1 1 。 表i 一1 三种管理工具的监测功能 t a b l el im o n i t o rf u n c t i o na m o n g3h p c m a n a g e t o o l s 1 = 具支持的集群系统支持的操作系统监测和诊断 支持分布式s h e l l ( d s h ) 、支 c s mi b me s e r v e rc l u s t e rr e d h 砒、s u s e 持s n m p 支持并发s h e l l ( p s h ) 、并发 x c a ri b me s e r v e rc l u s t e rr e d h a t ,w i n d o w s p i n g ( p p i n g ) 基于l i n u x 系统开发,较容 m o n不特定于某个集群支持s n m p 易移植 目前基于集群系统的性能分析工具根据集群系统的体系结构不同而有 很大差异,性能分析工具根据不同的体系结构和应用所支持的功能也不尽 相同。较常见的集群系统性能分析工具有p a r a d y n 、s v p a b l o 、v a m p i r 、 d i m e m a s ,p a r a v e r 、m u c h 、i p c e ,x p v m 、p g p v m ,p v a n i m2 ,0 、p a r a v i s i o n 、 e d p e p p s 等。 1 2 2 1 p a r a d y n 该系统是对大规模并行应用程序进行性能分析的一个辅 助软件工具包。它通过使用动态指令插入技术和自动瓶颈测定技术,在线 式地监测和分析并行应用程序的性能。系统由一个灵活的数据采集机制、 一个瓶颈自动探测器和一个可视化用户界面组成,能够对运行时间较长的 应用程序进行性能分析。p a r a d y n 应用在p v m 应用程序的性能分析。程序 员在p a r a d y n 中运行p v m 应用程序,p a r a d y n 会在程序的运行过程中自动 插入和修改其指令,系统地探测造成性能问题的原因。很多情况下,p a r a d y n 可以分析出造成性能问题的主要原因,并指出对应的程序代码。 该系统采用了3 w ( w h y , w h e r e ,w h e n ) 搜索模型,使用户能够在系统中的 决策支持部分的协助下,以动态在线式( o n t h e f l y ) 的数据采集方法采集性能 数据。3 w 搜索模型回答了以下三个独立问题:为什么并行应用程序的性能 较差( w h y ) ,性能瓶颈在什么位置( w h e r e ) 和什么时间发生的性能问题 ( w h e n ) 。通过对这三个问题的不断分析,系统可以指出应用程序的性能问 6 第1 章绪论 题成因。p a r a d y n 能够运行于c m 5 ( t h i n k i n gm a c h i n e ) ,s u n 工作站及p v m 环境,它可以在这些平台上测量同构的程序f 6 l 。 1 2 2 2p a r a v is i o n 该系统在逻辑上分为四个部分:事件检测器、事件收 集器、行为监控器和性能分析器。其中事件检测器同目标程序一起运行于 每一个结点机上,并通过n x 通信函数将收集到的事件传递给事件收集器。 p a r a v i s i o n 对事件的检测采用了软件的方法,它通过编译程序处理结点程序 的内部事件,通过改造库函数处理结点程序间的交互事件,使得对事件的 检测完全透明于用户。事件收集器运行于主机上,取代了标准的加载程序 功能,负责管理程序的加载、启动、结束,同时,收集并处理事件检测器 送来的事件,送给行为监控器或存储到磁盘备用。行为监控器和性能分析 器处理所得到的事件,可视化程序行为和性能。p a r a v i s i o n 对程序行为进行 了可视化表示,通过动态执行路径和程序状态的显示使程序员能够了解程 序动态的执行过程及程序的状态。p a r a v i s i o n 的性能分析部分通过对收集到 的事件进行统计分析,对应用程序提供了多种性能参数,其中包括每个处 理机的计算时间、通信开销、通信量、各处理机的利用率以及整个系统的 负载平衡情况和并行性【7 j 。 12 2 3p v m 监测调试工具p v m 能够支持多种体系结构的计算机和常见 的各种计算机高级编程语言,它的发展较为成熟。p v m 支持用户采用消息 传递( m e s s a g e - p a s s i n g ) 的方式来编写程序,用p v m 编制程序的模型可以采 用s p m d 或者是m p m d ,它可以在并行虚拟机中自动加载任务运行,而且 任务问可以相互通信以及同步,因此应用的范围也十分广阔。 目前基于p v m 的性能监测和调试工具有很多种,流行较为广泛的有以 下几个: ( 1 ) x p v mx p v m 是一个图形界面的p v m ( 并行虚拟机) 控制台,它提 供了一个有效的方式来查询和设置虚拟机本身以及各个计算结点的运行状 态:同时x p v m 还提供了性能监测和函数调用级调试的图形界面。在性能 监视和函数调用级调试过程中,x p v m 利用了p g m 内部的性能监测机制采 集数据,采用了s d d f ( s e l f - d e s c 曲i n gd a t af o r m a t ) 格式的性能数据文件进 行数据交换悼j 。 燕山大学工学硕士学位论文 f 2 ) p g p v mp g p v m 与x p v m 类似,它提供一个基于p v m 的跟踪机 制,用于产生标准的p a r a g r a p h 跟踪文件,该文件可以通过p a r a g r a p h 可视 化工具进行性能可视化工作。 ( 3 ) p v a n i m 2 0 p v a n i m 提供了在线或重现机制下的可视化分析工具, 一方面,它利用一些技术使得系统在监视p v m 运行情况时的开销最小,另 一方面,同时提供了多种可视化的视图1 9 , 1 0 j 。 1 t 2 2 4e d p e p p se d p e p p s 是w e s t m i l l s t e r 大学的研究项目。e d p e p p s 是 基于快速原型机制进行并行程序设计的一个工具,它使用一种面向仿真的 语言进行程序原型的设计,并在特定的仿真平台上进行仿真,最终将所获 得的性能数据以可视化的方式表现出来。其面向仿真的语言提供了与p v m 相同的并行机制j 。 1 2 2 5m u c h m u c h ( m u l t i p r o e e s s o r c l a s sh i e r a r c h y ) 是j o h a n n e sk e p l e r 大 学研究的一种并行程序可视化类库,它用于帮助用户建立不同多处理机系 统结构的可视化模型。用户可以利用m u c h 所提供的类( 结点类、互连网络 类) 和一些相应的方法来建立用于不同系统结构的多处理机系统中的一种可 视化工具。利用m u c h 与其他并行程序可视化及分析系统配合,可以更有 效地对并行程序进行调试及分析优化【1 “。 1 2 2 6 l p c e 该系统是清华大学研制的可视化人机交互集成开发环境。它 是在对x p v m 和p v m 修改的基础上集成的一个综合性的并行程序开发环 境。i p c e 为并行应用程序员和最终用户提供了编辑、编译应用程序,配置、 监测并行环境,加载、监控并行任务以及对并行任务的性能进行评测和并 行调试等功能叫。 1 2 1 3 集群计算到网格计算的发展趋势 随着高性能计算应用需求的不断发展,单台计算机已不能胜任一些大 规模应用问题的计算。这就需要将地理上分布、系统异构的多种计算资源 通过高速网络连接起来,共同解决大型应用问题,广域高性能的元计算技 术( m e t a c o m p u t i n g ) 应运而生。网格( g r i d ) 作为元计算系统的实现,目前已 经有n a t i o n a l t e c h n o l o g yr e s o u r c e m a n a g e m e n t t e s tb e d 等实例出现。 8 第1 章绪论 对于网格系统来讲,监测系统对于每一个计算结点来讲是至关重要的, 通过监测可以进行性能分析和调协发现系统瓶颈,可以进行性能预测,也 可以进行错误检测,帮助用户在最短时间内恢复或调整系统。所以对集群 系统进行性能监测的同时,要充分考虑到与网格计算技术的接轨i l 5 1 ”j 。 1 3 本课题研究内容 本课题旨在研究基于s m p ( 对称多处理器) 集群的性能监测与分析系统, 吸取当前流行的性能监测工具的优点,根据s m p 集群的实际情况,考虑基 于该集群系统的高性能计算性能监测领域的扩展性,设计出一种新的性能 监测分析系统。该系统继承了已有系统的优势功能,结合各种性能分析模 型,并充分考虑集群系统向网格计算发展的要求,同时采用图形化的性能 表示方法,为用户提供比较直观的性能状况。 本文的结构安排如下: 第1 章为绪论,介绍了本文研究的目的、意义,分析了现有的集群高 性能计算监测系统的现状和目前国内外的研究状况、方法。指出了现有系 统未来的发展趋势,说明了本文所要研究系统的目标。 第2 章介绍集群技术及高性能计算性能分析理论主要的研究方法。包 括性能监测模型的介绍与分析,性能探测器的理论分析,网格计算中监测 服务的相关技术等。 第3 章是本文的研究内容之一,在对已有的性能监测系统和性能评价 方法进行了深入分析之后,针对目前的集群高性能计算应用状况,分析了 在s m p 集群上的并行计算环境与性能分析方法。 第4 章是本文的一个研究重点,着重分析了所研究系统的组成和详细 设计与实现。具体包括性能数据探测器的采集,性能数据的存储、查询、 分析和可视化表示,以及并行任务的加速比分析、并行效率分析、计算通 信比分析。 第5 章是将本文所设计的系统应用于实际的高性能计算,通过对给出 问题的实际计算,得出具体的分析结果,在此基础上总结研究工作,并对 9 夔坐盔兰三堂堡主堂竺堡塞 下一步的工作做出展望。 1 4 本章小结 本章首先介绍了集群高性能计算的发展现状,对高性能计算的性能监 测研究的必要性进行了简单分析,并对国内外研究现状进行分析的基础上, 结合高性能计算发展的实际情况,提出了本文所要研究的内容及目标。 i o 第2 章集群性能测试与分析技术 第2 章集群性能测试与分析技术 2 1 引言 集群系统的峰值速度可达万亿次秒,但是实际的运算速度往往与峰值 速度有很大的距离,其主要原因在于高性能并行计算机的并行程序与传统 的串行程序有很大的差异。高性能计算应用领域的用户大多都不是计算机 专家,他们对编程技术并不是十分擅长,很难充分利用各种计算资源发挥 系统的最好性能。基于这种情况,为了帮助用户能够充分地使用计算网格 中的各类资源,就需要依靠性能分析和监测工具。 要开发出高性能的并行程序的难度相对来讲还是比较大的,特别是对 于确定并行程序在运行过程中产生错误的原因,并对其进行锁定和分析就 显得更加困难了。目前对于串行程序的分析已经有十分成熟的跟踪技术对 其运行情况和系统资源的利用情况进行监测,用户可以借助这种工具观察 程序的运行踪迹,记录程序运行过程中产生的各类事件,从而找到程序中 隐藏的错误。而对于并行程序来讲,由于有多条指令流同时处于活动状态, 它们之间具有非常复杂的数据耦合关系和非确定性时序的特殊性,从而导 致一些在串行程序中的调试技术和性能分析方法不能满足对并行程序的运 行和系统的资源利用情况进行监测,因而必须针对并行程序的特点和高性 能系统的体系结构提出新的方法来满足这一要求m 】。目前针对并行应用本 身已经研究了各种各样的性能模型,如加速比模型、并行算法效率评价准 则和可扩展分析,都能够从各个不同的侧面来真实地反映并行算法的优越 - 眭。 2 2 高性能集群系统的性能基准测试技术 高性能集群系统要比单处理机系统复杂得多,通过对高性能集群系统 的性能测试可以更好地用好并行机,充分发挥其长处,以适应不同的应用 1 l 燕山大学工学硕士学位论文 问题选择不同的并行机,提高并行效率,减少用户引进和购买并行机的盲 目性:性能测试指标还有助于改进系统结构设计,提高机器的性能,促进 计算机软硬件设计相结合以及功能划分与折衷。 2 2 1 性能基准测试 在考虑承担繁重的计算应用的高性能集群( h i g hp e r f o r m a n c ec o m p u t e r h p c ) 时,确定系统实际可用的结点数有多大是非常重要的事情。基准 测试是评价系统的潜在性能的信息源泉,有助于用户按自己的需要选择一 个适用的h p c 集群。选择基准测试的一个主要挑战是把共同的类似特点与 用户的应用程序作比较。 h p c 基准测试包括一些系统架构的细节,如对存储予系统,互联的通 信子系统或其他规定的子系统。另外,较多的应用集中于不同类型的并行 应用的性能,和把h p c 作为一个整体而检测。这种应用中心基准测试把系 统性能的多个方面都提供给用户。这些基准测试的复杂性也可用从简单的 短的代码片断到非常复杂的代码。一般而言,用几个简单的数字表示执行 基准测试后得到的系统性能。最重要的两个数值表示是:在高性能计算中 测量执行基准测试的标准术语是m f l o p s ( 每秒浮点运算的百万次) 和 m i p s ( 每秒执行指令的百万次) 。m i p s 与处理器的时钟速率有关,因此它不 是做比较用的最好标准,因为不同的处理器架构和指令集将产生不同的结 果。按m f l o p s 产生的另外一套基准测试报告,常称为多少个百万浮点数。 最常使用的基准测试有以下几个。 2 2 1 1比较性能的n a s 并行基准测试数字空气动力学模拟( n a s aa d v a n c e d s u p e r c o m p u t i n g n a s ) 1 1 8 1 并行基准测试( n p b ) 已经广泛地应用 于各种高性能计算机的测量和比较中。n p b 是由n a s aa m e s 研发中心开 发研制的。n p b 使用标准化的信息数据,通过m p i 程序模块可以对于不同 的互连模型加以比较,对常见的集群作比较分析。 n p b 是应用中心基准测试。n p b 软件包由八个程序组成,它来源于计 算流体动力学( c f d ) 的代码。这八个不同的程序从不同的观点提供性能特征 的完整画面。n a s 并行基准测试主要用于测量c f d 问题的并行计算性能。 1 2 第2 章集群性能测试与分析技术 八个程序中的每一个五个核心和三个模拟c f d 应用代表航空、物 理学应用的高级并行计算的准确的特征。五个核心程序ep ,ft ,m gc g 和i s 模拟在c f d 应用中使用不同数字方法的计算核心。每个基准测试包含 五类:a 、b 、c 、w ( t 作站) 和s ( 实例) ,a 、b 和c 代表了三种不同问题 的规模;a 是最小的,c 是最大的。为了准确、精确的比较性能,应采用b 规模或问题规模较大的类型i l ”。n p b 软件包以每秒百万次运算为单位输出 结果。其中包括整数排序( i s ) 、快速f o u r i e r 转换( f t ) 、多栅格基准测试( m g ) 、 共轭梯度( c g ) 基准测试、上下( l u ) 对角线、标量五角( s p ) 和块状三角( b t ) 、 繁杂并行( e p ) 。 2 2 1 2 l i n p a c k 基准测试当前世界上最流行的t o p 5 0 0 1 2 0 1 排名主要依据 高性能集群系统实际测量的最高性能来排序,使用测试最高性能的基准测 试程序l i n p a c k 来测试集群系统的最高计算性能。l i n p a c k 使用几个线性代 数方程,使用高斯消元法在分布式内存计算机上按双精度( 6 4b i t s ) 算法,测 量解线性方程的密集系统所需的时间。 l i n p a c k 的计算结果按照每秒钟浮点运算次数表示。l i n p a c k 的原始版 本有大约1 0 0 1 0 0 的规模,当这种规模在微处理器的缓冲中容易解决时, 此法已经不再使用。为了克服这个问题,高性能集群研发人员开发了新的 规模更大的l i n p a c k 测试程序,其名称为h p l ( h i g h p e r f o r m a n c e l i n p a c k ) 。 h p l 版l i n p a c k 一般用于t o p 5 0 0 超级计算机站上的并列式超级计算机。为 了运行h p l ,需要使用m p i 和基本线性代数子方程( b l a s ) 或矢量图形信号 处理库( v s i p l ) 两者之一。h p l 与其之前版本不同,因为使用者可以选择矩 阵的规模( 问题规模1 。对于最好的系统性能,目标是使用能与内存匹配的最 大的问题规模。为此,推荐接近内存总容量的8 0 的问题规模,如果问题 规模太大,则可能出现与磁盘的交换而显著降低性能。使用基准测试一般 需要和收集的信息包括:系统的最大的理论峰值r ,最高g f l o p s 值的矩 阵规模或问题规模n ,对于数据分配和计算粒度n b 。从数据分配的角度看, 最小的n b 应是理想的,但太小的n b 值也可以限制计算性能。虽然最好值 取决于系统的计算,通信性能比,但有代表性的良好块规模是3 2 到2 5 6 个间 耐2 1 i ,图2 1 的结果是基于本文测试用集群系统上根据不同的n b 值得到的 1 3 燕山大学工学硕士学位论文 测试结果。 3 0 2 5 蚓2 0 掣 1 5 三 。l o 5 0 仝、 轳_ 略扣“5 一一一一 一 2 0 0 0 02 2 0 0 02 4 0 0 02 6 0 0 02 8 0 0 0 问题规模n 图2 1 不同n b 值f 系统l i n p a c k 性能 f i g 2 - 1l i n p a c k p e r f o r m a n c eu s ed i f f e r e n tn bv a l u e 2 2 1 3 h i n t 检测子系统性能h i n t 2 2 1 基准测试是另一种用于检测子系 统的常用h p c 基准测试。它是由u s 能源部a m e s 研究实验室开发的。 h i n t 得到的结果用图形表示,浮点运算性能、整数性能、存储层次、单位 幅度内存性能,数字精度以及非单位幅度内存。h i n t 执行一次计算并产生 一次速度测量,它叫每秒改进j z ( q u i p s ) 。q u i p s 测量产生逼近最后结果有 多快,表明系统处理和存储子系统的性能。 为了确定q u i p s 测量,h i n t 执行由曲线: f ( x ) = 警( 2 - 1 ) 其中( o 曼工1 ) ,所围成的区域的面积计算。在程序运行时,每次迭代把该 区分成一半,计算在下边界、上边界,而后是里边的小块数目。因此,对 内存的访问是从小区域到非常大的区域。它可以检验系统存储的架构一从缓 冲区到r a m 而后到磁盘。在运行h i n t 时,存储是从小区域开始而后到较 大的尺寸。在初始的缓冲装满后,当计算机在缓冲内存外运行并启动主内 存时,计算机由开始的快速而缓慢降低,如果必须访问硬盘甚至更慢。从 h i n t 产生的数据容易看到这种改变。h i n t 可以用来比较两个不同的平台 第2 章集群性能测试与分析技术 的处理器性能和存储子系统,或用于向集群加入更多的均匀节点的可升级 性。尽管h i n t 企图解决集成的问题,但结果通常只显示系统的特定部件, 如处理器电源和存储子系统的比较。 2 2 1 4i o z o n e 检测i o 性能i o 是经常用基准测试测的另一种子系统。 o z o n e 2 3 1 基准测试一般用于检测文件的i o 性能,如同文件系统性能一样。 i o z o n e 基准测试产生和测量不同的文件操作。基准测试检测如后面列出的 文件i o 性能:读、写、重读、重写、回读、跨读、f r e a d 、f w r i t e 、随机读、 p r e a d 、m m a p 、a i or e a d 和a i ow r i t e 。i o z o n e 不仅测量子系统的吞吐量和 比较不同的文件系统的性能,而且也能用于测量和比较各种级别的独立的 冗余磁盘阵歹i j ( r a i d ) 的性能。在h p c 中,存储器有重要的作用。由于数据 通常是从外部存储设备向主机节点传送并进入计算节点,吞吐量必须足够, 不成为瓶颈是极其重要的【2 4 i 。 以上这些基准测试不仅提供了比较系统和预测可扩展性的方法,而且 它们也提供了揭示瓶颈和改进h p c 架构的工具。虽然在多数情况下最好的 基准测试是真实的应用程序,但在测试环境下不可能运行真实的应用程序。 把这些基准测试组合起来使用就能接近实际应用的集群性能。 2 2 2 高性能集群系统的性能指标 高性能系统的性能是指并行系统在时间和速度方面的特性,并行系统 性能指标是用来直接或间接地刻画系统性能的有关度量。性能研究的根本 点是用一组性能指标来反映并行系统有关方面的性能特征。由于并行系统 的层次性,性能研究中要涉及系统的不同层次、不同方面的性能指标。总 的来说,性能指标可划分为系统级、程序级、机器级、运行环境级四个方 面。 系统级的性能指标包括加速比、效率和可扩展性等。其中加速比是指 程序的串行执行时间和并行执行时间的比值;效率为系统的加速比与系统 中处理机数目的比值;可扩展性则是反映系统的问题规模和机器规模变化 时,系统性能的变化特性。程序级的性能指标包括程序结构的不同部分的 执行时间、速度及其相互关系,如并行程序及其各任务的执行时间、任务 15 燕山大学工学硕士学位论文 中各代码段的执行时间、以及并行程序中有关部分的负载均衡程度( 指相互 间的负载规模的差异程度) 。程序级的性能指标还包括程序行为的不同方面 的执行时间、速度及其相互关系,如计算时间( 速度) 、通信时间( 速度) 、访 存时间( 速度) 、同步时间( 速度) 、i o 时间( 速度) 、以及计算通信比计算 时间( 量) 与通信时间( 量) 的比值、计算访存比计算时间( 量) 与访存时间 ( 量) 的比值等。 机器级的性能指标包括用来反映机器的不同功能部分的速度的度量, 如计算速度、各级访存速度、各部分通信速度( 接口、网络) 、同步速度、i 0 速度等。速度方面的度量根据其求值方式的不同可分为三类,即:理论上 的峰值速度、b e n c h m a r k 测试速度、应用程序实际速度。机器级的性能指标 还包括用来反映机器的效率和利用率等方面的度量。效率是指系统有关实 际速度或b e n c h m a r k 速度与峰值速度的比值,如计算效率、通信效率等。 利用率是指系统有关部分的实际利用时间与系统总的活动时间的比值、如 c p u 利用率、网络通道利用率等。 运行环境级的性能指标包括有关的库操作开销、运行时的管理操作开 销以及运行时的重叠、拥塞或等待时间,如各类通信操作开销、c a c h e 一致 性管理开销、谈等待时间、网络通道等待时间等。由并行系统各级层次的 性能指标类别及其定义知,对并行系统的性能而言,时间是关键,各级性 能指标中的大多数是直接反映某一方面的时间特征的,而其它的性能指标 几乎都是有关方面的时间函数。 影响并行程序执行时间的系统特征来自并行程序、并行机器和运行时 环境三个方面、其中并行程序特征包括需求和结构两方面,需求指程序中 计算、通信、共享访问、i 0 、同步各类操作的量( 计算量,数据量) 、次数、 类型、结构指各方面操作的并行性、均衡性、及操作的次序。并行机器方 面特征包括机器的计算,存储,通信,i o 与同步子系统结构,各基本操作 实现方式及性能。影响程序执行时间的运行环境因素包括状态( 处理机状态、 任务状态、数据状态、c a c h e 状态、网络状态、i 0 结点状态) ,规n ( o s 或 运行库中通信、同步、i 0 、共享访问操作算法、任务调度算法、c a c h e 一致 性协议、网络路由和切换方式) 以及各有关操作开销。 1 6 第2 章集群性能测试与分析技术 在对并行系统进行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件接口开放协议书
- 淘宝试用中心协议书
- 质押贷款协议书范本
- 终止医疗服务协议书
- 济南黄河战略协议书
- 世贸入市协议书范本
- 外包业务环保协议书
- 债务还清复婚协议书
- 支付金额分配协议书
- 货车司机安全协议书
- 矿石采购合同范本
- 2024年甘肃省烟草专卖局招聘考试真题
- 2025年龙江森工集团权属林业局有限公司招聘笔试参考题库含答案解析
- (二模)温州市2025届高三第二次适应性考试英语试卷(含答案)+听力音频+听力原文
- DeepSeek+AI组合精准赋能教师教学能力进阶实战 课件 (图片版)
- 2025年纤维检验员(高级)职业技能鉴定参考试题库(含答案)
- 传统皮影戏在小学艺术教育的应用与创新实践
- 2025年国家会展中心上海有限责任公司招聘笔试参考题库含答案解析
- 上海市劳动合同书(IT行业示范文本)
- 2025届高考地理专项练习:农业区位因素及其变化(含答案)
- 初中生科学素养与科学探究能力的培养策略研究考核试卷
评论
0/150
提交评论