已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 在工程应用领域存在着许多计算量庞大的问题,如力学计算等。这些计算问题的程序有许多 是用f o r t r m 语言编写的,并且在串行计算模式下单机运行,其正确性已得到时间的验证,但其 计算性能一般并不高。因此,如何提高这些应用程序的性能是目前的一个研究热点- 随着计算机技术的不断发展,高性价比计算机的出现和高速网络的迅速发展,并行计算机开 始出现并投入使用。尤其近年来p c 集群技术的发展更加推动了并行计算的广泛应用。因此,并 行处理技术也开始应用于工程计算的研究领域,为解决工程计算中的大规模计算问题提供了一种 有效的途径和方法。 本论文以研究离散元计算并行化的方法为目标,深入分析了f o r t r a n 语言编写的离散元计算 程序的特点,根据f o r t r a n 语言的特点和并行化的要求,试图在集群环境下用c 语言和f o r t r a n 语 言的混合编程实现并行计算。 本文解决的两个主要问题是:c 语言和f o r t r a n 语言之间的相互调用和通信问题;混合编程 的并行计算实现方法问题。 通过研究和实例测试,初步实现了集群环境下的离散元并行计算。 关键词:p c 集群,并行计算,混合编程,共享内存 a b s t r a c t t h e a l el a r g en u m b e r so fc o m p u t a t i o np r o b l e m si ne n g i n e e r i n ga p p l i c a t i o n ,f o re x a m p l e , m e c h a 】1 i c sc o m p u t a t i o n f o r t r a nl a n g u a g ei su s e dt oc o m p i l em a n yo fp r o g r a m sf o rt h e s ec o m p u t a u o n p r o b l e m s t h a tr u no no n l yo n ep c t h o u g ht h ep r o g r a m sa r ev a l i d a t e dr i g h t a st h et i m eg o 。5o n , c o m p u t m i o up e r f o r m a n c e sa l ec o m m o n l yh i g h t h e r e f o r e ,h o w t oi n c r e a s et h ep c r f o r m a n c e so ft h e s 。 p r o g r a m sh a sb e c o m eas t u d yh o t s p o tn o w a d a y s w i t ht h ec o n t i n u i n gd e v e l o p m e n to fc o m p u t i n gt e c h n o l o g y , t h er a p i de m e r g e n c e o f h i 叠h - p e d o r m a n c e c o g te f f i c i e n tc o m p u t e r sa n dh i g h - s p e e dn e t w o r k , t h ep a r a l l e lc o m p u t e r sa r ep r o d u c e d a n dp u ti n t op r a c t i c a lu s e e s p e c i a l l y , p a r a l l e lc o m p u t i n gi sb e i n gw i d e l yu s e di nv a r i o u s l yd i f f e r e n t f i e i d sw i t ht h ed e v e l o p m e n to fc l u s t e ro fp c s t h e r e f o r e ,t h ep a r a l l e lp r o c e s s i n gi si n t r o d u c e di n t ot h e e n g i n e e r i n gc o m p u t a t i o n i tp r o v i d e sa ne f f i c i e n tm e t h o d t os o l v et h ep r o b l e m so fl a r g en u m b e r so f c o m p u t a t i o n i nt h i st h e s i s ,t h em e t h o d so fp a r a l l e lc o m p u t i n gi nd i s c r e t ee l e m e n ta t eo b j e c t so fs t u d y t h e c h a r a c t e r i s t i co fd i s c r e t ee l e m e n tp r o g r a mw i t hf o r t r a nl a n g u a g ea r ea n a l y z e dd e e p l y a c c o r d i n gt h e c h a r a c t e r i s t i co ff o x t t a nl a n g u a g ea n dt h et e q u i t e m e n to fp “a l l e lc o m p u t i n g ,m i x e dp r o g r a m m i n g o fc l a n g u a g ea n df o r t r a nl a n g u a g ei st r i e dt ou s e di np a r a l l e lc o m p u t i n g b a s e do nc l u s t e r t h e n ,t w op r o b l e m sh a v eb e e ns o l v e d t h eo n ei st h et r a n s f e r r i n ga n dt h ec o m m u n i c a t i o nb e t w e e n t h et w ol a n g u a g e s t h eo t h e ri st h er e a l i z a t i o nw a yo f p a r a l l e lc o m p u t i n gi nm i x e dp r o g r a m m i n g - b a s e do nt h et h e o r e t i cr e s e a r c ha n dt h ee x p e r i m e n t a lr e s u l t s ,p a r a l l e lc o m p u t i n gi nd i s c r e t e e l e m e n tb a s e do nc l u s t e ri sr e a l i z e de l e m e n t a r i l y k e y w o r d s :c l u s t e ro fp c s ,p a r a l l e lc o m p u t i n g ,m i x e dp r o g r a m m i n g ,s h a r e dm e m o r y l 】 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得中国农业大学或其它教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示了谢意。 研究生签名:同镌时间:。幻。年月f 严日 关于论文使用授权的说明 本人完全了解中国农业大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件和磁盘,允许论文被查阅和借阅,可以采用影印、缩印或扫描等复 制手段保存、汇编学位论文。同意中国农业大学可以用不同方式在不同媒体上发表、 传播学位论文的全部或部分内容。 ( 保密的学位论文在解密后应遵守此协议) 时间:痧6 缉月乒日 时间:私年月场日 弘厕“ 中国农业大学硕士学位论文 第一章绪论 第一章绪论 1 1 问题的提出及研究目的 1 1 1 问题的提出 目前,在某些领域积累了大量用f o r t r a n 语言编写的程序或软件包。如力学方面。同其他语 言相比,f o r t r a n 语言在数值计算方面具有明显的优势,例如,书写和语法要求严格,适合严谨的 科学计算领域以及可直接对数组和复数进行运算等。此外。f o r t r a n 语言已经有5 0 多年的发展历 史,在很多科学计算领域都积累了大量成功的程序,加之其语言标准的历次修改都尽量保持向下 兼容,使得前人编写的许多f o r t r a n 程序可以不改动或是很小的改动就可以继续在新的系统中应 用。这些用f o r t r a n 语言编写的程序经过长期的实际应用,其正确性和可靠性已得到验证,因此 仍然有很大的使用价值。由于这些应用程序不论其自身规模还是所处理问题的规模都比较大,自 身程序系统比较复杂,并且运行都是在单机上进行的。因此,程序的使用性能一般都很低,尤其 是处理大规模问题时,例如离散元计算、有限元计算等。由于f o r t r a n 语言是一种面向过程的程 序设计语言,主要用于科学计算,现在已经不是主流程序设计语言,其在图形处理、人机交互以 及系统功能调用等方面优势不太,甚至没有明显的优势。因此,用f o r t r a n 语言改善或提高这方 面的性能困难比较大。 并行计算是目前处理大规模问题比较有效的办法。但对于现有用f o r t r a n 语言编写的应用程 序如何实现并行计算则是需要解决的问题。因此结合上述对实际科研课题工作中遇到的问题,我 们思考了一些相应的解决办法。 ( 1 ) 重新编写程序 重新编写程序实现并行计算是最彻底的解决办法好处是显而易见的。但对于现有应用程序 来说,所有源程序将作废,这不仅浪费,而且新编一个大型应用程序的难度和费用是相当高的, 时间耗费也很长其正确性和可靠性也需要一定的时间和实际应用才能得到验证。 ( 2 ) 将现有程序移植 移植程序可以沿用原有程序的设计思想,但要移植规模比较大的程序是很困难的,尤其是在 原有程序文档缺乏的情况下移植更是非常困难。此外,移植后程序的正确性和可靠性也很难得到 保证,移植的成本也比较高。 ( 3 ) 混合编程 混合编程的思想是在原有程序核心模块不改变的情况下,采用目前主流编程语言与原有程序 语言进行混合编程,实现并行计算。这种方法既可以利用主流编程语言在系统功能调用、图形处 理等方面的优势,又可以充分利用原有程序已经实现的应用功能程序,既节省时间,其正确性和 可靠性也比较容易得到保证。 实现并行计算的混合编程需要解决两个问题一是语言之间的调用和通信问题,二是混合编 程的并行计算实现方法问题。 本研究结合实际科研课题工作中遇到的问题提出相关的解决思路,并专注致力于用办法( 3 ) 中 的思路解决本课题中所遇到的问题。 1 1 2 研究的目的 人类对计算机性能的要求是永无止境的。虽然计算机技术日新月异,但是仍然满足不了大规 模科学计算问题的需求。并行计算的发展提高了求解复杂的大规模科学计算问题的能力。本文以 集群系统研究和并行混合编程算法设计为核心,以推广弗行混合编程方法为应用目标。主要工作 可以概括为以下几个方面: ( 1 ) 研究集群系统的相关问题自行搭建本研究中所希望的集群计算环境 ( 2 ) 研究m p i 的使用方法,对f o r t r a n 语言编写的离散元源串行程序并行化; ( 3 ) 研究c 及f o r t r a n 语言的混合编程的方法,并应用到并行计算的编程方法中。 1 2 集群的产生、发展现状、及前景展望 早在2 0 世纪6 0 年代,i b m 公司就提出了集群计算系统,其基本思想是将大型计算机连接 起来,提供成本合理的商业化并行计算系统,以满足各个领域并行计算的需要。但是,由于当时 各种技术的限制( 主要是软硬件成本较高) 。这种思想很难商业化。直到2 0 世纪8 0 年代。随着 高性能低价位微处理器、高速网络和高性能分布式计算标准工具的出现与普及,集群计算系统获 得了快速发展的物质基础。起初,人们为了获得高性能的计算系统,一方面不断增加处理器的运 算速度、内存和磁盘的存储容量,另一方面将多个处理起连接起来,使用它们联合在一起的计算 能力,这就是并行超级计算机。这种技术受到成本和制造工艺的限制,其系统的灵活性及可发展 空间很小,从而导致了并行计算从传统的专用超级计算机平台向着廉价而通用、松耦台、由单一 或多个处理器的p c 机或工作站构成的集群系统的方向发展,这是集群计算系统得以快速发展的 社会背景。在2 0 世纪9 0 年代以后相继产生了b e o w u l f 、b e r k e l e yn o w 、h p v m 、s o l a f i sm c 四 大集群环境。集群计算机在科学计算、工程计算、图象分析与处理、生命科学、金融服务、制造 业以及商业界等领域得到了广泛的应用。b e o w u l f 是基于l i n u x 和g r e n d e l 系统软件工具包之上的 2 中国农业大学硕士学位论文第一章结论 p c 机集群,采用t c p i p 多个以太网完成节点间信息交换,主要特点是能够构造“最佳”性能价 格比的集群系统。b e r k e l e yn o w 是基于s o l a r i s ( 分布式操作系统) 、g l m u x 和x f s ( 无服务器网 络文件系统) 之上的工作站集群,节点间利用m y r i n e t 网络和活动消息进行信息传递,其主要特 点是用大量生产的商品化工作站和最先进的基于开关网络部件构造大型并行计算系统。h p v m ( 高性能虚拟机) 是基于w i n d o w sn t 、l i n u x 和l s f ( 负责分配器负责资源管理) 之上的 p c 集群,采用快速消息的m y r i n e t 网络进行节点间的数据交换,主要特点是采用高带宽低延时的 通信协议f m ( 快速消息) 。s o l a r i sm c 是基于s o l a r s 和全局层操作系统之上的p c 机或工作站集 群,用高速网络将计算节点连接起来,使用面向对象的框架在节点间进行通信,支持多个或多样 网络相互连接m 。 现今,高性能计算领域的发展趋势之一是利用集群系统来创建、调试、运行并行计算任务, 替代专用、并行计算机平台。并行应用的许多工具和命令的标准化是使集群系统进入现实应用的 一个重要因素,这些标准的范例包括消息传递库m p i 和数据并行语言h p f 。标准化使得应用程 序可以在n o w ( 集群、工作站网络) 上改进、测试甚至运行,只需要进行很少改动就可以被移 植到专用的对c p u 运行时间进行统计和计费的并行平台上。 现在,几乎所有的主要计算机生产厂商都宣称它们已推出自己的集群产品,像i b m 的s p 2 , s g i 的p o w e rc h a l l e n g ea r r a y ,m i c r o s o f t 的w o l c p a c k ,d e c 的m a u s t e r s ,s u n 的s p a r c c l u s t e r1 0 0 0 2 0 0 0 p d b 和戴尔公司的布法罗集群系统等。此外,集群也成为各大学和科研院所研 究课题的热点,如b e r k a l e y 的n o w 项目;清华大学高性能计算研究所研制成功了清华高性能集 群计算机系统p 3 x e o n 7 0 0 m h z ( 3 6 x 4 ) m y i i n e t ;中国科技大学天体物理中心自行组装用于科学 计算和天体物理模拟的p i v - 6 4c o m ac l u s t e rp 41 , 5 g l l zf a s te t h ;国家并行计算机工程技术中心 研制成功、并已安装在中科院上海药物所用于药物设计的神威“新世纪一3 2 a ”集群。 m a n n h e i m 大学和t e n n e s s e e 大学每年两次发表世界t o p 5 0 0 高性能计算机排名信息,截止 2 0 0 5 年1 1 月为止,已经进行了2 6 次统计排名,反映了1 9 9 3 年以来高性能计算机的性能发展趋 势与方向。t o p 5 0 0 的性能发展趋势如图1 1 所示。 图1 1 t o p s 0 0 的性能发展趋势图 3 中国农业大学硕士学位论文 第一罩绪论 至2 0 0 5 年1 1 月的第2 6 次排名中,在全球超级计算机的排名t o p 5 0 0 中( h t t p : w w w t o p 5 0 0 o r g ) ,集群系统已增至3 6 0 个,比2 0 0 4 年1 1 月第”次排名的2 9 4 个激增5 6 个, 占5 0 0 强的7 2 ,而1 9 9 3 年六月第一次排名中集群系统仅有3 个。可以预见,今后t o p 5 0 0 中 集群将占有越来越多的席位。在t o p 5 0 0 高性能计算机中,集群系统所占的比例在逐渐增大,这 主要得益于集群系统较低的硬件、软件费用和集群稳定性的提高。一些商业公司正在开发新一代 的l i n u x 集群,这类集群将能够大大提高一些半专用计算系统的性能价格比。 我国的高性能计算机事业高速发展,根据晟新的排名,在前1 0 0 名中,中国有三台高性能计 算机入围,排名最高的是位于中国气象局在2 0 0 5 年安装的由i b m 公司制造的e s e r v e r p s c f i e s 6 5 5 ( 1 7g h zp o w e r 4 + ) ,处理器数3 2 0 0 颗,实测运算速度为1 0 3 1 0 g f l o p s 峰值运算速度 2 1 7 6 0 g f l o p s ,排名第2 6 位。特别值得一提的还有,中国上海超级计算中心的“曙光4 0 0 0 a ”名 列第4 2 位,该系统就是n o w 集群计算系统,实测运算速度为8 0 6 1 g f l o p s ,峰值运算速度为 1 1 2 6 4g f l o p s ,采用了2 5 6 0 颗a m d 的处理器,在中国自主研制的超级计算机中排名最高。 值得注意的是,l i n u x 操作系统已经成为高性能计算机中使用得最多的操作系统,有统计资 料表明:t o p 5 0 0 高性能计算机中有大约7 4 2 的系统采用了l i n u x ,这主要得益于l i n u x 是开源 系统,用户不仅不用付费,而且可以按照自己的意愿对l i n u x 进行改造以满足系统的特殊需求。 分析集群系统现在的发展趋势,集群计算已经成为并行计算的主流。随着网络技术的发展和 对集群计算研究的深入,特别是高效通信机制的开发,并行编程环境和工具更加完善,集群计算 有望解决粒度更细的应用问题,使其应用领域更加广泛。 1 - 3 离散元和有限元并行化的现状调查结果 ( 1 ) s w a n s e a 大学o w e n 组已经实现了对离散元和有限元的部分并行化。 ( 2 ) 澳大利亚的a b y u 研究组已经实现了对离散元的并行化。 ( 3 ) 澳大利亚的c l e a r ) , 公司已经实现了对离散元的并行化。 ( 4 ) 国内并行有限元程序自动生成系统p f e p g 。 1 4 课题研究成果 本文对基于m p i 和l i n u x 的集群系统的构建方法及其应用在其上的c 语言和f o r t r a n 语言的 混合编程方法进行了深入的研究和探讨。通过对“p c 集群+ u n u x 系统+ c 语言和f o r t r a n 语言混 合编程”环境的构建和应用,取得了以下主要成果。 ( 1 ) 建立基于m p i 和l _ i n u x 的集群系统。系统是在l i n u x ,m p i c h 等免费软件的平台上,利用 p c 机和局域网资源构建而成的,以最小成本实现了高性能并行计算机;系统能实现基于m p l 的 并行程序的运行,能完成单个节点机不能实现的高性能计算:对后面的并行混合编程系统的实现 提供了必要的物质基础。 4 中国农业大学硕士学位论文 第一章绪论 ( 2 ) 本集群混合编程系统所有节点机在不进行并行计算时,均可单独作为个人用户计算机使 用,灵活性强,节点机可达到最大利用率。 ( 3 ) 对l i n u x 系统下的c 语言和f o r t r a n 语言的混合编程进行了比较深入的研究,探索性的找 到了这两种语言混合编程的普遍性的规律。 ( 4 ) 通过研究找到了一种l i d u x 系统下c 语言和f o r t r a n 语言的混合编程的并行计算方法。 ( 5 ) 分析和设计了一种从一个进程启动另外一组m p i 进程,并且通过共享内存的方式实现进程 问通信的方法。 ( 6 ) 在基于“集群+ l i n u x 系统+ c 语言和f o r t r a n 言混合编程环境上成功实现了对原有f o r l r a n 语言编写的离散元串行程序的部分并行化。 5 中国农业大学硕士学位论文 第二章集群系统与炉i 2 1 集群系统 第二章集群系统与m p i 2 1 1 集群计算机及其体系结构 集群技术是随着科学技术的发展和社会应用需求的发展而发展起来的。在历经了电子管计算 机时代、晶体管计算机时代、集成电路计算机时代、大规模和极大规模集成电路计算机时代的发 展,进入了超大规模集成电路计算机时代的今天,计算机集群技术也旦益成熟起来。 简单地说,集群系统就是由一组通过网络互连的独立计算机构成的、全部计算资源可一体化 的并行或分布式系统。计算机集群技术就是将若干台p c 机( 或工作站、服务器等) 通过互连网 络连接在一起,使其像一台计算机一样工作,从而获得接近于或超过超级并行计算机的计算和处 理能力的技术。计算机集群技术简称集群技术或群机技术,英文为c l u s t e r i n gt e c h n o l o g y ,其系 统对应地称为集群系统或群机系统。 对于用户和应用程序来说集群系统就像一个单一的系统,可以提供一种高性价比,高性能或 高可靠性的解决方法。这些相互独立的计算机就是集群的节点。集群能在同一时间内执行多条指 令或处理多个数据,它是并行计算的物理载体。计算机节点可以是一个单处理器或多处理器的系 统,如p c 机、工作站、服务器或s m p ,它们可以拥有各自的内存、f o 设备和操作系统。典型 的集群系统的结构如图2 1 所示b l 。 隆藕蔫睡麓辫黔蓦黧篙 茸 鬈| i - :i 零擎礴辫蠹 i ji j i i i 二鏊罄爨黧i 骥i ; 葚嚣 j 一篓- 鳓鲮螺盼警i 酾滠嘲嘲瓣饕戤纛j ; 南南南南蘸i 篡慧奠3 l奠h 、 图2 1 集群系统的结构 6 中国农业大学硕士学位论文第二章集群系统与m p i 以下是集群计算机的一些重要部件。 ( 1 ) 多个高性能计算机( p c 、工作站或s m p ) ( 2 ) 优秀的操作系统 ( 3 ) 高性能网络( 如千兆以太网或m y r i n c t ) ; ( 4 ) 网络接口卡( n i c ) ( 5 ) 快速通信协议和服务; ( 6 ) 集群中间件 ( 7 ) 并行编程环境和工具( 如编译器、p v m 和m p i ) ( 8 ) 应用程序。 网络接口硬件负责在节点间通过网络传送和接收数据包。通信软件提供了快速而可靠的节点 问以及与外界数据通信的手段。集群通常使用网络通信协议在其节点间进行快速通信。集群各节 点可以像集成的计算资源一样共同工作,而集群中间件主要负责为独立并且互联的计算机对外提 供统一的系统映象和易用性。编程环境可以为应用程序的开发提供可移植的、有效和易用的工具。 编程环境包括消息传递库、调试器和剖视器( p r o f i l e r ) i 一。 2 1 2 集群的分类 集群技术使用户可以用较低的成本构建自己的集群计算系统,以改进他们的计算处理能力, 并提供可扩展性使计算能力得到增强。由于软件的可扩展性支持,应用程序的性能也得到了提高。 集群技术的另一个好处是集群故障恢复能力,这使得备份计算机得以将属于同一集群系统内的故 障计算机上执行的任务接管过来t 1 。 基于不同的因素,集群可有以下几种分类方式 ( 1 ) 根据集群系统应用目的的不同,可以分为高可用性集群、负载均衡集群和高性能集群。 高可用性集群 高可用性集群的主要功能就是提供不问断的服务。有许多应用程序都必须一天二十四小时的 不停运转,如所有的w e b 服务器、工业控制器、a r m 、远程通讯转接器、医学与军事监测仪以 及股票处理机等a 对于这些应用程序而言,暂时的停机都会导致数据的丢失和灾难性的后果。高 7 中国农业大学硕士学位论文第二章集群系统与咿i 可用性集群的设计思想就是要最大限度的减少服务中断时间。 负载均衡集群 负载均衡集群追求的不是高速的计算能力,而是快速的事务( t r a n s a c t i o n ) 处理和响应能力。 该类集群系统能够将大量的访问请求均衡的分配到集群系统的各个节点,使得系统的效率达到最 高,适合于有大量数据请求的应用类型。负载均衡集群对系统的高可用性、高扩展性有较高的要 求。这种集群系统是随着i n t e r n e t 的发展和网络负荷增加而产生的。负载均衡集群往往也具有一 定的高可用性特点。 高性能集群 高性能集群也被称为超级计算集群按照计算关联程度的不同,又可以分为两种。一种是任 务片方式,集群系统先将计算任务分成任务片,再把任务片分配给各个节点,在各节点上分别计 算后再进行结果汇总,生成最终计算结果。另一种是并行计算方式,节点之间在计算过程中大量 的交换数据,可以进行具有强耦合关系的计算。这两种超级计算集群分别适用于不同类型的数据 处理工作。有了超级计算集群软件,企业利用若干台p c 机就可以完成通常只有超级计算机才能 完成的计算任务。通过将多台机器连接起来同时处理复杂的计算问题。模拟星球附近的磁场、预 测龙卷风的出现、定位石油资源的储藏等情况都需要对大量的数据进行处理。传统的处理方法是 使用超级计算机来完成计算工作,但是超级计算机的价格比较昂贵,而且可用性和扩展性不够强, 因此高性能集群系统成为了高性能计算领域的新焦点。 ( 2 ) 根据集群系统的打包形式的不同,可以分为紧密集群和松弛集群。 紧密( c o m p a c t ) 集群 组成集群系统的全部节点机紧密排列于一个或几个机架内( 由集群规模决定) ,计算节点一 般为“无头”节点机,整个集群系统通过一套连接于控制节点的显示器、键盘、鼠标进行控制。 紧密集群具有高带宽、低延迟的通信。侧重于高性能或高有效性的集群一般采用这种形式。 松弛( s l a c k ) 集群 组成集群系统的节点机可以散布在一个或多个房间内,甚至很远的距离,一般通过局域网或 广域网连接,每个节点是一台完整的计算机( 即都有显示器、键盘、鼠标等外设) 。部门级以上 的集群大多属于这种情形。 ( 3 ) 根据集群系统节点归属的不同,归属于个人或只作为集群的节点,分为专用集群和非专用 集群。 专用集群 非专用集群 8 中国农业大学硕士学位论文第二章集群系统与m p i 这两者的区别在于集群节点的归属。在专用集群中,特定个体并不拥有工作站,资源是共享 的,所以并行计算可以在整个集群上执行。而非专用集群是指个人拥有工作站+ 应用程序是靠利 用空闲c p u 周期来执行的。这种在非专用的动态变化的集群上运行的并行计算叫做自适应并行 计算。 ( 4 ) 根据集群系统节点硬件的不同,分为p c 集群、工作站集群、服务器集群和s m p 集群。 p c 集群( c o p :c l u s t e r o f p c s ) 工作站集群( c o w :c l u s t e r o f w o r k s t a t i o n ) 服务器集群( c o s :c l u s t e ro fs e r v e r s ) s 集群( c u j m p :c l u s t e ro f s 位) ( 5 ) 根据集群系统节点操作系统的不同,分为l i n u x 集群、w i n d o w s 集群、s o l a r i s 集群、a i x 集群。 l i n u x 集群( 如b e o w u l f ) s o l a r i s 集群( 例如,b e k e l e yn o w ) w i n d o w s 集群( 例如,h p v m ) a i x 集群( 例如m m s p 2 ) ( 6 ) 根据集群系统节点构成的不同,主要指节点的体系结构和运行的操作系统类型的不同分为 同构集群和异构集群。 同构集群:所有的节点有相同的结构,运行相同的操作系统。 异构集群:所有的节点并不拥有相同的结构,运行不同的操作系统。 ( 7 ) 根据节点间通信的安全性,集群系统可以分为暴露集群和封闭集群。 暴露( e x p o s e d ) 集群 节点间一般通过标准通信协议连接,节点间通信对外部世界可见,集群外的计算机可以访问 其内部节点- 这种集群实现较容易,但不安全。如果通信子系统不能保证私有性和安全性,则节 点间通信很不安全,也可能不可预测地被外部通信所中断。 封闭( e n c l o s e d ) 集群 通过精简协议或专有协议互连,节点间通信与外部世界隔离,节点问通信对外部世界不可见。 隔离也可以通过控制节点实现。 总之,集群系统可以以各种形式和规模存在,上述分类是从不同角度对集群系统进行的划分, 用来加深对它的理解和认识。 9 2 1 3 集群系统的主要优点 集群系统是现在并行方法中应用最广泛的系统,它将一些工作站或p c 机通过互连网络连接 起来,利用各节点的资源( 如c p u 、内存、硬盘及0 设备等) 形成一个松耦合的并行系统。集 群系统主要有以下优点m 。 ( 1 ) 投资风险小:用户在购置传统巨型机或m p p 系统时,总是担心使用效率不高和性能发挥 得不好,如果购置后在一定程度上确实出现此问题,就相当于搁置或浪费了大批资金,但集群系 统不存在此问题,因为每台高性能的工作站仍可独立使用,故而在较长时期内不会浪费资金; ( 2 ) 编程方便:用户无需学习新的并行程序设计语言( 如并行c 、并行c + + 、并行f o r t r a n 等) , 只要利用所提供的并行程序设计环境,在常规c ,c + + 和f o r t r a n 等程序中相应的地方插入少量的 几条原语,即可使这些程序在集群系统上以并发方式运行,这一点是最受用户欢迎的; ( 3 ) 系统结构灵活:用户将不同性能的工作站使用不同的体系结构和互连网络构成同构或异构 的工作站集群系统,从而可弥补单一体系结构适应面窄的弱点。可更充分地满足各类应用要求; ( 4 ) 性能,价格比高:一般一台巨型机或i v i p p 都很昂贵( 费用常以几百万元、几千万元计) ,而 台高性能工作站相对便宜( 费用仅以几千元或几万元计) ,一个集群系统从浮点运算能力来看 虽然每台工作站只有几m f l o p s 到几十m f l o p s ,但一群工作站的总体运算性能可高达g f l o p s 的量 级,已接近或达到一些巨型机的性能,但价格却低了很多; ( 5 ) 能充分利用分散的计算资源:当个人工作站处于空闲状态时,集群可在空闲时间内给这些 工作站加载并行计算任务,从而工作站资源可得到充分利用; ( 6 ) 可扩放性好:用户可根据需要增加工作站的数目,以高带宽和低延迟的网络技术支持获得 高的加速比,从而具有更高的扩展性。 2 1 4 国外典型的集群系统 在讨论集群系统时,很多入马上会想到b e o w u l f 。实际上随着集群技术的发展,产生了很多 有别于b e o w u l f 集群的集群衍生物,c o w 和m o s i x 就是另两类著名的集群系统m 。 ( 1 ) b e o w u l f 集群 1 9 9 4 年夏季,t h o m a s s t e r l i n g 和d o n b e c k e t ;葩c e s d i s ( t h ec e n t e r o f e x c e l l e n c e i n s p a c e d a t a a n di n f o r m a t i o ns c i e n c e s ) 用1 6 个节点和以太网组成了一个计算机集群系统,并将这个系统命名 为b e o w u l f 集群系统。该集群系统提供了一种使用c o t s ( c o m m o d i t yo ft h es h e l f ) 硬件构造集群 系统以满足特殊的计算需求的方法。这里的c o t s 是指像p c 机和以太网这种广为应用的标准设 1 0 备。它们通常可以由多家厂商提供,所以通常有很高的性价比。集群并行系统的这种构建方法很 快从n a s a 传遍了整个科研机构和社团,此后很多集群都采用b e o w u l f 类似的构架。 采用b e o w u i f 的系统结构使得多个计算机组成的系统能够用于并行计算。系统通常有个管 理节点和多个计算节点构成。它们通过以太网( 或其他网络) 连接。管理节点监控计算节点,通 常也是计算节点的网关和控制终端。当然它通常也是集群系统文件服务器。在大型的集群系统中, 由于特殊的需求,这些管理节点的功能也可能由多个节点分摊。通常由最常见的硬件设备组成, 例如,以太网卡和以太网交换机。b e o w u l f 系统很少包含用户定制的特殊设备。采用那些廉价并 且广为传播的软件,例如,l i u u x 操作系统、并行虚拟机和消息传递接口( m p i ) 。 ( 2 ) c o w 集群 和b e o w u l f 一样,c o w ( c l u s t e ro fw o r k s t a t i o n ) 也是由最常见的硬件设备和软件系统搭建 而成。通常也是由一个控制节点和多个计算节点构成。c o w 和b e o w u l f 的主要区别在于:c o w 中的计算节点主要都是闲置的计算资源,如办公室中的桌面工作站,他们就是普通的p c 机,采 用普通的局域网进行连接。因为这些计算节点白天会作为工作站傻用,所以主要的集群计算发生 在晚上和周末等空闲时间。而b e o w u l f 中的计算节点都是专职于并行计算,并且进行了性能优化。 它们采用高速网络( m y r i n e t 或g i g a n e t ) 上的消息传递( p v m 或m p i ) 进行进程间通信。因为 c o w 中的计算节点主要的目的是桌面应用,所以它们都具有显示器、键盘和鼠标等外设。而 b e o w u l f 的计算节点通常没有这些外设,对于这些计算节点的访问通常是在管理节点上通过网络 或串口线实现的。 ( 3 ) m o s i x 集群 m o s i x 是由希伯来大学开发的一个集群的中间件。和b e o w u l f 等其他集群相比,m o s i x 集群 是一种非常特别的集群,它致力于在l i n u x 系统上实现集群系统的单一系统映象s s i ( s i n g l e s y s t e mi m a g e ) 。m o s i x 集群将网络上运行l i n u x 的计算机连接成一个集群系统。系统自动均衡节 点间的负载,通过对l i n u x 内核的改进,m o s i x 系统保持了原有的l i n u x 接口和机制,通常用户 很少会注意到l i n u x 和m o s i x 的差别。因为m o s i x 是在l i n u x 系统内核中实现的集群,所以用户 态的应用程序不需要任何修改就可以在m o s i x 集群上运行。对于他们来说,m o s i x 集群就是运行 “n u x 的一台p c 机。 m o s i x 系统具有易用性和透明性、实现动态负载平衡、最大的全面性能、分布式控制和高度 的可伸缩性、d f s a ( d i r e c tf i l es y s t e ma c c e s s ) 支持等新特性。尽管现在存在着不少的问题。 m o s i x 始终是引人注目的集群系统。 中国农业大学硕士学位论文 第二章集群系统与m p i 2 2 m p i 简介 2 2 1 什么是m p i m p i 是一种消息传递型并行通信的程序设计规程,也就是个消息传递库,库函数可以嵌在 c ,c + + 和f o r t f a n 等语言中调用,即在标准的程序设计语言的基础上,加入实现进程间通信的 m p i 消息传递函数,就构成了m p i 并行程序设计所依赖的并行编程环境。对m p i 的定义需要重 点理解以下三个方面的阐述。 ( 1 ) m p i 是一个库,不是一种语言。m p i 库可以被f o r t r a n 7 7 、c 、f o r t r a n 9 0 和c + + 调用,从语 法上说,它遵守所有对库函数和过程的调用规则,与一般函数和过程没有什么区别。 ( 2 ) m p i 是一种标准或规范的代表,而并不特指某一个对它的具体实现。迄今为止,所有的并 行计算机制造商都提供对m p i 的支持,可以在网上免费得到m p i 在不同并行计算机上的实现。 一个正确的m p i 程序,可以不加修改地在所有并行系统上运行。 ( 3 ) m p i 是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准。 m p i 的标准化开始于1 9 9 2 年4 月2 9 日至3 0 日在威吉尼亚的威廉姆斯堡召开的分布式存储 环境中消息传递标准的讨论会,由d o n g a r r a ,h e m p e l ,h e y 和w a l k e r 建议的初始草案于1 9 9 2 年 1 1 月推出,并在1 9 9 3 年2 月完成了修订版,这就是m p l l 0 。为了促进m p i 的发展,一个称为 m p i 论坛的非官方组织应运而生,该论坛对m p i 的发展起到了重要的作用【l i 。 1 9 9 5 年6 月推出了m p i 的新版本m p l l 1 ,对m p i 作了进一步的修改、完善和扩充。但是当 初推出m p i 标准时,为了能够使它尽快实现和接受,许多重要但实现起来比较复杂的功能都没有 定义,比如并行f o 。随着m p i 的广泛接受,扩充并提高m p i 功能的要求就越来越迫切了。于是 在1 9 9 7 年7 月又推出了m p i 的扩充部分m p i 2 ,而把原来的m p l 各种版本称为m p i 1 。m p i - 2 的扩充很多,但主要有三个方面:并行f o ,远程存储访问和动态进程管理。 m p i 建立了一个实用的、可移植的、有效的和灵活的标准,已经成为国际上应用最广泛和最 稳定的并行程序设计平台。几乎所有并行计算环境( 共享和分布式存储并行机、m p p 和集群系统 等) 和流行的多进程操作系统( u n i x ,w i n d o w sn t 和l i n u x ) 都支持,m p i 应用程序因而具有 良好的可移植性a 传递消息可以是指令、数据、同步信号或中断信号等。并行编程主要通过调用 消息传递库m p i 函数进行。这些函数实现了多处理机间的数据交换,提供了并行任务间的同步和 收,发数据的接口目。 中国农业太学硕士学位论文 第二章集群系统与m p i 构成m p i 程序的任何主程序和子程序中,只要调用了m p i 函数,则该程序必须包含m p i 系 统头文件“m p i h ”( c ,f o r t r a n 和c + + 类似) ,这些文件包含了m p i 程序编译所必需的m p i 系统 预先定义的常数、宏、数据类型和函数类型等。m p i 系统提供给f o r t r a n 7 7 ,c 和c + + 语言的是一 个标准消息传递函数库。用户通过调用该库中的函数,可组织各进程间的数据交换和同步通信。 这些函数分为七类:点对点通信函数、用户自定义数据类型函数、聚台通信函数、通信器函数、 进程拓扑结构函数、并行i o 函数和m p l 环境管理函数。图2 2 给出了m p i 并行程序设计函数调 用的流程图。 图2 2m p i 并行程序设计流程 图2 2 表明,在所有m p l 函数中,函数m p ii n i t 必须首先调用,且只能调用一次,它的作用 是初始化执行m p i 程序的各个进程,使之进入m p i 运行环境状态。之后,各个进程便可以调用 m p i 系统提供的其它任意函数。同时,各个进程在结束前,必须调用函数m p l _ f i n a l i z e 来通知 m p i 系统,表明该进程将退出m p i 系统,这两个函数,再加上m p i 系统提供的其他辅助函数, 例如获取程序运行时间、查询进程所属处理机的名称和处理m p i 错误等,构成了m p i 系统的环 境管理函数库。 2 2 2m p i 的优点 m p l 是个基于接口函数的库,m p i 一1 共有上百个函数调用接口,在f o r t r a n 7 7 和c 语言中可 以直接调用。m p i - 2 有扩充了对f o r t r a n g o 和c + + 语言的支持,提供了四种不同的接口,为编程 者提供了更多的选择余地。 中国农业大学硕士学位论文 第二章集群系统与m p i m p i 的优点主要有1 2 9 l : ( 1 ) m p i 的实现方式多样化,同一编程界面可有多种开发工具 ( 2 ) m p i 能实现完全的异步通信,立即发送和接收能完全与计算重叠进行 ( 3 ) m p i 能有效的管理消息缓冲区; ( 4 ) m p i 能在m p p 工作站
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年武夷山职业学院单招综合素质考试题库新版
- 2026年长沙幼儿师范高等专科学校单招职业技能考试题库附答案
- 2026年永州职业技术学院单招职业技能测试题库必考题
- 2026年河南对外经济贸易职业学院单招职业适应性考试题库附答案
- 2026年冀中职业学院单招职业技能测试题库必考题
- 2026年衡水职业技术学院单招职业倾向性测试题库新版
- 2026年四川华新现代职业学院单招职业倾向性测试必刷测试卷及答案1套
- 2026年上饶幼儿师范高等专科学校单招职业适应性测试必刷测试卷附答案
- 2026年温州职业技术学院单招职业适应性测试必刷测试卷及答案1套
- 2026年泉州职业技术大学单招综合素质考试题库新版
- 公安学类专业生涯发展展示
- 中队辅导员基础培训
- 《跨境电商基础与实务》全套教学课件
- 新时代大型山地运动公园可行性研究报告
- 人教版数学四年级上册期中综合测试卷(1-4单元)(含答案)
- 湖南省长沙市长郡教育集团2024-2025学年九年级上学期期中考试数学试卷 - 副本
- DB11T 751-2010 住宅物业服务标准
- T∕CFA 02020501041-2020 铸造用增碳剂
- 大学生创新创业基础(广西师范大学)智慧树知到期末考试答案章节答案2024年广西师范大学
- 2024微博媒体年度招商通案
- 汉语拼音字母表(空表默写用)
评论
0/150
提交评论