(计算机软件与理论专业论文)集群系统中组通信优化方法的研究.pdf_第1页
(计算机软件与理论专业论文)集群系统中组通信优化方法的研究.pdf_第2页
(计算机软件与理论专业论文)集群系统中组通信优化方法的研究.pdf_第3页
(计算机软件与理论专业论文)集群系统中组通信优化方法的研究.pdf_第4页
(计算机软件与理论专业论文)集群系统中组通信优化方法的研究.pdf_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

辽宁师范大学硕士学位论文 摘要 集群系统简单的说就是由各种各样通用的商业化部件通过网络互连的方式组成。集 群系统以其高可扩展性、高可用性以及高性价比等优点逐渐成为高性能计算机体系结构 的发展趋势。联系各个节点机并传输消息的集群通信系统的效率直接影响到整个集群系 统的性能,因此优化集群通信系统成为关注的焦点。其中如何提高组通信的效率是当前 优化集群通信的研究热点之一。本文围绕组通信的优化展开研究工作,主要内容包括: 1 简要介绍了集群系统以及组通信的发展概况,分析了应用于并行计算中的消息传 递方式,并结合m p i c h 2 - 1 0 8 源码详细研究了组通信中环算法、递归倍增算法、邻居 交换算法、b r u c k 算法四种典型算法,以及组通信的性能和组通信机制的实现方式。 2 提出全互换通信改进方法,算法采用递归倍增创建子进程,通过增加通信进程数 目来减少通信次数。对比分析改进算法与成对互换算法的通信次数,改进算法的通信次数 是成对互换算法的一半,同时对比实验的结果表明改进算法所需通信时间比原有算法所 需通信时间有明显缩短。 3 结合环算法和邻居交换算法对已有全收集通信算法进行优化,首先通过执行一步 环算法操作,使每个进程都有2 个数据,然后调用邻居交换算法,使每次交换的数据量以 2 的幂次方递增。引n , l o g g p 模型对算法进行理论评价,并基于m p i c h 2 1 o 8 并行环境测 试算法的有效性,实验结果表明新算法在长消息通信时的性能比邻居交换算法和环算法 的性能优越,尤其当参与通信进程数为2 的幂次方时,优化算法的性能达到最优。 关键词:通信优化;组通信;并行计算;消息传递接口;集群通信 集群系统中组通信优化方法的研究 一一 r e s e a r c ho nt h eo p t i m i z a t i o nm e t h o do fg r o u pc o m m u n i c a t i o no nc l u s t e r s y s t e m a b s t r a c l : c l u s t e rs y s t e ms i m p l yi sc o m p o s e do fv a r i o u sc o m m o nc o m m e r c i a lc o m p o n e n tb yt h e w a yo fn e t w o r k c l u s t e rs y s t e mw i t hi t sh i g hs c a l a b i l i t y ,h i g ha v a i l a b i l i t ya n dc o s t - e f f e c t i v e a d v a n t a g e sg r a d u a l l y b e c o m e st h et r e n do fh i g h - p e r f o r m a n c ec o m p u t e r a r c h i t e c t u r e d e v e l o p m e n t n ee f f i c i e n c yo fc l u s t e rc o m m u n i c a t i o ns y s t e mw h i c hi su s e do fc o n t a c te a c h n o d e sa n dt r a n s m i ti n f o r m a t i o ni sd i r e c t l ye f f e c tt h ew h o l ec l u s t e rs y s t e mp e r f o r m a n c e ,s o o p t i m i z a t i o nt h e c o m m u n i c a t i o no fc l u s t e rb e c a m et h ef o c u so fa t t e n t i o n g r o u p c o m m u n i c a t i o ni so n eo ft h eh o t s p o t sq u e s t i o nt oo p t i m i z et h ec o m m u n i c a t i o no fc l u s t e r n o d e s 1 1 1 i sp a p e rb a s e do nt h em e t h o dh o wt oo p t i m i z eg r o u pc o m m u n i c a t i o nt os t u d y , m a i n l yi n c l u d e : 1 b r i e f l yi n t r o d u c e dt h ec l u s t e rs y s t e ma n dt h ed e v e l o p m e n to fc o m m u n i c a t i o ng r o u p , a n a l y z e dt h ea p p l i c a t i o no fp a r a l l e lc o m p u t i n gi ni n f o r m a t i o nt r a n s f e rm o d ea n dc o m b i n e d m p i c h 2 1 0 8s o u r c et os t u d yf o u rk i n d so ft y p i c a la l g o r i t h mw h i c hi sr i n ga l g o r i t h m 、 r e c u r s i v ea l g o r i t h m 、p a i r w i s ee x c h a n g ea l g o r i t h m 、b r u c ka l g o r i t h m ,a n dt h ep e r f o r m a n c eo f c o m m u n i c a t i o na n dt h em a n n e ro fg r o u pc o m m u n i c a t i o n 2 p r o p o s e do p t i m i z a t i o na l g o r i t h mt oa l l t o - a l lc o m m u n i c a t i o n ,a l g o r i t h m u s e st h e s u b p r o g r a mi nar e c u r s i v ed o u b l i n gm a n n e r ,r e d u c e st h en u m b e ro fc o m m u n i c a t i o n sb y i n c r e a s i n gt h en u m b e ro fp r o c e s s e s i ta n a l y z e sc o m p a r a t i v e l yt h en u m b e r o fc o m m u n i c a t i o n s b e t w e e nt h ei m p r o v e da l g o r i t h ma n dt h ep a i r w i s ee x c h a n g e ,a n dt h ei m p r o v e da l g o r i t h mi s h a l fa sm u c h 弱t h el a t t e r t h ec o n t r a s te x p e r i m e n tr e s u l t ss h 0 1 w e dt h a tt h et i m eo ft h e i m p r o v e da l g o r i t h mc o m m u n i c a t i o n i s o b v i o u s l yr e d u c e dt h a n t h e o r i g i n a la l g o r i t h m c o m m u n i c a t i o n 3 c o m b i n e dr i n ga l g o r i t h ma n dn e i g h b o r st oe x c h a n g ea l g o r i t h mw a su s e dt oo p t i m i z e t h ea l l g a t h e ra l g o r i t h m t h eo p t i m i z a t i o na l g o r i t h mr e q u i r e st h eo p e r a t i o no ft h eo n e s t e pr i n g a l g o r i t h m t h e n ,t h en e wn e i g h b o re x c h a n g ea l g o r i t h mi su s e d t oi n c r e a s et h en u m b e ro ft h e e x c h a n g ed a t ai naw a yo fp o w e ro f2t or e d u c et h ef r e q u e n c yo ft h ec o m m u n i c a t i o n u s i n g l o g g pm o d e lt oe v a l u a t i o na l g o r i t h mt h e o r y ,a n db a s i n gm p i c h 2 一1 0 8p a r a l l e le n v i r o n m e n t t o t e s tt h ee f f e c t i v e n e s so fa l g o r i t h m ,t h er e s u l to ft e s ts h o wn e wa l g o r i t h mb e t t e rt h a n n e i g h b o r st oe x c h a n g ea l g o r i t h ma n dr i n ga l g o r i t h mw h e nt h em e s s a g ei sl o n g e s p e c i a l l y w h e nt h en u m b e ro fc o m m u n i c a t i o n sn o d e sm a c h i n ei sp o w e ro f2 ,t h eo p t i m i z a t i o n a l g o r i t h m sp e r f o r m a n c e c a l lr e a c ht h eb e s t 一i i 辽宁师范大学硕士学位论文 k e yw o r d s :o p t i m i z a t i o nc o m m u n i c a t i o n ;g r o u pc o m m u n i c a t i o n ;p a r a l l e lc o m p u t i n g ;m p i c l u s t e rc o m m u n i c a t i o n 4 1 全收集2 l 4 2 优化的全收集通信算法2 2 4 3l o g g p 模型评价算法2 3 一i v 辽宁师范大学硕士学位论文 4 4 并行环境搭建及性能分析2 3 4 4 1 并行环境搭建2 3 4 4 2 性能分析2 4 4 5 本章小结2 5 5 全互换通信优化2 6 5 1 全互换通信2 6 5 2 改进算法2 7 5 3 复杂度分析2 8 5 4 测试例程及性能分析2 9 5 4 1 测试例程2 9 5 4 2 性能分析2 9 5 5 本章小结3 0 结论31 参考文献3 2 攻读硕士学位期间发表学术论文情况3 4 致谢3 5 一v 一 代表性的 k a il i 教授等研制的多计算机系统s h r i m p 中所采用的通信机制。该通信机制对操作系统 的依赖性很大,而且需要有专用的s h r i m p 系统网络接口。 u - n e t 船3 是1 9 9 5 年美国科内尔大学计算机科学系的e i c k e n 等人设计的通信系统。该通 信系统是用最小的通信延时和最大的通信带宽来实现多进程对网络接口硬件的直接访 问。 g m 口1 ( g l e n n sm e s s a g e s ) 是m y r i c o m 公司自己设计和推出的一套适用于m y r i n e t 互连 网络,基于消息传递的用户态通信协议,为用户应用程序或上层通信系统提供高可靠高 性能的通信服务。它的特点是支持多个进程重复使用网络接口,而且支持用户态通信等。 不足之处是不支持多播通信,编程模式不易接受。 b i p h ( b a s i ci n t e r f a c ef o rp a r a l l e l i s m ) 是由法国里昂大学l o i cp r y l l i 等人研究 的一种在m y r i n e t 网卡上运行的精简低层通信协议。其主要是用于实现高效的硬件访问 方式和零拷贝通信。它并不是一个完善的通信协议,只实现了某几方面的功能像它提供 阻塞式和非阻塞式通信接口等。 b c l 晦1 ( b a s i cc o m m u n i c a t i o n1 i b r a r y ) 基本通信库是由中科院计算所的国家智能计 算中心研制的曙光系列大规模并行计算机系统的通信系统。它是一种随着曙光集群系统 的更新换代来升级和完善并且基于消息传递的集群通信协议。 理带宽有很大的提高,像从l o m b p se t h e r n e t ,发展至w 1 5 5 6 2 2 m b p s 的a t m ,1 g b p s 的g i g a b i te t h e r n e t ,2 g b p s 的m y r i n e t 等。虽然出现了许多高速的网络,但是以太网凭 借其易于搭建且成本低廉仍然是目前应用最广泛的通信网络。实现集群中各个节点之间 集群系统中组通信优化方法的研究 理带宽有很大的提高,像从l o m b p se t h e r n e t ,发展到1 5 5 6 2 2 m b p s 的a t m ,i g b p s 的 g i g a b i te t h e r n e t ,2 g b p s 的m y r i n e t 等。虽然出现了许多高速的网络,但是以太网凭借 其易于搭建且成本低廉仍然是目前应用最广泛的通信网络。实现集群中各个节点之间通 信的软件有很多,这由集群主要应用目的来决定。像在并行计算中实现集群中各个节点 之间通信的软件就是m p i 。 1 2 组通信研究概况 组通信是建立在真实的或虚拟的组播通信之上的一种通信方式。从广义上来讲,组 通信指群组内各通信实体间的通信。在网络应用中,组通信提供了两种基本的通信方式: 一种是一对多的组通信方式,另一种是多对多的组通信方式。这两种方式的共同特点是: 将参与通信的所有用户组织在一个群组内。为了表示和识别多个群组,每一个群组对应 一个唯一的群组名。组通信在各个方面的应用十分广泛,现今比较著名的组通信系统有 康奈尔大学1 9 8 7 年到1 9 9 0 年研制的组通信系统i si s 。如图1 所示: m abcdacd bcd 图1 1 同步系统 f i g 1 1s y n c h r o n o u ss y s t e m 时 间 嗨l m l 在l 嵫 旃到达 弱同步系统 w e a ks y n c h r o n i z a t i o ns y s t e m s 嗨在m l 前到达 虚拟同步系统 v i r t u a ls y n c h r o n i z e ds y s t e m s i s is 1 系统是一组程序的集合,这些程序可以在u n i x 和其他现存的操作系统上运 行。i s i s 系统将同步系统,弱同步系统,虚拟同步系统的思想融入其中。l s is 还提供 了容错机制,支持重叠分组的消息排序,但算法比较复杂。 康奈尔大学1 9 9 0 - 1 9 9 4 年提出h o r u s n l 组通信系统,该系统继承了许多l s i s 系统的 优点,但是h o r u s 能够支持应用程序对安全性或者时时性特别的要求,isis 不支持。 h o r u s 比i s i s 运行的更快,消耗资源更少。 1 2 辽宁师范大学硕士学位论文 康奈尔大学1 9 9 4 1 9 9 9 年提出e n s e m b l e 伽组通信系统,该系统允许进程创建进程组, 支持进程组的具有可伸缩的组通信和点对点通信。 a m o e b a 嘲组通信系统是于19 8 1 年诞生于荷兰阿姆斯特丹的virij e 大学,a m o e b a 系 统本身是一个分布式操作系统,它为并行程序设计提供条件。a m o e b a 支持组通信。它的 系统结构如图2 所示: 房舶狸序 图1 2a m o e b a 中组通信的系统结构 f i g 1 2g r o u pc o m m u n i c a t i o ns y s t e mo fa m o e b a a m o e b a 支持组播和广播,它是在l a n 上工作最好的组通信系统。a m o e b a 系统中所 有机器的配置通常是一样的,内核版本也相同。当应用程序启动时,其中一台机器选作 s e q u e n c e r ( 定序器) 。首先用户进程陷入内核并传入消息,继而内核接收消息并阻塞 用户进程,然后内核将消息通过一般的点到点通信方式送给s e q u e n c e r ,当s e q u e n c e r 得到消息,它分派下一个可用的序列号,将序列号存入为其保存的域中,同时广播此消 息和序列。当发送内核发现广播消息头中的消息,它激活被阻塞的调用进程,使其继续 执行。 在胛l c h 中也提供了组通信的通信方式,近年来,随着并行计算规模的不断扩大, 研究如何优化m p i c h 中的组通信已经成为了一种趋势。现在比较典型的优化算法有四种 分别是递归倍增算法,环算法,邻居交换算法,b r u c k 算法。 1 3 本文主要工作 本文主要研究的是集群系统中组通信优化方法。论文共分为六章,内容与组织如下: 集群系统中组通信优化方法的研究 第一章为绪论。首先阐述了通信在集群系统中的重要意义并介绍了几个高效的集群 通信系统,叙述了组通信的概况,着重说明了优化组通信的重要意义。 第二章介绍了集群系统和集群通信系统的基本分类和影响其性能的因素。详细分析 了在m p i c h 中集群之间通信的收发过程。并着重分析了当前集群通信优化的典型方法。 第三章首先详细说明了m p i c h 中实现组通信四种典型算法的思想,并从通信性能上 加以对比,综述了优化组通信对提高集群系统性能的意义。 第四章分析了全收集通信,即使每个进程都拥有其他进程的所有数据的一种组通信 方式,提出一种将邻居交换算法和环算法相结合的新算法。对比分析结果表明新算法优 于原算法,具有较好的性能。 第五章分析了全互换通信,即进程将本进程数据发送给其他进程时也接收其他进程 数据的一种组通信方式,本文提出改进算法递归倍增的创建子进程,通过增加通信进程 数目来减少通信次数,对比分析新算法与原算法,其性能优于成对互换算法。 最后第六章为全文的总结和进一步的研究方向。 4 辽宁师范大学硕士学位论文 2 集群通信系统 2 1 集群系统 2 1 1 集群系统的定义 集群就是由许多单个的p c 机、服务器或是p c 机和服务器混合通过网络互连的方式 组合而成的计算机群体。这些p c 机或服务器在网络中表现为单一的系统,并以单一系 统的模式进行管理。当它们在工作时像一个统一的整体,不工作时就是一个个独立的个 体。在集群系统中,称这些p c 机或服务器为节点。集群作为一个整体向用户提供一组 网络资源。一个理想的集群是用户从来不会意识到集群系统底层的节点,在用户看来, 集群是一个系统,而非多个计算机系统。集群系统的管理员可以随意增加和删改集群系 统的节点。 2 1 2 集群系统的分类 集群系统按各个节点机构架的形式和应用目的的不同可以分为多种类型。以下分别 从按架构形式和应用目的两方面来论述分类情况。 按架构形式分类 在论及集群系统时,比较著名的集群系统有三种,分别是b e o w u l f 口们,c o w n 叫和 m o s i x 1 训。 b e o w u l f 集群是指在1 9 9 4 年夏季,c e s d i s 和t h o m a ss t e r l i n gd o nb e c k e r 用1 6 个节点和以太网组成了一个计算机集群系统。该集群系统提供了一种使用c o t s 硬件构 造集群系统以满足特殊的计算需求的方法。c o t s 是指象p c 机和以太网这种广为应用的 标准设备,它们通常可以由不同厂商提供,所以性价比很高。集群并行系统的这种构建 方法很快得到了认可,之后很多集群都采用类似b e o w u l f 的构架。 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 。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 集群就是运行l i n u x 的一台p c 。m o s i x 集群系统具有许多新特性,像易用性、 透明性、实现动态负载平衡、最大的全面性能、分布式控制和高度的可伸缩性、d f s a 支持等。虽然它也有许多不足,但是m o s i x 集群系统还是有一定的实用性。 集群系统中组通信优化方法的研究 c o w 集群和b e o w u l f 集群很相似,它们的相同之处是,c o w 集群也是由最常见的硬 件设备和软件系统搭建而成。通常也是由一个控制节点和多个计算节点构成。它们的不 同之处是,一方面,集群使用的属性上,c o w 中的计算节点主要都是闲置的计算资源, 如办公室中的桌面工作站,他们就是普通的p c ,采用普通的局域网进行连接,并利用它 们的空闲时间来工作。相反b e o w u l f 中的计算节点都是专职于并行计算,并且进行了性 能优化。它们采用高速网络上的消息传递进行进程间通信;另一方面,集群使用的目的 上,因为c o w 中的计算节点主要的目的是桌面应用,所以它们都具有显示器、键盘和鼠 标等外设,而b e o w u l f 的计算节点通常在管理节点上通过网络或串口线实现,没有这些 外设。 按应用目的分类 根据集群系统应用目的的不同,可以分为高可用性集群、负载均衡集群和高性能集 群。 高可用性集群的主要功能就是提供不间断的服务。它主要应用于所有的工业控制 器、a t m 、医学、w e b 服务器、军事检测仪和远程通讯转接器以及股票处理机等,因为这 些应用程序都必须一天二十四小时的不停运转。高可用性集群的设计思路就是要最大限 度的减少服务中断时间。 负载均衡集群是用于快速的事务处理和响应能力,而不是高速的计算能力。该集群 系统能够将大量的访问请求均衡的分配到其他节点机上,致使系统的效率达到最高,适 合于有大量数据请求的应用类型。负载均衡集群对系统的扩展性、可用性有较高的要求。 它是随着网络的发展和网络负荷增加而产生的。负载均衡集群往往也具有一定的高可用 性特点。 高性能集群又称超级计算集群,按照不同类型的数据处理工作,该系统可以分为两 种。一种是任务片方式,它先将计算任务分成任务片,再把任务片分配给各个节点,在 各节点上分别计算后再进行结果汇总,生成最终计算结果。另一种是并行计算方式,节 点之间在计算过程中大量的交换数据,可以进行具有强耦合关系的计算。这样,企业利 用若干台p c 机就可以完成通常只有超级计算机才能完成的计算任务。高性能集群在应 用上有取代超级计算机的趋势,像模拟星球附近的磁场、定位石油资源的储藏、预测龙 卷风的出现等情况。集群系统具有高可用性,高可扩展性而且性价比比较低,因此高性 能集群系统成为了高性能计算领域的新焦点。 6 辽宁师范大学硕士学位论文 2 2 集群通信系统 2 2 1 集群通信系统 集群通信系统诞生于上世纪7 0 年代末到8 0 年代初。最初,集群通信系统主要应用 于移动通信网络,我国1 9 8 0 年在上海建立了第一个1 5 0 m h z 的大区制专用移动通信网, 专用移动通信网早于公用移动通信网而出现。八十年代,主要是引进国外的集群通信产 品,如美国m o t o r o l a 公司的s m a r t 智慧网系统、芬兰n o k i a 公司的a c t i o n e t 系统、新 西兰的t a i t 系统以及美国u n i d e n 公司的f a s t 系统等。九十年代初期,国内一些大 学和科研院所已对集群通信技术做预研工作,但真正开始研究集群通信技术是在九十年 代以后。 集群通信系统是指多用户通过智能化的频繁管理技术自动处理、共同使用相对数量 有限的通信信道。集群通信系统以动态方式分配空闲信道,所以对通信信道的利用率有 大幅度提高,像在传统的无线对讲机通信中,所有用户使用一个公共的无线电信道,用 户需要随时收听通话状况才知道信道是否被占用,但集群通信系统就可以进行自动处 理。集群通信系统的网络为星型结构,星型网络结构的特点是便于调度且安全性较高。 集群通信系统的网络覆盖采用大区或中区制。集群通信系统的优点是,它可以带来动态 性强、更经济的组网手段,可以将多个部门或机构组合在一套系统之下,同时,仍能保 持各部门的独立运行。 2 2 2 通信的优化方法 集群通信系统的开销主要从两方面考虑,分别是节点机之间的通信开销和节点机处 理数据的开销,数据有数值和非数值之分,但是这不会影响到该系统的效率。提高集群 通信系统的效率应从通信和处理数据两个宏观上来考虑,因此可以采用以下优化方法。 消息打包,即将一些短消息合成一条长消息发送。因为在现代集群网络上,长消息 与短消息的e e l 以及g 和g 之间可以相差1 0 倍以上。而且这个差距与网络带宽、c p u 与内存之间的耦合程度,甚至与网络的耦合程度等因素带宽、c p u 与内存之间的耦合程 度,甚至与网络的耦合程度等因素也无明确的依赖关系。而且过多的短消息,对一些线 程安全的通信协议实现而言还会带来较大的加锁与解锁的开销。 计算与通信的重叠。即在非阻塞式通信的发射和等待完成之间插入适当的计算。通 信过程如图2 1 所示: 7 集群系统中组通信优化方法的研究 计算 l r l ,7 o ,r 通信 或 等待 l r l ,7 l ,r o r l ,7 l r 图2 1 计算与通信重叠 f i g 2 1c o m p u t i n ga n dc o m m u n i c a t i o n 通信与通信的重叠。即通过非阻塞式通信一次发送接收多条消息。通信过程如图 2 2 所示: 计算 计算 计算 计算与通信的重叠部分 图2 2通信与通信重叠 f i g 2 1 c o m m u n i c a t i o na n dc o m m u n i c a t i o n 计算与通信的重叠+ 通信与通信的重叠。即,先发送一串消息,其次,在消息的发 射与等待完成之间插入一定量的运算,以填满剩余的时间间隙。通信过程如图2 3 所示: 辽宁师范大学硕士学位论文 博1 厂弋一厂一 l ?, 通信乜岁过一 博珊一一厂弋一厂、 博a 一一 ff 通信鬯多鬯多 2 3 消息通信接口 2 3 1m p i ( m e s s a g ep a s s i n gi n t e r f a c e ) m p i 是当前集群通信软件中最重要最流行的软件之一,它是一个库而并不是一门独 立的语言。当前m p i 有很多实现形式,像比较流行的有m p i c h - t 3 e 、m p i - s t a r t 、m p i c h - p m c l u m p 、m p i f m 、b d m m p i 、l a m 、c h i m pm p i 、w i n m p i 、w 3 2 m p i 、m p i c h n t 、m p i p r o 、s c a m p i 、c h i m p 、m p i c h 等。其中m p i c h 是一个与m p i 规范同步发展的版本,每当m p i 推出新的版本就会有相应的m p i c h 的实现版本。目前性能比较稳定且广泛使用的版本是 m p i c h 2 1 0 8 。以下为它的结构关系图: lm p i c h 2 ( 搬目录) l l l llll l d o c l 。盔l 孵 f 妇t i 。高袅,i 嗍p l e s l ( 文挡) ( j l i 码) l ( 测试) ( 示纠) l llijiil i 秦il 黧il 杂| lc 墨,ll 蒜llc 晶,il 量l 图2 4m p i c h 2 的目录结构 f i g 。2 4d i r e c t o r ys t r u c t u r eo fm p i c h 2 9 集群系统中组通信优化方法的研究 m p i 目录下存放的是m p i 接口的a p i 层代码,m p i d 目录下存放a d l 3 的代码,u t i l 目录 下提供内存管理的工具,b i n g d i n g s 目录下提供语言支持模块,m p i c o l l 目录下存放所 有组通信代码。 m p i c h 2 的结构层次分明,各个功能都基本是以模块的形式来实现,因此m p i c h 2 具有 灵活性、可移植性和可扩展性等特点。m p i c h 2 的层次结构如图2 5 所示: m l 应用程序接暖 m p i r 动态运行库 a d ! 抽象设备接口 c h 3 通道接口 特定通信设备接口 ( 例如ls c t p ,t c p , a h m c 嘲a ,s s m ) 图2 5m p i c h 2 的层次结构图 f i g 2 5 h i e r a r c h i c a ls t r u c t u r eo fm p i c h 2 m p i 应用程序提供用户接口,并处理与环境无关的m p i 结构,m p i r 层负责将复杂的m p i 函数转化为基本的点对点通信操作,a d i 层为抽象设备接口层,为上层应用提供一种与 具体设备无关的通信接口,c h 3 为通道接口层供开发者实现自己的通信接口,再下面就 是连接的一些网络通信协议。 2 3 2 消息收发实现 发送函数分析 m p i _ s e n d0 函数分两种情况来发送消息,它们是连续的缓冲区和非连续的缓冲区, 两个分支中都区分不同的参数来调用m p i s e n d d a t a t y p e 0 。本文以连续缓冲区为例, m p i s e n d0 函数调用m p i _ s e n d d a t a t y p e0 函数,m p i _ s e n d d a t a t y p e0 函数再附加一起其 他信息后调用m p i d _ s e n d c o n t i g0 函数,m p i d _ s e n d c o n t i g0 将消息分为三种类型,分别 是短消息,中等长度的消息,长消息。然后根据消息类型不同分别调用不同的函数。 当消息类型为超长消息时,调用函数指针d e v 一 v l o n g _ m s g 一 s e n d0 ,该函数指针被 赋值为m p i d c h r n d v b d0 。m p i d c h r n d v b d0 函数调用m p i d - c h _ rn d v b i s e n d0 对 l o 辽宁师范大学硕士学位论文 类型m p i d _ p k t _ r e q u e s t _ s e n d _ t 的变量p k t 进行赋值。变量p k t 的值设置成 m p i dp k tr e q u e s ts e n d ,通过宏m p i ds e n dc o n t r o l b l o c k 将消息信封p k t 发送出去, 然后调用赋值为m p i d _ w a i t f o r c o m p l e t e s e n d ( ) 的函数指针s h a n d l e 一 w a i t0 。该函数再 调用m p i dc hc h e c k _ i n c o m i n g0 等待对方的回复。当收到确认包其类型是 m p i d _ p k to kt os e n d 的之后,就调用函数指针d e v 一 r n d v 一 d o _ a c k0 即函数 m p i dc hr n d v b _ a c k0 ,通过调用m p i d _ s e n d t r a n s f e r0 将要发送的数据部分发送出去。 当消息类型为短消息时,调用d e v 一 s h o r t _ m s g 一 s e n d0 ,这是一个函数指针,该函 数指针在m p i c h 初始化函数中对其进行了赋值,赋给该指针的函数是 m p i dc he a g e r b s e n d _ s h o r t ( ) 。然后它随即将完成m p i 层的拷贝动作,拷贝的过程是 b u f 中的发送数据拷贝到了m p i d _ p k t s h o r t t 结构体的p k t 中,同时也将消息的目的进 程,通信域,标志,类型等信息封装在该结构体中,将此结构体设置为m p i d p k t s h o r t 模式。p k t 作为函数m p i dc he a g e r b s e n d _ s h o r t0 的参数来完成以下的传输任务。最 后通过宏w r i t e 与内核程序为其提供的s o c k e t 接口函数s e n d0 相连,结束m p i 层的发 送。 当消息类型为中等长度的消息时,调用函数指针d e v 一 l o n g _ m s g 一 s e n d0 ,该函数 指针被赋值为m p i d c h e a g e r b d0 。m p i dc he a g e r b d0 给类型m p i d p k t l o n g t 的变 量p k t 赋值,值为m p i d p k t l o n g ,有必要说明的是接收方对应此包的协议是e a g e r 协 议。m p i d c h e a g e r b d0 调用m p i d _ s e n d c o n t r o l b l o c k0 先将p k t 的值发送出去,然后 调用m p i d s e n d c h a n n e l0 通过s o c k e t 将要发送的数据送出,完成发送的操作。发送函 数的流程可以简单的表示为如图2 6 所示: 图2 6 发送函数分析 f i g 2 6s e n d i n gf u n c t i o na n a l y s i s 集群系统中组通信优化方法的研究 接收函数分析 接收过程比发送过程复杂。接收时可能会出现一个进程同时接收多个进程发来消息 的情况,所以m p i c h 中使用两个队列:非期望( u n e x p e c t e d ) 队列和期望( p o s t e d ) 队列来 存储发送来的消息,分别实现功能连接上层用户的接收请求处理( 以下简称r ) 和下层核 心的接收到达处理( 以下简称a ) 。其中r 和a 都是结构体类型为m p i r 的变量。_rhandle 函数m p i r e c v0 调用m p i d r e c v d a t a t y p e0 完成了两个任务,分别是调用 m p i d i r e c v d a t a t y p e0 在u n e x p e c t e d 队列中查找是否有匹配的消息报头和调用 m p i d r e c v c o m p l e t e 0 来继续完成余下的接收动作。其流程如图2 7 所示。 进行接牧操作 盱i 轧l 瑚c v d 囊t a t y 0 对襄进镗处 u n e x p e c t e d 队列中燎管有 一与r 匹配的 一 r 存入p o s t e d 队夕孽 置 继续接收擞作 l e i p - r e c 咖l e t e0 继续接收a 弦吼鲥瓮2 赫r 香窖与a 二匹配的一一。一 存入u n e x p e c t e d 队列 接收绡糸 图2 7 接收函数分析 f i g 2 7r e c e v i n gf u n c t i o n ga n s l y s i s 函数m p i d i r e c v d a t a t y p e 0 调用m p i d i r e c v c o n t i 9 0 ,然后封装所有的信息,封 装后的数据类型为m p i r _ r h a n d l e ,图中用变量r 来表示,然后调用函数 i d _ s e a r c hu n e x p e c t e d _ q u e u e _ a n d _ p o s t0 来检查u n e x p e c t e d 队列。用一个简单的 i f e l s e 语句来检查非期望队列,i f 语句成立的条件是当其中有与r 消息信封相匹配的 a 时,取出a 并将它从u n e x p e c t e d 队列中删除,其次调用a 的p u s h 函数完成接收。p u s h 函数三种协议分别对应三种不同的函数,对应关系是s h o r t 协议对应函数 m p i d c h e a g e r b s a v e s h o r t ( ) ,e a g e r 协议对应函数 1 2 辽宁师范大学硕士学位论文 m p i d c h e a g e r s a v e0 ,r e n d e z v o u s 协议对应函数m p i d c h r n d v b s a v e0 。a 通过 m p i dc hr n d v bu n x r e c vs t a r t0 和m p i dc he a g e r bu n x r e c vs t a r ts h o r t0 将自身的 数据拷贝给r 的缓冲区,并将部分值赋给r 的对应项,动作执行完后将r 的i s _ c o m p l e t e 成员赋值为1 ,结束此次接收,等待进行下次接收操作。m p i dc hr n d v b _ u n x r e c v s t a r t0 调用函数m p i d c h r n d v b o k t o s e n d0 将数据包发送给发送方,数据包的数据类型为 m p i d p k t o k t o s e n d ,发送者个数据包的主要目的是通知发送方可以发送数据。然后 将a 的一些成员值赋给r 的对应项。并把函数m p i d c h r n d v b _ u n x r e c v _ e n d 赋值给r 的 w a i t 函数。最后返回到函数m p i d,继续接收新到达的a。_recvdatatype0 若在u n e x p e c t e d 队列中没有与r 消息信封相匹配的a ,即e l s e 情况下,则将r 存 入p o s t e d 队列中,继续接收新到达的a 。当r 的i s c o m p l e t e 成员为1 时,条件函数 m p i d _ r e c v c o m p l e t e0 一直在w h i l e 循环体中执行,直到不为1 跳出循环。然后判断r 的w a i t 函数是否为空。若为空调用d e v - c h e c k,若不为空执行函数的_ d e v i c e0 w a i t 内容。其中为空时调用的是个函数指针,该函数

温馨提示

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

评论

0/150

提交评论