(计算机应用技术专业论文)分布串并行领域构件集成平台.pdf_第1页
(计算机应用技术专业论文)分布串并行领域构件集成平台.pdf_第2页
(计算机应用技术专业论文)分布串并行领域构件集成平台.pdf_第3页
(计算机应用技术专业论文)分布串并行领域构件集成平台.pdf_第4页
(计算机应用技术专业论文)分布串并行领域构件集成平台.pdf_第5页
已阅读5页,还剩117页未读 继续免费阅读

(计算机应用技术专业论文)分布串并行领域构件集成平台.pdf.pdf 免费下载

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

文档简介

摘要 提出了并行构件这个新概念,并对之进行了创造性的研究, 以适应并行计算和构件技术的发展过程中所面临的大规模科学计算 的更高的需求;给出了并行构件之间以及并行构件与串行构件之间 进行互操作的形式与方法;然后研究分布串、并行构件如何在某领 域专用的体系结构下的平台中实现集成;并在此基础上构建出集成 平台的即插即用中心和互连互通中心。在该平台上能进行分布串并 行领域构件和应用的集成从而实现虚拟应用。该平台能够用于网络 上的各种构件的集成,是一种高度开放、兼容、高效的平台。 关键词: 集成平台,虚拟应用,互操作,即插即用,互连互通,并行构 件,领域构件 in t e g r a t e dp ia t f o r mo fd is t rib u t e ds e ria ia n d p a r a ii e i d o m a i nc o m p o n e n t s a b s t r a c t an e wc o n c e p th a sb e e nb r o u g h tf o r w a r da sp a r a l l e lc o m p o n e n t ,a n di t h a sb e e nr e s e a r c h e di nac r e a t i v ew a y ,w h i c hc a na d a p tt h e h i g h e rr e q u i r e m e n t o fc o s m i c a ls c i e n t i f i cc o m p u t i n g d u r i n gt h ec o u r s eo f t h ed e v e l o p m e n to f p a r a l l e lc o m p u t i n ga n dc o m p o n e n tt e c h n o l o g y ;t h ef o r ma n dt h em e t h o do f m u t u a lo p e r a t i o nb e t w e e ns e r i a lc o m p o n e n t sa n d p a r a l l e lc o m p o n e n t s a r e p r o v i d e d ;t h e nh o w c a ns e r i a lc o m p o n e n t sa n d p a r a l l e lc o m p o n e n t s b ei n t e g r a t e di nas p e c i a ld o m a n i a ls y s t e m i cf r a m e ;t h ec e n t e rw h i c h y o uc a nu s et op l u ga n dp l a y 、l i n ka n dm i xc o m p o n e n t si s c o n s t r u c t e d t h ep l a t f o r mc a nb eu s e dt oi n t e g r a t ea l lk i n d so f c o m p o n e n t s i no r d e rt oc a r r yo u tv i r t u a la p p l i c a t i o n si no r d e rt or e a c h h i g ho p e n i n ga n dh i g hp e r f o r m a n c e k e y w o r d s : i n t e g r a t e dp l a t f o r m ,v i r t u a la p p l i c a t i o n ,m u t u a lo p e r a t i o n ,p l u ga n d p l a y ,l i n ka n dm i x ,p a r a l l e lc o m p o n e n t ,d o m a i nc o m p o n e n t 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得石油大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 签名 地 2 挑强6 玛2 甚 关于论文使用授权的说明 本人完全了解石油大学有关保留、使用学位论文的规定, 即:学校有权保留送交论文的复印件及电子版。允许论文被查阅和 借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印 或其他复制手段保存论文。 ( 保密论文在解密后应遵守此规定) 学生签名: 导师签名: 。一哆年 6 - 月2 - 日 幻刃年 二 月五同 石油大学( 华东) 硕士论文 日u 鬲 1 1 问题的提出 第1 章前言 本文所研究的内容是为国家自然基金以及八六三基金所资助的 课题“石油地震并行处理的p o s c 平台”的需求而确定的,它反映 了软件开发技术发展的必然规律“软件生产方式越来越工程化”和 软件工程的必然特点“用户需求是软件发展的必然动力”。因为基 于构件的软件开发c b d ( c o m p o n e n tb a s e ds o f t w a r ed e v e l o p m e n t ) 以可复用软件构件为组装预制块,通过构件修改软件,用框架把握 软件结构,用总线连接事物,从而发展基于软件体系结构的开发模 式,采用软件生产线式生产软件产品族,可以来实现软件生产的高 度工程化“部件装配式生产”。而这种开发方式为软件生产提供了 途径,满足了领域中的科学计算如“勘探开发”向着多学科综合集 成方向发展的需要,实现从本公司专用软件( i n h o u s e s o f t w a r e ) 到使用成品构件( o f f t h e s h e l fc o m p o n e n t ) 的转 变。特别是网络时代的到来,促进了各个科学领域对集成化软件产 品的需求,以解决非集成化软件产品“价格高”、“质量低”、 “修改维护困难”等软件危机现象。然而要实现真正意义上的集成 就必须实现构件的互操作,并能共享数据,所以必须为构件制定一 个规范,因为如果大部分的程序的构件都是由不同程序员定制的, 且根本不存在标准,则谈不上互操作与共享数据。如果这个构件针 对所有领域,则这个规范必须抽取所有领域中构件的共同点,如 c o r b a 、d c o m 、j a v a b e a n 中的部件规范,此时集成的范围广,但强 度不大;如果这个规范针对某一个领域,则由于同一个领域中构件 的共同点多,比如专门针对油气勘探开发计算领域的p o s c ( 石油技 石油大学( 华东) 硕士论文 术开放软件协会) 规范,此时集成范围虽然只局限于一个领域,但 它集成强度大,也就是说构件之间能进行更密切的互操作,数据共 享程度更大。然后就可能根据规范来构筑领域构件库了,并通过某 领域专用的可复用的设计模式,与集成平台结合而产生符合实际需 求的应用软件系统,并使之能在集成平台上运行。同时随着并行计 算和集成技术的发展,领域中的大型计算机应用,如地震资料处 理,逐渐用并行计算取代串行计算,但以前的并行软件大部分使用 结构化的并行语言开发的,很难集成,原因是没有将并行计算与构 件技术很好的结合起来。现在有一些面向对象的并行语言如 h p c + + ,但为什么更多的人使用h p f 或h p c ? 是因为开发对象内以及 对象间的并行性比开发结构程序的语句间的并行性要复杂、要难。 而构件是种软件对象模块,它为并行计算与对象技术的结合提供 了一种新的途径。本论文将通过对并行构件的提出与研究来提高并 行软件的重用性与集成性,并不影响甚至优化其并行性。同时因为 领域中有一些应用的内部没有足够的并行性,所以串行构件仍然会 存在,所以必须实现串并行构件的一体化,再次,好多海量计算要 分布到多个计算机节点上同时运行,即基于集群或网络的并行计 算,所以还要使分布于不同计算机上的构件能够互操作,才能实现 分布串并行领域构件集成平台。最后,我认为用户至上,所以该平 台力求具备一定的智能来理解、解放用户。 1 2 论文的内容和组织 本文主要阐述了并行构件的定义及各种构件之间的互操作技 术,进而在此基础上研究了虚拟应用技术,构筑了石油地震并行处 理系统的p o s c 平台。组织结构如下: 第2 章对并行构件进行了研究。主要包括其定义、分类、设计 模式、开发原则。因为并行构件是一个新事物,所以对并行构件的 开发与研究是本论文开展的第一步;同时因为本论文研究的是分布 串并行构件集成平台,所以并行构件是这个平台上构建应用软件时 2 石油大学( 华东) 硕士论文日舌 所必需的砖瓦,因此并行构件的质量与性能将直接影响到这个平台 的集成度与性能。 第3 章研究了串并行领域构件库,主要包括分布串并行领域构 件接口规范、分布串并行领域构件库的组织。上一章提出并研究了 并行构件。但如果把并行构件设计、开发出来后就随便一放,则容 易被丢失或遗忘,导致重复开发;而且那样会使构建起来的集成平 台成了一个空架子,临时搜集合适的构件不但耗时,也会因为人的 不确定因素而产生很大的风险,会导致基于集成平台所开发的应用 系统质量难以保证、正确性难以评估。所以将并行构件组织入库很 有必要,这样在使用集成平台进行面向构件的软件开发时就可以有 的放矢、信手拈来了。 第4 章研究了分布串并行领域构件互操作,主要包括互操作规 范、互操作方法。上一章所研究的构件库将为下一章所研究的构件 集成平台提供集成的材料,而本章则为下章构件集成平台提供集 成的机制,因为只有构件之间能进行互操作,将这些构件集成到平 台上才有可能和意义。能够进行互操作的构件才能够构筑出虚拟应 用。 第5 章研究了分布串并行领域构件集成,主要包括分布串并行 领域构件集成方法、分布串并行领域构件集成的模式。构造集成平 台的目的是避免同一性质的不同部门的同类软件的重复开发,要求 软件具有互操作性。而本论文中所研究的对象是构件,同理构造分 布串并行领域构件集成平台的目的是避免同类构件的重复开发,为 使目前可获得的构件通过互操作构造出可以运行的应用程序或者更 大的构件。构件组装过程是利用现有的构件加入到一个框架中,然 后将所有加入的构件利用连接器进行连接的过程,连接器可以是消 息、事件等。 第6 章研究了分布串并行领域构件集成平台,主要包括其体系 结构、总体设计、物理结构与计算模型、并行虚拟机技术( 虚拟应 用技术的基础) 、对平台传输模式的研究、即插即用技术( 集成平台 的关键) 、互连互通技术( 集成平台的核心) 、数据管理技术、石油 石油大学( 华东) 硕士论文 削磊 地震并行处理系统的p o s c 平台。前四章已经研究过了分布串并行 领域构件、其库存、其互操作及其集成,为本章研究的开展打下了 基础。但要想将前几章的研究成果综合并应用到该平台中,必须为 该平台设计一个合理的体系结构;为了使平台有用、实用、好用, 还必须为平台进行完整的总体设计:然后本章开始着手研究集成的 三部曲“互连互通、即插即用、虚拟应用”。当然对平台的物理映 射、数据管理、编译技术的研究也是不可少的 第7 章对研究过程与成果进行了总结。 设计与开发一个软件系统,如平台,在软件工程中有两种方 式,一种是从整体到局部的框架式开发,一种是从局部到整体的构 造式开发。而本文的组织是两者相结合的方式,首先在前言中给出 了设计与开发这样一个平台的框架,然后在以后的章节中从下至上 循序渐进,大家可以看到每前一个章节往往是后一章节的基础与铺 垫,形成了金字塔式的结构。 石油大学( 华东) 硕士论文 并行构件 2 1 概述 第2 章并行构件 因为并行构件是一个新事物,所以对并行构件的开发与研究是 本论文开展的第一步;同时因为本论文研究的是分布串并行构件集 成平台,所以并行构件是这个平台上构建应用软件时所必需的砖 瓦,因此并行构件的质量与性能将直接影响到这个平台的集成度与 性能。 2 2 并行构件的定义 构件是软件的基本单元,而并行构件是构件的一种,所以并行 构件的定义首先必须满足构件的定义:首先,是可以复用的、自包 含的,独立于具体应用的软件对象模块:其次,构件只能通过其接 口来访问;再次,构件不直接与别的构件通信,而是通过对象总线 来操作。 在我给并行性下定义之前首先了解一下并行性,下面是几种常 见的并行性: 第一级:指令或语句间并行,属于细粒度并行; 第二级:非递归循环或开展开迭代并行,属于细粒度并行; 第三级:过程、子程序、任务或协同程序间并行,属于中粒 度并行: 第四级:子程序、作业步或程序的有关部分间并行,属于中 粒度并行; 第五级;作业或程序间并行,属于粗粒度并行; 石油大学( 华东) 硕士论文 并行构件 从第一级到第五级,并行性程度递减,通信要求与通信开销递 减。 由上可见并行性是指程序或程序的组成部分的同时执行调度, 从而我将构件的并行性解释为构件或构件的成分的同时执行的程 度。 并行计算是由很多小任务合作来求解一个大的计算问题的一种 方法。因此,并行构件就是能在多个c p u 上同时执行来完成统一任 务的构件;也可以说并行构件是用于并行计算的构件。世晃上多数 事物都具有并行性和对象性,所以并行构件的定义是有价值的。 2 3 并行构件的分类 根据并行构件的粒度来划分:一种是构件与构件之间的并行 性,且称之为“外并行构件”;一种是构件内部的并行性,与之对 应的是“内并行构件”。 如果构件a 是构件b 的外并行构件,则构件b 也是构件a 的外 并行构件。外并行构件的同类集合称之为构件群。所谓“同类”, 是指构件群的子集之间的关系满足外并行构件的定义。其中构件a 或构件b 可以是串行构件、内并行构件或构件群中的任意一种类 型。可见,外并行构件只有在构件群中才有意义。如果n 个构件之 间具备并行性,则称这n 个构件互为外并行构件。 内并行构件是指组成元素之间具备并行性的某一个构件。构件 的组成元素可以是对象,也可以是构件。如果内并行构件的组成元 素是构件,则该内并行构件是构件群。所以构件群是一种特殊的内 并行构件。 由上面的内并行构件和外并行构件的定义可以看出并行构件的 定义是嵌套的。突出反映了并行构件与串行构件之间的区别与联 系:“区别是串行构件之间及其内部只考虑对象性,不考虑并行 性;而并行构件两者都考虑;联系是串行构件在一定条件下可以组 成并行构件或者说作为另一个构件的外并行构件”,同时突出反映 6 石油大学( 华东) 硕士论文 并行构件 了并行构件的拆分与组装的灵活性。从而为串并行构件的一体化与 集成奠定了基础。 2 4 并行构件的设计模式 并行构件的设计模式可以分为流水线式、克隆式、任务并行 式、主从式、混合模式。主从式又可以进一步划分为简单并行、区 域分解并行和变换域并行。混合模式是指由几种模式有机结合组成 的复合型模式。下面为方便讨论将并行构件中具有并行性的成分称 之为并行元。 流水线是一种经常用到的设计模式,如下图所示,每个并行元 连续从左边的并行元接受输入数据流,经过处理后,产生新的数据 流,发送给它右边的并行元。 w 一一) p ( w ) = x 一一 q ( x ) = y 一一 一一 r ( s ) = t 并行元q 每次发出一个非阻塞的接收请求接受下一次的x 数据 流。同时发出一个非阻塞的发送请求发送自己上一次计算出来的数 据流y ,然后计算本次的数据流y 。这样能够使多个并行元并行处 理,并且能够重叠通信和计算。中间并行元的方法语句如下: w h i l e ( n o t d o n e ) m p i i r e c v ( n e x t x ,) : m p i i s e n d ( p e r v i o u s y ,) : c u r r e n t y = q ( c u r r e n t x ) : ) 具体的并行元如下: # i t i c l u d e # i t i c l u d e ”m d i h ” p u b l i cc l a s sq f # d e f jn en t j m1o 互鎏奎兰! 兰查! 堡主堡苎鳖匣竺! 生 p u b l i cv o i dm a in ( a r g c ,a r g v ) i n t a r g c : c h a r * a r g v : f i n tm y r i d : m p i r e q u e s t r e e e i v e ,s e n d : m p i s t a t u s s t a t u s : i n tn a m e l e n : c h a rp r o c e s s o r n a m e m p i m a x p r o c e s s o r n a m e : m p i i n it ( & a r g o ,& a r g v ) : m p i c o m m r a n k ( m p i c o m m w o r l d ,& m y i d ) : m p i g e t p r o c e s s o r n a m e ( p r o c e s s o r n a m e ,& n a m e l e n ) f p r i n t f ( s t d e r r ,”p r o c e s s d o n s n ”,m y i d ,p r o c e s s o r n a m e ) : f f l u s h ( s t d e r r ) : i n t x = m y i d : m p i is e n d ( x ,1 ,m p i i n t ,i ,8 8 8 ,m p i c o m m w o r l d ,& s e n d ) m p i i r e c v ( x ,i ,m p i i n t ,i ,8 8 8 ,m p i c o m m w o r l d ,女r e c e i v e ) m r l 一w a i l :( & s e n d ,& s t a t u s ) : m p i w a i t ( & r e c e i v e ,& s t a t u s ) : i n t x s n ; m p i i r e c v ( x i n ,1 ,m p i i n t ,x ,7 7 7 ,m p i c o m m w o r l d ,& r e c e i v e ) m p i w a i t ( & r e c e i v e ,& s t a t u s ) : i n t y o u t = x i n + 1 : m p i i r e c v ( x ,1 ,m p j i n t ,i ,8 8 8 ,m p i c o m m w o r l d ,& r e c e i v e ) m p iw a i t ( & r e e e i r e ,& s t a t u s ) : 8 石油大学( 华东) 硕士论文 并行构件 m p i i s e n d ( y o u t ,1 ,m p i i n t ,x ,7 7 7 ,m p i c o m m w o r l d ,& s e n d ) : m p i w a it ( & s e n d ,s t a t u s ) : m p i f i n a l i z e0 : ) 克隆式设计模式顾名思义就是将同一构件拷贝成多份,同时提 供某个服务,从而达到并行的目的。此时所有的拷贝构件群中的 每一个构件就是一个并行元。 下面通过解决个应用来解释这个模式。 要处理的数据存储在f l o a ta s i z e + 1 s iz e + 1 中; 处理要求:f o r ( n = o :n n :n + 十) : f o r ( i = l :i s i z e :i + + ) f o r ( j = 1 :j s i z e :j + + ) b i j = ( a i 1 j + a i 十1 j + a i j + 1 + a i j 一1 ) o 2 5 此时可以采用分丽治之的思想将二位数组分成均匀四块,并设 计出一个能通于其中任一块的并行元。 数组示意图如下: 为了更新的需要转化为 并行元如下: # i n c l u d e ”m p i h ” # i n c l u d e ”i o s t r e a m h ” p u b li c c l a s sc o p y f o u r i n t m a i n ( i r l t a r g c 。c h a r * a r g v ) 石油大学( 华东) 硕士论文并行构件 ln ts i z e ,n : jn tx 2 : m p i i n it ( & a r g c ,& a r g v ) : m p i r e q u e s tr e c e i v e ,s e n d m p i i r e c v ( x ,2 ,m p i i n t ,1 。8 8 8 ,m p i c o m m w o r l d ,& r e c e i v e ) m p i s t a t u ss t a t u s : i n t m y i d : m p i c o m m r a n k ( m p i c o m m w o r l d ,& m y i d ) : m p i is e n d ( & m y i d ,i ,m p i i n t ,i ,8 8 8 ,m p i c o m m w o r l d ,& s e n d ) : m p i w a i t ( & r e c e i v e ,s t a t u s ) : s i z e = x 1 ; n = x 2 : s i z e = s i z e 2 : i n tn ,n u m p r o e s ,i ,j ; f l o a ta s i z e + 1 s i z e + 1 ,b s i z e + 1 s i z e + 1 :* a 的 赋值省略$ f 1 0 a ts e n d b u r s i z e ir e c v b u f s i z e : i n t c o l t a g ,r o w t a g ,s e n d c o l , i n tc o l n e i g h h o s e n d c 0 1 = ( m y i d s e n d r o w = ( m y i d r e c v c o l = ( m y i d r e c v c 0 1 :( m y i d s e n d r o w ,r e c v c o l ,r e c v r o w r ,r o w n e i g h b o r : 1 ) ? 1 2 ) ? l 1 ) ? 0 2 ) ? o c o l n e i g h b o r = m y i d 1 r o w n e i g h b o r = m y i d 2 c o l t a g = 5 ;r o w t a g = 6 z e 一1 z e 一1 z e : s 1 z e 1 0 互鎏查堂! 竺查! 堡主笙茎三堕盟塑主_ f o r ( n = o :n n :n + + ) f o r ( i = 0 :i s i z e :i + + ) s e n d b u f i = a i s e n d c 0 1 : m p i s e n d ( s e n d b u f ,s i z e ,m p i f l o a t ,c o l n e i g h b o r ,c o l t a g ,m p i c o m m w o r l d ) : m p i r e c v ( r e c v b u f ,s i z e ,m p i f l o a t ,c o l n e i g h b o r ,c o l t a g ,m p i c o m m w o r l d ) : f o r ( i = 0 :i s i z e :i h ) a i r e c v c 0 1 = r e c v b u f i : f o r ( i = 0 :l s i z e :i + + ) s e n d h u f i = a s e n d r o w i ; m p i s e n d ( s e n d b u f ,s i z e ,m p i f l o a t ,r o w n e i g h b o 7 ,r o w t a g ,m p i c o m m w o r l d ) : m p ir e c v ( f e c vb u f ,s i z e ,f i p t f l o a t ,i o w n e i g h b o r ,r o w t a g ,m p i c o m m o r l d ) : f o r ( t = 0 :i s i z e :i + + ) a r e c v i o w i j = r e c v b u f i : f o r ( i = 0 :i s iz e :i + + ) f o r ( j = i :j s i z e :j + + ) b i j = ( a i + 1 j + a i 一 1 j + a i j + 1 + a i j 1 ) o 2 5 : f o r ( i = 1 :i s iz e :i + + ) f o r ( j = l :j s i z e :j + + ) a 1 1 j = b i j : 、 c o u t i :i i ) :i + + ) f o r ( j = m y i d 2 :j s i z e + m y i d 2 :j ”) d r i n t f ( “4 1 f ”,a i j ) : c o u t ”n ”: m p i f i h a l iz e 0 ; 从以上所示并行元的服务可以看出只要将其复制四份,然后在 m p i 环境下并行运行就可以解决前面的应用需求,甚至不必考虑其 石油大学( 华东) 硕士论文并行构件 物理环境,因为它们可以在单机上( 模拟多进程) 、s m p 上、s m p 机群上或普通机群上并行运行。 此时复制后的四个并行元就组成了一个数据并行式的并行构 件。上面分类中我之所以没有提到数据并行式,是因为我把它放在 主从式类中了。 可见数据并行就是将数据划分成多个部分由并行构件并行处 理:与数据并行相呼应的是任务并行,任务并行是指将任务分成多 个小任务由并行构件并行完成。 下面再列举一个主从式设计模式的例子,是因为该例子恰好是 任务并行式。但并不是所有的数据并行式或任务并行式都是克隆式 的或主从式的。 这里给出上面提到的任务并行构件的从并行元: u n i v e r s i c y h # i n c l u d e # i n c l u d e c o 1 s tc h a rn u l l = o : c 】a s sd a t ar e c p r i r a t e : c h a r 芈l a s t r l a m e ; c h a r * f j r s tn a m e : c h a r s t r e e ta d d r e s s c h a r c i t y : c h a r * p r o v i n e e : p u b l i c : d a t a r e c0 l a s t 1 a m e = n u l l : f i r s t n a m e = n u l l : s t r e e t a d d r e s s = n u l l : 石油大学( 华东) 硕士论文 c i t y = n u l l : p r o v i n c e = n u l l : d a t a r e c ( c h a r4 p1 ,c h a r * p 2 ,c h a r * p 3 ,c h a r * p 4 ,c h a r * p 5 ) s t r c p y ( 1 a s t n a m e ,p 1 ) ; s t r c p y ( f i r s t n a m e ,p 2 ) : s t r c p y ( s t r e e t a d d r e s s ,p 3 ) : s t r c p y ( c i t y ,p 4 ) : s t r c p y ( p r o v i n c e ,p 5 ) : v o i dp r i n t 0 c o u t ”n ”“l a s t n a m e ” f i r s t n a m e : c o u t ”n ” c i t y ” p r o v i n c e : ) : 曼! 垒璺兰墨主丛旦星翌主;卫堕b ! i 曼堕垒主垒! 旦曼 c h a r * m a j o r : i n tl e v e l : p u b l i c : s t u d e n t ( c h a r * i n ,c h a r * f n ,c h a r * s ,c h a r * c i ,c h a r * p r ,c h a r * m a ,i n t1 ) : ( i n ,f n ,s a ,c i ,p r ) s t r c p y ( m a j o r ,m a ) : l e v e l = 1 : v o i dp r i n t 0 1 3 石油大学( 华东) 硕士论文并行构件 t d a t ar e c :p r i n tlj : c o u t ”n ” m a j o r ”n ” 1 e v e l 曼! 垦耋量曼主垒! ! ;巳垡b ! i 曼盟垦主垦! 里曼 c h a r * d e p t ; f l o a ts a l a r y : p u b l i c : s t a f f ( c h a r * i n ,c h a r * f n ,c h a r * s a ,c h a r * c l ,c h a r * p r ,c h a r * d e ,f l o a tf ) :( i n ,f n ,s a ,c 1 ,p r ) s t r c p y ( d e p t ,d e ) : s a l a r y = f : ) v o id p r i n t 0 d a t a r e c :p r i n t0 : t o u t ”n ” d e p t ”n ” p r i n t0 : i f ( m y i d = = 1 ) a n 1 卜 p r i n t0 : i f ( m y i d = = 2 ) a m 2 卜 p r i n t ( ) : 1 , 这个例子中的主并行元比较特殊,因为它对各从并行元的管理 是通过方法调用来完成的,而不是通过消息传递来控制的,而并行 控制语句是一个判断语句包含在主并行元中,所以此时必须将主并 行元克隆成多份放到不同的节点上运行才会显示一个并行构件的本 色。因此,从全局来看该并行构件是克隆式的。这是混合模式并行 构件的特征,它使并行构件能有机地组合。 上面讨论的主从式并行是简单并行,其实主从式并行还包括另 两种设计模式,其中区域分解并行比较常见,以前面克隆设计模式 中所列举的应用为例: 要处理的数据存储在f l o a ta s i z e + 1 s iz e + 1 中; 1 6 至塑查兰! 兰查! 堡主堡苎一三里盟 处理要求:f o r ( n = o ;n n :n 十十) ; f o r ( i = l :i i 十b 变序变换:( i ,j ) 一 ( j ,i ) 删减变换:( ,i ) 一 ( i ) 复制变换:( i ) 一 ( i ,) 通过上述变换所形成的布局上数据的分布方式也有几种,因为 域变换是数据分布的准备工作,丽数据分布是并行计算的前提,所 以也必须来分析一下域变换后的数据分布方式: 块状分布:如r e a la ( 2 0 0 ) ! h p f $ p r o c e s s o r sp ( 4 ) ! h p f $ t e m p l a t et ( 2 0 0 ) ! h p f $ d i s t r i b u t e ( b l o c k ) o n t op :t ! h p f $ a l i g na ( i ) w i t ht ( i ) 循环分布:如r e a la ( 2 0 0 ) ! h p f $ p r o c e s s o r sp ( 4 ) ! h p f $ t e m p l a t et ( 2 0 0 ) ! h p f $ d i s t r i b u t e ( c y c l i c ) o n t op :t ! h p f $ a l i g na ( i ) w i t ht ( i ) 降维分布:如r e a la ( 2 0 0 ,2 0 0 ) ! h p f $ p r o c e s s o r sp ( 4 ) ! h p f $ t e m p l a t et ( 2 0 0 ,2 0 0 ) 石油大学( 华东) 硕士论文 并行构件 ! h p f $ d i s t r i b u t e ( b l o c k 。$ ) o n t op :t ! h p f $ a l i g na ( i ,i ) w i t ht ( i ,i ) 上面的5 种域变换方式可以和下面3 种分布方式进行组合,从 而形成丰富多彩的域变换并行构件模型。下面就是一个域变换并行 构件: p r o g r a md o m a i n t u r n r e a la ( 1 0 0 ) ,b ( 2 0 0 ) ! h p f $ p r o c e s s o r sp ( 4 ) ! h p f $ t e m p l a t et ( 1 0 1 ) ! h p f $ d i s t r i b u t e ( b l o c k ) o n t op :t ! h p f $ a l i g na ( i ) w i t ht ( i ) ! h p f $ a l i g nb ( i ) w i t ht ( 2 术i + 1 ) a = 1 b ( 1 :1 9 9 :2 ) = a ( 2 :l o o ) + b ( 1 :1 9 9 :2 ) e n d 以上对并行构件的所有设计模式都进行了研究,在应用这些设 计模式进行并行构件的设计时,应根据该并行构件的功能需求处理 的数据的分布特性来选择合适的设计模式,以使并行构件在性能和 功能上都能满足应用的需要。 2 5 并行构件的开发原则 严格性和形式化 并行构件比传统意义的普通构件不论是结构上还是接口上都更 为复杂,所以必须有严格的文档,以备“维护、测试、升级并行构 件”、“协同开发时交流”、“并行构件加入构件库时存档”、 “对构件库智能化的支持”的需要。文档中必须以形式化的方式描 述并行构件的功能、使用范围、使用条件、性能、接口、设计模 式、替代构件的条件范围、预期变动、其它说明。 分隔原则 石油大学( 华东) 硕士论文 并行构件 并行构件是构件的一种,它也力求功能单一、高内聚、松耦 合。所以对于复杂的并行问题的解决,不要试图用一个并行构件来 完成,而要将问题从不同方面单独考虑,分别设计出粒度合适的、 容易维护的、结构清晰的、接口明确的、独立性强的并行构件,再 将这些并行构件利用下一原则进行组装成大的并行构件,或者直接 在应用时组合使用。这样就解决了软件的复杂性,发挥了基于并行 构件的软件开发的优势。 模块原则 这里的模块化有两层意思:第一,将复杂系统分解成已有串并 行构件的组合,有助于分别理解系统,有助于系统修改,有助于串 并行构件的复用:第二,将串并行构件组装成新的并行构件,此时 并行构件内部模块化了,不但避免了重复开发,也使整个软件系统 的结构更加清晰。 抽象原则 并行构件的设计者必须做到让用户或客户构件无需关心其内部 实现。开发过程也必须从概念层到逻辑层再到物理层。抽象原则是 协同开发和构件集成的基础。 预期变动 并行构件开发者在开发的过程中,必须考虑到该并行构件随蓑 环境、应用的变动而要做出相应的变动,并为未来可能需要进行的 变动做好其接口上、结构上、文档上的准备,以使未来变动容易解 决。 通用复用原则 并行构件优于并行的一般程序之处在于复用,如果象设计一般 的并行应用程序那样把并行构件设计得针对性很强、直接面向具体 应用、接e :i 和结构复杂,那么并行构件就不具备通用性、难以维 护、升级和可读性差,从而失去了其初始目标。 增模式原则 上一个原则中提到并行构件不直接面向应用,但它也得实现一 个有意义的功能,否则集成就会失去意义。所以本文提出的领域并 石油大学( 华东) 硕士论文并行构件 行构件就是面对领域开发。而一个领域的需求有很多不定因素,特 别是因为开发者往往不是该领域的专家,所以并行构件开发前往往 无完整的需求定义。此时只有采用增模式开发才能避免由于需求工 程的失误所导致的大的风险。 石油大学( 华东) 硕士论文分布串并行领域构件库 3 1 概述 第3 章分布串并行领域构件库 上一章提出并研究了并行构件。但如果把并行构件设计、开发 出来后就随便一放,则容易被丢失或遗忘,导致重复开发;而且那 样会使构建起来的集成平台成了一个空架子,临时搜集合适的构件 不但耗时,也会因为人的不确定因素而产

温馨提示

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

评论

0/150

提交评论