(电子科学与技术专业论文)电子光学系统cad软件高性能计算研究.pdf_第1页
(电子科学与技术专业论文)电子光学系统cad软件高性能计算研究.pdf_第2页
(电子科学与技术专业论文)电子光学系统cad软件高性能计算研究.pdf_第3页
(电子科学与技术专业论文)电子光学系统cad软件高性能计算研究.pdf_第4页
(电子科学与技术专业论文)电子光学系统cad软件高性能计算研究.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(电子科学与技术专业论文)电子光学系统cad软件高性能计算研究.pdf.pdf 免费下载

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

文档简介

a b s t r a c t a b s t r a c t m i c r ow a v et u b ec a ds o f t w a r en e e dt od e a lw i t hh u g en u m b e ro fd a t aa n d c o m p u t ef o ral o n gt i m ew h e ni t s i m u l a t e saw h o l e3 dn u m e r i c a lp r o b l e m s ot h e p e r f o r m a n c ei sv e r yi m p o r t a n tt ot h es o f t w a r e a n di fn e e dt oi m p r o v et h ep e r f o r m a n c e o fp r o g r a m ,w en e e dt ok n o wa b o u tt h et e c h n o l o g yo fp r o f i l i n gp r o g r a m ,n o r m a l k n o w l e d g eo fi m p r o v i n gp r o g r a m , w e l lu s i n go fr a m a n dc a c h e a sw ek n o wt h a tw es h o u l dm a k es u r ew h a tn e e dt oi m p r o v e , b u rn o ti m p r o v et h a t i sn o ti m p o r t a n tt ot h ep r o g r a m i ft h ep r o g r a mb l o c ko n l yr i m sal i r l et i m e ,i td o c s n t w o r t ht oi m p r o v e ,c a u s ee v e ni fi td o e s n tr u na f t e ry o u ri m p r o v i n g , t h ew h o l ec o u l d o n l ys a v ea l i t t l et i m e s ow en e e dt op r o f i l et h ep r o g r a mt od e t e c tw h e r ei st h ek e yp a r t o fp e r f o r m a n c e w ec o u l du s es o m et o o l sa n dm e a s u r et od e t e c tt h eh o t s p o to ft h e p r o g r a m a sh a v ef o u n dt h eh o t s p o t , w eh a v ead e f i n i t eo b j e c ti nv i e w i nt h i ss t u d yw e b o t hr e a dt h ep r o g r a ma n da n a l y z et h er u nt i m eo fi t ,a n dt h e nu s et h ep e r f o r m a n c e a n a l y z i n gt o o l so fm i c r o s o f tv i s u a ls t u d i o2 0 0 5t od e t e c tt h eh o t s p o t a n dw ef o u n d m a tt h ea r i t h m e t i co fs e a r c he l e c t r o ni i lt h ef i n i t e e l e m e n tm o d u l et a k e st h em o s tt i m eo f t h ep r o g r a m t h e r ea r eb o t hs c o p e - f i r s ta n dd e e p n e s s f i r s tw a y so fs e a r c h i n g , a n d n a m e ds c a na r i t h m e t i ca n dp u r s u ea r i t h m e t i ci nt h i ss t u d y a n da tt h es a m et i m ei t s h o w st h ea s s i s t a n ta r i t h r n e t i c t h i ss t u d ya l s oi m p r o v eo t h e ri m p o r t a n tp a r to fe o s ( e l e c t r o no p t i c ss i m u l a t o r ) , j u s ta st h ef u n c t i o no fc a l c u l a t i n ge l e c t r i cf i e l d ,a n du s e ds o m et e c h n o l o g yo fi m p r o v i n g p r o g r a m a n d t h e nd os o m ew o r kt os a v er a m s p a c ea n du s er a m m o r eq u i c k l y t h e n t h es t u d yc o m p a r et h ep e r f o r m a n c eo fu n i m p r o v e da n di m p r o v e dp r o g r a mu s e d p e r f o r m a n c ea n a l y z i n gt o o l so fm i c r o s o rv i s u a l s t u d i o2 0 0 5 a n du s e db o t h u n i m p r o v e da n di m p r o v e de o s t oc o m p u t ear e a lm o d u l ea n dc o m p a r et h er e a lr u nt i m e a g a i n n o w a d a y sm u l t i c o r ep ch a v eb e e nu s e dt oe v e r ya r e as u c ha sd a i l yl i f ea n d s c i e n c es t u d y , i fm i c r ow a v et u b ec a dc o u l dr u no nam u l t i - c e l lc o m p u t e r , a n d p a r a l l e lr u no nm u l t i - c o r e , i t sp e r f o r m a n c ec o u l db em a r k e d l yi m p r o v e d s ot h i ss t u d y a l s od i s c u s sa b o u tp a r a l l e lp r o g r a m m i n g , i n t r o d u c ea b o u tp a r a l l e lc o m p u t e rs y s t e m , t l 一一 ! 望! ! ! ! ! 里二 一一 - i - _ _ _ _ _ - _ - - _ _ - _ - _ _ - _ i - _ - _ - - _ _ _ _ _ - _ - _ _ _ - - _ - - _ _ - i _ _ _ _ - _ _ _ _ l _ - _ - - _ - _ - - _ - _ _ _ _ _ - - _ 一一一 p a r a l l e lp r o g r a m m i n gm o d u l e ,p a r a l l e la r i t h m e t i c , p a r a l l e lp r o g r a m m i n gt e c h n o l o g y a n d h o wt ov a l u et h ep e r f o r m a n c eo fp a r a l l e lp r o g r a m ,a n dc o m p a r es e v e r a lp a r a l l e l p r o g r a m m i n gc i r c u m s t a n c es u c ha sm p i ,h p f a n do p e n m p a si n t r o d u c e di nt h es t u d yo p e n m pi st h em o s ts u i t a b l et op a r a l l e lp r o g r a mo n m u l t i c o r ec o m p u t e r i ts h o wss i m p l ee x a m p l et h a tu s i n go p e n m pt op a r a l l e lp r o g r a m o nm u l t i c o r e a n ds h o wi t sp e r f o r m a n c e t h e nt r yt ou s eo p e n m pi nt h ep a r to f c a l c u l a t i n gt r a c ei ne o s ,a n da l s ot e s ti t sp a r a l l e l i n gp e r f o r m a n c e c o n e l u d ea n ds t u d y v a l u a b l ee x p e r i e n c eo fp a r a l l e lp r o g r a m m i n g ,a n dd e f i n i t u d et h ew a yw es h o u l dg ot o p a r a l l e lp r o g r a mi ne o s k e y w o r d s :e o s ,p r o g r a mp e r f o r m a n c ei m p r o v e d ,p a r a l l e lp r o g r a m m i n g , l l i 曲 p e r f o r m a n c ec a l c u l a t e i 独创性声明 本人声裴所呈交的学应论文是本人在导师指导下进行的研究工 作压取得的研究成果,据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学应或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了萌 确的说明并表示谢意。 ! i 麓:如。军s ,亏7 虽 论文使用授权 本学位论文怍者完全了解电子科接大学有关隈留、使鼋掌注论支 的规定,有权保留并向雷家有关部门或机构送交论文的复印件和象 盘,允许论文被查阅和借阅。本人授权电子科技大学可以;海学应论文 的全部或部分内容编入有关数据库进行捡索,可以采月影印、缩印或 j 捶等复制手段保存、汇编学泣论文。 r :保虿的学位论文在解密后应遵守此规定) 签名:王些芝照一 导,砰签名: 日期:b d 年5 马7 e i 第一章引言 第一章引言 1 1 微波管c a d 技术的发展趋势 v i c t o r l g r a n a t s t e i n 是真空电子学领域的国际资深科学家,他曾经提出:“现 代微波电真空器件的设计,极大地依赖于精确而强大的建模和模拟技术”;“最近, 建模和模拟软件在精度、速度和计算能力上有了显著的进步;在集成环境中已经 达到通过模拟设计一次制管成功,从而节约了硬件实验的时间和费用坩1 1 。随着计 算机模拟技术的发展进步,c a d 软件已经广泛应用于微波管的设计与生产过程中。 目前广泛应用的微波管c a d 软件主要包括如下一些类型:稳态电子轨迹软件 ( 电子枪收集极) 、静磁场软件、高频系统电磁特性分析软件、注波互作用软件、 结构分析和热分析等可靠性分析软件及复杂特性分析软件。这些软件大多经历了 4 0 年左右的发展,最近几年由于计算机技术的快速发展,同时在国家强烈需求的 大力推动下,它们正处于由最初的一、二维向三维阶段发展的历史时期。全面采 用三维理论模型、三维实体建模、计算数据的三维图形化显示,是当前阶段的主 要特征。 由于大型电磁场分析软件无法完成整个管型的设计,大多数软件都仅用于设 计微波管某个部件。开发一个能够计算从电子发射、能量交换及至电子被收集的 集成环境,成为微波管c a d 新的发展趋势。美国国防部1 9 9 1 年启动的m m a c e 项目,其成果已经开始在美国微波管行业推广使用;美国的休斯公司开发的一套 c a d 软件已经成功用于螺旋线行波管整管设计;乌克兰o r i o n 研究所开发的一套 耦合腔行波管c a d 软件在我国七七二厂得到应用;1 9 9 4 年,我国开展了“宽带大 功率行波管c a d 集成环境 项目,该项目及其后续项目持续1 0 多年,研发的二 维t w t c a d 软件包开始在我国微波管行业推广使用。 目前三维软件“微波管模拟器套件 ( m i c r o w a v et u b es i m u l a t o r s u i t e ,m t s s ) 【2 】也于2 0 0 7 年8 月发布第一版。该模拟器套件是一个集成了三维 实体建模、三维网格划分、核心三维求解器及三维后处理的开放式微波管三维 c a d 仿真平台。m t s s 由六个模块组成:微波管设计环境( m i c r o w a v e t u b ed e s i g n e n v i r o n m e n t ,m t d e ) 、电子光学模拟器( e l e c t r o no p t i c ss i m u l a t o r , e o s ) 3 1 、高频 电路模拟器( h i g hf r e q u e n c yc i r c u i ts i m u l a t o r , h f c s ) 4 1 、注波互作用模拟器( b e a m 电子科技大学硕士学位论文 w a v ei n t e r a c t i o ns i m u l a t o r , b w i s ) 、聚焦系统模拟器( f o c u ss y s t e ms i m u l a t o r ) 和 输入输出窗模拟器( w i n d o w ss i m u l a t o r ) 。其集成界面如图卜1 所示 蛊蓝警嚣矮麓蕊嚣:。j “,t i :也女。aq t 口阳1 创i 到一k itl i 惑 z | e t 00 0 n ,r 谴 、 :慧了 。蕊邈一 口_ 、 a 日十# 一 l 南_ _ 一一目戢 一 _ 、 、 篓罴灞麓 氍。 _ 黟攀 舻 蕊 鲈妒 j 零网夥” t , 凹1 - l 微波管模拟器套件( m t s s ) 集成界面 12 电子光学系统c a d 技术的发展趋势 电子光学是研究带电粒子在电场和磁场中的运动规律的学科,也称为带电粒 子物理学。同时还要研究,如何利用电子运动规律控制带电粒子在电场和磁场中 运动。电子在电磁场中的运动规律与光的传播规律相似的的理论是电子光学的理 论基础。 电子光学的发展历史虽然很短,但是在经历了八十多年的发展与进步,特别 是经过上世纪六、七十年代的迅速发展,已经逐步地完善了相应的理论体系。采 用计算机数值计算方法和c a d 技术进行行波管电子光学系统的设计,也极大地促 进了电子光学理论的发展和完善【5 7 l 。醢着计算机的不断发展,计算速度和内存容 量都在迅速提高,足以用来直接求解电子光学问题的基本方程组,在数学分析过 第一章引言 程中减少了近似和假设,因此大大提高了工程设计的精度和速度。精度的提高使 得设计人员对得到的结果更加有信心,对结果的分析更加准确;速度的提高使得 设计人员可以迅速的仿真自己的设计,得到结果,并快速的进行修改调整仿真, 节约大量的时间和实验成本。 随着计算技术的发展、科学发展需要对仿真精度和速度的要求越来越高,电 子光学模拟软件在设计的过程中发挥的作用越来越大。电子光学模拟软件必然产 生了如下的发展趋势:精度不断提高;速度不断提高;2 维模型向全3 维模型发展, 特别是对于非轴对称系统的模拟如栅控电子枪、非轴对称的多级降压收集极等, 只有采用三维模拟才能精确模拟非轴对称性因素对系统的影响。 到目前为止,国外已有一些的二维、三维电子枪收集极软件面世,这些软件 包括e g u n 、d e m e o s 、t r a k 、u g u n 、a r g u s 、a v g u n 、s c a l a 、m i c h e l l e 、 c o c o 等等。e g u n 自1 9 6 0 年由斯坦福线性加速器中心( s l a c ) 开发成功以来, 广泛应用于美国微波管行业,成为了该类软件的典范;意大利c a t a n i a 大学在政府 的资助下开发了全三维的多级降压收集极软件c o c a ,并于2 0 0 7 年公布了三维栅 控电子枪模拟软件;美国国防部9 8 财政年度启动的m m a c e 项目中的子项目:电 子枪、收集极项目m i c h e l l e ,在2 0 0 2 年发布了三维版本;英国剑桥大学发布了 马可尼电子枪软件c a m e o ( c a m b r i d g ee l e c t r o no p t i c s ) ;同时各公司也在开发自 己的软件,如l i t t o ns y s t e m 公司的d e m e o s 、h u g h e se l e c t r o nd y n a m i c sd i v i s i o n 的t h e r m g u n ,c o m m u n i c a t i o n sa n dp o w e ri n d u s 砸e s 公司的h g u n 和t g u n 、 r a y t h e o n 公司的u g u n ,美国c a l a b a z a sc r e e kr e s e a r c h 公司的电子光学系统c a d 软件b o a ,英国v e c t o rf i e l d s 公司的o p e r a 等引。 我国微波管c a d 起步较晚,但目前已步入蓬勃发展的良性轨道。电子科技大 学从1 9 9 4 年开始从事该工作,开发出了二维和三维版本的电子光学系统c a d 软 件,并持续发展,在国内制管单位广泛使用,得到了一致好评。同时中电集团十 二所、中科院电子所、七七六厂、七七二厂等单位也开发了或正在开发电子枪收 集极软件。在此基础之上,开发了全三维有限元微波管电子光学系统软件e o s 【3 】, 主要模拟对象为微波管电子光学系统中常用器件,如轴对称电子枪、栅控电子枪、 多注电子枪、非轴对称多级降压收集极等。 1 3 高性能计算的发展 科学计算已经发展成为除了理论推导、科学实验之外的第三种科学研究的重 3 电子科技大学硕士学位论文 要手段,被公认为人类认识和改造世界的重要手段。因为随着科学技术的发展, 理论推导、真实实验已经不能完全满足科研的需求。尤其是计算密集的基因信息 学、密码学、航空航天、石油勘探和开发、药物设计、大范围气象预报、核爆炸 模拟、材料设计、汽车制造等领域,科学计算已经成为必备的研究手斟1 9 】。 相比于理论科学和实验科学,高性能计算有其特有的优越性。首先,有了高 性能计算,就可以不用进行代价昂贵的真实实验,并且不会像真实实验一样对环 境造成破坏,比如有了高性能计算就可以避免核试验对环境的严重污染。第二, 高性能计算可以节约成本,并且可以重复进行,可以获得各种情况下的全面数据。 第三,高性能计算可以对研究对象进行全过程全时空的研究,并获得其发展变化 的全方位信息【2 0 】。 1 3 1 高性能计算国际研究现状和发展趋势 1 3 1 1 高性能计算机发展历史 最初发明计算机时,就是为了科学计算。到了2 0 世纪6 0 年代,随着计算机、 集成技术等的发展成熟,计算机的应用范围越来越广,已经应用于人们工作、生 活的各种活动之中。为了区别普通计算机和专门应用于科学计算的计算机,逐渐 将后者称之为高性能计算机【2 1 1 。 第一代h p c 是出现在2 0 世纪7 0 年代的向量计算机,科学计算过程中有大量 的向量计算,在计算机中加入向量流水部件可以极大的提高向量计算的速度。8 0 年代初期,性能不再是评价h p c 的唯一指标,人们更看重性价比。9 0 年代初期, i - i p c 发展的主要方向是大规模并行处理( m p p ) 系统,多个处理器通过网络相连构成 了m p p 系统,处理器之间靠消息传递实现通信和同步。随着h p c 的迸一步发展, 机群系统( c l u s t e r ) 也迅速发展起来,机群系统是由多个节点通过高速网络连接而 成,节点一般是可以单独执行任务的普通计算机。相比于m p p ,机群系统具有更 高的性价比,机群系统的代表有i b m s p 2 ,联想深腾1 8 0 0 、6 8 0 0 、7 0 0 0 ,国内有曙光 3 0 0 0 、4 0 0 0 、5 0 0 0 等【2 2 1 。 1 3 1 2 高性能计算机研究现状与发展趋势 由美国田纳西大学、美国国家能源研究科学计算中一t 1 , f n e r s c ) 和德国曼海姆大 学主持的高性能计算t o p 5 0 0 排名可以全面反映全世界高性能计算机发展的趋势。 从最近的排名及其变化趋势我们可以看到当前高性能计算的一些发展态势。 4 第一章引言 n s i l l 怒= :叩“c 一- 。np r ,瓣“一t m * m m 一* 2 躐:罄,麓缓慧瓷, t g l n a n ,篓。黔一“n s 爨p 铲m n m nm 一 l - m ,w 1 m 黔黼誊量黔n mm ,一n 篙嚣拳“器帆晰7 2 1 撇州瞄冀蛐 ,瑟麟n 一” m 鬻器蛩k 镛藩糕簇魁纠“ 圈1 - 22 0 0 9 年下半年t o p 5 0 0 排行榜前十名 如图1 2 是2 0 0 9 年下半年t o p 5 0 0 最新排名前十强,在排行榜上,美国橡树 岭国家实验室( o a kr i d g en a t i o n a ll a b o r a t o r y ) 的c r a yx t 5 超级计算机“美洲 虎”( j a g u a r ) 高居榜首,运算速度为每秒1 7 5 9 千万亿次( p e t a f l o p ) 。而上届排名首位 的i b m “走鹃y r o a d r u n n c r ) 跌至第二,运算速度为每秒1 , 0 4 2 千万亿次。我国第一 台国产千万亿次( 峰值性能,p e t a f i o p s ) 超级计算机“天河一号”历史性地排到了第五 位,中国也是继美国之后世界上第二个能够研制千万亿次超级计算机的国家。如 图1 - 3 所示给出了中国超级计算机发展年谱口3 1 。 电子科技大学硕士学位论文 中国超级计算机发展年语 翌号面世时间每秒运算速度( 峰值) 银;可一i 1 9 8 3 年1 亿次 ,曙光一号1 9 9 2 年6 4 亿次 l 银;可一i i 1 9 9 4 :皇g 10 亿次 银;可一i i i 1 9 9 7 :年13 0 亿次 l : 申威一i 1 9 9 9 年3 8 4 0 亿次 r l 深腾1 8 0 02 0 0 2 年1 万亿次 r 。 l 曙光4 0 0 0 a2 0 0 4 年 11 万亿次 ;: 申威3 0 0 0 a 2 0 0 7 :事18 万亿次 深腾7 0 0 02 0 0 8 年1 0 6 5 7 5 亿次 曙光5 0 0 0 a 2 0 0 8 j 军:2 3 0 万亿次 l 天河一号 ; 2 0 0 9 :事1 2 0 6 万 亿次 1 3 2 并行处理 图1 3 中国超级计算机发展年谱 提高计算性能和效率一般有两种方法:一种是采用更高速的处理器,另一种 是采用并行处理技术。由于受到光速和物理尺寸极限的限制,如今半导体工艺已 几乎达到极限,已经很难按照摩尔定律继续提高处理器的频率了。在提高处理器 频率受到限制的情况下,只能通过研究发展并行计算技术来满足科技发展对计算 机性能需求。并行计算已经成为高性能计算领域的核心课题【2 4 】。 并行处理是提高计算机系统性能的一种有效手段,它的基本思想是分而治之, 即将一个大的复杂的,需要较长处理时间的任务分解成多个任务,交给多个处理 共同完成,多个处理器协同工作,并将处理结果汇总,最终完成任务【2 5 1 。 1 3 2 1 并行算法研究的发展 算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,那 么并行算法就是指在多个处理器机上解决问题的算法。并行算法的研究和设计, 6 第一章引言 以及实现并行编程的工具,都是随着并行计算机的发展而共同发展。 目前,并行算法的设计要求具有可扩展性和可移植性,现在的研究以m i m d 类为主流。9 0 年代中期后,并行算法的研究范围逐渐拓宽,在研究并行算法的设 计与分析的同时,也要研究并行程序和并行计算机体系结构的设计。 近几年来,随着半导体器件工艺水平的提高以及计算技术和通信网络的迅速 发展,双c p u 或4 c p u 的p c 机已经在生活中逐渐普及。多核p c 机和h p c 的发 展,都给并行算法的研究带来新的挑战和机遇。现在的h p c 同时拥有成千上万个 c p u ,怎样高效的分配利用海量的处理器资源,成为并行算法研究领域面对的一 个极富挑战性的问题【2 6 1 。 1 4 论文立题背景及主要工作 高性能计算的研究和高性能计算机的研究是相互促进,互为基石的,高性能 计算要在现有高性能计算机的环境下进行,同时高性能计算的应用也推动着高性 能计算机的发展。 我们已经讨论了微波管c a d 软件、电子光学系统软件的发展趋势。从这些发 展的趋势我们总结出电磁模拟对精度和速度的需求与日俱增,但是精度和速度的 需求又是矛盾的,因为对精度的要求就意味着计算的数据量的增长,计算规模的 增长将导致计算时间的增长,然而在实际的科研和生产中还要降低时间成本。要 解决这个矛盾,就要设计高效的算法,有效利用高性能计算机的潜力,在保证精 度需求的同时充分降低时间成本。 微波管三维电子光学系统c a d 软件“电子光学模拟器”( e l e c t r o no p t i c s s i m u l a t o r ,简称e o s 3 】) 是采用c + + 在w i n d o w sx p 平台下,基于面向对象技术 和科学可视化计算技术进行开发的。它是“微波管模拟器套件 ( m i c r o w a v e t u b es i m u l a t o rs u i t e ,简称m t s s ) 的主要组成部分。电子光学模拟器( e o s ) 是一个全三维的有限元电子光学设计软件。e o s 基于有限元网格,采用稳态轨迹 算法,可以用来模拟设计轴对称电子枪、栅控电子枪、多注电子枪、多极降压收 集极等。e o s 采用稳态轨迹算法,首先由拉普拉斯方程求解静电场;然后注入电 子并计算其轨迹,同时记录电子产生的空间电荷分布;最后求解泊松方程更新电 场。重复以上求解过程,直到两次迭代误差满足收敛条件。 本文主要通过两个方面的工作来提高e o s 程序的效率。 第一部分的工作是直接优化串行e o s 程序,得到高效的串行软件。在学习了 7 电子科技大学硕士学位论文 基本的程序优化技术及方法之后,主要做的工作包括查找e o s 程序性能热点,找 到程序的性能瓶颈,有针对性地对算法进行优化。 首先剖析了e o s 源代码,分析并检测得到了程序的热点为在有限元网格中定 位电子的算法。分析发现这个算法被频繁调用,并且总的调用时间占程序总只执 行时间比例很高,成了影响程序性能的关键。如果能提高这个函数的效率,将极 大的提高e o s 的性能。本文按照几种策略,分别设计实现了在二维和三维有限元 网格中定位电子的两种算法,主要介绍了其中的“扫描法”和“追踪法”,同时给出了 其中用到的辅助算法。通过在e o s 中应用并测试这几种算法,总结几种算法在内 存使用及总执行时间方面的效率,选择了速度最快、需要内存较少的追踪法应用 于e o s 之中。对这个热点函数的优化极大地提高了e o s 程序的执行效率。 在算法优化的同时,在e o s 程序中应用了内存及高速缓存优化的一些方法, 同时进行了代码级的优化。最后对比分析了优化前后e o s 的计算效率,给出了针 对同一模型进行仿真时系统的总体执行时间,计算轨迹模块的执行时间,以及定 位电子函数总执行时间等相关数据。对比优化前后的这些执行时间发现热点算法 的优化显著提高了e o s 程序的效率,其他代码级优化对程序效率提高也有一定贡 献。 第二部分工作是在e o s 中尝试并行编程,利用多核并行计算提高程序效率。 首先分析了e o s 程序的模块结构,找到有必要并且能够并行的模块部分,利用 o p e n _ m p 进行了多核并行编程。并测试了并行编程的并行加速比及加速效率等。 通过分析研究我们发现,在e o s 中计算电子轨迹时次同时计算多条轨迹, 并且每条轨迹的计算互不相关,如果让多个线程同时计算多条轨迹,那么应该可 以得到好的并行效果。 首先利用o p e n m p 进行了多核并行编程的试验,通过一些在循环当中利用 o p e n m p 实现并行,基本掌握了用o p e n m p 进行多核并行编程的技巧、方法,同 时测试得到用o p e n m p 对简单的大规模循环进行并行化可以得到理想的加速比。 在掌握了o p 酬v i p 编程技术以后,在e o s 中利用o p e n m p 进行了多核并行编程。 在实现并行的过程中遇到一些问题并逐一解决,介绍了解决的方法。包括商业函 数禁止并行、网格信息的预先存储问题、函数替换遇到的问题等。最终将计算电 子轨迹模块直接实现了并行化。对并行编程的效果进行了评测分析,对不同情况 下的加速比、加速效率进行了对比,总结了多核并行编程的经验。 8 第二章程序优化技术 2 1 程序优化基础知识 2 1 1 为什么优化 第二章程序优化技术 现代计算机性能越来越高,速度越来越快,主要表现在计算机的主频越来越 高。但是计算机在不断发展进步的同时,科学研究及日常生产生活应用过程中产 生及需要处理的数据量越来越庞大,人们对计算机的要求与期望越来越高。像微 波管c a d 软件的应用中,模型越来越复杂,精度要求越来越高,计算规模不断增 长,虽然计算机在发展,但是模拟的时间却越来越长,仿真人员迫切需要减少仿 真时间,降低时间成本。因此在设计电子光学系统模拟软件的过程中,要使程序 足够高效,不仅要应用更高效的算法,还要进行必要的优化。 2 1 2 程序优化注意事项 在优化的过程中应注意以下几点:1 应该进行可移植的优化。不能针对某种 体系结构进行优化,优化后的程序应该保证在不同的硬件结构上及操作系统都能 正常运行,并得到效率的提升。2 优化用时不应过长,程序开发的时间决定了开 发成本,优化也是需要花费大量的时间和精力的,优化需要细致耐心的测试,因 此需要计划控制优化用时。3 所做的优化应该能明显提升程序的效率,否则得不 到应有的效率补偿。4 优化不应该损失程序的可维护性,有些很微妙优化技巧, 任何代码的细微的改变都有可能使优化失效,甚至使程序不能正常运行,致使程 序不可维护是不可取的。 2 1 3 优化的基本规则 在进行优化之前,首先要了解使用的编译器能够进行哪些优化,优化的程度 如何。在通常情况下,编译器能够优化时,手工优化不一定能到达编译器优化的 水平。除了注意上面介绍的注意事项之外还应当遵守一些基本的规则。 第一:先实现正确的代码,再优化。在保证用高级语言实现的代码能够正确 运行,并且不再修改之前,不要进行代码的优化。这样在程序优化和使用经过优 9 电子科技大学硕士学位论文 化的软件过程中出现错误,就可以首先将错误定位在经过优化的部分。如果用未 经优化的代码取代嫌疑错误的优化代码,软件的错误消失,那就说明错误的确在 优化过的代码之中;假如替代之后错误依然存在,那么说明优化的代码没有问题。 第二:设计高效的算法,再优化。如果你希望自己的程序性能有大幅度的提 升,那么首先应该做的是算法优化。例如,把一个d ( n 2 ) 的算法替换为一个0 i ( n ) 的算法,则程序的性能提升将远远超过对于个别语句的修改。要保证算法的高效, 冒泡排序和线性搜索算法的效率再怎么优化仍然很低,实现一个快速排序算法和 二分查找将使速度提高数十倍。 第三:先在高级语言范围内优化。不要将代码优化与汇编语言实现混为一谈。 如果在剖分阶段检测到了程序中的热点( h o t s p o t ) ,请不要急于将它们用汇编语言 进行重写,因为汇编语言实现的代码几乎是不可维护的。 2 2 程序剖析 2 2 1 程序剖析基础 通过上面的内容我们知道程序优化应该具有针对性。在明确了上面的一系列 基本规则之后,程序剖析就是研究如何做到有针对性的进行优化,就是帮助我们 确定程序热点,明确优化目标的。 程序剖析就是对整个程序的性能进行测试分析,以检测出程序的热点。如果 测试并记录程序中每个函数的总执行时间,并将这些记录用条形图表现出来,将 会发现有几个函数的条形图特别突出,这几个函数就是程序的热点,因为它们将 占据最多的程序执行时间。这里热点就是指在程序中函数的总执行时间占程序总 执行时间比例最高的函数,而不是指代码量的大小。有些函数虽然代码量大、执 行一次时间较长,但是却很少调用,这样的函数占程序执行时间比重一般不大, 因此并不是热点。 2 2 2 程序剖析工具 如果程序代码量不大,那么程序员只需通过对代码进行简单的分析,就能找 到程序的热点;或者如果是程序员独立完成的模块,对程序进行过大量的测试, 也可以对程序的热点十分熟悉,也容易定位热点;如果分析的是一个复杂的系统, 程序中函数的调用关系复杂,代码量非常大,这样的情况下,就不能单凭观察和 1 0 第二章程序优化拄术 经验来检测热点了,这时专业的剖析软件就可以帮助我们检测热点。 目前程序剖析软件并不多,其中i n t a lv t u n e 和a m dc o d ea n s l y s t 分别都只 能支持i n t e l 和a m d 的平台下的分析。还有一个是m i c r o s o f t 的性能分析工具,这 个软件并没有一个产品名字,而是集成在v i s u a ls t u d i o2 0 0 5 里的一个工具。下图 是v s 2 0 0 5 的性能分析工具给出的性能报告摘要标签栏,除此之外它还提供函数分 析、函数调用关系树、内存分配分析、对象生存周期分析等数据。虽然相比另两 种软件它只能提供最小限度的功能,但是这个软件被集成在m i c r o s o f tv i s u a lc 十+ 和v s 2 0 0 5 编译器之中,使用也十分方便,而另外两个则需要通过另外购买得到。 图2 - 1m i c r o m t t v m m ls t u d i 0 2 0 0 5 性能分析工具 下面简要介绍一下m i c r o s o f t 提供的性能分析工具的使用。在m i c r o s o f t v s 2 0 0 5 的菜单栏选择工具菜单接着单击性能工具,此时出现性能向导和新建性能会话, 选择性能向导,此时出现性能向导对话框。在性能向导对话框中选择要检测的程 序。设置完成后,在性能资源管理器中点击启动,以启动测试,钡5 试完成后,将 得到性能分析结果。首先看到的是如图2 1 所示的性能分析摘要,这个摘要将分别 示出耗时最长的函数的耗时及百分比、最频繁使用的函数的调用次数及百分比等。 钮稠方,键黼方。潮美景树。栅g 对妻生翮 甾2 - 2 性能分析结果选项g - 电子科技大学硕士学位论文 自端 图2 - 3 函数标签所示内容 潮l 踊x 6 嗣朋辫粘时阆己甩e 蝴 鲷断髓柏 圉“调用关系树标签所示内容 调用- 皿a i n 的函数 目鼓g讽月ab 用# 自时橱用职 明e 甜l 号明辨 当前函数: 由m a i n 调用的函数 圈2 - 5 调用方,被调用方标签所示内容 还可以按图2 - 2 所示的按钮选择其他形式的结果。函数标签如图2 - 3 所示,将 按列表的形式给出每个模块中的所有函数的信息。如图2 _ 4 所示,调用关系树将按 调用层次给出全部函数的调用信息,包括调用次数、己用独占时间、应用程序独 占时间、已用包含时间、应用程序包含时间等信息我们可以通过这些信息找到 热点。还可以按如图2 - 5 所示,使用调用方被调用方标签单独检测某一个感兴趣 的函数的上述信息,这个卡片同时会给出调用该函数的函数信息,以及及被这个 函数调用的函数信息等。分配选项卡将给出内存分配的信息,不过m i c r o s o f t 提醒, 选择这个功能将增加分析的时间,并有可能降低其他分析的精确度。同样,对象 生存期选项也是针对内存分配的分析,这个选项可以给出对象的生存期,可以帮 助合理分配并及时回收内存,进行内存优化,降低内存使用峰值。 223 剖析的对象 程序热点可能是个函数、一个循环、甚至是一条语句。那么到底要统计哪 些数掘来检测热点呢? 这就是程序剖析要研究的内容,统计的数据就是程序剖析 要研究的对象。从上面介绍的剖析软件提供的分析结果,我们大致可以看出需要 第二章程序优化技术 统计哪些数据。 2 2 3 1 总执行时间 程序中每个函数的总执行时间是个很直观的数据,占程序时间比例最高的函 数就应该是程序的热点,但常常因为函数复杂的调用关系,使得这个数据变得不 那么直观,还是需要经过进一步的分析。比如,一般的程序绝大多数的时间都在 执行m a i n 函数,然而m a i n 函数并不是真正的热点,热点应该在m a i n 调用的那些 函数中。但是像m i c r o s o f t 的性能分析工具一样,从函数列表看,并没有排除m a i n , 列表显示m a i n 就是程序的热点,因此总执行时间只是一个参考,不足以确定热点。 应该滤清调用关系,从总执行时间中去掉被调用函数的执行时间,这才是这个函 数自定义的代码的执行时间。 2 2 3 2 函数单次执行时间 函数单次执行时间和总体执行时间一样不能说明实际问题,但是也可以有所 反映,也是综合确定热点的一个重要因素。 2 2 3 3 调用次数 函数在程序中的调用次数是个很有说服力的数据,如果一个函数在程序中调 用了1 0 0 0 0 0 0 次,可以想象它对程序效率的影响有多大。而如果一个函数虽然执 行的很慢,但是只调用了一次,当执行时间占总时间比例不大时,这个函数并不 能成为热点。 2 2 3 4 分支覆盖 覆盖是指剖析测试期间执行程序代码的百分比。因为在测试过程中,要保证 所有分支都被执行,才能准确测得函数在各种条件下的执行时间,否则有可能出 现由于函数某个大的分支没有获得执行而漏掉程序热点的情况。因此在测试时应 当充分考虑各种可能性,做到不遗漏热点。 2 2 4 剖析中存在的问题 2 2 4 1 时间测试结果不一致 在测试程序的运行时间时,经常会出现执行同样的操作,但是测试的时间有 很大的出入,影响测试结果的准确性的情况。这主要是由两方面原因引起的。 第一个原因是软件系统引起的不一致性。在多任务操作系统的环境下,比如 1 3 电子科技大学硕士学位论文 w i n d o w s 操作系统,进程不是独占系统资源,而是与系统中的其他进程并发运行, 按照操作系统的资源分配策略共享资源。因此程序的执行过程是受软件系统环境 影响的。在这样的情况下,要多次进行测量,并选择测量时间最短的数据,因为 这个数据是受环境影响最小的。 第二个原因就是硬件系统引起的不一致性。在硬件层次,同样一种操作指令 的运行时间容易受到各种不定因素的影响,是不稳定的,有时这种影响还很大, 甚至超过软件不一致性,而且这种不一致性往往是不可以消除的。 针对时间不一致性对程序剖析造成的影响,我们要对时间测试结果进行处理, 尽量在测量结果中得到准确的程序执行时间。首先应该在多次测量结果中进行选 择,开始我们说要尽量减少软件系统的影响,也就是要选择时间最短的测量结果, 也有人要选择正常系统环境下的结果,因为这更接近实际的工作环境。为了能够 适应所有情况,最好做个适中的选择,就是去掉时间最长和三分之一次测量的结 果,以及时间最短的三分之一次测量的结果,并将剩余的三分之一次测量的结果 取平均值,这样得到的结果应该就是比较接近真实运行环境下得到的结果。 2 2 4 2 重复运行环境维护 在针对时间不一致性给出的解决方案中,我们提出多次测量运行时间的办法, 那么在多次测量时,应当尽量保持环境一致,但是这是很难做到的。因为当连续 重复执行同一个程序时,c p u 的高速缓存、磁盘的高速缓存、分支预测等等软硬 件环境都将因为重复运行而有所记忆,因此将大大降低运行时间。尤其当在测试 某个函数的运行时间时,重复运行这一函数的时间将有很大的不同。特别是第一 次运行的时间会比后面重复运行长很多,因为第一次运行这个函数时,要进行内 存的映射分配,高速缓存的加载等,将耗费大量的时间。因此如果所测的函数实 际在程序中只运行一次,那么用第一次测量的结果比较准确,除此之外,都不要 选择前两次运行的测量结果。 为了要解决这个问题,就要清除系统对于上述信息

温馨提示

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

评论

0/150

提交评论