上海理工大学学报第27卷第1期J.UniverSityof她hai五DrscienceandTechn0109yV01.27№.12005文章编号:1007—6735(2005)01—0079—04面向机群并行计算的分组通信模型陈庆奎1,那丽春2(1.上海理工大学计算机工程学院,上海200093;2.上海理工大学现代化教育中心,上海摘要:提出了一个计算机机群环境下的分组通信算法,防止通信峰值阶段通信冲突对机群执行效率的影响.给出了完全图通信的形式化定义,构造了基于分组机制的完全图通信模型的实现方法.分析和实现表明,该模型有效地解决了计算机机群环境下通信峰值所造成的集群效率低下的问题,适用于机群的数据密集型并行计算.关键词:计算机机群;分组通信;冲突;完全图通信中图分类号:TP393文献标识码:AGroupingcommunicationmodeIforparallelcomputinginclusterCHEN(1.僦姆P矿伤砷“灯励砌蒯昭,吼妇瓜移∥跳咖i弦S砌蹴n砝融蝴,跳咖i200093,吼i撇;2.M越溯苏癌正池瑚fi朔C锄£盯,Uhiz盯菇£),0,踟增勉i向,&锄埘n以仉魄咖,鼢嘞面200D93,Ghi撒)Abstract:AQ畸乜i1,NAL--ch一g工ouping∞m砌micationAformaldefinitionabOutthe唧1etegr印hicS黜unicationonm。delforhandlingthe00rlflictinc。mputerclusterisdiScussed.isgiven.Theimpl锄entmethodofc(m叩letegraphicsc(mmlunicationbasedgr(mpingmechaniSrnisstudied.Theanalysisande】【pe矗一mentresultshawthatthismodeleffecti、,elyresolvetheproblanoflowefficiencyduringthepeakoom—mLHlicationinoOmputercluster.ItKeycanbefitf6rthedata_intenSiveparallel∞mputing.wo喇s:c077z抛£盯cZ“s据r;g.ro“乡i咒g∞mm“扎i∞£幻扎;∞,卵i以;∞优pZ啦盯口加i∞cDmm“咒i∞£io扎只处理数据的一部分,同步工作只发生在数据需要随着信息技术的飞速发展和Intemet应用的日益普及,信息爆炸已经成为当今信息技术产业界和学术界所面临的急需解决的主要问题.并行计算技术和分布式计算技术、计算机机群技术和网格技术都是解决该问题的有效途径.其中,计算机机群技术L1J以其良好的可扩展性、强大的并行I/O能力及非常高的性能价格比等特性受到了学术界和工业界交换时.在这种模型中,数据交换时会产生通信的峰值.当进行数据密集交换并且通信量很大时,将导致冲突,冲突将会浪费通信资源、降低机群的性能.典型的数据密集交换的例子是并行JOIN操作幢J的关系元组重分配阶段.目前有关高效通信方面的研究很多,文献[3]提出了一种适合机群通信的协议xTR;文献[4,5]提出了利用多个物理通信设备的多通路通信机制.本文给出一个基于IP协议和普通宽带网络的分组通讯模型,该模型利用现有的网络的广泛青睐.机群系统中通常使用中、粗粒度并行.数据型并行计算是一种极有代表意义的计算模型.数据并行型计算是以数据并行方式来工作的,机群中的计算节点异步地执行同样的操作,但每个节点收稿日期:2004—06—08带宽、优化通信过程,达到高效通信的目的.该模型基金项目:上海市教委发展基金资助项目(03GKll;04EB21);上海市自然科学基金资助项目(04ZRl4100)作者简介:陈庆奎(1966一),男,教授.万方数据80上海理工大学学报2005年第27卷已成功地应用于机群并行数据库原形系统,实践表明该模型具有良好的扩展性、可移植性,并且有效地支持数据密集交换通信.1数据并行型计算定义l(计算机机群)一个计算机机群(CC,m—puterauster)为一个4元组CC(拖,CS,N,R),其中,拖为机群主控制器;CS为所有计算节点的集合{C1,C2,…,G}.本文所讨论的机群乡均为偶数;N为连接网络的集合,连接网络是高速交换网;R为连接规则.每个CS中的计算节点具有的处理器和外存储器.同时,为了描述方便,假设CS中的每个计算节点的结构和能力(CPU、MEMO—RY、DISK及NETWORK)是相同的.由于N和R对本算法研究影响不大,本文简记aC(姚,CS).算法1(数据并行型计算)机群Oc(拖,Cs)上的一个数据并行型计算过程.a.在地上执行过程①计算任务规模、分解为子任务;②启动所有CS中的计算节点;③7z=子任务数;④i=1;⑤分解数据Data为Dl,D2,…,D口;⑥发送瑰到G(1≤愚≤p);(DWhilei<扎do⑧驱动G(1≤忌≤p)同时求解子任务i;⑨同步G(1≤尼≤p)对子任务i的求解;⑩i=i+1;①End、池ile;④回收G(1≤愚≤p)的计算结果并合成;⑩通知G(1≤尼≤p)结束计算;⑨结束本次计算.b.在G(1≤忌≤p)上执行过程①接收初始数据;②While未接到拖的结束命令do③接收子任务i;④计算子任务i;⑤G与其他计算节点G(1≤歹≤p,歹≠”同步交换数据;⑥Endwhile;⑦发送计算结果到拖;⑧结束本次计算.在过程a、b中,计算节点G(1≤忌≤声)执行的所有子任务都是一样的,只是操作的数据集不同.例万方数据如,并行关系数据库的JOIN操作【2J就是数据并行型计算.定义2(通信峰值问题)基于机群的数据并行型计算所面临的问题是通信峰值问题,所谓通信峰值问题就是在并行计算过程中,周期性地出现机群节点间大规模多对多的完全图通信问题.定义3(完全图通信)所谓完全图通信就是CS中每个计算节点都要向其他咒一1个计算节点发送数据,同时又要从其他咒一1个节点接收数据,在CS的任意两点间都有一个逻辑信道,所有逻辑信道构成一个痧个节点的完全图.图1表示4个计算节点的完全图通信.算法1中b过程的第⑤步所述的阶段就是通信峰值阶段.图1完全图通信Fig.1G)nldetegrap}licS∞mmunication定义4(计算节点过程模型)机群CC(Ma,CS)上的每个计算节点的过程模型可以定义成一个6元组G(CP、SP、RP、Cbuf、SBuf、RBuf),其中CP、SP、RP分别为本地计算进程、数据发送进程、数据接收进程,Cbuf、SBuf及RBuf为3个进程所对应的数据缓冲区.一般情况下CBuf比较大,而Cbuf、SBuf比较小.图2反映了各个部件间的关系.图2计算节点模型Fig.2MOdel0fcomputingnOde从定义2和定义3可知,一个数据并行型并行计算的通信峰值问题会带来如下问题:a.物理信道拥挤造成的通信冲突、阻塞,致使底层数据包丢失.b.接收缓冲区溢出.第1期陈庆奎,等:面向机群并行计算的分组通信模型81c.多对一通信的相互阻塞.d.无效传输.在基于可靠的数据传输机制下,由于冲突、阻塞所导致的对同一数据报的重复发送,除正确收到的那一个外,其余是无效的传输.e.死锁.由于两个或两个以上的计算结点相互等待通信的应答,而构成一个环,产生死锁.f.降低了机群的可扩展性.由于无序的峰值通信,致使上述问题随着机群规模的扩大越来越严重.目前解决峰值通信的问题一般有下面几个方法:a.优先级方法对CC的每一计算结点G(1≤尼≤夕),都赋予一个权,当发生冲突时,权大的计算节点优先发送.权可据各个计算结点的地位而定.这种方法的缺点是权的定义往往和实际通信情况不符.b.通信量方法各个计算结点把自己的信息量通知给拖,姚按照一定的策略进行均衡运算,对具有很大数据量的计算结点赋予较高的优先权,可以缩短传输阶段的并行响应时间.这种方法的缺点是由于尬的同步介入,影响了并发性能.c.随机延迟各计算结点一旦发生冲突,便延迟一个随机时间,然后再执行通信操作.如再度发生冲突则应增大d.分组通信将计算结点Q(1≤忌≤痧)分成m个组,每组定义5(主动队列和被动队列)主动队列(AQ)万方数据息时,有G∈PQ,处于被动队列中的计算节点又叫被动计算节点.两个队列分别用两个数组AQ[]、尸Q[]表示.队列的长度分别用AQ,鹏表示.由于主动队列的长度决定着通信阶段的通信量,所以假设主动队列的长度AQ,为一个常数,其可以通过机群的综合能力来计算.为了清晰描述,假设机群CC的计算节点的个数p恰好是AQf的整数倍.定义6(选播对象队列)对于主动队列AQ中的每个计算节点,都有一个它所选播的计算节点集合BQ(1≤i≤AQf),这个集合就是选播对象队列.队列的长度为BQ.本文介绍的分组通信模型是基于AQ、PQ的,所有分组调度工作都是在拖上进行.2.2Master分组过程算法1中a过程的第⑨步的同步过程细化如下.算法2(算法1中a过程的第⑨步)a.初始化被动队列.PQ按照CS中的计算节点在机群中的编号次序,把所有计算节点加入被动队列,PQ[]={C1,C2,…,q}.b.构造主动队列按照各个计算节点的本地子任务完成的时间先后顺序,把相应的计算节点移入主动队列;当主动队列满时,停止移入,剩下的仍然留在被动队列中.c.排序被动序列对留在被动序列中的计算节点,按照各个计算节点的本地子任务完成的时间先后排序,并平移到队首,这样最早完成本地子任务计算的被动节点处于被动队列的前面.d.构造选播对象队列BQf=[p/AQf];/*选播对象队列长度*/FOri=1,…,AQfdo/*初始化BQf*/BQi=声Endfor:Fori=1,…,AQfdo/*构造AQ£个BQ*/i=i;/*指向被动队列的指针*/For忌=1,…,BQfdo/*构建第i个BQ*/BQi=BQ£+{PQ[J]};歹=歹+AQz;Endfor:/*确定主动元素所属的BQ*/Ifi<AQ,then延迟时间.这种方法具有盲目性.有g=Lp/mJ个结点,分别设为Gl,G2,…,嚷.各组Gi(i=1,2,…,p)内实施上述3种方法之一;当组Gi(i=1,2,…,夕)通信完成后,再重新分组通信.分组通信的优点是:适当的组的大小可以减少高层冲突的次数;建立多个组进行并行通信,可以提高物理信道的利用率;组的大小及组的个数可以根据硬盘、CPU及信道的速度来计算优化值;具有极高的可扩展性.2分组通信模型2.1准备工作和被动队列(PQ)是保存机群0C(地,CS)中的每个计算节点在并行计算过程中的状态的两个队列.当计算节点Q(1≤足≤p)既可以发送信息又可以接收信息时,有G∈AQ,处于主动队列中的计算节点又叫主动计算节点;当计算节点G(1≤志≤声)只能接收信上海理工大学学报2005年第27卷BQ£=BQi+{AQ[i+1]};ElseBQi=BQi+{AQ[1]};Endif:Endfor.e.监控完全数据交换Of_0;/*决定每个主动计算节点对应的选播对象队列的偏移指针*/①Whiel0f<AQzdo②发送AQ和BQ到CS/*第of=睡t次对应*/Fori=1,…,AQ£doK=m。d(i+0f,AQf);/*模除*/发送Bq到计算节点AQ[i];/*主动节点AQ[i]对应选播对象队列Bq*/Endfor:③启动所有主动节点按照{BQl,BQ2,…,BQAQ,}通信;④RepeatdoU『ntil所有主动节点完成本次通信;⑤0f-Of+1;/*修改对应次数*/⑥Endwhile;/*完成了本次主动队列的到所有节点的通信*/f.调整主动队列备份主动队列AQBAK=AQ;取被动队列PQ前AQ个元素,按原序加入主动队列;把PQ中的剩下元素向队列头部移动AQz个位置;把AQBAI(按原序加入被动队列尾部.g.启动下轮通信If(所有计算节点都作为主动节点完成了e过程)then通信阶段结束;E1SeGoto(d);cs计算节点过程计算结点Q在算法1的b过程修正如下.算法3(改进的算法lb)①接收初始数据;②While未接到地的结束命令do;③接收子任务£;万方数据④计算子任务£;⑤While子任务£的通信未结束do⑥while^钇的算法2未结束do⑦从拖接收计算节点状态信息AQ[i],Bq;/*对应算法2中e过程的第②步*/⑧IfG是被动节点then⑨启动接收进程RP;⑩Endif;①IfQ是主动节点then@启动接收进程RP;⑩把BQ^传给进程SP,并启动SP;⑩Endif;⑩监控SP和I冲,直到它们结束;⑩通知地本次通信结束;/*对应算法2中e①End、vhile;⑩End、Ⅳhile;/*子任务i的通信*/⑨通知M口子任务i通信结束;⑨Endwhile;④发送计算结果到拖;④结束本次计算.定理l算法2所描述的分组通信过程实现了痧个计算节点的完全图通信问题.证明在算法2中d过程构造的选播对象队列的调整变动,所有的计算节点都在主动队列中存在定理2算法2所描述的分组通信过程是均衡的.证明在算法3的第⑥~⑨步过程中,CC中本文在并行关系数据库原型系统HPD科5J的研(下转第86页)过程的第④步*/2.4分析与实现集BQ={BQl,BQ2,…,BQ蛔,}覆盖了CS;同时在每一次变动的过程中,主动队列的所有的计算节点都和BQ通信.又因为经过AQf一1次主动队列中过,并且完成了通信.所以,算法2所描述的分组通信过程,实现了p个计算节点的完全图通信问题.最多存在AQf个主动节点,即只有AQf个计算节点发送消息;每个主动和被动节点只接收来自一个节点的信息,所以大大地减少了冲突.算法2所描述Enf{汗.2.3的分组通信过程是均衡的.究和实现过程中,应用了该分组通信模型.实践表明,在并行JOIN的数据重新划分阶段,该模型的效率比优先级方法、通信量方法及随机延迟提高了2.5~3倍.上海理工大学学报2005年第27卷准确率和查全率反映了分类质量的两个不同方面,两者必须综合考虑,不可偏废.因此,存在一种新的评估指标,即F1测试值试验研究.试验结果表明,K一近邻决策的分类效果要优于最近邻决策的分类效果.参考文献:n测试值=焉筹鬻表1分类查全率、准确率及F1值[1]姚天顺.自然语言理解[M].北京:清华大学出版社,1995.本方案试验结果所得查全率、准确率和F1值如表1所示.眨1Jb1J%战学刚,林鸿飞,姚天顺.中文文献的层次分类方法Tab.1昀删ion删Iratio,F1[J].中文信息学报,1999,13(6):20~25.SaltonG,WongA,YangC.AvectorSpacem。ddforau—ratio,p嫩isionF1值85.783.2t0蚴tic圳e)(i119[J].G聊m“,z泐£幻埘矿ACM,1975,18(11):613~620.■1JSaltonvaI哦准确率95.592.7分类方法K.近邻法最近邻法查全率77.875.5G.A甜幼凇斑了k£№已s矗以g[M].NewYork:Addison—W签Ley,1989.b1J陆1jp1J随1J萱菁,吴立德.基于向量空间模型的文档分类系统[J].模式识别与人工智能,1998,11(2):147~153.2结论文本自动分类是文本数据挖掘中一个很重要课题,本文根据网络信息文献的特点,提出了一种与语种无关的、机器学习的文本自动分类模型,并分别进行了基于最近邻决策和K一近邻决策的分类效果萱菁,吴立德.于语种的文本分类方法[J].中文信息学报,2000,14(6):1~7.吴立德.大规模中文文本处理[M].上海:复旦大学出版社,1997.何新贵,彭甫阳.中文文本的关键词自动制取和模糊分类[J].中文信息报,1999,13(1):9~15.(上接第82页)3结论在基于机群的并行计算实现中,解决通信峰值的有效手段就是分组通信.把无序或简单顺序的通信过程分解为若干均衡的通信子过程,不仅解决了冲突问题,还增加了机群的可扩展性.本文的研究和实践证明了这一点.参考文献:[A].李建中.数据库研究与发展95[C].哈尔滨:哈尔[3]№tra力印0rt舯呶)。。14.0印ecifi洳[Ⅱj/0L].h却://、^删.∞.saI斌a.gw/)印,2004—12.[4]KimJunseOng,DavidJ.utilizingHerterog明e。usNet—workinDistributedC0nlputiI】gSystenl【AJ.In:h纫^,衄一滨工程大学出版社,1995,95~100.£面眦ZS胛伽砌m伽H动%厅胛撇,珊D如£,.汤“£耐Press,1997,G唧抛矗增[C].LOBAl锄it06:IEEE—Cs336~345.[5]李建中,孙文隽,陈庆奎.并行关系数据库原型系统[1]PfisterG.R£靶扭r曲0,a伽6船[M].NJ:Pr朗ticeed.,1998.HALL阿t,2nd栅的数据查询语言和系统结构[J].计算机科学,1998。(10):282~285.[2]陈庆奎,李建中.集群并行环境下的并行JOIN算法万方数据