(计算机系统结构专业论文)并行与分布式监测系统的设计与实现.pdf_第1页
(计算机系统结构专业论文)并行与分布式监测系统的设计与实现.pdf_第2页
(计算机系统结构专业论文)并行与分布式监测系统的设计与实现.pdf_第3页
(计算机系统结构专业论文)并行与分布式监测系统的设计与实现.pdf_第4页
(计算机系统结构专业论文)并行与分布式监测系统的设计与实现.pdf_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 l 现代并行与分布式计算技术的高速发展,使得并行与分布式统的实 际性能与潜在的最高性能之间的差距越来越突出,并行与分布式软件的 调试也因种种不确定性变得愈加困难。并行与分布式监测技术正是在这 种背景下在近年来获得了很大的发展。i ,。 本文首先对当今世界上有影响的监测系统作简要的介绍,同时介绍 了我们自行研制的m s 2 a i c 0 m 盯坷e 监测系统。,包括:m s 一2 监 测系统插件的总体结构,a i c 的程序自动装备技术,o m 的联机监测分 析环境,玎后期分析工具,v a t e 可视化事后分析工具环境a 在此基 础上,介绍了我们最新的监测系统插件m s 3 以及与其配套的软件 m a t 。淇中详细介绍了m a t 的高效率、高通用性、面向问题等特点。 在实际设计中,我们选用w i n d o w s n t 作为主要的操作系统,通过编写 w i n d o w s n t 下的内核模式驱动程序,找到了一种高效率的数据采集方 案,同时也解决了w i n d o w s n t 下发送软探头的问题。广, 最后,介绍了这个系统在华东电子工程研究所的应用,我们用这个 系统测试了某相控阵雷达任务系统,指出了他们目前的设计和实际需求 不符合的地方。在结语处介绍了m s 3 m a t 这个系统将来的发展。 关键词:并行分布式系统,计算机监测,事件,驱动程序 中图分类号:t p 3 0 6 a b s t r a c t t h ef a s td e v e l o p m e n to fm o d e r np a r a l l e la n dd i s t r i b u t e dc o m p u t i n g t e c h n o l o g ye n l a r g e s t h e d i s c r e p a n c yb e t w e e nt h ep r a c t i c a lp e r f o r m a n c e a n dt h ep e e kp e r f o r m a n c eo fp a r a l l e la n dd i s t r i b u t e ds y s t e m s d e b u g g i n g o fp a r a l l e la n dd i s t r i b u t e ds o f t w a r eb e c o m e sm o r ed i f f i c u l td u et om u c h u n c e r t a i n t y p e r f o r m a n c em o n i t o r i n g a n de v a l u a t i o n d e v e l o pq u i c k l yi n r e c e n ty e a r s f i r s t ,s o m ei m p o r t a n t m o n i t o r s y s t e m s i nt h ew o r l da r e b r i e f l y i n t r o d u c e di nt h i s a r t i c l e t h e n ,m s 一2 a i c o m v a t v a t em o n i t o r s y s t e md e v e l o p e db y u si s i n t r o d u c e d ,i n c l u d i n g t h ea r c h i t e c t u r eo f h a r d w a r eo fm s 2 ,a u t o m a t i cp r o g r a mi n s t r u m e n t a t i o nt e c h n o l o g yo fa i c , o n l i n em o n i t o rs y s t e mo m ,o f f - l i n ev i s u a l i z a t i o na n a l y s i st o o l sv a ta n d v i s u a l i z a t i o n p o s t - m o r t e ma n a l y s i s t o o l se n v i r o n m e n tv a t e b a s e do n t h i s an e wh a r d w a r em s 一3a n dan e ws o , w a r em a t ( m o n i t o r i n g & a n a l y s i n gt o o l s ) a r e i n t r o d u c e d t h ea r t i c l e e x p l a i n sf e a t u r e s o fm a t : h i g he f f i c i e n c y ,g r e a tg e n e r a l i t y a n dp r o b l e m o r i e n t a t i o ni nd e t a i l s i n a c t u a l d e s i g n ,w i n d o w s n t i ss e l e c t e df o rm o n i t o r p l a t f o r m ah i g h e f f i c i e n tm e t h o do f c o l l e c t i n g d a t aw a sf o u n d t h r o u g hp r o g r a m m i n g k e r n e lm o d ed r i v e r ,a tt h es a m et i m et h ep r o b l e mo fs e n d i n gs o f tp r o b e w a ss o l v e d a tl a s t ,t h ea p p l i c a t i o no fm s 一3 m a ts y s t e mi ne c r i e e ( e a s tc h i n a r e s e a r c hi n s t i t u t eo fe l e c t r i ce n g i n e e r i n g ) i sp r e s e n t e d w et e s t e dar a d a r t a s k s y s t e m ,a n dp o i n t e d o u tt h a tt h e r ew e r e s o m e t h i n gm i s m a t c h i n g d u r i n g t h e i rc u r r e n td e s i g nw i t hr e q u i r e m e n t f i n a l l y ,t h ef u t u r eo ft h e m s 3 m a ts y s t e mi s p r e s e n t e d k e y w o r d s :p a r a l l e la n dd i s t r i b u t e ds y s t e m ,c o m p u t e rm o n i t o r ,e v e n t , d r i v e r 第一章综述 第1 章综述 随着计算科学在理论上和实践上的不断成熟,现在普遍认为大型并 行与分布式计算机系统是唯的能够在技术上和经济上满足巨大挑战 问题( 诸如海洋和气候模型,生物工程,核技术,航空航天,系统模拟 及经济模型计算等) 的有效解决方案。现今已经出现了尖峰性能达到每 秒浮点运算千亿次的并行计算机系统,未来几年中还将出现性能更高的 并行计算机。 然而并行与分布式计算机系统的应用程序要想达到其预定的性能 目标,必须面临解决大量的性能调试和优化问题,很多因素都会限制它 的性能。目前最突出而且带有普遍性的问题是用户获得的实际计算能力 与并行与分布式计算机系统提供的硬件能力相差的很远。事实上现存的 并行机的有效性能一般而言只有其峰值性能的5 2 5 ,m p p 机器只 有1 5 。 所有有过开发并行与分布式计算机应用程序经验的程序员都知道, 开发并行与分布式计算机应用程序是一项极其艰苦的工作,为了获得较 高的甚至仅是可观的性能,程序员必须对目标系统结构的许多方面非常 熟悉,即便是很有经验的程序员,也必须经过多次的试验和精练,才可 能发现和排除性能瓶颈。考虑到并行与分布式计算机系统的复杂性,提 高和优化其性能的关键在于了解并行和分布式计算机应用程序、系统软 件和硬件的动态行为,通过记录软硬件动态的交互方式,可以发现并消 除性能瓶颈。在并行与分布式计算机系统中,往往小规模的交互就会产 生很大的信息量,所以,为了从大量数据中抽取出数据的实质和进行有 效的软件调试,在对数据的处理和表示方式上,不仅能够从总体上反映 数据的特征,同时也应该能够反映出数据中细微的方面。 随着更高级别的程序模型( 如面向对象技术) 开始取代消息传递方 式,并行与分布式计算机系统性能优化变得更加困难,用户的逻辑模型 已经和它实际在并行与分布式计算机执行的操作完全分离开来,至少在 理论上,程序员已经不再关心某些确定平台的细节。用户所写的程序和 程序在执行时所产生的结果,这两者之间的距离逐渐增大,这就意味着 程序代码的修改和由此得到的性能改变不再是直接的因果关系。所以用 户将更加依赖于能够对并行与分布式计算机应用程序进行测量、可视化 和建模的工具和环境。 因此近年来并行与分布式监测和分析技术得到了很大的发展。各种 并行与分布式计算机的监测和性能分析系统也不断的涌现,如德国 e r l a n g e n 大学研制的z m 4 系统,美国w i s c o n s i n 大学m a d i s o n 分校研 第一章综述 制的p a r a d y n 系统,美国i l l i n o i s 大学u r b a n a 分校研制的p a b l o 系统以 及复旦大学研制的m s 2 a i c 0 m v a t v a t e 系统等等。这些完整的监 测和性能分析系统一般都有如下的结构,如图l 所示: 对被测目标进 行装备和事件 定义 采集被测目标产 生的事件并生 成事件记录 使用各种分析系统对采集到的由 被测目标产生的事件流进行分 析监测被测目标的动态行为 图1 并行与分布式计算机监测和性能分析系统的一般结构 从上图中可以看出一般的并行与分布式监测和性能分析系统都包 括三个部分: 1 :对被测目标的装备( i n s t r u m e n t a t i o n ) 系统。 2 :被测目标数据采集系统。 3 :数据分析系统。 本文对并行与分布式计算机监测技术作出一些分析和总结,并详细 介绍了m s 3 m a t 和该系统将来的发展目标。 后续章节的安排如下: 第2 章:并行与分布式监测技术概论,介绍了国外些并行与分布 式计算机监测系统,同时介绍了由复旦大学c a t 课题组自行研制开发 的m s 2 a f c ,0 m v a t v a _ r e 系统。 第3 章:介绍了m s 3 的结构和m a t 软件系统的设计与实现。 第4 章:介绍了m s 3 和m a t 的实际应用 第5 章:结语和展望。 第2 章并行与分布式监测技术 2 1并行与分布式计算机监测技术概论 监测技术是实时采集与记录计算机系统运行信息的技术,因而它对 于计算机性能的评估与改进,对于计算机及其软件的调试都是有用的工 具,对于并行与分布式计算机来说尤其重要。因为并行编程是一个相当 困难的工作,通常情况下,单处理机下的编程工具不能用于多处理机系 统。编写高效的并行程序,必须考虑处理机问作业的分配、作业间的同 步等问题,还须具有有效的调试工具,找到系统的瓶颈,以便对程序进 行相应的调整,另外还需要对其性能进行评估。要达到这些目的相当困 难,如对并行程序进行调试,因系统没有全局状态,也就无法定义全局 断点,另外在不同计算机上还可以有并发的、独立的进程。 解决上述问题的一种方法是对并行与分布式程序的运行状况进行 动态监测,从而了解整个程序在运行过程中的动态行为,为程序有效性 的评估及指导对程序的优化提供依据。 监测系统根据不同的标准可以分为许多种。一种分类方法是按照采 样的不同可以分类为时间驱动采样( t i m e d r i v e ns a m p l i n g ) 和事件驱 动采样( e v e n t d r i v e ns a m p l i n g ) 两种。由于时间驱动采样是基于统计 模型,仅能提供目标系统的统计信息,不能直接反映并行系统内部的动 态行为。事件驱动的采样模型以事件作为监测和分析的起点,使用事件 流来反映并行与分布式系统的内部行为。所谓事件流即在并行分布式系 统中按时间顺序排列的各个处理机,模块,进程之间的交互作用,以及 备系统内部的控制流的记录。这样并行分布式系统的内部行为就可以被 抽象为事件的序列。 事件的定义因在监测系统中实现的方法不同而不同。基于事件驱动 采样的监测技术又可以分为三种类型:硬件监测( h a r d w a r em o n i t o r ) , 软件监测( s o f t w a r em o n i t o r ) ,混合监测( h y b r i dm o n i t o r ) 。 对于硬件监测实现方式,这种监测实现方式需要将一些探头直接连 到计算机系统中的一些硬件单元上;诸如总线、寄存器等,当这些单元 上的数据模式正好同某一个预先确定好的模式相匹配时,即触发一个事 件。这种监测实现方式的优点是对程序的运行进程没有任何干扰,因而 由这种监测实现方式所获得的数据能最准确地反映程序在非监测情况 下的运行状况。但是这种监测实现方式有很关键的弱点,就是事件的定 第二章井行与分布式监测技术 义非常复杂和困难,对用高级语言编制的程序来讲,一个一般的面向问 题的参考点很难简单地用一些硬件单元的状态来唯一刻划。 对于软件监测实现方式,它需要在被监测程序的所有监测点处插入 一段特定的监测指令序列,这段指令序列将相应的事件描述存入存储器 中某一指定位置。等到整个程序结束后再由分析程序来分析这些记录下 来的数据。这种监测实现方式的弱点是执行这段监测指令序列需要化费 一定时间,对程序的执行进程会产生影响,因而由这种监测实现方式所 获得的数据一般同程序在非监测情况下的运行状况有较大失真。 对于混合监测实现方式,它是前两种实现方式的折中。同硬件实现 方式不同的是,在混合实现方式中事件的定义也是通过在被监测程序的 监测点处插入监测指令完成的,因此很容易将高级语言源程序中的任意 一个被执行到的位置定义成一个事件,事件的定义可以在源程序级十分 容易地并且规范化地完成:同软件实现方式不同的是插入的监测指令只 是一个很简单的输出指令,对程序的运行状况影响很小,记录下来的数 据一般能真实地反映程序在非监测情况下的运行状况。所以它既保持了 软件监测的灵活性,又接近硬件监测的精度,对被监测程序有干扰,但 较小。如果采用通用性的设计方案,代价也不太高。这是国外多个系统 中集正反两方面经验教训得出来的结论。这种方法目前较受推崇。 事件数据的分析可分为两种,事后分析( p o s t m o r t e m ) 与联机 ( o n 1 i n e ) 分析。事后分析是当监测数据全部采集完毕后进行的分析, 联机分析是监测数据边采集边分析。事件数据的分析是一项复杂的任 务,事件采集往往是分布式进行的,必须把各监测点的事件数据按个 统一的时间排序,形成事件流信息库,用户根据不同需要,参照被测程 序的结构模型,抽取感兴趣的事件信息,恢复和分析程序的动态行为模 型,因该模型已具有清楚的事件参数,可在一定程度上支持性能评估与 程序调试,在此基础上可编制统计分析程序等。 事件流信息库中将包括复杂的控制流信息和通迅信息,以及实际上 是分布的数据结构,如何帮助用户按不同目标处理这些信息是一项非常 复杂的工作,一般用模块化设计与面向目标的程序技术使程序易调,易 修改括充,以及适应尽量广泛的应用,而用可视技术( 图表,动画等) 使得系统对用户友好。 2 2国外已有部分监测系统 目前世界上已经有一些并行与分布式监测系统在使用中,下面将它 们的主要特点作以简单介绍。 第二章并行与分布式监铡技术 2 2 1z m 4 系统 z m 4 是德国e r l a n g e n 大学的研究人员设计和实现的一个通用分布 式监测系统。它本身具有分布式的体系结构,可由任意数目个监测单元 通过局域网连接起来。它由一个控制和评估计算机作主机,任意数目个 监测单元作从机。控制和评估计算机是概念上的主控者,它控制监测单 元的测量活动,存储监测数据,并给用户提供一个评估监测数据的强有 力的和通用的工具集s i m p l e ,它包括监测数据的验证、分析和动画等 工具,每个工具都是一个单独的应用程序,都可以单独使用。 2 2 2p a b l o 系统 美国i l l i n o i s 大学u r b a n a 分校研制的p a b l o 是一个并行及分布式系 统的性能监测和分析环境,它是一个结构化的,可移植的,开放性的系 统。p a b l o 的设计指导思想是可移植性,可伸缩性,可扩展性。它主要 包含了两个组成部分:装备软件系统和性能数据分析系统。这两个部分 通过一个事件流数据元格式( t r a c ed a t am e t af o r m a t ) 耦合在一起。 p a b l o 的装备软件系统采用交互式的方法来指明要进行装备的源代 码中的装备点。整个装备系统包含三个组成部分: 1 。一个图形化的装备点指定界面。 2 一个c 和f o r t r a n 语法分析器,该语法分析器可以在执行到装 备点时通过调用性能数据采集库里的函数来产生性能数据。 3 一个可以采集性能数据的函数库。 p a b l o 的性能分析系统包含了一组数据变换模块,这些模块的图形 表示可以相互连接,构成一个非自环的,有向的数据分析图。性能数据 流过这个数据分析图经过数据变换产生希望的性能评价指标。p a b l o 的 性能分析系统所能够接受和处理的数据格式是p a b l o 专用的 s d d f ( s e l f _ d e s c r i b i n g d a t af o r m a t ) 。 p a b l o 性能分析系统的可扩展性和可伸缩性的关键在于使用了一组 可以处理s d d f 数据格式的数据变换模块( d a t at r a n s f o r m a t i o n m o d u l e s ) 。通过将各种数据变换模块以图形化的方式将他们联系在一 起,通过交互的方式指定事件流中的哪个记录应该由哪个数据分析模块 进行处理。因此性能数据分析的方法是由用户设计的数据分析图决定 的,而不是由p a b l o 所决定的。 一次典型的p a b l o 性能分析环境的使用过程是:首先设计好数据分 析图,其次对每个模块的输入端口和输出管道以及内部的变换功能进行 配置,然后运行这个数据分析图,所设计的分析结果就会显示在屏幕上。 对所设计的数据分析图还可以存盘以供以后分析之用。 2 2 3a i m s ( a u t o m a t e d i n s t r u m e n t a t i o na n d m o n i t o r i n g s y s t e m ) 系统 a i m s 系统是由美国国家航空和宇宙航行局所属的a m e s 研究中心 开发的用于分析多处理机上并行应用程序性能的软件,a i m s 可以用于 解释算法的行为,帮助分析程序执行过程和指出程序问题所在,提高程 序的执行效率。该系统支持的平台是i b ms p 2 和一些工作站( 如 s u n s p a r c s ,s g ia n dh p ) 。a i m s 主要包括以下软件工具: x i n s t r u m e n t :用于对f o r t r a n 7 7 和c 语言源程序进行装备。 m o n i t o r :可运行于i b ms p 2 和工作站上的用于采集事件流的函数 库。 p c :用于消除事件流中一些不必要开销和影响的工具。 v i s u a l i z a t i o n a n a l y s i st o o l k i t :用于分析事件流数据的可视化工具。 2 2 4n e t m o n i i 系统 n e t m o n i i 是德国k a r l s r u h e 大学研制的一个混合式并行与分布式 监测工具。它是个分布式主, k 系统,带有多个监测工作站( 从) 和 一个中央控制工作站( 主) 。每个监测工作站包含一个监测单元,一个 负载生成单元和个与主工作站通迅的网络接口,它负责控制测量活动 和数据评估。监测单元作为p c 的一个插件实现并通过一个8 位宽的 c e n t r o n i c s 打印机端口与目标系统相联。因此,接口,事件探测和事件 记录等监测结点所有的任务被结合到了一块插件上。每个监测单元的一 部分是精度为8 u s 的时钟,它能使监测器适用于通过s e n d r e c e i v e 机制 通迅的目标系统。为了建立全局时间基准,这些时钟每隔15 m s 由联接 所有监测单元的时钟信道来校准。由于该校准操作是通过在l a n 范围 内传输的信号直接访问寄存器来实现的,有可能因时钟信道上的信号畸 变引起错误的校准。 2 2 5f a l c o n 系统 g e o r g i a 理工学院的f a l c o n 系统是一套支持对并行与分布式计算机 进行联机监测的工具,f a l c o n 在概念上主要有四个部分:个监测规范 机制,包括一个低级传感器规范语言和一个高级观测规范语言;联机信 息捕捉和分析机制;程序操纵机制;一个构造和使用程序信息图形显示 的相关系统。f a l c o n 是一个针对应用程序的监测系统,它本身产生的干 扰很低,对运行时的监测机制可以灵活地配置,具有良好的图形显示界 6 第二章并行与分布式监测技术 面,提供装备和运行操作的用户图形接口,使用简便。 2 2 6 s c h e c k 系统 s - c h e c k 系统是由美国国家标准技术研究所的并行系统和应用小组 研制的用于分析和提高并行和网络程序性能的工具。s - c h e c k 的目标在 于通过提供程序性能信息采指导程序员关注程序的瓶颈。它通过对局部 代码进行修改来预测对整个程序性能的影响。s - c h e c k 分析用户的源程 序,指出瓶颈点,它在并行程序中加入人工的延迟,这些延迟可以设置 为开和关,通过调解延迟可以产生新版本的程序,通过对新版本的程序 进行分析来改进其运行效率,s - c h e c k 提供给用户方便的图形化界面以 便于用户配置。s - c h e c k3 0 版本适合于并行s g i 系统,i b m 的s p , s u n ,s g i 和运行于p c 机上的l i n u x 等。 2 3 自行研制的监测系统m s - 2 a ic 0 m v a t v a t e 复旦大学c a t 实验室在参照国外目前先进的监测技术的基础上加 以吸收和消化,自主研制了m s 2 a i c o m v a t 通用分布式监测系统, 它包括监测硬件m s 2 、自动程序装备工具a i c 、联机监测软件o m 和 事后分析工具v a t 。 2 3 1m s 2 :通用的分布式监测系统 m s 一2 系统是种分布式结构的监测系统,它由两种类型的组成单 元所构成,一种是基准时钟发生单元( t b g t i m eb a s eg e n e r a t o r ) ,它 用来给整个系统提供一个严格统一的时间信号;另一种是监测数据采集 单元( m d p m o n i t o rd a t ap r o b e ) ,它用来直接采集来自被监测系统数 据。 在一个监测系统中基准时钟发生单元只有一个,而监测数据采集单 元则根据被监冽系统的规模和分布可有一至无限多个,它们之间通过级 联的方式相联,其结构参见图2 。 第二章并行与分布式监测技术 驱动后的驱动后的 l 基准时钟i 基准时钟信号 基准时钟信号基准时钟信号 【堂扩 厂 驱动后的 基准时钟信号 【l v i 监测数据il 监测数据i 1 监测数据i i 采集单元il 采集单元il 采集单元i 图2 m s 2 的组成单元 每个监测数据采集单元可以同时监测一至四台被监测系统,为了保 证监测数据采集的可靠性和时间精确性,每个监测数据采集单元与相应 的被监测系统一般分布于同一空间位置,它们之间采用星状的方式相 联。 这两种单元都被设计成p c 系列计算机扩充板型式,因此它们的工 作必须依附于p c 系列计算机,由p c 系列计算机负责提供这些单元工 作所需的电源消耗、运行前的必要配置以及采集数据的卸出。每台p c 系列计算机上能插多少单元取决于该p c 系列计算机的负荷能力、扩充 槽个数以及被监测系统分布上的要求等,结构参见图3 a _且 基监监 监监 准测测 测澳 时数数数 数 钟据据据 据 发采 采采 采 生集集 集 集 堕董筮 堕盥 兀兀兀 兀兀 p c 系歹i计算机1 ip c 系列计算机 图3 m s 2 总体结构 这些分布于不同空间位置的p c a t 系列计算机从依附于它们的监 测数据采集单元中卸出数据,然后再通过一个数据通道将数据汇总在一 起进行分析,这个数据通道可以是一个计算机网络,也可以通过可卸式 外部存储器来实行。m s 2 是一个高性能的数据采集硬件系统,它具有 极为精确的全局同步时钟和极高的时间分辨率,能够把采样时间分辨率 控制在1 0 0 n s 以内。 m s 2 系统是事件驱动方式监测系统,因此它所监测的事件必须事 第二章并行与分布式监测技术 先在被监测系统中得到定义,并分配一个事件标识符。m s 2 系统是混 合实现方式,因此监测前必须在运行软件中所有事件位置插入相应输出 指令,对目标程序进行装备。被装备的软件运行时,这些输出指令将相 应的事件标识符输出到某一个输出端口上,再由各m d p 采集。见图4 。 图4 m s 2 的工作图 2 3 2a i c :自动c 语言程序装备工具 在使用m s 2 o m v a t 系统对目标程序进行监测分析时,通常需要 对目标程序进行多次装备,并对采集到的不同装备的数据进行分析、比 较,这样个过程是一个复杂而又容易引发错误的过程。另外,要能有 效地对一个系统进行监测分析的前提是所采集到的监测数据能很好的 反映程序的动态行为,这就要求在对程序的细节相当了解的条件下对程 序进行装备。而在一般情况下,我们并不能相当了解程序的细节,而只 能凭主观直觉来对程序进行装备。分析运行在并行与分布式计算机系统 上的程序时,是不能单凭直觉的,必须有一种系统化的方法进行程序装 备。 所谓程序装备,就是在所监测的程序中插入一些监测指令,这些监 测指令又称为软探头,这些监测指令把我们所关心的程序内部动态运行 行为数据送给监测系统,监测系统根据这些数据可以做联机或事后的分 析。 为了能系统化地装备,我们开发了一个工具a i c ,即a u t o m a t i c i n s t r u m e n t a t i o no fc ,它能用于对c 语言目标系统进行自动装备。有 了这个工具,对目标系统的装备就更系统,更方便,更可靠。 a i c 能用于对标准的c 语言程序进行装备,对于各种不同版本的c 语言程序只需对a i c 做稍加修改就可以装备。c 语言自从1 9 7 2 年问世 以来,表现了较强的生命力,现已成为主要的程序语言之,使用相当 普遍,所以选择对用c 语言实现的系统进行自动程序装备。a i c 就是 所设计的对c 语言程序进行装备的工具,它能够用于对u n i x 下标准c 语言程序进行装备,同时我们针对d o s 下的b c 3 1 对a i c 做了移植, 使a i c 也能够用于对b c 3 1 的程序进行装备。 a i c 可以在不同抽象层次上对c 语言程序进行装备,即: 过程调用的前后: 过程体的入口处或出口处; 某一范围内的所有过程调用的前后: 某一个语句的前后。 a i c 可以在c 语言程序中任意符合语法规则的位置加监测指令, 监测指令可以是任意c 语句。a i c 提供了两种装备方式:命令文件方 式和交互方式。命令文件方式是通过一个命令文件中说明如何对目标程 序进行装备,该命令文件由a i c 所提供的装备命令组成,可以根据装 备的目的,按一定抽象层次手工编写;交互方式可以使用户交互地对程 序进行装备,方便了使用,这种方式也能产生相应的装备命令文件。该 命令文件还可以作为监测的一种文档,直观地反映出用户所做的监测。 a i c 能支持硬件监测器m s 2 和软件方式监测,这两种技术的主要 区别在于数据采集的方法。m s 2 是通过专用接口采集数据,而软件方 式监测则是把数据输出到目标系统的硬盘上。c 语言广泛地使用于各种 系统平台上,而不同系统平台的i o 方式有许多差异。为了让a i c 具 有一定通用性,a i c 能根据所用的平台和不同的监测方式,产生相应的 数据采集接口函数。我们只需在命令文件中指明所用的目标系统和监测 方式。 由于程序装备是在源程序级进行的,而不是直接对执行程序进行装 备,因此在对它进行监测前,还需对装备好的程序重新编译和连接。 有了自动程序装备工具a i c ,装备不再依靠直觉,而是能以系统化 的方式进行。在监测分析的各阶段对程序进行装备,只需对命令文件作 相应修改,a i c 就重新对目标程序进行装备,并产生相应的事件描述文 本,这就避免了许多出错的可能性。 2 3 3o m :通用的联机监测分析工具 在并行计算机的初期研制阶段,由于缺乏有效的调试和测试工具, 仅仅通过示波器、逻辑分析仪等工具监测系统的行为,很难深入了解系 统内部的具体工作流程和一些重要参数的值,而且在操作系统的初期调 试过程中,现有的调试工具也不尽人意,这些都对并行机的研制带来了 相当的困难。为了在监测过程中立即获得被监测的并行与分布式计算机 o 第二章并行与分布式监测技术 系统的内部状态信息,就需要有能够即时对监测数据进行分析处理及时 反馈监测结果的手段。联机监测分析工具( o m ) 就是在这种应用背景 下产生的。 o m 是一个对采集的数据进行快速反应,分析,处理的监测分析工 具。它是在w i n 9 5 下实现的一个多进程的高效的监测数据分析处理软 件。与后期分析工具不同,o m 并不是一个事后分析处理的系统,它对 数据的处理手段比较简单,直观但是实时性强。 o m 具有以下的特点: 1 高性能 o m 是运行于w i n 9 53 2 位操作系统上的3 2 位软件,能够充分发挥 p c 上通常的1 6 位软件所不具有的高性能。并且在o m 中结合使用了 w i n 9 5 中的虚拟内存管理机制和结构化异常处理机制,内存的使用效 率和访问速度及性能都大大高于普通的堆式内存管理。 2 通用性 o m 是建立在通用的分布式监测系统m s 一2 上,其本身也被设计成 是能够处理来自于各种并行与分布式系统的数据。o m 的通用性主要是 通过一种简单描述语言t a b ( t r a c ea c c e s sb a s e ) 文件来实现的。该语 言使用一种通用的方法表示各种被监测设备上的监测数据格式,并且能 够方便地扩充可描述的监测对象。 3 面向问题 o m 的面向问题的特性主要体现在它采用了事件驱动和源相关的 监测方法。事件驱动监测的一大好处就是可以很容易地将采集到的监测 事件与目标系统中的具体部分( 产生监测事件的点) 联系起来。 4 良好的图形化的用户界面 o m 采用了w i n 9 5 这个操作系统作为应用开发的平台,充分利用 了w i n 9 5 的良好的用户界面。另外,o m 系统巧妙地将t a b 文件编辑 器,编译器,数据采集,状态显示,数据采集硬件的控制以及数据的分 析和处理集成到一起,方便了用户的学习和使用。 2 3 4v a t :可视化后期分析工具 o m 是联机监测软件,它能够对监测数据进行分析处理并及时反馈 监测结果,然而在大多数情况下监测数据的采集速度和采集量都是联机 状态下所难以观察的,对于瞬间的数据和大量的数据,要让用户面对当 时的计算机屏幕来观察,几乎是不可能的,所以我们针对o m 由t a b 描述文本所产生的监测数据开发了后期分析工具v a t 。 玎具有以下的特点: 1 集成的分析环境 第二章并行与分布式监测技术 2 开放式的结构: 3 使用方便灵活 v a t 中采用了自描述的事件流文件( 将事件流及其描述集成在一个 文件中) 、模块配置文件和良好的用户界面,使得软件的使用方便灵活。 2 3 5v a t e :并行与分布式计算机监测系统可视化分析 工具环境 v a t e 在v a t 的基础上引进了模块树的概念,模块树的概念贯穿了 v a t e 的始终,它是v a t e 的核心。模块树共分为三层,顶层为数据源 模块,其提供监测数据;中间层为数据处理模块,每一个数据处理模块 包含一个数据处理核心和一个记录选择界面,数据处理核心负责处理实 际的数据变换,而记录选择界面负责对上一级模块送来的逻辑事件中的 某些字段进行取舍,把用户需要的字段复制或分配给下一级模块,在数 据处理模块中对输入的记录流提供结构中立的数据约简,这样就把做什 么样的数据处理和取得什么样的数据结果的选择交给了用户,可以使用 户根据需求做相应的数据处理组合;作为叶子的底层模块是显示模块, 显示模块提供给用户一种更加直观和形象的显示数据的方法。 第三章m s - 3 与m a t 的结构 第3 章m s - 3 与m a t 的结构 我们课题组( 复旦大学c a t 组) 在“九五”计划的上半段成功开 发了m s 2 计算机监测系统,并应用于华北计算所的m p p 机研制上, 还应用于成都电子科技大学的实时操作系统的性能测评中。在实际应用 中,我们也看到了m s 2 自身的一些不足,为此我们开发了一个全新的 系统m s 3 ,由于m s 3 的数据格式和m s 2 不完全兼容,我们在以前的 监测软件基础上,针对新的硬件,提出了一些新的构思,开发了m s 3 的软件系统m a t ( m o n i t o r i n g & a n a l y s i n gt 0 0 1 ) ,m a t 的些新构思 表现在: 它既能在线监测又能事后分析。 摈弃了以往的监测分析软件采用描述语言来描述物理事件流 的做法。m a t 是通过表的方式来描述的,并通过描述配置向导 一步步生成的。 在数据存储格式上,m a t 既保留了以往文件的格式,又加入了 数据库的方式,事实证明这种方式在性能监测中是很成功的。 在多进程系统或者是多机的系统的分析中,我们第一次构造了 表达三维数据的可视化工具梯形图。 下面我们进行详细讨论。 3 1m s - 3 的体系结构 3 1 1m s - 3 的特点 我们用同m s 2 比较的方法来展示m s 3 特点。通过比较,我们可 以看出m s 3 比m s 2 要好。至于改进后带来的一些缺点,比如数据的 宽度减少了,在实际测试中影响也不大,因为现在的计算机多是3 2 位, 超过3 2 位的不多。( 见表1 ) 第三章m s 3 与m a t 的结构 m s 2m s 3 改进后的优点缺点 与计算直接插在p c 机的i s a机外结构,以e p p 方式 不需要再打开机 机的连插槽上与计算机相连箱,使用起来更加 接方式 方便 数据宽数据宽度为4 8 位可数据宽度为3 2 位,可优点是节省了器是大于 度同时接受四路触发信同时接受四路触发信件,3 2 位的 号号数据必 须用其 他办法 来监测 f i f o 能不行可以。有8 k 、】6 k 、用户可以根据实 否自由3 2 k 、6 4 k 等选择际需要自行配置, 配置可以为用户节约 投资 能否支不直接支持,需要通过直接支持对于联机监测的 持实时复杂的方式来模拟任务,有非常大的 模式优越性, 是否全不是是可靠性非常高 数字化 是否有没有有大大提高了可靠 全面的性 接口保 护 体积约3 2 c m 长,1 1 c m 宽约1 9 c m 长,l o o m 宽缩小了体积便于 携带 能否分能不能功能减 布式扩弱了 展 表1m s - 2 与m s 一3 的比较 3 1 2m s - 3 的原理 m s 3 系统是事件驱动方式监测系统,因此它所监测的事件必须事 先在被监测系统中得到定义,并分配一个事件标识符。m s 3 系统是混 合实现方式,因此监测前必须在运行软件中所有事件位置插入相应输出 指令,对目标程序进行装备。被装备的软件运行时,这些输出指令将相 应的事件标识符输出到某一个输出端口上,然后由m s 一3 负责采集。 m s 3 至多能监铡4 路数据。( 见图5 ) 1 4 第三章m s 3 与m a t 的结构 被监测 系统1 被监测 系统2 被监测 系统3 被监测 系统4 事件 出 标识组。 o 位 q 位 监测 罨罨三 数捉 叼 数 星雯 接 据 列萎 口 a 路 时间 时 应 答 状态 监信息 测 接 口 t 。 。 4 嚣h 数字时钟f 叫瑞叫时钟电路 图5m s 一3 的结构图 3 1 3m s 3 的一些技术指标 1 、数据采集卡的时间信息: 计数器每l o o n s 加1 计数器值起始为0 ,最大可达2 4 0 1 最大时间信息( 2 4 0 1 ) * 1 0 0 n s t 3 0 5 4 小时 2 、数据采集卡的数据采集接口: 4 条触发线中任意一条或几条线上的触发信号都将使得整个3 2 位数 据被采集。 四条触发线和3 2 条数据线没有任何物理上的对应关系。 每个被监测目标占用一条触发线,可以分配3 2 条数据线中的任意一 组线,4 触发线和3 2 条数据线之间的逻辑对应关系由连接方式决定。 每个数据事件上的状态信息位将记录该次事件采集是由那一条或 几条触发线所引发。 3 、m s 3 数据采集卡的f i f o 缓冲器: 以字节( 8 位) 为单位读取。 支持的宽度模式为:每一个记录为8 0 位,分1 0 次将完整一条记录 读出。( 见图6 ) 第三章m s 3 与m a t 的结构 字节1字节2字节3字节4字节5字节6字节7字节8字节9字节1 0 心夕i 弋 4 0 位时间计数器值 8 位状态 j3 2 位采集豹数据 图六每个记录的构成 4 、m s 3 数据采集卡端口安排:( 见表2 ) 端口名称端口地址性质宽度 控制端口 b a s e a d d r e s s + 3 输出 8 b i t s 状态端口 b a s e a d d r e s s + 3 输入 8 b i t s 初始化端口 b a s e a d d r e s s 输出 8 b i t s 数据端口 b a s e a d d r e s s + 4 输入 8 b i t s 注:b a s e 为打印口基地址 表2 端口地址 5 、事件数据记录中的8 位状态信息: 每条物理事件中都有一个8 位状态位,只有低4 位有效,用来表示哪路 数据是有效的,信号是高有效的。( 见图7 ) 8 l t 7b i t 6b i t 5b i t 4b i t 3b i t 2b i t lb i t o e 通道1 通道2 ; 通道3通道4 图7 每条记录中状态位的含义 6 、m s 3 数据采集卡的控制信号: 控制寄存器的地址是基地址+ 3 ,m s 3 现在只用了它的低2 位。其中可 以有四种组合。o o 是等待启动。o l 是强制启动。这两种启动方式的不 同在于等待启动是只有收到了第一个物理事件后计时器才开始计数,也 就是说第一个事件的时间总是0 。强制启动是不论收没收到物理事件, 计数器都开始计数。1 0 是停止。l l 是恢复。( 见图8 ) 第三章m s 3 与m a t 的结构 图8 采集卡中控制信号示意图 7 、m s 3 数据采集卡状态位标志( f i f o 状态标志) : f i f o 的状态位的地址是基地址十3 ,它是只有高3 位是有用的。信号是 低有效。( 见图9 ) 卜 b l t 6b i t 5b i t 4b i t 3b i t 2b i t ib i t o 图9 采集卡上f i f o 状态标志 3 2m a t 的设计与实现 3 2 1m a t 系统设计的目的和要求 做为一个既能在线监测又能离线监测的软件,我们在设计m a t 时, 一方面充分借鉴和吸收了国外先进可视化分析软件的优点,同时也考虑 它们的不足之处;另一方面针对我们软硬件混合监测的特点,在继承复 旦大学c a t 组先前软件的基础上,我们尽可能使m a t 在软硬件混合监 测的基础上具有通用性,可扩展性,可重用性,并充分她考虑用户的实 用性,使软件的结构更加合理,方便用户的使用。所以m a t 在设计时 力求达到如下的要求: 高效率。 面向问题。 高通用性,可以满足多数用户的一般监测要求 第三章m s - 3 与m a t 的结构 界面友好,使用方便、简单、灵活 动态和静态相结合,既有程序动态行为的回放,又有静态的统 计数据 运用可视化技术,提高分析模块的功能,更加直观和形象满足 用户的分析需求 可扩展性,具有开放式的结构,易于添加新的分析模块,便于 扩展以满足用户的特殊要求 下面从m a t 的结构的结构入手,详细的论述这几个特点及相应的 设计考虑。整个软件是建立在一组d l l 上的,这组d l l 隐藏了所 有与硬件有关的细节。商层的程序不需要知道底层到底是什么。实 际上我们的软件既能在w i n d o w s n t 下运行也能在w i n d o w s 9 5 下运 行。统计分析部分和图形分析部分也是通过一个接口来存取数据, 我们可以对同一个数据源同时做不同的分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论