(计算机软件与理论专业论文)基于netsolve平台的petsc研究及其应用.pdf_第1页
(计算机软件与理论专业论文)基于netsolve平台的petsc研究及其应用.pdf_第2页
(计算机软件与理论专业论文)基于netsolve平台的petsc研究及其应用.pdf_第3页
(计算机软件与理论专业论文)基于netsolve平台的petsc研究及其应用.pdf_第4页
(计算机软件与理论专业论文)基于netsolve平台的petsc研究及其应用.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机软件与理论专业论文)基于netsolve平台的petsc研究及其应用.pdf.pdf 免费下载

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

文档简介

上海大簿硕士学位论文 摘要 在计算机科学领域,存在两个永恒不交的定律:其一,在任一时候对计算资 源鳃震求总是远远越过可获零的计冀瓷源;蔟二,我织总是希望逶过最麓擎、最 方便的方法柬获得所需资源。正是基于这两点,越来越多的科学家关注“网格计 算”【 j 这一襁念。遵倍懿谎,丽穆计篓戆鼗终嚣懿就是可以把饪俺资源篱溪麓 接入网格中,获取资源也只需如同在电力网中一样插入插座就可以了 2 】。 本文首先系统的奔绍了网格诗冀和著行箨法;接着介绍了n e t s o l v e 这个网 格环境,包括其产生背景、系统结构基本框架及其应用;然后,本文介绍了数值 计算软件库的重要憾,及p e t s c 移植到n e t s o l v e 系统的方法及应用,在此过程 中揭示了原n e t s o l v e 系统中任务迁移的不足;最后在n e t s o l v e 系统中引入精戆 迁移框架,为了进步揭示此框架的实用性,做了疑体的性能分析。试验结果表 秘,麴入我透穆框絮,茌戆蠢疆太掇褰,盛麓莲墨燹广。特裂是在诗冀援摸达弱 一定程度的时候性能更高。 本文的主要贡献有以下圈点: t 1 ) 详细介绍了n e t s o l v e 系统及其结构,对这个网格计辩环境的关键技术进 行研究与扩展。 2 ) 将以m p i 橼准为遂馈基础的p e t s c 著行数值库移撼到n e t s o l v e 系统, 极大的扩展了n e t s o l v e 网格计算环境的应用范围。 3 ) 对n e t s o l v e 系统孛戆 壬务迂移送行了深入瓣磅究,并在n e t s o l v e 系统 中加入以g r a d s 为核心的自适应系统,论述了新的n e t s o l v e 迁移框架。 4 ) 提窝基于阕格计算环境静磷究方齑,未来工作匏重点。 关键词;n e t s o l v e ,p e t s e ,任务迁移,彝适痘系统,重调震,检测赢 上海大学硕士学位论文 a b s t r a c t t w os t a t e m e n t sh a v eb e e nc o n s i s t e n t l yt r u ei nt h er e a l mo f c o m p u t e rs c i e n c e :( 1 ) t h en e e df o rc o m p u t a t i o n a lp o w e ri sa l w a y sg r e a t e rt h a nw h a ti sa v a i l a b l ea ta n yg i v e n p o i n t a n d ( 2 ) t oa c c e s so u rr e s o u r c e s ,w ea l w a y sw a n tt h es i m p l e s t ,y e tm o s t c o m p l e t ea n de a s yt o u s ei n t e r f a c ep o s s i b l e w i t ht h e s ec o n d i t i o n si nm i n d , r e s e a r c h e r sh a v ed i r e c t e dc o n s i d e r a b l ea t t e n t i o ni nr e c e n ty e a r st ot h ea r e ao f ”g r i d c o m p u t i n g ”t h eu l t i m a t eg o a li st h ea b i l i t yt op l u ga n ya n da l lo fo u r r e s o u r c e si n t oa c o m p u t a t i o n a l 舒d ,a n a l o g o u s t ot h ee l e c t r i cp o w e rg r i d ,d r a w i n gf r o mt h e s e r e s o u r c e sm u c ha sw ep l u go u ra p p l i a n c e si n t oe l e c t r i cs o c k e t st o d a y f i r s t l y ,t h e d i s s e r t a t i o ni n t r o d u c e sg r i dc o m p u t i n ga n dp a r a l l e lc o m p u t i n g , s e c o n d l y ,w ei n t r o d u c en e t s o l v eg r i de n v i r o n m e n t ,i n c l u d i n g i t s b a c k g r o u n d , f u n d a m e n t a lf r a m e w o r ka n da p p l i c a t i o n s t h i r d l y ,w ei n t r o d u c et h ei m p o n a n c eo f p a r a l l e ln u m e r i c a ll i b r a r i e s ,a n dh o w t oi n t e g r a t ep a r a l l e ln u m 。e r i c a ll i b r a r yo fp e t s c i n t o n e t s o l v e l a s t l y w ei n t r o d u c en e wc o m p u t i n gm i g r a t i o nf r a m e w o r k f o r n e t s o t v e 。f o rd i s c l o s i n gi t sp r a c t i c a b i l i t y ,w ed og r e a tp e r f o r m a n c ea n a l y s e s t h em a i nc o n t r i b u t i o n so f t h et h e s i sa r c : 1 ) i n t r o d u c i n g t h en e t s o l v e s y s t e m ,i t sm e r i t s ,d r a w b a c k s a n ds o m e a p p l i c a t i o n s 2 、p r e s e n t i n gan o v e li m p r o v e dc o m p u t i n gm i g r a t i o nm e c h a n i s m :n e t s o l v e a g e n tm i g r a t o r 3 ) a p p l y i n gm p ia n dp e t s ct ot h en e t s o l v es y s t e mf o rp a r a l l e lp r o g r a m m i n g 4 ) i n d i c a t i n gs o m ed i r e c t i o n sf o rt h ef i l r t h e r r e s e a r c ho fg r i d c o m p u t i n g m i d d l e w a r e k 拶w o r d s :n e t s o l v e ,p e t s e ,c o m p u t i n g - m i g r a t i o n ,s e l f - a d a p t i v es y s t e m ,r e s e h e d u f i n g , c h e c k p o i n t 疆 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名:套超室 日 本论文使用授权说明 期卵毫 i 口 本人完全了解上海大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交 论文复印件,允许论文被蠢阅利借阅;学校可以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 途邋日期:如叮j ,7 p 上海大学硕士学位论文 第1 章绪论 在互联网广泛应用于电子商务并向前不断发展的今天,我们注意到在与高性 能计算有关的科学合作领域,正涌现出一个具有划时代的新生事物网格。网 格是通过局域网或广域网提供的一系列分布式计算资源,而对终端用户或应用来 讲,好像是一台大型虚拟计算机。而网格计算是伴随着网格这一概念的提出而迅 速发展起来的,它是分布式运算的一种方法,不仅包括位置,而且还涵盖组织、 硬件和软件,以提供无限的能力,使连接到网格的每个人都可以进行合作和访问 信息。 1 1 网格计算 最初,网格计算研究的目的是希望将超级计算机连接成为一个可远程控制的 元计算机系统【3 ;现在这一目标己深化为建立大规模计算和数据处理的通用基 础支撑结构,将网络上的各种高性能计算机、服务器、p c 、信息系统、海量数 据存储和处理系统、应用模拟系统、仪器设备和信息获取设备集成在一起,为各 种应用开发提供底层技术支撑,将i n t e r n e t 变为一个功能强大、无处不在的计算 设施。人们预言,网格计算技术和应用将成为i n t e r n e t 信息技术的下一个浪潮。 网格计算可从下面三个方面来理解: 1 ) 从概念上,网格计算的目标是资源共享和分布协同工作:网格的这种概 念可以清晰地指导行业和企业中各个部门的资源进行行业或企业整体 上的统一规划、部署、整合和共享,而不仅仅是行业或大企业中的各个 部t q 自己规划、占有和使用资源,这种思想的沟通和认同对行业和企业 是至关重要的,它的实施是一个根本性的系统决策,将提升或改变整个 行业或企业信息系统的规划部署、运行和管理机制。 2 ) 网格是一种技术,为了达到多种类型的分布资源共享和协作,网格计算 技术必须解决多个层次的资源共享和合作技术,制定网格的标准,将 i n t e m e t 从通讯和信息交互的平台提升到资源共享的平台。 3 ) 网格是基础设施,是通过各种网络综合计算机、数据、设备和服务等资 源的基础设施。随着网格技术逐步成熟,建立地理分布的遍布全国或世 界的大型资源节点,集成网络上的多个资源,联合向全社会按需提供全 方位的信息服务。这种设施的建立,将使用户如同今天我们按需使用电 力一样,无需在客户端配全套计算机系统和复杂软件,就可以简便地得 到网格提供的各种服务。 上海大学硕士学位论文 虽然网格技术还远未成熟,但网格计算的战略意义及其广阔应用前景,使其 成为当今众多研究人员和资金投入的研究热点,一些大型网格计算研究项目相继 启动。其中一些最著名的网格计算研究项目包括:美国能源部开发的a s c i 网格 已经投入生产性使用,其主要用途是核武器研究;国防部的全球信息网格( g i g ) 项目是最庞大的网格计划,用于美军新世纪作战支撑,预计2 0 2 0 年完成;欧洲 共同体的e u r o g r i d 和d a t a g r i d ,主要用于包括高能物理、生物计算、气候模拟 等多个领域的应用;2 0 0 1 年8 月,美n s f 宣布了一个重大科研项目,研制称 为“分布式万亿级设施”i s t r i b u t e d t e r a s c a l e f a c i l i t y ) 的网格系统,简称t e r a - g r i d , 它是世界上第一个从设计开始就面向网格的广域超级计算平台,也是第一个无处 不在的计算机基础设施;在我国,已经完成的网格研究项目主要有清华大学的先 进计算基础设施a c i ( a d v a n c e dc o m p u t a t i o n a li n f r a s t r u c t u r e ) 和以中科院计算为主 的国家高性能计算环境n h p c e ( n a t i o n a lh i g hp e r f o r m a n c ec o m p u t i n g e n v i r o n m e n t ) 。 目前,网格项目研究和实施都有一个明显的特点,即项目是直接面向应用。 很多大的i t 公司如i b m 、h p 、s u n 等公司都已经进入网格计算领域,加紧研究 相关的技术和产品。高性能计算机是网格计算环境结构的节点和重要组成部分。 网格计算技术是高性能计算技术的发展方向之一,它并不能替代高性能计算机系 统。因此,网格计算将会促进高性能计算机应用的发展,刺激市场对高性能计算 机和海量存储系统的需求。n e t s o l v e 4 网格计算环境正是在这样一个背景下,由 美国田纳西州大学计算机系和橡树岭国家实验室联合开发的。n e t s o v l e 系统的其 中一个重要部分就是在n e t s o l v e 服务器中加入已有的开源数值计算库,以方便 用户解决科学计算问题。而加入并行数值软件库显得尤为重要,众所周知,计算 机单机技术发展的有限性和科学工程计算需求的无限性之间的矛盾决定了计算 机发展必然走上多机并行的道路。 1 _ 2 并行计算简介 并行计算,就是在并行计算机或分布式计算机等高性能计算系统上所作的超 级计算,其物质基础是高性能并行计算机。任何高性能计算机和超级计算机总离 不开并行技术的使用,所以在很多情况他们是同义词。人类对计算机性能的要求 是无止境的,在诸如预测模型的构造和模拟、工程设计和自动化、能源勘探、医 学、军事以及基础理论研究等领域中都对计算提出了极高的具有挑战性的要求。 例如在数值气象预报时,要提高全球气象预报的准确性,据估计在经度、纬度和 大气层方向上至少要取2 0 0 x 1 0 0 x 2 0 = 4 0 万个点。目前中期天气预报有的模式需 要6 3 5 万个点,内存需要几十吉字节( 1 g b = 1 0 9 b ) ,总运算量达2 5 t ( t = 1 0 ”b ) , 上海大学硕士学位论文 并要求在不到2 小时内完成8 小时的天气预报。当计算能力不足时,只好降低结 果的分辨率,简化计算方案,从而影响了预报的准确度。又如,在进行油日;| 整体 “油藏模拟”时,假定一个油田有上万口井,每口井模拟时至少要取8 x 8 x 5 0 个点, 则总的变量个数可高达千万量级,使得现今的一般计算机难以实现。其他的应用 领域包括核武器数值模拟,航空航天高速飞行器的设计,原子物理过程微观世界 的模拟,材料科学中计算,环境资源以及生物计算等。这些重大的计算问题,涉 及到非规则的复杂结构、非均匀的复合材料、非线性的动力学系统以及奇性区域、 活动边界、带约束条件等各种复杂的数学物理问题。要对这些复杂的非线性数学 物理方程进行大规模和高精度的计算,在一般的计算机上用传统的计算方法往往 是无能为力的。 对高速并行计算的需求是广泛的,但归纳起来主要有三种类型的应用需求: 1 ) 计算密集( c o m p u t e i n t e n s i v e ) 型应用,如大型科学工程计算与数值模拟; 2 ) 数据密集( d a t a - i n t e n s i v e ) 型应用,如数字图书馆、数据仓库、数据开采 和计算可视化等; 3 ) 网络密集( n e t w o r k i n t e n s i v e ) 型应用,如协同工作、遥控和远程医疗诊断 等。 1 2 1 并行计算系统 并行计算就是以高性能计算机为平台的大规模计算【5 6 。研究和采用并行 计算的原因有: 1 ) 它可以加快速度,即在更短的时间内解决相同的问题或在相同的时间内 解决更多、更复杂的问题,特别是对一些新出现的巨大挑战问题,不使 用并行计算是无法解决的: 2 1 节省投入( 硬件资源和软件资源) ,并行计算可以以较低的投入完成串 行计算的任务; 3 ) 物理极限的约束,光速是不可逾越的速度极限,设备和材料也不可能做 的无限小,只有通过并行才能不断提高速度。 任何计算机均在数据上执行指令的运算。指令流通知计算机每步做什么运 算,并通过它影响数据流。根据指令流与数据流的不同,通常可将计算机系统分 为:单指令流单数据流( s i s d ) 、单指令流多数据流( s i m d ) 、多指令流单数据流 ( m i s d ) 希i 多指令流多数据流( m i m d ) 。直到目前,国内外还没有多指令流单数据 流方面的计算机产品。 并行计算机主要指两台或两台以上的处理机连接起来可以并行操作的机器, 亦可称之为并行多处理机。因此,按指令流和数据流的不同,并行即可分为s i m d 上海大学硕士学位论文 ( 各处理机同一日_ j 刻执行相同的命令,处理不同的数据) 和m m d ( 各处理机 执行不同的指令,且处理不同的数据) 。 s i m d 计算机多为专用,而多指令多数据流m i m d 计算机又可以分为5 种: 并行向量处理机p v p ( p a r a l l e lv e c t o rp r o c e s s o r ) 、对称多处理机s m p ( s y m m e t r i c m u l t i p r o c e s s o r ) 、大规模并行处理机m p p ( m a s s i v e l yp a r a l l e lp r o c e s s o r ) 、工作站机 群c o w ( c l u s t e ro f w o r k s t a t i o n ) 、分布共享存储d s m ( d i s t r i b u t e ds h a r e dm e m o r y ) 多处理桃。 一个物理问题并行求解的最终目的是将该问题映射到并行机上,忽略并行计 算机的非本质的细节特征,可以得到该并行机的并行计算模型。目i j 最重要的两 种并行编程模型是数据并行和消息传递。数据并行编程模型的编号级别比较高, 编程相对简单,但它仅适用于数据并行问题;消息传递编程模型的编程级别比较 低,但它有史广泛的应用范围。本文重点讲述的并行数值软件p e t s c ( p o r t a b l e , e x t e n s i b l et o o l k i tf o rs c i e n t i f i cc o m p u t a t i o n ) 【7 ,它的消息传递通信采用的m p i 标准就属于后者。 1 2 2 并行计算环境 操作系统( 如u n i x 、w i n d o w s 、a i x ) ,工具语言( 如c 、c + + 、f o r t r a n ) , 并行计算环境这= 三者是目前实现并行算法的常用软件环境。其中的并行计算环境 随着近年来分布式m p p 系统与工作站群集系统的蓬勃发展而得到了迅速发展, 相继出现了p v m 、m p i 、e x p r e s s 、l i n d a 、p a r m a c s 、n x 等基于消息传递的并 行计算环境,目前常用的是p v m 和m p i 。 并行程序是通过并行语言来表达的,并行语言的产生方式主要有三种: 1 ) 设计全新的并行语言; 2 1 扩展原来的串行语言的语法成分,使它支持并行特征; 3 1 不改变串行语言,仅为串行语言提供可调用的并行库。 仅仅提供并行库,是种对原来的串行程序设计改动最小的并行化方法。这 样,原来的串行编译器也能够使用,不需要任何修改,编程者只需要在原来的串 行程序中加入对并行库的调用,就町以实现并行程序的设计。 本论文中所采用并行数值软件p e t s c 的并行程序设计就是属于并行库支持 的方法。一股情况下我们多用m p i 来进行程序的并行化,对于共享内存的多处 理机,我们也可以用m p i 来实现程序。 理机,我们也可以用m p i 来实现程序。 上海大学硕士学位论文 1 2 3 并行算法 设计并行算法一般有三种方法: 1 ) 从问题本身的描述出发,根据问题固有的属性,从头开始设计一个全新 的并行算法;这种方法虽有一定的难度,但所设计的并行算法通常是高 效的。对于有些问题,现有的串行算法恐怕难以直接将其并行化,此时 要从问题的描述出发,寻求可能的新途径,设计出一个新的并行算法。 2 ) 借用已有的某类问题的并行算法使之可求解新的一类问题,这种算法对 于初学者来说有一定难度,但对于一个有经验的算法设计师来说又可能 产生一个优秀的并行算法。 3 1 检测和开拓现有串行算法中的固有并行化,长期以来人们积累了大量优 秀的串行算法,这是一批宝贵的财富。在设计并行算法时,充分利用现 有求解问题的串行算法,在其基础上直接并行化,这显然是设计算法时 优先考虑的方法。 1 3 本文的研究内容 本文深入讲述了n e t s o l v e 网格中间件的特点及结构,针对现有结构的一些 缺陷提出了具体的改进方案及构造了新的模块组件。另外一方面,本文详细描述 了在n e t s o l v e 系统中添加新的数值库特别是并行数值库p e t s c 的方法及其性能 分析。下面是本文内容的章节安排: 第二章,介绍了n e t s o l v e 系统及一些组件的扩展并行数值软件p e t s c 。 第三章,详细论述了基于m p i 的p e t s c 应用程序移植到n e t s o l v e 系统的过 程及性能分析。 第四章,详细论述了自适应系统软件及n e t s o l v e 系统迁移框架结构。 第五章,对本文做了总结,并对今后研究方向做了展望。 上海大学硕士学位论文 第2 章n e t s o l v e 系统及p e t s c 数值库 2 。1n e t s o l v e 系统简介及扩展 2 1 1 网格中间件概述 目前用于科学计算的网格计算中间件主要有三种,它们分别是由美国阳纳西 州大学和橡树岭实验室联合开发的n e t s o l v e 项目,由德国爱因斯坦研究所领衔 开发的c a c t u s 项目 8 和日本开发的n i n f 项目 9 。 c a c t u s 是一种集成的、开放源码的计算科学和工程问题解决环境。c a c t u s 允 许用户将原来在个人计算机上开发的程序( 不管它们原来是用c 语言、c + + 写的, 还是用f o r t r a n 、j a v a 语言写的) ,转换成能够在虚拟的“网格计算机”上运行的并 行程序;c a c t u s 的模块结构提供了简单的、抽象的a p i 调用接口,屏蔽了系统的 复杂特性,从而简化了用户界面,获得很强的可移植性;c a c t u s 能够在不同体系 结构的机器上运行,如单处理器、集群计算机和其他体系结构的并行计算机: c a c t u s 具有许多先进特征,诸如先进的数字计算技术、自适应的网眼细化、并行 i o 、实时远程可视化、远程操控、w e b 接入等;c a c t u s 中还集成了许多现成的 成熟应用模块,只要提供初始数据并修改参数,就可以得到计算结果,减少了重 复开发的现象;c a c t u s 环境可以用在诸如天体物理学、化学工程、气象模拟、密 码科学等。 n i n f 具有与n e t s o l v e 相似的功能和结构,n i n f 可以让用户使用简单的界面 通过网络访问硬件、软件,科学数据等计算资源。n i n f 的目的不仅能开发网络 计算的高性能而且能够提供高质量的数值计算服务。用户可以通过n i n f 的远程 过程调用来调用函数库,它们提供了一个与传统函数库相似的用户界面。为了实 现位置透明和广域网上的并行,n i n f 元服务器维护一个关于计算服务和科学数据 库的全部计算资源信息,分配并且安排粗粒度的计算以取得大范围的负载平衡。 n e t s o l v e 是由美国田纳西州大学和橡树岭实验室联合开发的一种用于科学 计算的网格计算中间件。n e t s o l v e 的设计目标是:提供用户无缝连接远程计算硬 件、软件资源。n e t s o l v e 基于c l i e n t a g e n t s e r v e r 技术,用户可以通过网络利用 分散的计算资源解决复杂的科学计算问题,n e t s o l v e 搜索网格上的计算资源,选 择最好的资源来解决科学计算问题,把结果返回给用户。 上海大学硕士学位论文 2 1 2n e t s o l v e 系统结构 图2 - 1 描述了n e t s o l v e 1 0 统结构,主要有三部分组成。 图2 - 1n e t s o l v e 系统结构 1 客户端( c l i e n t ) 客户端用户使用简单的a p i 访问n e t s o l v e 系统。用户通过调用这些a p i , 及其一些其它功能,向系统提出请求。通过a p i 调用自动与系统服务器连接为计 算请求提供服务。客户端连接服务器并提供输入数据激发服务。 2 代理( a g e n t ) 代理是连接n e t s o l v e 系统的入1 2 1 ,它的功能主要是作为数据库和资源代理 f r e s o u r c eb r o k e r ) 。代理保持跟踪资源池中所有服务器的信息,包括服务器的可获 得性、负载、网络连通性和提供的计算服务。这样代理才能选择其中的服务器来 执行任务,以响应客户请求。 3 服务器( s e r v e r ) n e t s o l v e 服务器是整个系统的计算中枢。服务器守护进程等待客户请求。服 务器可以在单独的w o r k s t a t i o n ,c l u s t e r ,s m p 和m p p 上运行。服务器中的一个关 键组件就是利用n e t s o l v e 的问题描述文件p d f 1 1 ,使之能够把软件库加入 n e t s o l v e 服务中。 上海大学硕士学位论文 2 1 3n e t s o l v e 系统工作原理 n e t s o l v e 系统的开发最初来源于对m a u a b 系统中远程过程调用的研究。开 发一个m a t l a b 的远程过程调用系统有很多的局限性,比如要求每个主机上有一 个m a t l a b 作为客户端,而m a t l a b 是收费的;所有的调用只能是m a t l a b 的函数, 而不是如l a p a c k 这样的一些计算软件库。而开发一个新的系统,可以充分利 用n e t l i b 提供的免费计算软件库,并且用户不必学习m a t l a b 就能使用。基于以 上原因,n e t s o l v e 系统被提出了。n e t s o l v e 系统的工作原理如图2 2 所示。 图2 - 2n e t s o l v e 系统的工作原理 客户端向系统发出请求,实际上是客户端调用了一个远程过程调用( r p c ) 。 下面以接口语言c 为例作为说明:调用一个这样的函数n e t s l ( a r e a ,u l ,b l ,h ,a ) , 该调用触发n e t s o l v e 客户端向n e t s o l v e 代理发出查询请求,以便查询a r e a 服务; n e t s o l v e 代理维护了所管理服务器所能提供的服务信息,根据一定的调度算法, 选择最佳的提供此服务的服务器,并将其i p 和端口返回给客户端;这样,客户 端和服务器就直接建立了连接以得到请求的服务。服务器找到请求服务a r e a 的 问题描述文件( p d f ) ,根据p d f 中a r e a 的各参数类型,接收客户端发送的参数; 这样就可以进行问题计算,返回结果。 下面描述了a r e a 的p d f 实例: # # a r e a # p r o b l e marea 口i a n g u a g ec 上海大学硕士学位论文 0 m a j o rr o w p p a t h 日m o v e a b l e0 d e s c r i p t i o n c o m p u t e rt h ea reao fa t r a p e z o i d i n p u t3 0 0 b j e c ts c a l a rdx d o h b l ex 1 0 0 b j e c ts c a l a rd y d o u b l ex 2 0 0 b j e c ts c a l a rdz h e i g h to ft h et r a p e z o i d 0 0 u t p u t1 0 0 b j e c ts c a l a rd0 areao ft h et r a p ez o i d 0 c o m p l e x i t y40 00 0 0 0 ,1 0 c a l l i n g s e o u e n c e a r gi o a r g 工l 0 a r g1 2 0 a r g0 0 c o o e 0 00 = ( d o u b l e + ) m a l l o c ( s i z e o f ( d o u b l e ) ) j ( 0 0 0 0 ) 一( + ( 1 0 ) + + ( 0 1 1 ) ) + ( + ( 0 1 2 ) ) 2 0 j e e n dc o d e j 蹦述r 输入参数个数及娄矩,输f 【l 结跟个数及类型,调刷的摩峨数az 。等, n e t s l y e 系统调用的整个过程概括如下: 1 1 客户端联系代理; 2 ) 代理查询服务器列表,找到最佳服务器; 3 ) 客户端与服务器建立连接,并提供参数给服务器; 4 ) 服务器进行计算; 5 ) 服务器向客户端返回输出结果或出错信息。 p d f 文件正是n e t s o l v e 系统能提供服务给用户的机制。p d f 文件包括数值 库函数的一些信息,如应输入的参数形式,输出结果的形式;还包括问题算法的 复杂度信息,它很可能是输入参数的某种函数形式。p d f 文件采用这种形式主要 是基于以下优点:独立于计算机平台结构,而这一点对于n e t s l y e 系统尤为重 要,因为它添加任意软件组件到系统中;有利于研究团队和部门之涮的合作,对 于同一个数值库只需添加一个p d f 文件。用户也可以编写自己的p d f 描述文件, 上海大学硕士学位论文 添加自己的调用模块到n e t s o l v e 服务器中,这样就可以通过n e t s o l v e 系统调用 新的功能。但n e t s o l v e 系统还没有一种简单的方法来编写p d f 文件。 f 是基于以上原因,我们着重研究了并行数值软件p e t s c 库,并成功的移 植到了n e t s o l v e 系统中。章节2 2 部分详细介绍了这个数值库。 2 1 4c l i e n t - p r o x y ( 客户代理) 组件的提出 这里介绍了新的组件c l i e n t p r o x y ,它是驻留在客户主机上的单独进程,它 负责客户端与服务器端元计算资源进行通信。在n e t s o l v e 体系结构中引入 c l i e n t p r o x y 组件主要是考虑到它带来的以下一些优点: 1 ) 减轻客户端库:分离n e t s o l v e 客户端界面与元计算资源的交互,可使客 户端变得更加轻量级;这样,在c l i e n t p r o x y 级开发新功能只需执行一 次,对所有界面都变成可用了:也就是说,增加c l i e n t p r o x y 的一个好 处是开发界面的一致性。 2 ) 客户端更加灵活:c l i e n t p r o x y 是一个有自己线程控制的独立进程,可 与元计算资源进行交互,而不需客户端的参与;即使在客户请求之前, 它也可以执行类似网格信息服务查询排队的操作,并保存结果在本地, 这样,在需要的时候就可以立即调用了。 3 ) 与其它系统整合:n e t s o l v e 项目的一个哲理就是尽量使用已有的服务: 一个c l i e n t - p r o x y 代表客户与元计算资源进行交互,也就意味着不同 c l i e n t p r o x y 与不同类型资源进行交互。将来会实现与c o n d o r 系统或 l e g i o n 系统的交互;然而,c l i e n t p r o x y 引入的主要目的是实现不同机 构部门之间的相互融合。 4 ) 支持更多客户端语言:保持客户端与c l i e n t - p r o x y 之间的标准界面,可 使第三方开发者添加新的语言来支持n e t s o l v e 系统;只需添加与 c l i e n t p r o x y 交互的库,就可以使由这种语言编写的程序对于n e t s o l v e 系统可用。 图2 3 显示了客户进程、c l i e n t - p r o x y 及计算服务器之间的交互关系。客户 端进程与c l i e n t p r o x y 通过标准a p i 进行通信,而a p i 与元计算系统通过针对特 定系统的机制进行交互。如,c l i e n t p r o x y 使用n e t s o l v e 代理查找服务,联系合 适的服务器并创建会话:服务器从客户接收输入数据,执行请求服务并返回结果 数据到客户进程。每个客户进程都会创建一个新的c l i e n t p r o x y ,虽然在它们之 间是没有安全认证的,但客户进程与服务器之间数据传输具有安全认证,这样就 可以侦测并拒绝非认证的服务请求。 上海大学硕士学位论文 图2 - 3c l i e n tp r o x y 的运行机制 2 1 5s e r v e r - p r o x y ( 服务代理) 组件的提出与实现 1 s e w e r p r o x y 组件的提出 自强2 0 0 0 这样的集群式超级计算机总是不会把内部节点都暴露在国际互连 网i 二的,因为这样会影响速度,也更不安全。在这样的超级计算机系统上使用 n e t s o l v e 就会碰到一个问题,在外部网络中的n e t s o l v e 客户端不能访问系统内 部运行的n e t s o l v e 服务器。因为n e t $ o l v e 系统存在这样一个事实( 也可称为是 缺陷) 即要求客户端和服务器主机都要拥有个可见i p ( 互联网全局i p ) 。 超级计算机通常采用的结构是,几个有全局i p 网络地址的节点作为前端机, 可从外部网络访问,其余节点作为内部节点,只有内部i p ( 伪i p ) ,外部网络只 能通过前端机间接的访问这些节点。前端机相当于网关,同时拥有内部i p 和全 局i p 。因此,我们考虑引入s e r v e r - p r o x y 来解决这个问题。在前端机运行一个 s e r v e r - p r o x y ,它能在外部网络与内部节点之间建立一座桥梁。 2 s e r v e r p r o x y 的工作机制 图2 - 4 显示了整个n e t s o l v e 系统运行的全过程。首先,客户端发出一个服务 请求,这罩是n e t s l ( d g e s v ,a ,b ) ,c l i e n t p r o x y 向n e t s o l v e 代理查询是否有服务 器提供a r e a 服务,这些信息都在n e t s o l v e 代理中注册了的。n e t s o v l e 代理找 出所有这些服务器,并将这些服务器的i p 地址和服务器运行端口保存在一个数 组中,一并发给客户端。其中服务器在数组中的位嚣代表它的优先级,数组首位 代表最匹配的服务器。然后c l i e n t p r o x y 建立一个与服务器的t c p 套接字连接, 返回一个可连接上的最优服务器到客户端,这样客户端与服务器就建立上了连 接。如果服务器没有真实i p ,c l i e n t p r o x y 主机处于外部网络,只有全局i p 地址, 不能访问服务器,这正是上面提到的n e t s o l v e 系统缺陷所在。通过引入 s e r v e r p r o x y ,可以解决这个问题。图中虚线部分显示了引入s e r v e r - p r o x y 后的新 上海大学硕士学位论文 机制。如果服务器在内部节点上,它将有一个运行在前端机上的s e r v e r p r o x y , 任务执行过程如虚线所示。c l i e n t - p r o x y 首先与s e r v e r - p r o x y 建立套接字连接, 再向s e r v e r - p r o x y 发送服务器i p 地址和端口,s e r v e r - p r o x y 用得到的i p 与端口 建立与服务器之间的连接,这样客户端与内部服务器就建立上了连接。 图2 - 4s e r v e r - p r o x y 的运行机制 3 建立s e r v e r p r o x y 的可行性 s e r v e r p r o x y 必须运行在前端机或网关上,它能确保客户与服务器的连接。 首先,客户端能与s e r v e r p r o x y 成功地建立s o c k e t 连接,因为前端机总是有全局 i p 地址。而前端机与其所在的超级计算机内部服务器同处于一个局域网中,因 此s e r v e r - p r o x y 能与n e t s o l v e 内部服务器建立连接。这样产生的一个问题就是所 有的数据都必须通过前端机,因此有可能会造成瓶颈。假如在不同的前端机上运 行多个s e r v e r - p r o x y ,不同s e r v e r p r o x y 负责内部网中的部分计算机:为了提高 效率,还可以在s e r v e r p r o x y 和内部服务器之间建立一个连接池。 s e r v e r - p r o x y 的信息应添加到a g e n t 中。s e r v e r - p r o x y 必须支持多进程,首先 侦听一个端口,接收连接请求并产生一个新的s o c k e t ,然后从这个s o c k e t 中产生 i p 地址,最后连接这个i p 到另外一个s o c k e t 中。至此,s e r v e r p r o x y 绑定了两 个s o c k e t 为一个s o c k e t 对。s e r v e r - p r o x y 所做的事情就是在这样的s o c k e t 对之间 传递数据。 a g e n t 有权管理s e r v e r - p r o x y ,它可以终止s e r v e r - p r o x y 。首先s e r v e r p r o x y 在a g e n t 中注册,如果有s e r v e r p r o x y 死亡了,a g e n t 将删除掉所有与该 s e r v e r 。p r o x y 相关的信息。 上海大学硕士学位论文 4 s e w e r - p r o x y 的实现 客户端收到从代理发来i l i i 务器信息后,首先判断是否有s e r v e r - p r o x y ,若 有,则是先与s e r v e r , - p r o x y 建立连接。否则就采用原有的方法与服务器交互。为 此,我们要修改p r o c e s s s e n d r e q u e s t o 函数,该函数中调用了函数s u b m i t p r o b l e - m t o a g e n t o 与s u b m i t p r o b l e m t o s e r v e r 0 ,s u b m i t p m b l e m t o a g e n t o 函数原本将返回 可用服务器的地址,我们修改后使其也能返回s e r v e r - p r o x y 的地址,实现的方法 是为这两个函数增加两个个参数( n s j p a d d r _ t y p e + & s e r v e r p r o x y l i s t ) f i n t & s e r v e r p r o x y p o r t l i s t 和 ( n s 一_ i p a d d r t y p e s e r v e r p r o x y l i s t i )( n t s e r v e r p r o x y p o r t l i s t i ) ( 参见n e t s o l v e - - 1 2 源代码) 。而后判断s e r v e r - p r o x y 是否为 空,若不为空,则在s u b m i t p r o b l e m t o s e r v e r 0 函数中把问题和服务器地址一同发 给s e r v e r - p r o x y 。修改后的s u b m i t p r o b l e m t o s e r v e r o i 函数代码如下( 主要显示了 修改部分代码) : i n ts u b m i t p r o b l e m t o s e r v e r ( n s p r o b l e m d e s c + p d ,n s i p a d d r t y p e i p a d d r ,i n tp o r t ,n si p a d d r t y p es e r v e r p r o x y ,i n ts e r v e p r o 。y p 。r t , i n t + s t a r t t i m e r i n t + n e w p o r t ,i n t + p i d ) t n s c , o l a m u n i c a t o r + c o m m

温馨提示

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

评论

0/150

提交评论