(计算机应用技术专业论文)基于linux和mpi的集群并行系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于linux和mpi的集群并行系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于linux和mpi的集群并行系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于linux和mpi的集群并行系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于linux和mpi的集群并行系统的研究与实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机应用技术专业论文)基于linux和mpi的集群并行系统的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 随着计算机技术的发展和越来越广泛的应用,人们对计算机的依赖程度也越 来越高。计算机的可靠性和可用性也变得越来越重要了。尽管单台计算机的性能 和可靠性越来越好,但还是有许多现实的要求是单台计算机难以达到的。计算机 集群技术就是将多台计算机组织起来进行协同工作来模拟一台功能更强大的计算 机的技术。计算机集群技术是提高系统可用性和可靠性的一种技术。 在今天的i t 界,“集群”这个词对我们来说并不陌生,特别是在服务器和小 型机广泛应用的领域,集群的概念已经深入到i t 界的方方面面。自8 0 年代初以 来,各种形式的集群技术纷纷涌现,这些技术均源于d i g i t a l 的v a x 平台之上。 因为集群能够提供高可用性和可伸缩性,所以,它迅速成为企业和i s p 计算的支 柱,成为了高性能计算以及海量计算领域瞩目的焦点。 本课题首先详细研究了l i n u x 集群的结构与功能,分析了现在的集群研究状 况以及并行计算编程模型。通过引入集群中间件技术架构,设计了一个新型的基 于m p i 的l i n u x 集群并行系统结构模型。本文分析和阐述了基于m p i 的l i n u x 集 群并行系统的基本原理、思想,及其组成结构和各部分的主要功能,并详细地研 究了集群和并行计算的几个关键技术问题的解决方法,并利用m p i c h 实现了矩阵 并行算法在集群并行系统的运行。该系统具有良好实效的集群网络性能测试模块, 能动态地反映集群性能参数的变化特征,具有简单性、易扩展性等特点。这些研 究和实现工作是当前集群并行系统研究的一个热点课题,为相关研究提供了一些 新的思想和方案。 关键词:l i n u x 集群:m p i ;并行计算;集群中间件 三童三些查兰三兰堡圭兰堡篁圣 a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m p u t e rt e c h n 0 1 0 9 ya n dit sw i d ea p p li c a t i o n , o u rd e p e n d e n c yo nt h ec o m p u t e rt e c h n 0 1 0 9 yb e c o m e sm o r ea n dm o r e h i g h c o m p u t e r sr e l i a b i l i t ya n da v a i l a b i l i t ya r eb e c o m i n gm o r ea n dm o r e i m p o r t a n t t h o u g has i n g l ec o m p u t e r sc a p a b i l i t ya n dr e l i a b i l i t yi s b e c o m i n gb e t t e ra n db e t t e r , b u tas i n g l ec o m p u t e rc a n tc o m p l e t es o m e r e q u e s ts t i l l a tt h i st i m e , i t sn e c e s s a r yt oo r g a n i z es e v e r a lc o m p u t e r s t ow o r kt o g e t h e r t h i st e c h n o l o g yi sc a l l e dc l u s t e r t h ec l u s t e r t e c h n 0 1 0 9 y i sat e c h n 0 1 0 9 yo fp r o v i d i n gm o r ea v a i l a b i l i t ya n dm o r er e l i a b i l i t y t o d a yi nt h ei tf i e l d ,t h ew o r dc l u s t e ri sn o ts t r a n g et ou s ,e s p e c i a l l y i nt h et h ef i e l di nw h i c hs e r v e ra n dh i g hp e r f o r m a n c ec o m p u t i n ga p p l i c a t i o n w a sd e e p l ya c c e s s i b l e ,t h ec o n c e p t i o no fc l u s t e ri sv e r yw e l l k n o w s i n c e 8 0 s ,m a n yk i n d so fc l u s t e rt e c h n 0 1 0 9 yc o m ef o r t hi ns u c c e s s i o nw h i c hr o o t e d i nt h ed i g i t a lv a xf l a t r o o f t h ec l u s t e rt e c h n 0 1 0 9 yb e c o m e st h e 瑚a i n s t a y o fe n t e r p r i s ea p p li c a t i o na n di s pc o m p u t i n ga n dt u r n si n t ot h ef o c u so f r e s e a r c h i n ga b o u th i g hp e r f o r m a n c ec o m p u t i n ga n d m a s st r a n s a c t i o n p r o c e s s i j l gb e c a u s et h ec l u s t e ra p p li c a t i o ni sh i g hu s a b jl i t ya n de f f e c t i v e r e t r a c t i l i t y i nt h i sp a p e r ,w ed i s c u s s es t r u c t u r ea n df u n c t i o no fl i n u xc l u s t e r i nd e t a i l s ,a n a l y s ea n dt h er e s e a r c ho fc l u s t e ri ne x i s t e n c ea n dt h ep r o g r 锄 m o d e lo fp a r a l l e lc o m p u t i n g 0 nt h eb a s i so fd e e p l yr e s e a r c ha n da n a l y s i s f ra j i l e w o r ka n dt h et e c h n o l o g yo fc l u s t e rm i d d l e w a r e ,w ep r o p o s ea n dd e s i g n an e wt y p eo fp a r a l l e lc o m p u t i n gs y s t e m b a s e dm p ia n dl i n u xc l u s t e r t h i s p a p e ra n a l y s i s e sb a s i cp r i n c i p l e s ,i d e a s , c o m p o s i t i o na n dt h e m a i n c o m p o n e n t s f u n c t i o n so ft h eo fp a r a l l e lc o p u t i n gs y s t e m b a s e dm p ia n d l i n u xc l u s t e r ,a n dr e s o l v e ss o m ek e yt e c h n i c a lp r o b l e m sa b o u tc l u s t e r m i d d l e w a r ea n dp a r a l l e lc o m p u t i n g i nt h i sp a r a l l e lc o m p u t i n gs y s t e m ,t h e m a t r i x u l t i p l ea l g o r i t h mi sr e a l i z e da n de x e c u t e du t i l i z i n gt h em p i c h t h i ss y s t e m h a sap e r f o r m a n c et e s t i n gm o d e lf o rc l u s t e rn e t w o r k c a p a b i l i t y ,a n di tc a n d y n a m i c a l l yr e f l e c tt h ec h a n g ef e a t u r e so fc a p a b i lit yp a r 锄e t e ri nt h e a b s t r a c t c l u s t e r i th a ss o m eg o o dc h a r a c t e r is ti c ss u c ha ss i m p li f i c a t i o n , e a s y e x t e n s i b i l i t ye t c t h i sr e s e a r c ha n di m p l e m e n t a t i o nw o r k si nt h ep a p e ra r e an e wr e s e a r c hs u b j e c to np a r a l l e lc o m p u t i n gs y s t e mb a s e dc l u s t e r t h e y s h e dli g h t so n s o m en e wt h o u g h t sa n dp l a n sf o rr e l a t i v er e s e a r c h k e y w o r d :1 i n u xc l u s t e r ;m p i ;p a r a l l e lc o n l p u t e ;c l u s t e rr n i d d l e w a r e l 第一章绪论 1 1 论文的背景 第一章绪论 随着计算机技术的发展和广泛的应用,越来越多的依赖于计算机技术的应用 系统走进了人们的工作和生活中。在带来方便和效率的同时,也使得各行各业对 计算机技术的依赖程度越来越高。随着计算机技术以日新月异的速度发展,尽管 单台计算机的性能和可靠性越来越好,但仍然还有许多实际的应用仅靠单台计算 机是难以实现的。 简单地说,集群就是一组计算机,它们作为一个整体向用户提供一组网络资 源。这些单个的计算机系统就是集群的节点,它们之间通过高速网络连接。这些 计算机能够协同工作,并对外表现为一个集成单一的计算机资源。集群技术使用 特定的连接方式,将相对于超级计算机便宜许多的计算机设备结合起来,提供与 超级计算机性能相当的并行处理技术。早在七十年代就有人提出可以使用这种集 群技术完成并行处理,但是由于受到当时网络交换技术的限制,在性能上集群系 统与其他并行处理系统相比相距甚远。直到a t m 技术、千兆位以太网技术逐渐 成熟的今天,集群系统才具备了与超级计算机相匹敌的能力目前对集群技术需求 最迫切、发展最快的领域主要有:m v w 应用、数据库应用等商业计算领域。集 群系统可以通过使用纯硬件的方式或使用软硬件结合的方式来搭建【l 】【2 】。 1 1 1 集群技术 1 1 1 1 集群技术的目的 采用集群技术的目的可以概括为以下几点: ( 1 ) 提高运算性能。一些计算密集型应用,如:天气预报,核试验模拟等, 需要计算机有很强的运算处理能力,现有的技术,即使普通的大型机也很难胜任。 这时,一般都使用计算机集群技术,集中几十台甚至上百台计算机的运算能力来 满足要求。提高处理性能一直是集群技术研究的一个重要目标之一。降低成本。 在达到同样性能的条件下,采用计算机集群比采用同等运算能力的大型计算机具 有更高的性价比。 广东工业大学工学硕十学位论文 ( 2 ) 提高扩展性。采用集群技术,当用户需要扩展系统计算能力时,只需要 购买与原来的服务器同等处理能力的服务器,将其加入到集群系统中即可,而不 需要将现有的服务器更换为高性能的服务器【3 j 。 f 3 ) 增强可靠性。集群系统的可靠性与单机系统相比较高,在提高了系统的 可靠性的同时,可以大大减小了由于故障造成的停运。据统计每年由于系统停运, 全美国损失约4 0 亿美元;在零售业,平均每次停运损失1 4 0 ,0 0 0 美元;保安业 每次停运平均损失4 5 0 0 0 0 美元;对于采用了集群技术的系统,在故障发生时仍 可以继续工作,可以将系统停运的时间减到最小1 4 1 。 1 1 1 2 集群的分类 目前应用最为广泛的计算机集群技术可以分为三大类:高可用性集群技术、 高性能计算集群技术和高可扩展性集群技术。下面对这三种集群技术做一简单的 介绍。 ( 1 1 、高可用性集群技术 高可用性集群,是指以减少服务中断( 当机) 时间为目的的服务器集群技术。 随着全球经济的增长,世界各地各种各样的组织对计算机系统的依赖都在不断增 加,电子贸易使得商务一周七天2 4 小时不问断的进行成为了可能。新的强大的 应用程序使得商业和社会机构对日常操作的计算机化要求达到了空前的程度,趋 势非常明显,这需要不问断的、稳定的计算机系统。 这种需求的快速增长,使得对系统可用性的要求变得非常重要。现在许多公 司和组织的业务几乎完全依赖于计算机系统,任何的当机都会造成严重的损失, 关键i t 系统的故障可能会导致整个商业运作系统的瘫痪,因此每一分钟的当机 都意味着收入、生产和利润的损失,甚至是市场份额的减少。 可用性是指一个系统保持在线并且可供访问。有很多因素会造成系统当机, 包括为了维护而有计划的当机以及意外故障当机等,高可用性的目标就是使当机 时间以及故障恢复时间最小化。 ( 2 ) 、高性能计算集群技术 高性能计算集群( h i 曲p e r f o r 砌n c ec o m p u t m gc l u s t e r 简称h p cc l u s t e r ) , 是指以提高科学计算能力为目的计算机集群技术。l 诤cc l u s t e r 是一种并行计算 集群的实现方法。并行计算是指将一个应用程序分割成多块可以并行执行的部分 并指定到多个处理器上执行的方法。目前的很多计算机系统可以支持s m p ( 对称 第一章绪论 多处理器) 架构并通过进程调度机制进行并行处理,但是s h 但技术的可扩展性 是十分有限的,比如在目前的i n t e l 架构上最多只可以扩展到8 个c p u 。为了 满足某些“计算能力饥渴”的科学计算任务,并行计算集群的方法被引入到计算 机界。著名的“深蓝”计算机就是并行计算集群的一种具体实现h 【5 o ( 3 ) 、高可扩展性集群技术 高可扩展性集群技术就是带均衡算法的服务器集群。负载均衡集群在多节点 之间按照一定的策略( 算法) 分发网络或计算处理负载。负载均衡建立在现有网 络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提 高数据处理能力,同时又可以避免单点故障1 6 】。 以w 曲访问为例,后台的多个w 曲服务器上面有相同的w 曲内容,i n t e m e t 客户端的访问请求首先进入一台服务器,由它根据负载均衡算法合理地分配给某 个w 曲服务器。每个w | c b 服务器有相同的内容做起来不难,所以负载均衡算法 选择是关键问题。 w 曲服务器集群的概念最早出美国伊利诺斯州大学的超级计算应用中心 ( n c s a :n a t i o m lc e m e ro f s u p e r c o m p u t i n ga p p h c a t i o i l s ) 提出的并实现了一个原 型系统”n c s as c a l a b l ew 乩s e r v e rc l u s t e r ”, 它通过连接一组计算机对客户同时 提供服务,实现分布负载,降低对用户请求的响应时间,并扩展w 曲服务器的应 用。后来b e d l e y 的n 0 w 小组、n s c 和科罗拉多大学的h a r v e s t 小组、c i s c o 及 i b m 公司等也加入此行列,很快推出相应的产品。如加州大学s w e b 系统采用 d n s 转发技术实现服务器i p 地址重定向( y a h o o 采用的就是这种方法) ;i i l | 的i i l i 公司利用n 0 w 构造并行的h 0 t b o t 检索引擎,因而系统具有成本低和扩展能力 强的特点;此外,i b m 公司也提出了类似的可扩展并行w 曲服务器群集系统的 设计方案。这些系统的成功表明w r e b 服务器集群是改善w 曲服务的一种有效 解决方案,并且正在成为主流技术嘎 1 1 2 并行计算 并行计算( p a r a l l e lc o m p u t i n g ) 是指同时使用多种计算资源解决计算问题 的过程。为执行并行计算,计算资源应包括一台配有多处理机( 并行处理) 的计 算机、一个与网络相连的计算机专有编号,或者两者结合使用。并行计算的主要 目的是快速解决大型且复杂的计算问题。此外并行计算是使用多个“廉价”计算 广东工业大学工学硕士学位论文 资源取代大型计算机,同时克服单个计算机上存在的存储器限制。从而很好的利 用非本地资源,节约成本。 相对地,串行计算是指在单个计算机( 具有单个中央处理单元) 上执行软件 写操作。c p u 逐个使用一系列指令解决问题,但其中只有一种指令可提供随时并 及时的使用。并行计算是在串行计算的基础上演变而来,它努力仿真自然世界中 的事务状态:一个序列中众多同时发生的、复杂且相关的事件嘲叫。 为利用并行计算,通常计算问题表现为以下特征: 将工作分离成离散部分,有助于同时解决; 随时并及时地执行多个程序指令: 多计算资源下解决问题的耗时要少于单个计算资源下的耗时。 下面的矩阵列出了计算结构的4 种可能性分类: 表格1 1 计算结构分类 t 抽l e1 1t h ec a t e g o r yo f c o m p u t i i l gs t n l c t l l r e 1 2 国内外研究现状 1 9 7 7 年,d e c 公司推出了以v a x 为结点机的松散耦合的集群系统,并成功 地将v m s 操作系统移植到该系统上。2 0 世纪9 0 年代以来,随着r j s c 技术的发 展和高性能网络产品的出现,集群系统在性能价格比( p e r 如m a n c e c o s t ) 、可扩展 性( s c a l a b i l i t y ) 、可用性( a v a i l a b i l i t y ) 等方面都显示出了很强的竞争力,尤其是它在 对现有单机上的软硬件产品的继承和对商用软硬件最新研究成果的快速运用方面 表现出了传统大规模并行处理机m p p ( m 嬲s i 、,e l yp a m l l e lp m c e s s o r ) 无法比拟的优 势。 目前,集群系统已在许多领域获得应用。可以预见,随着对称多处理机 s m p ( s y h h n e t r i cm u n i p r o c e s s o r ) 产品的大量使用和高性能网络产品的完善以及各 种软硬件支持的增多和系统软件、应用软件的丰富,新一代高性能集群系统必将 成为未来高性能计算领域的主流平台之一。具有代表性的集群系统有i b m 的s p 2 、 s g i 的p o w e rc h a l u ! n g ea r r a y 、m i c r o s o r 的w b l 邱a c k 、d e c 的1 m c l u s t e r s 、 s u n 的s p a r cc l u s t e r l 0 0 0 2 0 0 0 p d b 以及b e r k e k vn 0 w 等。我国国家智能计算 4 第一章绪论 机研究开发中心的曙光一l o o o a 、曙光一2 0 0 0 i 和曙光一2 0 0 0 i i 也都属于集群系统 的并行计算机。 简单地说,并行计算机就是用若干( 几到几千) 个处理器并行执行一个作业, 以提高计算效率。并行计算机的结构、规模、性能可以有甚大的差异,其价格也 就可以从人民币数以万元到数以亿元。以较低的投资,用若干台性能较高的p c 机组装成集群并行计算机,采用l i n u x 操作系统以及目前在各类并行机上通用的 信息传递接口m p i 并行环境,以此为起步发展并行计算和研究,这是一个合适的 选择1 0 】。 目前,大规模并行计算机已经被用在国防、航天和科学研究等各个领域。除 了用于数学计算以外,在复杂的事务处理、逻辑推理和符号处理中也得到了广泛 的应用。而且,后面几种应用比单纯的数学计算还要广泛。大规模并行计算机的 具体应用有地震数据处理、数值天气预报、c a d 图像处理等。 在研究上述的并行和分布计算系统的过程中,研究人员逐渐认识到,系统的 规模可伸缩性( s c a l a b i l i t y ) 和可编程性( p m g m m m a b i l i t y ) 已成为促使这两者进 一步发展的关键问题。系统规模只有在具有可伸缩性的前提下,并行计算机系统 才可能以尽可能低的成本向用户提供尽可能高的性能。虽然专用的m p p 系统一般 都是基于市场上的微处理器,但支持通信和同步的机制却是高性能超级计算机专 用的部件,这使得m p p 系统性能非常卓越但价格也十分昂贵。另外,由于高性能 工作站和高性能网络设施的出现,为工作站机群的发展提供了新的契机。并行工 作站机群已经进入并行计算和分布式计算技术发展的主流。 1 3 本文主要任务 随着经济和科技的发展,在天气预报,高能物理,生物医学和地球物理等领域的 计算任务越来越多,其特点是计算数据多,算法复杂,计算规模大,难度高。现有的解 决办法有两个,其一是不断发展运算速度快,存储量大的超级计算机,以使它们能提 供应用所需的更强大的计算能力。虽然计算机工业的飞速发展可在一定程度上暂 时解决问题,但是未来的发展将会受到技术和资金的限制。其二是利用现有的计算 资源,把繁重的作业分散到每个单独的c p u 上进行计算,这种系统就是能提供强大 并行计算能力的集群系统。 我完成这个毕业设计所在的公司的大中华地区服务器中心位于广州,负责广 广东工业大学工学硕士学位论文 州,上海,苏州的业务数据网络服务,服务器采用集群系统保证系统高可用性;我 利用现有的硬件和软件资源,设计并实现一种基于l i 肌x 平台的集群并行系统, 以满足本论文进行并行与分布式计算的研究工作,并对集群体系、系统资源收集和 管理、并行算法执行、作业调度算法等进行相应的深入探讨。主要做了以下工作: ( 1 ) 分析了国内外集群技术的研究现状。 ( 2 ) 深入分析了l i n u x 集群技术与系统结构,系统进程问通信函数调用和 m p i 并行编程。 ( 3 ) 实现了一种基于l m u x 和m p i 的集群并行系统。 ( 4 ) 集群系统不仅可以处理用户提交的串行计算任务,也可以处理用户提 交的并行计算任务,并返回计算结果。 ( 5 ) 设计并实现了一个集群中问件,包含有作业提交模块、资源管理模块 和作业调度模块,并实现了系统单一映象。 ( 6 ) 在系统设计中考虑了系统的健壮性设计。 ( 7 ) 设计并实现了一些集群应用,以检验系统的计算能力,并讨论了几种系 统参数测试方法。 1 4 论文结构 本文设计并实现了一个基于l i 肌x 和m p i 的集群并行系统,讨论了相关原理 和技术。并在集群上实现了一种矩阵并行算法。论文豹结构如下: 第一章,( 即本章节) 对l i 肌x 集群系统做了个简要的概述,介绍了课题来源 相关的技术背景及本文工作,并概述了本文的研究任务。 第二章,探讨了集群系统的相关知识,包括集群分类、集群体系结构、集群 进程间的通信以及分析了集群中间件的重要层结构。 第三章,简要分析了并行计算理论的一些相关背景知识,包括并行程序的特 点、并行编程模式的主要类型和并行编程的方法等。并列举了一些并行算法的实 例。 第四章,本集群采用的是l i 删x 操作系统,所以基于l i i l u x 的编程应用尤其 重要,本节介绍了l i l i u x 的进程,文件系统等关键知识。 第五章,研究了m p i 编程模式以及特点,m p i 的语言函数以及子集,目前主 要的m 咿i 实现;m p i 并行程序的主从模式以及m p i 通信分析。 第一章绪论 第六章,论述如何从硬件和软件构建基于l i n u x 与m p i 集群并行系统,考虑 了系统的健壮性设计并介绍了系统实例与测试。 第七章,对全文进行总结,简单说明了系统存在改进之处;并指出今后的工 作。 广东工业大学工学硕士学位论文 第二章集群体系结构及集群进程问通信 2 1 集群体系结构 2 1 1 集群体系结构设计与特点 集群是一种并行处理系统,由很多连接在一起的独立的计算机组成,像一 个整体的计算资源一样协同工作l 挖】。 以下是集群计算机的一些重要部件: 多个高性能计算机工作节点,可以是p c 、工作站或s m p ; 良好的操作系统; 高性能网络以及网络接口卡; 快速通信协议和服务; 集群中间件; 并行编程环境和工具( 可以是编译器、p v m 和m p i ,本文采用m p i 编程环 境) 应用程序。 这些组成部件并非在每一类集群系统中都是必须的,多数系统往往只实现其 中的几种,主要是根据具体的需求来定。但如果以参考模型的角度来看,对于理 解各个部件所处的位置及其作用来说,建立层次结构描述有助于从整体了解集群 【l 一 直田层 会蔼暑 表未屠 佳# 屡 同塌层 蕾矗基 曲唾屠 羹嗣帕层故结构嵋口疆瞪魂 曩型 图2 1 集群的层次结构与o s l 互联参考模型的关联 f i g2 1t h er e i a t i o ns l i pb e t w e e nc l u s t e rh i b e r a r c h y 柚do s ir e f e r e n c em o d e l 第二章集群体系结构及集群进程问通信 这里我们发现,集群的组成涵盖了软件到硬件的几乎每一个方面。如果把集 群想象成类似0 s i 互联参考模型一样具有层次结构的话,那么从底层到顶层,覆 盖了现有的硬件构造、网络设计、操作系统、中问件以及应用环境等所有层次的 技术面。那么,在每一层选择什么样的技术就异显重要i l 。采用现有的成熟的产 品技术,可以大大降低构造集群的技术和资会风险,而选择适当的层次和技术点 作为突破,又往往是解决性能、安全或者其他特殊需求的关键。 2 1 2 集群的典型体系结构 集群的典型体系结构如图所示: 并行编程环境( j w hc 、用户接口:伽、i e ks k u 等。用f | 业豫系统或者饥 l 滇 f o r t r 誓l 哪等)千使用和控期 他千系统 单一系统映象基础设施 舞群节点ll 集群节点ll 集群节点 排系统ll 操作系统l一一一一一i 景作系统 11 i千兆曲lt 商品化互联部件 敦的分械 s 蜩存储区箍睡绕 致的i ,0其他靠群内硬件瓷潭 内布祷何 图2 2 集群的典型体系结构 f i g2 2t h er e p r e s e m a t i v ea r c 蛐e c t u r eo f c l u s t e r 从图上我们可以看出,理想的集群支持各类的结点,可用的有工作站、p c 、 s m p 服务器、甚至超级计算机,结点的操作系统是多用户、多任务和多线程的系 统。结点彼此可以是同构甚至是异构的。结点间由一个或多个高速商品化网络互 连。这些网络使用标准的通信协议,传输速度应该比目前使用在以太网上的 t c p i p 高两个数量级。商品化网络不但沟通了集群节点,完成必要的通信功能。 而且也为实现s a n ( 存储区域网络) 、一致的分布式i o 、一致的内存访问以及其 他集群硬件资源的统一访问打下基础。其实,网络仅仅是物理的实现,关于资源 的控制却还需借助操作系统来进行“。 9 广东工业大学上学硕士学位论文 每个结点的网络接口电路与结点的标准i o 总线( 如p c i ) 相连,所有的驱 动模块都是可热拔插,可动态加载的。当处理机或操作系统改变时,只需修改驱 动软件并重新加载,不必修改网络或网络接口,也不必重新启动系统“。 在结点工作平台上有一组与工作平台相独立的软件子系统,成为集群操作系 统,提供操作系统的最基本的核心功能。操作系统之上是特殊的扩展或者中间件 层,用于为h a 和s s i 提供必要的支持。 中间件层之上便是提供高可用性服务的可用性子系统。还有一个单一系统映 像层能提供单一的用户入口点、单一的文件层次结构、单一的控制点以及高效的 作业管理系统。可以通过编译器或运行时间库技术帮助实现单一存储器,但集群 不一定需要支持单一进程空间。 最上层便是集群的管理、控制和应用扩展实现层,用户的入口,管理员的控 制,作业的调度都在这一层具体实现。具体可以通过s s i 提供的标准a p i 或者动 态运行库实现。此外,其他一些扩展子系统也在该层实现,比如分布式的0 l t p ( 联 机事务处理) 数据库”。 网络接口硬件负责集群节点之间通过网络传送和接收数据包,通信软件提供 了快速而可靠的节点间以及与外界数据通信的手段,集群通常使用网络通信协议 在骑节点间进行快速通信。集群各节点可以像集成的计算资源一样共同合作,而 集群中间件发展为独立但互联的计算机对外提供同一的系统映像和易用性。编程 环境可以为应用程序的开发提供可移植的、有效的和易用的工具。编程环境包括 消息传递库、调试器和剖视器( p r o f i l e r ) 2 2 集群中间件 如果一群互联的计算机被设计成看起来好像统一的资源,我们可以说它实现 了单一系统映像( s i r 蟮l es y s t e m i m a g e ,s s i ) 。s s i 是中间件层实现的,处于操作系 统和用户层环境中间。这个中间件基本上由软件基础结构的两个子层:s s i 基础 结构和系统可用性基础结构。 s s i 基础结构与操作系统联系在一起,在所以的节点上提供对系统资源的统 一访问。系统可用性基础结构在集群各节点上提供集群服务,如检查节点、自动 故障检测、故障恢复和容错支持等1 7 】。 s s i 是有个虚像,是由硬件或软件创建的,使分散的资源集合起来作为一个 1 0 第二章集群体系结构及集群进程问通信 统一的、更强大的资源使用。s s i 的概念可以用于应用程序、专用的子系统或整 个集群。单一系统映象和系统可用性服务可以由以下一个或多个层来提供: 硬件( 如d i g “a 1 ( d e c ) 内存通道、硬件d s m 和s m p 技术) 。 操作系统内核底层或粘合层( 如s o l a r i sm c 和g l u n i x ) 。 应用程序和子系统中间层。 应用程序( 如系统管理工具和电子表) 实时系统( 如软件d s m 和并行文件系统) 资源管理和调度软件( 如l s f 和c o d i n e ) 应该注意的是程序和实时系统如p v m 也可以作为集群中间件。 使用中间件,我们可以选择作为l h m x 内核扩展的解决方案,这样就可以构 建s s i 集群。还有其他一些选择( 比如批调度器或者完全的远程执行包装器) , 但是我们选择s s i 模型,因为它具有以下优势: s s i 中间件隐藏了访问分散在节点问的资源( 文件、内存、c p u ) 的复杂性。 我们只是需要运行应用程序,中间件将透明地完成资源的管理。 s s i 中间件具有负载均衡和透明进程( t r a l l s p a r c mp r o c e s s ) 特性。利用这些 特性,除了极其需要进行调整情形,或者中间件无法实现公平,管理员不需要手 工调整负载。进程迁移也方便了执行,因为我们不需要进行显式的远程执行。 s s i 层既支持如用m p i 开发的并行计算程序,也支持串行计算程序。这些应 用程序,特别是并行计算程序,要求操作透明性和性能的可扩展性,即当一个集 群的能力加强时,应用程序运行得更快。集群在一方面就像具有高度s s i 的s m p 或m p f 系统一样,在另一方面它们在功能上就像一个具有多个系统映象的分布式 系统【1 7 1 。 2 2 1 操作系统层 集群操作系统在与串行应用程序共享的环境中支持并行应用程序的有效运 行。其目的是在集群中共享资源,为串行和并行应用程序提供更好的性能。为了 达到这个目的,操作系统必须支持并行程序的组调度,确定空闲的系统资源( 如 处理器、内存和网络) ,并提供对空闲资源的全局访问。这个操作系统除了支持系 统和用户层应用程序的快速进程间通信外,还应该支持进程迁移,以提供动态负 载平衡。 广东工业大学工学硕士学位论文 一个完整的集群s s i 允许系统内所有的物理资源和内核资源可见,并被系统 内的所有节点访问。完整的s s i 可以用操作系统层的s s i 完成。换言之,每个节 点的操作系统内核共同工作,使所有节点的内核接口看起来是相同的。一个完整 的内核层s s i 可以节约作业执行时间,这是因为现有的程序和应用程序在新的环 境下不需要重新编写。另外,这些应用程序可以在任何一个节点运行而不需要管 理者进行设置。为了达到节点间负载平衡,还可进行进程迁移。如果需要,也可 以支持容错。大部分支持s s i 的操作系统建立在现有操作系统之上,以完成全局 资源分配。这种策略使系统易于迁移、跟踪已售软件升级以及减少开发时间。 2 2 2 应用程序和子系统层 s s i 也可以通过应用程序和子系统来使多个一起工作的部件对于系统管理员 来说就像一个单一的应用程序一样。s s i 是用中间件层实现的,处于操作系统和 用户层环境中间。s s l 支持的服务包括:单一入口点,一个用户可以像连接到单 一系统一样连接至机群,而不是像分布式系统一样连接到单个节点;单一文件层 次,用户看到的文件系统是文件的单一层次,目录是在同一根目录下的;单点管 理和控制,整个机群可以从用单一g u i 工具创建的单一窗口进行管理和控制;单 一虚拟网络,任何节点可以通过机群域访问网络连接;单一内存空间,将属于机 群的各节点的内存作为共享内存;单一作业管理系统,用户可以用透明的作业提 交机制在任一节点提交作业等等。 s s i 为整个系统资源和运行情况在任一节点提供一个简单、直观的视图;使 最终用户无须了解应用在什么地方运行;使操作者无须了解资源的物理位置;使 管理者在一点上管理整个机群:使得一个拥有多个进程的并行应用看起来就像一 个串行应用等等。目前比较成熟的提供机群系统s s i 的中间件软件工具有 n f s ( 网络文件系统) 、l s f ( 作业管理系统) 、r s h 等1 8 】【19 】【2 0 】。 2 2 3 单一系统映象的边界 提供s s i 的关键是要注意每个s s i 都有边界,并且s s i 的支持可以位于系统 的不同层次,一层可以建立在另一层之上。例如,一个子系统,如资源管理系统, 可以使一群互联的机器看上去好象是一台机器。当在系统的边界内执行操作时, s s i 提供一个传统超级计算机的映象。但如果在s s i 边界外执行任何操作,集群 1 2 第二章集群体系结构及集群进程问通信 系统看上去就只是一串连在一起的计算机而已。另一种子系统可以使同一群机器 看上去好象是一个大的数据库系统。例如,一个使用节点本地磁盘的集群文件系 统看起来像是一个大的并行文件存储系统,并提供对数据的快速访问1 1 7 j 。 2 3 集群进程间通信 由于复杂的编程环境通常使用多个相关的进程来执行有关子任务。进程问必 须进行通信,柬共享资源和信息。因此要求内核提供必要的机制,这些机制常被 叫做进程问通信。 进程间通信的目的有以下几方面: ( 1 1 数据传输 进程可能要发送数据到另外一个进程。发送的数据量可以在一个字节到几兆 字节之问。 ( 2 ) 共享数据 多个进程想要操作共享数据。一个进程修改了数据,其他共享数据的进程应 该立即看到这个变化。 ( 3 ) 通知事件 当一些事件发生时,进程也许会向另一个进程或一组进程发送消息通知事件 的发生,例如:进程终止时,它要通知它的父进程。接收者可能是被异步通知的, 这时候,它的正常处理被中断。由此,接收者可以选择等待通知。 ( 4 ) 资源共享 一些有相互操作的进程可能要自定义一些协议针对它们要访问的特定的资源 ( 比如:一组进程共享一个数据结构,或互斥共同监听一个套接字端口等等) 。这 些协议通过使用锁和同步机制来实现的,而锁和同步机制是建立在内核提供的基 本原语之上的。 ( 5 ) 进程控制 有些进程,希望完全控制另一个进程( 目标进程) 的执行。控制进程希望能 够拦截为目标进程设计的所有的陷入和异常,并且能够及时的通知目标进程的状 态的改变。 广东工业大学工学硕士学位论文 2 4 资源管理和调度( r m s ) 资源管理和调度( r m s ) 是使计算机问分布式应用程序达到最大吞吐量的操 作,并使资源得到高效利用。执行r m s 的软件包括两个部分:资源管理器和资 源调度器。资源管理器处理定位和计算资源的配置、验证以及过程生成和迁移等 任务。资源调度器处理应用程序队列等任务以及资源定位和分配。r m s 的出现有 很多原因,例如,负载平衡、使用空闲c p u 周期、容错系统、管理系统资源等。 但主要的原因是r m s 的存在为它们所管理的用户应用程序提供了更可靠的服务 和更高的吞吐量【l “。 基本的r m s 结构是客户机一服务器系统。简单地说,每个计算机共享运行 服务器守护进程的计算资源。这些守护进程保存着最新列表,存储了它所在的 r m s 环境信息。用户通过客户端程序使用网络浏览器或x w m d o w s 界面与r m s 环境交互。应用程序既可以以交互方式也可以以批处理方式运行。在批处理方式 中,应用程序作为一个作业提交给r m s 系统运行。为了提交批处理作业,用户 需要通过r m s 客户机向系统提供作业详情。作业详情包括可执行程序位置和输 入数据集的位置、标准输出的位置、系统类型、最长运行时间、作业需要串行还 是并行资源等等。一旦作业被提交到r m s 环境,它就使用作业详情来正确地存 储、调度和运行作业。 r m s 环境提供对用户的中间件服务,使用户可以方便而有效地使用工作站、 s m p 和专用并行计算平台等多种计算环境。r m s 环境提供的服务包括【2 0 】: f 1 ) 进程迁移:使进程可以在i t m s 环境中的另一台计算机上挂起、移动和重 启动。一般说来,进程迁移的发生是由于一个计算资源的负载过重而另一个资源 空闲且可以使用。 ( 2 1 检查点:这是程序执行状态的一个瞬态图,使程序在必要时可以在同一 点上重新开始执行。当r m s 环境的一部分出现故障时,正在运行的程序可以从 中间某点重新开始,而不需要从头开始。 f 3 1 搜寻空闲周期:一般说来,工作站有7 0 至9 0 的时间是空闲的。r m s 系统可以使用空闲的c p u 周期。例如,作业可以在晚上或周末提交给工作站。 f 4 1 容错:通过管理作业和资源,r m s 系统可以提供不同层次的容错。简单 地说,容错支持使发生故障的作业可以再启动,从而保证了作业的正确完成。 减少用户的干预:r m s 系统试图通过降低作业的本地调度优先级或将作业 第二章集群体系结构及集群进程问通信 挂起将交互用户的干预减到最小。挂起的作业可以在以后重新启动或迁移到别的 系统资源上运行。 f 5 1 负载平衡:在一个特定的结构中作业可以分布在所有可用的计算平台上。 这使资源得以有效利用,而不是让用户只使用其中一部分。进程迁移也是负载平 衡策略的一部分。 ( 6 ) 多应用程序队列:作业队列可以用来在特定结构中协助管理资源。每一 队列可以配置一定的属性。例如,某些小作业的优先级可能高于大作业。r m s 系 统的队列可以对用户透明。 广东工业大学工学硕士学位论文 第三章并行计算理论 3 1 并行编程概念 3 1 1 并行编程模式的主要类型 并行编程模式主要有如下的三种类型: ( 1 ) 主从模式( m 嬲t e r - s l a v c ) :有一个主进程,其它为从进程。在这种模式中, 主进程一般负责整个并行程序的数据控制,从进程负责对数据的处理和计算任务, 当然,主进程也可以参与对数据的处理和计算。一般情况下,从进程之间不发生 数据交换,数据的交换过程是通过主进程来完成的【2 1 1 。 ( 2 ) 对称模式( s p m d ) :在这种编程模式中,没有哪个进程是主进程,每个进 程的地位是相同的。然而,在并行实现过程中,我们总是要在这些进程中选择一 个进行输入输出的进程,它扮演的角色和主进程类似。 ( 3 ) 多程序模式( m p m d ) :在每个处理机上执行的程序可能是不同的,在某些 处理机上可能执行相同的程序。 3 1 2 并行程序如何执行 并行程序和串行程序没有很大的差别,是为了实现并行算法在并行计算机上 的执行。主要包括三个部分: ( 1 ) 进入并行环境:这部分是要让系统知道此程序是并行程序,启动并行计 算环境。在这个过程中,产生并行程序所需要的各种环境变量。 ( 2 ) 主体并行任务:这是并行程序的实质部分,所有需要并行来完成的任务 都在这里进行。在这个部分中,实现并行算法在并行计算机上的执行过程。 ( 3 ) 退出并行环境:通知并行计算系统,从这里开始,不再使用并行计算环 境。一般来说,只要退出并行计算环境,意味着将结束程序的运行f 2 2 l 【2 3 】。 3 1 3 并行程序实

温馨提示

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

评论

0/150

提交评论