简单对象存取协议的并行通信系统及其实现方法

文档序号:7685203阅读:225来源:国知局
专利名称:简单对象存取协议的并行通信系统及其实现方法
技术领域
本发明涉及计算机网络计算技术和并行通信技术,特别是涉及一种面向基于INTERNET或INTRANET的多机群网格上的并行计算所需的并行SOAP(简单对象存取协议)通信系统和实现方法的技术。

背景技术
网格技术以其良好的自治性、自相似性、异构性、管理的多样性、强大的并行I/O能力和非常高的性能价格比等特性成为构建高性能计算和存储装置的有效手段。多机群网格是通过多个网络来构成大规模机群网格。随着机群节点数目和网络数目的增加,通信将成为瓶颈,因而大规模机群的峰值通信问题的研究成为一个焦点。在传统的并行计算领域,有两个重要的通信协议(环境)PVM和MPI(包括MPICH),它们有效地支持了并行计算环境。随着计算的网络化、随着计算环境的无边界化,计算环境的安全问题日益突出,致使网络管理方面增加了许多安全手段,如防火墙、认证机制等。这为基于普通INTERNET(或INTRANET)的多机群网格的实施带来了障碍。传统的并行通信协议虽然有较高的并行支持度和性能,但却被众多的安全防护机制所困扰。SOAP(简单对象存取协议)是Web服务中基于XML的简单对象传输协议,其具有平台无关的特性、互操作性强的特性以及穿透防火墙的能力,其可以很好地解决异构平台的互操作问题。为了利用SOAP协议来构建多机群网格的通信技术,实现多机群间的并行通信任务,SOAP的这些特性值得我们去研究其在多机群网格的并行计算中的通信问题。基于SOAP的并行环境通信机制的研究具有其现实意义。然而,SOAP不是为并行计算而提出的,面对并行计算,其有许多弱点,如性能低下和无法有效地支持集合通讯(并行一对多、多对多通信)问题。SOAP的基于XML的特殊表示方式致使其编码后的信息量极大增长,又由于其借助HTTP协议进行传输,所以SOAP的通信性能比较低下。国内外有很多针对SOAP性能的研究,并且研究结果认为基于XML的SOAP协议与基于二进制的协议相比在性能上有很大差距。文献[都认为数据和实际应用数据间的映像是影响SOAP性能的关键因素。一些技术通过优化序列化和反序列化的机制来提高SOAP平台的总体性能。另外一些运用动态提前绑定的数据模型映射机制。这些研究都不完全适合于多机群网格环境下的并行计算通信的需要。因为并行计算的多对多的峰值通信问题具有特殊性,而且它们也没有考虑通信资源(网卡)、存储资源(内存)和计算资源(CPU)的性能匹配问题,所以不能很好地利用网格资源;同时,它们都没有考虑并行计算所必需的组通信问题,不能完全适合于多机群网格的并行计算。


发明内容
针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种具有良好的可扩展性、高效性、良好地支持多机群网格上的并行计算所需的并行SOAP通信系统及其方法。
为了解决上述技术问题,本发明所提供的一种并行SOAP通信系统,即基于INTERNET或INTRANET的多机群网格上的并行SOAP通信系统,其特征在于,包括配置在多机群网格的每个计算节点上的动态缓冲池(DBP,Dynamic BufferPool)、动态缓冲池环(DBPR,Dynamic Buffer Pool Ring);多机群网格中所有计算节点上的所述通信部件(DBP、DBPR)构成并行SOAP通信系统,每个计算节点上的动态缓冲池、动态缓冲池环与多机群网格上的其他计算节点的动态缓冲池、动态缓冲池环相互连接,所有部件协同工作完成并行通信过程; 所述的多机群网格(Multi-cluster Grid-MCG)为一个四元组MCG(Ma,CCS,NG,R);其中Ma为MCG主控制器;CSS={CC1,CC2,...CCc}为计算机机群的集的集合;NG={N1,N2,...Ng}为连接各个机群网络的集合;R为连接规则;所述计算机机群是一个二元组CC(Ma,CS,NC),其中Ma为CC主控制器;CS={C1,C2,...Cp}为CC的所有计算节点的集合,每个计算节点是一台独立的计算机,其有自己独立的CPU、内存、磁盘和通信适配器;NC为连接该机群的互联网络; 所述的动态缓冲池是计算节点Ci上的11元组DBP(m,RM,wr,SM,ws,Rmtoken,Smtoken,state,next,Curin,Curout),各元部件描述如下 (1)m为当前时段与Ci通信的MCG其它计算节点的个数,即对于Ci有2m个并发数据流; (2)RM为m×wr矩阵、是接收m个输入并发数据流的缓冲池,称接收缓冲矩阵;其矩阵元素为下述三种形式①为一个大小为|B|的缓冲块构成;②为空;③为k个大小为|B|的缓冲块构成,k被称为密度因子,其为大于0的整数;RM的矩阵元素被称为超矩阵元素;wr是矩阵RM的列数; (3)SM为m×ws矩阵,其矩阵元素亦为超矩阵元素,ws是矩阵SM的列数,称SM为发送缓冲矩阵; 对RM的第j(1≤j≤m,j≠i)行用来缓冲来自计算节点Cj的并发数据流;对SM的第j(1≤j≤m,j≠i)行用来缓冲Ci发往计算节点Cj的并发数据流;RM和SM的列是通信操作基本单位,它们的每个列中的缓冲块被在一个时间段内发送或接收; (4)Rmtoken细化为结构Rmtoken(rece,decopr)、是RM的操作令牌、Rmtoken.rece指向RM当前输入列,供RECE进程写入RM使用;Rmtoken.decopr指向RM当前输出列、供DECOPR进程读取RM使用; (5)Smtoken细化为结构Smtoken(send,copr),是SM的操作令牌、Smtoken.send指向SM当前输出列、供SEND进程读取SM发送数据使用;Smtoken.copr指向SM当前输入列,供COPR进程写入SM使用; (6)state为DBP的状态,其包括“膨胀”,“收缩”,“空壳”;next为指向DBP类型的指针,用于构建DBPR; (7)Curin表示当前已经进入DBP的数据块(缓冲块)数目,Curout表示从DBP已经输出的数据块(缓冲块)数目; 所述的DBPR是计算节点Ci上的一个五元组DBPR(m,DBPS,n,Curi<rece,decopr>,Curo<send,copr>),其中m为当前时段与Ci通信的MCG其它计算节点的个数;DBPS为DBP的集合,所有DBP构成一个单向链表环;n是DBP的个数;Curi.rece是指向RECE进程当前操作的DBP,Curi.decopr是指向DECOPR进程当前操作的DBP,Curo.send是指向SEND进程当前操作的DBP,Curo.copr是指向COPR进程当前操作的DBP。
进一步的,在所述DBP中,RM和SM的每一行对应Ci外部的一个计算节点Cj(1≤j≤m,j≠i)的输入、输出并发数据流,用来实现Ci、Cj间的双向通信过程;由于每个并发数据流必须经过DBP,所以必须对并发数据流切分成大小为|B|的数据流块,为了保证信息的正确性,每个数据流块被切分的时候,便分配一个序号,表示其在数据流中的位置;设DSij为一个数据流,那么DSij(sno)为其第sno个数据流块;由COPR来切分编号,然后发送;由DECOPR按序号恢复成数据流,然后传给本地计算程序; 进一步的,所述动态缓冲池中的并发数据流是在MCG的峰值通信的各个阶段,每一对节点Ci、Cj间会有两个单向的数据流DSij和DSji;对Ci而言,DSij为输出数据流,DSji为输入数据流;对Cj而言,恰好相反;如果MCG有p个计算节点,那么其在完全图通信阶段,具有p(p+1)/2个数据流;由于所有数据流并发存在,所以称它们为并发数据流;每个并发数据流对应一个密度因子k,表示该数据流希望单位时间内传输的数据块(缓冲块)的数目,且k≥0;当k=0时,表示该数据流已经关闭;每个并发数据流可以被切分成若干个大小为|B|的单元,以便适合缓冲通信机制。
进一步的,所述DBPR的大小取决于缓冲区库的大小NB和DBP的大小N;它们应该满足式n×N≤NB;当不满足时,将借助于磁盘存储DBP。
进一步的,所述动态缓冲池环中的缓冲区库是计算节点Ci上的所有缓冲块构成的集合为缓冲区库,其大小为NB个缓冲区块。
进一步的,所述动态缓冲池的状态state“膨胀”、“收缩”、“空壳”;所谓“膨胀”态就是该DBP中的Curin小于N,此时该DBP的缓冲块数还能增加,该DBP能输入和输出数据块;所谓“收缩”态就是该DBP的Curin等于N且Curout小于Curin,处于该状态的DBP只能输出数据不能输入数据;所谓“空壳”态就是该DBP的Curout已经等于N,所有的数据已经离开DBP并且所有缓冲块已经释放,只留下DBP空结构,处于空状态的DBP能被删除;每从DBP输出一个数据块,该数据块对应的缓冲块被释放到缓冲区库;在实现过程中,运用一定控制机制,避免DBP的矩阵变得狭长; 进出DBP的数据流块是以列为单位进行的,在某时间段ts,m个数据流在DBP的RM(或SM)中的同一列号数据被作为一次操作单位,整体被发送或接收;为了体现这种同步机制,引进一个时间段序列t1,t2...tt...假设DBPR已经被初始化。
进一步的,所述动态缓冲池中的缓冲块|B|为计算节点内存单元,其用来缓冲通信数据,是所述“接收”、“解压”、“压缩”和“发送”四个操作对数据处理的基本单位;其大小能根据计算节点的物理情况来定义,用|B|表示。
本发明所提供的一种并行SOAP通信系统中计算DBP大小的方法,其特征在于,设 1)vp为扣除CPU的其它计算任务后的空闲能力所提供; 2)每个DBP中的每个缓冲块的大小均为|B|; 3)对目前的主流的微型计算机而言,根据实际测试数据可知,都有vc<<vp成立,即处理速度远远大于通信速度。假设本文的描述的MCG中的所有计算节点,这一事实均成立; 4)为了描述简便,假设发送速度和接收速度相同,压缩速度和解压的速度相同; 5)设每个并发数据流的密度因子均为1; 在MCG的一个计算节点Ci内,希望调整m、wr、ws的值,使通信(发送、接收)吞吐量和处理(压缩、解压)吞吐量在某一阶段内保持均衡,即满足公式|B|×m×(wr+ws)×vc=|B|×vp;其中,vc为通信速度,即单位时间内计算节点Ci的网络适配器的发送和接收缓冲块的个数;vp为处理速度,即单位时间内CPU压缩或解压的缓冲块的个数;m是DBP的矩阵的行的个数,一般变化频率不大;wr、ws的值可以根据并行通信的各个阶段的通信量来动态调整,所以DBP的动态性主要体现在wr、ws的变化上;所述公式的左端是期望的通信吞吐量,右端是处理吞吐量。显然要想达到平衡,必须通过缓冲池的方法来平衡处理速度和通信速度。为压缩和解压操作安排m×(wr+ws)个缓冲块构成的缓冲池。通过所述公式,可以计算出wr+ws的值,用N=m×(wr+ws)表示DBP的标准大小,表示每个DBP中有N个大小为|B|的缓冲块。
本发明所提供的一种并行SOAP通信系统的并发通信方法,即针对DBP和DBPR的四个并发过程,其特征表现为Ci上的并发通信过程为{“接收(RECE)”、“解压DECOPR”、“压缩COPR”、“发送SEND”}四个操作的并发执行过程;即一个计算节点Ci上的并发发送过程包括并发执行的“压缩”、“发送”的两个过程;其上的并发接收过程包括并发执行的“接收”、“解压”过程;“并发发送过程”和“并行接收过程”是两个互逆的过程;其中“接收”、“发送”由网络适配器执行,“压缩”、“解压”由CPU来执行;所述的四个并发进程,能独立的并发执行,它们通过动态缓冲池来协同并行执行。
进一步的,所述“接收(RECE)”过程 (1)获取当前时间段ts;并重复做(2)(3)(4)工作,直到ts时间段结束为止 (2)从网络上接收来自其它计算节点的数据流块DSB, (3)根据DBPR.curi.rece获取DBPR上当前输入DBP; (3.1)如果DBP.state=“膨胀”,则 {根据DBP.Rmtoken.rece获取DBP的RM的当前输入列号;确定数据流块DSB所对应的RM的行号line;根据该数据流的密度因子k确定超元素RM[line,DBP.Rmtoken.rece]类型和大小;向缓冲区库申请一个缓冲块B,并把DSB写入B;如果超元素RM[line,DBP.Rmtoken.rece]中的缓冲块数小于k,则将B加入该超元素;DBP.Curin++;如果DBP.Curin<N,则DBP.state=“膨胀”,否则DBP.state=“收缩”;} (3.2)如果DBP.state=“收缩”,则 {创建一个新DBP,并加入DBPR;执行过程同(3.1)步;} (4)如果ts时间段到时,则 {DBP.Rmtoken.rece所指向的RM列已经完成; DBP.Rmtoken.rece++;注指向下一列 如果DBP.Rmtoken.decopr=NULL,则置 DBP.Rmtoken.decopr=DBP.Rmtoken.rece-1;}。
进一步的,所述“解压DECOPR”过程 (1)获取当前时间段ts;并重复做(2)~(7)工作 (2)根据DBPR.Curi.decopr获取DBPR上当前输入DBP; (3)如果DBP.Rmtoken.decopr=NULL,则转向(1); 注没有输入数据等待; (4)获取DBP的RM的第DBP.Rmtoken.decopr列RMC; 对向量RMC的每一超元素做 {读取超元素上的缓冲块的数据流块,并执行解压解码操作;释放该超元素上的所有缓冲块,并统计释放的缓冲块数bn;DBP.Curout=DBP.Curout+bn; } (5)如果DBP.Curout<N,则 {DBP.Rmtoken.decopr++;转向(4);注处理下一列} (6)如果DBP.Curout=N,则 {置DBP.state=“空壳”;置DBPR.Curi.decopr为DBPR上的下一个DBP;} 注处理下一个DBP (7)删除DBPR上的所有“空壳”状态的DBP;转向(2)。
进一步的,所述“压缩COPR”过程 (1)如果计算进程有要发送的数据,则重复做(2)(3)工作,直到计算进程的要发送的数据被发送完毕; (2)从计算进程获取通信数据,并对其压缩,添加路由信息RI,形成数据流块DSB; (3)根据DBPR.curo.copr获取DBPR上COPR进程的当前操作DBP; [3.1]如果DBP.state=“膨胀”,则 {根据DBP.Smtoken.copr获取DBP的SM的当前输入列号;根据路由信息RI确定数据流块DSB所对应的SM的行号line(数据流号);根据该数据流的密度因子k确定超元素SM[line,DBP.Smtoken.copr]类型和大小;向缓冲区库申请一个缓冲块B,并把DSB写入B;如果超元素SM[line,DBP.Smtoken.copr]中的缓冲块数小于k,则将B加入该超元素;DBP.Curin++;如果DBP.Curin<N,则DBP.state=“膨胀”,否则DBP.state=“收缩”;} [3.2]如果DBP.state=“收缩”,则 {创建一个新DBP,并加入DBPR; 执行过程同[3.1]步;}。
进一步的,所述“发送SEND”过程 (1)获取当前时间段ts;并重复做(2)~(7)工作; (2)根据DBPR.Curo.send获取DBPR上SEND进程当前操作的DBP; (3)如果DBP.Smtoken.send=NULL,则转向(1); 注没有要发送的数据; (4)获取DBP的SM的第DBP.Smtoken.send列RMC; 对超元素向量RMC的每一超元素做 {读取超元素上的缓冲块的数据流块,并发送到该数据流所对应的计算节点;释放该超元素上的所有缓冲块,统计该超元素所释放的缓冲块数bn;置DBP.Curout=DBP.Curout+bn;} (5)如果DBP.Curout<N,则 {DBP.Smtoken.send++;转向(4);注处理下一列} (6)如果DBP.Curout=N,则 {置DBP.state=“空壳”;置DBPR.Curo.send为DBPR上的下一个DBP;}注处理下一个DBP (7)删除DBPR上的所有“空壳”状态的DBP;转向(2)。
本发明提供的并行SOAP通信系统及其方法,SPCDBP利用计算节点的内存构建动态缓冲模型,来适应各类计算资源的速度差异,同时利用这些差异,使通信设备和计算设备并行运行。本发明提供的并行SOAP通信系统及其方法通过压缩编码机制和动态缓冲结构,其性能得到很大的改善,使其能够支持并行计算,从模型操作的过程来看,可以得出如下有益特点 1)SOAP协议的低效性可以通过压缩通信技术来减少通信信息量,而对于并行计算的数据而言,这种压缩比可达很高,可以压缩90%以上; 2)通过动态缓冲机制,使编码操作(COPR、DECOPR)与通信操作(SEND、RECE)真正的并行起来,流水机制使得解压缩的时间可以被忽略,尤其是在计算节点性能较高时; 3)缓冲池的矩阵的每一行对应一个并发数据流,m行便对应m个并发数据流,这和并行计算的多对多通信有效地对应起来;另外并发数据流机制隐蔽了多对多通信的细节,简化了应用任务的编写; 4)缓冲池矩阵的超元素表示以及密度因子的提出,更能适合不同并发数据流的实际需要。如果一个并发数据流的密度因子k较大,则说明该数据流需要较大的网络通信资源,在一个发送时间段内其要发送k个数据块。如果缓冲池矩阵的某一行呈稀疏向量(空值较多),则说明该行对应的并发数据流对网络资源的需求较少。当k=0时,意味着该并发数据流已经结束。因此,k的值的大小可以控制数据流的流量(例如,利用反向流压控制技术),更能适合并行通信过程。k的值可以在各个通信阶段间动态调整。
5)采用超元素技术,可以在接收缓冲矩阵和发送缓冲矩阵之间动态使用缓冲块,这样可以根据通信数据的实际来划分RM和SM,不会浪费内存资源。
6)划分大小稳定的缓冲块,使缓冲池、并发数据流有一个统一的度量标准。
7)采用“空壳”技术,避免了复杂的操作算法,在DBP变成“空壳”前,它的所有矩阵的形式未变,算法不会抖动;另一方面,“空壳”的含义是完成任务的缓冲块已经被释放到缓冲区库。
8)本模型的4个进程有各自的缓冲池操作指针,且指针的值的变化按统一顺序变化(按矩阵下标由小到大次序),显然,不会产生死锁。
9)如果一个并发数据流的优先级较高,需要快速传输,可以提高其密度因子k的值来实施。
10)在一个DBP中同时并存RM和SM,它们的初始列数都是0;然后它们自然增加,增加的最大值是使DBP具有的总缓冲块数小于N。RM和SM的大小由通信过程的自然情况而定。



图1是本发明实施例动态缓冲池的结构框图; 图2是本发明实施例的DBP的状态转换图; 图3是本发明实施例SOAP未压缩、串行压缩和SPCDBP模型通信对比曲线图; 图4是本发明实施例TCP未压缩、SOAP串行压缩和SPCDBP模型通信对比曲线图。

具体实施例方式 以下结合

对本发明的实施例作进一步详细描述,但本实施例并不用于限制本发明,凡是采用本发明的相似结构、方法及其相似变化,均应列入本发明的保护范围。
为了对本发明的实施例的一种并行SOAP通信系统及其方法作进一步详细描述,本说明书作如下设定 设定1(计算机机群)是一个二元组CC(Ma,CS,NC),其中Ma为CC主控制器;CS={C1,C2,...Cp}为CC的所有计算节点的集合,每个计算节点是一台独立的计算机,其有自己独立的CPU、内存、磁盘和通信适配器;NC为该机群的互联网络。
设定2(多机群网格)一个多机群网格(Multi-cluster Grid-MCG)为一个四元组MCG(Ma,CCS,NG,R);其中Ma为MCG主控制器;CSS={CC1,CC2,...CCc}为计算机机群的集的集合;NG={N1,N2,...Ng}为连接各个机群网络的集合;R为连接规则。
在MCG中,所有计算节点在并行计算过程中会产生峰值通信,除了研究有效的通信模型来提高MCG资源的利用率外,还要考虑协议的特点来进行优化。面对SOAP协议通信效率低下问题,一个解决的有效途径是对被传输的信息进行压缩。通过研究得知,对大多数并行计算信息,其压缩后的信息基本可以达到原信息的5%~10%左右。然而,压缩会占用CPU资源,并且SOAP所提供的压缩通信模式中“压缩”、“传输”两个操作是串行的。由于两个操作的串行执行,压缩的优势不能完全发挥出来,CPU和网卡的能力被交替地浪费。况且随着微处理器处理能力按摩尔定律的飞速发展,CPU的能力将远远大于网卡的通信能力。因此,可以利用CPU过剩的能力,对数据压缩工作独立处理、预先准备,采用CPU、网卡并行流水机制,来提高“压缩”、“发送”操作的并行性。
设定3(并发发送过程、并发接收过程)一个计算节点Ci上的并发发送过程包括并发执行的“压缩”、“发送”的两个过程;其上的并发接收过程包括并发执行的“接收”、“解压”过程。“并发发送过程”和“并行接收过程”是两个互逆的过程。所以,Ci上的并发通信过程为{“接收(RECE)”、“解压DECOPR”、“压缩COPR”、“发送SEND”}四个操作的并发执行过程。其中“接收”、“发送”由网络适配器执行,“压缩”、“解压”由CPU来执行。
设定4(缓冲块)一个缓冲块B为计算节点内存单元,其用来缓冲通信数据,是“接收”、“解压”、“压缩”和“发送”四个操作对数据处理的基本单位;其大小可以根据计算节点的物理情况来定义,用|B|表示。
设定5(通信峰值问题)所谓通信峰值问题就是在并行计算过程中,周期性的出现MCG节点间大规模多对多的、完全图通信问题。
设定6(完全图通信)设一个计算环境CE具有p个计算节点。所谓完全图通信就是在某一通信阶段,CE中每个计算节点都要向其它p-1个计算节点发送数据,同时又要从其p-1个节点接收数据,在CE的任意两点间都有一个逻辑信道,所有逻辑信道构成一个有p个节点的完全图。
设定7(并发数据流)在MCG的峰值通信的各个阶段,每一对节点Ci、Cj间会有两个单向的数据流DSij和DSji;对Ci而言,DSij为输出数据流,DSji为输入数据流;对Cj而言,恰好相反。如果MCG有p个计算节点,那么其在完全图通信阶段,具有p(p+1)/2个数据流。由于所有数据流并发存在,所以称它们为并发数据流。
每个并发数据流对应一个密度因子k,表示该数据流希望单位时间内传输的数据块(缓冲块)的数目,且k≥0;当k=0时,表示该数据流已经关闭。有关密度因子的使用参见定义8。
每个并发数据流可以被切分成若干个大小为|B|的单元,以便适合缓冲通信机制。
设定8(动态缓冲池)计算节点Ci上的动态缓冲池为DBP(m,RM,wr,SM,ws,Rmtoken,Smtoken,state,next,Curin,Curout),各部件描述如下 (1)m为当前时段与Ci通信的MCG其它计算节点的个数,即对于Ci有2m个并发数据流。
(2)RM为m×wr矩阵、是接收m个输入并发数据流的缓冲池,称接收缓冲矩阵;其矩阵元素为下述三种形式①为一个大小为|B|的缓冲块构成;②为空;③为k个大小为|B|的缓冲块构成,k被称为密度因子,其为大于0的整数;RM的矩阵元素被称为超矩阵元素;wr是矩阵RM的列数。
(3)SM为m×ws矩阵,其矩阵元素亦为超矩阵元素,ws是矩阵SM的列数,称SM为发送缓冲矩阵。
对RM的第j(1≤j≤m,j≠i)行用来缓冲来自计算节点Cj的并发数据流;对SM的第j(1≤j≤m,j≠i)行用来缓冲Ci发往计算节点Cj的并发数据流;RM和SM的列是通信操作基本单位,它们的每个列中的缓冲块被在一个时间段内发送或接收。
(4)Rmtoken细化为结构Rmtoken(rece,decopr)、是RM的操作令牌、Rmtoken.rece指向RM当前输入列,供RECE进程写入RM使用;Rmtoken.decopr指向RM当前输出列、供DECOPR进程读取RM使用。
(5)Smtoken细化为结构Smtoken(send,copr),是SM的操作令牌、Smtoken.send指向SM当前输出列、供SEND进程读取SM发送数据使用;Smtoken.copr指向SM当前输入列,供COPR进程写入SM使用。
(6)state为DBP的状态,其包括{“膨胀”,“收缩”,“空壳”},具体描述参见3.4节;next为指向DBP类型的指针,用于构建DBPR(参见定义11); (7)Curin表示当前已经进入DBP的数据块(缓冲块)数目,Curout表示从DBP已经输出的数据块(缓冲块)数目。
在DBP中,RM和SM的每一行对应Ci外部的一个计算节点Cj(1≤j≤m,j≠i)的输入、输出并发数据流,用来实现Ci、Cj间的双向通信过程。由于每个并发数据流必须经过DBP,所以必须对并发数据流切分成大小为|B|的数据流块,为了保证信息的正确性,每个数据流块被切分的时候,便分配一个序号,表示其在数据流中的位置。设DSij为一个数据流,那么DSij(sno)为其第sno个数据流块。由COPR来切分编号,然后发送;由DECOPR按序号恢复成数据流,然后传给本地计算程序。DBP的结构如图1所示,外部计算节点装置经过“接收(RECE)”模块,再分别经过RM模块的m(多)个并发数据流单元,再经“解压DECOPR”模块连接本地计算装置,本地计算装置经“压缩COPR”模块,再分别经过SM模块的m(多)个并发数据流单元,再经“发送SEND”模块连接外部计算节点装置,其中SM、RM模块中的并发数据流单元包括r个超矩阵元素,每个超矩阵元素由k个缓冲块构成;DBP的工作流程数据流由外部计算节点通过“接收(RECE)”进入RM,“解压DECOPR”从RM取出数据送给本地计算进程;本地计算进程计算出结果后,通过“压缩COPR”编码压缩形成数据流块并送至SM,“发送SEND”进程从SM取出数据流快并发往外部计算节点。
本发明实施例中DBP的配置策略, 设定9(通信速度、处理速度)计算节点Ci的网络适配器的处理速度定义为单位时间内发送和接收缓冲块的个数,简称通信速度,记为vc;Ci的CPU的处理速度定义为单位时间内CPU压缩或解压的缓冲块的个数,简称处理速度,记为vp。
为了描述方便做如下假设 (1)vp为扣除CPU的其它计算任务后的空闲能力所提供; (2)每个DBP中的每个缓冲块的大小均为|B|; (3)对目前的主流的微型计算机而言,根据实际测试数据可知,都有vc<<vp成立,即处理速度远远大于通信速度。假设本文的描述的MCG中的所有计算节点,这一事实均成立。
(4)为了描述简便,假设发送速度和接收速度相同,压缩速度和解压的速度相同。
下面提供一个计算DBP大小的方法。为了计算简便,设每个并发数据流的密度因子均为1。在MCG的一个计算节点Ci内,希望调整m、wr、ws的值,使通信(发送、接收)吞吐量和处理(压缩、解压)吞吐量在某一阶段内保持均衡,即满足式(1) |B|×m×(wr+ws)×vc=|B|×vp.........(1) (1)式的左端是期望的通信吞吐量,右端是处理吞吐量。显然要想达到平衡,必须通过缓冲池的方法来平衡处理速度和通信速度。为压缩和解压操作安排m×(wr+ws)个缓冲块构成的缓冲池。m是DBP的矩阵的行的个数,一般变化频率不大;wr、ws的值可以根据并行通信的各个阶段的通信量来动态调整,所以DBP的动态性主要体现在wr、ws的变化上。通过(1)式,可以计算出wr+ws的值,用N=m×(wr+ws)表示DBP的标准大小,表示每个DBP中有N个大小为|B|的缓冲块。
本发明实施例中关于DBPR; 由于单个DBP很难满足峰值通信的需要,为了适应每个时刻动态变化的并发数据流,需要多个DBP,所以引进DBPR的结构。
设定10(缓冲区库)计算节点Ci上的所有缓冲块构成的集合为缓冲区库,其大小为NB个缓冲区块。
设定11(DBPR)计算节点Ci上的DBPR为DBPR(m,DBPS,n,Curi(rece,decopr),Curo(send,copr)),其中m为当前时段与Ci通信的MCG其它计算节点的个数;DBPS为DBP的集合,所有DBP构成一个单向链表环;n是DBP的个数;Curi.rece是指向RECE进程当前操作的DBP,Curi.decopr是指向DECOPR进程当前操作的DBP,Curo.send是指向SEND进程当前操作的DBP,Curo.copr是指向COPR进程当前操作的DBP。
DBPR的大小取决于缓冲区库的大小NB和DBP的大小N。它们应该满足式(2) n×N≤NB....................(2) 当不满足(2)时,将借助于磁盘存储DBP。
MCG的每个计算节点内部,都包含一个DBPR。
本发明实施例中DBP的过程描述; DBP有“膨胀”,“收缩”,“空壳”三个状态;所谓“膨胀”态就是该DBP中的Curin小于N,此时该DBP的缓冲块数还可以增加,该DBP可以输入和输出数据块;所谓“收缩”态就是该DBP的Curin等于N且Curout小于Curin,处于该状态的DBP只能输出数据不能输入数据;所谓“空壳”态就是该DBP的Curout已经等于N,所有的数据已经离开DBP并且所有缓冲块已经释放,只留下DBP空结构,处于空状态的DBP可以被删除。每从DBP输出一个数据块,该数据块对应的缓冲块被释放到缓冲区库。DBP的状态转换过程如图2所示(在实现过程中,运用一定控制机制,避免DBP的矩阵变得狭长)。
进出DBP的数据流块是以列为单位进行的,在某时间段ts,m个数据流在DBP的RM(或SM)中的同一列号数据被作为一次操作单位,整体被发送或接收。为了体现这种同步机制,引进一个时间段序列t1,t2...tt...假设DBPR已经被初始化。
如图1所示,SPCDBP的进程SEND、RECE、COPR和DECOP是独立的四个进程,可以独立的并发执行,它们通过动态缓冲池来协同并行执行。其并行特性体现如下(1)SEND和RECE是两个与网络适配器相关的通信进程,它的执行和网络适配器的工作状态和缓冲池的状态有关,而与并行计算进程、DECOP、COPR无关;(2)DECOP和COPR是与计算进程的数据量以及动态缓冲池状态相关联的进程。四个进程的工作过程如下 过程1(RECE进程) (1)获取当前时间段ts;并重复做(2)(3)(4)工作,直到ts时间段结束为止 (2)从网络上接收来自其它计算节点的数据流块DSB, (3)根据DBPR.curi.rece获取DBPR上当前输入DBP;(3.1)如果DBP.state=“膨胀”,则 {根据DBP.Rmtoken.rece获取DBP的RM的当前输入列号;确定数据流块DSB所对应的RM的行号line;根据该数据流的密度因子k确定超元素RM[line,DBP.Rmtoken.rece]类型和大小;向缓冲区库申请一个缓冲块B,并把DSB写入B;如果超元素RM[line,DBP.Rmtoken.rece]中的缓冲块数小于k,则将B加入该超元素;DBP.Curin++;如果DBP.Curin<N,则DBP.state=“膨胀”,否则DBP.state=“收缩”;} (3.2)如果DBP.state=“收缩”,则 {创建一个新DBP,并加入DBPR;执行过程同(3.1)步;} (4)如果ts时间段到时,则 {DBP.Rmtoken.rece所指向的RM列已经完成; DBP.Rmtoken.rece++;//指向下一列 如果DBP.Rmtoken.decopr=NULL,则置 DBP.Rmtoken.decopr=DBP.Rmtoken.rece-1;} 过程2(DECOPR进程) (1)获取当前时间段ts;并重复做(2)~(7)工作 (2)根据DBPR.Curi.decopr获取DBPR上当前输入DBP; (3)如果DBP.Rmtoken.decopr=NULL,则转向(1); //没有输入数据等待; (4)获取DBP的RM的第DBP.Rmtoken.decopr列RMC; 对向量RMC的每一超元素做 {读取超元素上的缓冲块的数据流块,并执行解压解码操作;释放该超元素上的所有缓冲块,并统计释放的缓冲块数bn;DBP.Curout=DBP.Curout+bn; } (5)如果DBP.Curout<N,则 {DBP.Rmtoken.decopr++;转向(4);//处理下一列} (6)如果DBP.Curout=N,则 {置DBP.state=“空壳”;置DBPR.Curi.decopr为DBPR上的下一个DBP;}//处理下一个DBP (7)删除DBPR上的所有“空壳”状态的DBP;转向(2); 过程3(COPR进程) (1)如果计算进程有要发送的数据,则重复做(2)(3)工作,直到计算进程的要发送的数据被发送完毕; (2)从计算进程获取通信数据,并对其压缩,添加路由信息RI,形成数据流块DSB; (3)根据DBPR.curo.copr获取DBPR上COPR进程的当前操作DBP; (3.1)如果DBP.state=“膨胀”,则 {根据DBP.Smtoken.copr获取DBP的SM的当前输入列号;根据路由信息RI确定数据流块DSB所对应的SM的行号line(数据流号);根据该数据流的密度因子k确定超元素SM[line,DBP.Smtoken.copr]类型和大小;向缓冲区库申请一个缓冲块B,并把DSB写入B;如果超元素SM[line,DBP.Smtoken.copr]中的缓冲块数小于k,则将B加入该超元素;DBP.Curin++;如果DBP.Curin<N,则DBP.state=“膨胀”,否则DBP.state=“收缩”;} (3.2)如果DBP.state=“收缩”,则 {创建一个新DBP,并加入DBPR; 执行过程同(3.1)步;} 过程4(SEND进程) (1)获取当前时间段ts;并重复做(2)~(7)工作 (2)根据DBPR.Curo.send获取DBPR上SEND进程当前操作的DBP; (3)如果DBP.Smtoken.send=NULL,则转向(1); //没有要发送的数据; (4)获取DBP的SM的第DBP.Smtoken.send列RMC; 对超元素向量RMC的每一超元素做 {读取超元素上的缓冲块的数据流块,并发送到该数据流所对应的计算节点;释放该超元素上的所有缓冲块,统计该超元素所释放的缓冲块数bn;置DBP.Curout=DBP.Curout+bn;} (5)如果DBP.Curout<N,则 {DBP.Smtoken.send++;转向(4);//处理下一列} (6)如果DBP.Curout=N,则 {置DBP.state=“空壳”;置DBPR.Curo.send为DBPR上的下一个DBP;}//处理下一个DBP (7)删除DBPR上的所有“空壳”状态的DBP;转向(2); 本发明实施例中具体试验说明 用8台微型计算机和1台100M交换机构建一个MCG并行环境,更多计算节点的并行通讯过程都是通过分组通信而得的。利用JAXM和JDK1.4.2作为开发工具。JAXM作为JWSDP的一个组成部分,是一个轻便的、执行XML消息交换的AP,它使服务能够利用SOAP消息协议来完成相互间的交互。取|B|=10kB,缓冲区库容量为10MB。实验对SPCDBP模型的有效性进行了验证。主要有4个试验 试验1.对比未压缩、JAXM提供的压缩机制(串行压缩)和SPCDBP模型之间的性能。实验结果如图3所示,图中横轴1、2、3、4、5分别对应被传输的数据规模为10MB、20MB、40MB、60MB、80MB的情形。由结果可知,SPCDBP模型较JAXM提供的串行压缩的性能有明显地提高;随着通信数据量的增加,这种优势越来越明显;而且,如果SOAP不压缩传输,其性能很难适合并行计算。
试验2.对比TCP协议、串行压缩和SPCDBP模型的性能。实验结果如图4所示,图中横轴1、2、3、4、5分别对应被传输的数据规模为10MB、20MB、40MB、60MB、80MB的情形。由结果可知,SPCDBP模型和TCP有相近的数量级的通信效率,并且SPCDBP模型较串行压缩的效率提高近一倍以上;而且随着数据量的增加,SPCDBP模型的效率越来越接近TCP。
试验3.测试密度因子对偏斜并发数据流的调整功能。计算节点C0发送数据到其它8个计算节点,试验分五次进行,每次计算最大通信节点(C0发往8个节点中数据量最大的节点)和最小通信节点间的数据量差值,即最大偏移量。然后通过调整发往最大通信节点的数据流的密度因子,来均衡使用通信适配器的资源,达到均衡通信的目的。实验结果如表1所示,8个并发数据流的最大偏斜量分别为1MB、20MB、40MB、60MB、80MB。由结果可知,最大数据偏移量和密度因子的关系成近线性关系;SPCDBP模型可以通过设定密度因子k的值来调整通信偏斜,即通过增加大数据流的密度因子的值来适应大数据量的均衡通信;密度因子的引入可以有效地调节并行峰值通信阶段中的通信数据量的不均衡问题,适合多机群网格中异构资源能力(计算节点的通信差异、计算能力差异)的合理应用。
表1.密度因子对偏斜并发数据流的调整 试验4.给定10M数据,运用点到点的通信,测试了|B|值为2.5KB、5KB、10kB、15KB、20KB的响应时间,测试结果发现当|B|=10KB时,响应时间最佳,试验结果如图2所示。当数据量超过缓冲区库容量(本实验为10MB)时,由于用到硬盘缓存,其性能出现下降趋势,有关优化问题正在研究。
表2.|B|值的试验结果 总之,SPCDBP模型为运用SOAP进行并行计算提供了一个可行的技术途径。同时这种结构也可适合基于其它二进制通信协议的应用。
权利要求
1.一种并行SOAP通信系统,即基于INTERNET或INTRANET的多机群网格上的并行SOAP通信系统,其特征在于,包括配置在多机群网格的每个计算节点上的动态缓冲池(DBP)、动态缓冲池环(DBPR);每个计算节点上的动态缓冲池、动态缓冲池环与多机群网格上的其他计算节点的动态缓冲池、动态缓冲池环相互连接,协同工作完成并行通信过程;
所述的多机群网格为一个四元组MCG(Ma,CCS,NG,R);其中Ma为MCG主控制器;CSS={CC1,CC2,...CCc}为计算机机群的集的集合;NG={N1,N2,...Ng}为连接各个机群网络的集合;R为连接规则;
所述计算机机群是一个二元组CC(Ma,CS,NC),其中Ma为CC主控制器;CS={C1,C2,...Cp}为CC的所有计算节点的集合,每个计算节点是一台独立的计算机,其有自己独立的CPU、内存、磁盘和通信适配器;NC为连接该机群的互联网络;
所述的动态缓冲池是计算节点Ci上的11元组DBP(m,RM,wr,SM,ws,Rmtoken,Smtoken,state,next,Curin,Curout),各元部件描述如下
(1)m为当前时段与Ci通信的MCG其它计算节点的个数,即Ci有2m个并发数据流;
(2)RM为m×wr矩阵、是接收m个输入并发数据流的缓冲池,称接收缓冲矩阵;其矩阵元素为下述三种形式①为一个大小为|B|的缓冲块构成;②为空;③为k个大小为|B|的缓冲块构成,k被称为密度因子,其为大于0的整数;RM的矩阵元素被称为超矩阵元素;wr是矩阵RM的列数;
(3)SM为m×ws矩阵,其矩阵元素亦为超矩阵元素,ws是矩阵SM的列数,称SM为发送缓冲矩阵;
(4)Rmtoken细化为结构Rmtoken(rece,decopr)、是RM的操作令牌、Rmtoken.rece指向RM当前输入列,供RECE进程写入RM使用;Rmtoken.decopr指向RM当前输出列、供DECOPR进程读取RM使用;
(5)Smtoken细化为结构Smtoken(send,copr),是SM的操作令牌、Smtoken.send指向SM当前输出列、供SEND进程读取SM发送数据使用;Smtoken.copr指向SM当前输入列,供COPR进程写入SM使用;
(6)state为动态缓冲池的状态,其包括“膨胀”,“收缩”,“空壳”;next为指向DBP类型的指针,用于构建动态缓冲池环;
(7)Curin表示当前已经进入动态缓冲池的数据块(缓冲块)数目,Curout表示从动态缓冲池已经输出的数据块(缓冲块)数目;
所述的动态缓冲池环是计算节点Ci上的一个五元组DBPR(m,DBPS,n,Curi<rece,decopr>,Curo<send,copr>),其中m为当前时段与Ci通信的MCG其它计算节点的个数;DBPS为动态缓冲池的集合,所有动态缓冲池构成一个单向链表环;n是动态缓冲池的个数;Curi.rece是指向RECE进程当前操作的动态缓冲池,Curi.decopr是指向DECOPR进程当前操作的动态缓冲池,Curo.send是指向SEND进程当前操作的动态缓冲池,Curo.copr是指向COPR进程当前操作的动态缓冲池。
2.根据权利要求1所述的并行SOAP通信系统,其特征在于,在所述动态缓冲池中,RM和SM的每一行对应Ci外部的一个计算节点Cj(1≤j≤m,j≠i)的输入、输出并发数据流,用来实现Ci、Cj间的双向通信过程;对并发数据流切分成大小为|B|的数据流块,每个数据流块被切分时应分配一个表示其在数据流中位置的序号;由COPR来切分编号,然后发送;由DECOPR按序号恢复成数据流,然后传给本地计算程序。
3.根据权利要求1所述的并行SOAP通信系统,其特征在于,所述动态缓冲池中的并发数据流是在MCG的峰值通信的各个阶段,每一对节点Ci、Cj间会有两个单向的数据流DSij和DSji;对Ci而言,DSij为输出数据流,DSji为输入数据流;对Cj而言,恰好相反;如果MCG有p个计算节点,那么其在完全图通信阶段,具有p(p+1)/2个数据流;由于所有数据流并发存在,所以称它们为并发数据流;每个并发数据流对应一个密度因子k,表示该数据流希望单位时间内传输的数据块(缓冲块)的数目,且k≥0;当k=0时,表示该数据流已经关闭;每个并发数据流能被切分成若干个大小为|B|的单元,以便适合缓冲通信机制。
4.根据权利要求1所述的并行SOAP通信系统,其特征在于,所述动态缓冲池环的大小取决于缓冲区库的大小NB和动态缓冲池的大小N;它们应该满足式n×N≤NB;当不满足时,将借助于磁盘存储动态缓冲池。
5.根据权利要求4所述的并行SOAP通信系统,其特征在于,所述动态缓冲池环中的缓冲区库是计算节点Ci上的所有缓冲块构成的集合为缓冲区库,其大小为NB个缓冲区块。
6.根据权利要求1所述的并行SOAP通信系统,其特征在于,所述动态缓冲池的状态state“膨胀”、“收缩”、“空壳”;所谓“膨胀”态就是该DBP中的Curin小于N,此时该DBP的缓冲块数还能增加,该动态缓冲池能输入和输出数据块;所谓“收缩”态就是该DBP的Curin等于N且Curout小于Curin,处于该状态的动态缓冲池只能输出数据不能输入数据;所谓“空壳”态就是该动态缓冲池的Curout已经等于N,所有的数据已经离开动态缓冲池并且所有缓冲块已经释放,只留下动态缓冲池空结构,处于空状态的动态缓冲池能被删除;每从动态缓冲池输出一个数据块,该数据块对应的缓冲块被释放到缓冲区库;在实现过程中,运用一定控制机制,避免动态缓冲池的矩阵变得狭长;
进出动态缓冲池的数据流块是以列为单位进行的,在某时间段ts,m个数据流在DBP的RM(或SM)中的同一列号数据被作为一次操作单位,整体被发送或接收;为了体现这种同步机制,引进一个时间段序列t1,t2...tt...假设DBPR已经被初始化;
7.根据权利要求1所述的并行SOAP通信系统,其特征在于,所述动态缓冲池中的缓冲块|B|为计算节点内存单元,其用来缓冲通信数据,是所述“接收”、“解压”、“压缩”和“发送”四个操作对数据处理的基本单位;其大小能根据计算节点的物理情况来定义,用|B|表示。
8.一种权利要求1所述的并行SOAP通信系统中动态缓冲池大小的计算方法,其特征在于,设
1)vp为扣除CPU的其它计算任务后的空闲能力所提供;
2)每个动态缓冲池中的每个缓冲块的大小均为|B|;
3)对目前的主流的微型计算机而言,根据实际测试数据可知,都有vc<<vp成立,即处理速度远远大于通信速度。假设本文的描述的MCG中的所有计算节点,这一事实均成立;
4)为了描述简便,假设发送速度和接收速度相同,压缩速度和解压的速度相同;
5)设每个并发数据流的密度因子均为1;
在MCG的一个计算节点Ci内,调整m、wr、ws的值,使通信(发送、接收)吞吐量和处理(压缩、解压)吞吐量保持均衡,即满足公式|B|×m×(wr+ws)×vc=|B|×vp;其中,vc为通信速度,即单位时间内计算节点Ci的网络适配器的发送和接收缓冲块的个数;vp为处理速度,即单位时间内CPU压缩或解压的缓冲块的个数;m是动态缓冲池的矩阵的行的个数;wr、ws的值能根据并行通信的各个阶段的通信量来动态调整,所以动态缓冲池的动态性主要体现在wr、ws的变化上;所述公式的左端是期望的通信吞吐量,右端是处理吞吐量;为压缩和解压操作安排m×(wr+ws)个缓冲块构成的缓冲池;通过所述公式,能计算出wr+ws的值,用N=m×(wr+ws)表示DBP的标准大小,表示每个动态缓冲池中有N个大小为|B|的缓冲块。
9.一种权利要求1所述的并行SOAP通信系统的并发通信方法,即针对DBP和DBPR的四个并发过程,其特征表现为Ci上的并发通信过程为{“接收(RECE)”、“解压DECOPR”、“压缩COPR”、“发送SEND”}四个操作的并发执行过程;即一个计算节点Ci上的并发发送过程包括并发执行的“压缩”、“发送”的两个过程;其上的并发接收过程包括并发执行的“接收”、“解压”过程;“并发发送过程”和“并行接收过程”是两个互逆的过程;其中“接收”、“发送”由网络适配器执行,“压缩”、“解压”由CPU来执行;所述的四个并发进程,能独立的并发执行,它们通过动态缓冲池来协同并行执行。
10.根据权利要求9所述的并行SOAP通信系统的并发通信方法,其特征在于,所述“接收(RECE)”过程为
(1)获取当前时间段ts;并重复做(2)(3)(4)工作,直到ts时间段结束为止
(2)从网络上接收来自其它计算节点的数据流块DSB,
(3)根据DBPR.curi.rece获取DBPR上当前输入DBP;
(3.1)如果DBP.state=“膨胀”,则
{根据DBP.Rmtoken.rece获取DBP的RM的当前输入列号;确定数据流块DSB所对应的RM的行号line;根据该数据流的密度因子k确定超元素RM[line,DBP.Rmtoken.rece]类型和大小;向缓冲区库申请一个缓冲块B,并把DSB写入B;如果超元素RM[line,DBP.Rmtoken.rece]中的缓冲块数小于k,则将B加入该超元素;DBP.Curin++如果DBP.Curin<N,则DBP.state=“膨胀”,否则DBP.state=“收缩”;}
(3.2)如果DBP.state=“收缩”,则
{创建一个新DBP,并加入DBPR;执行过程同(3.1)步;}
(4)如果ts时间段到时,则
{DBP.Rmtoken.rece所指向的RM列已经完成;
DBP.Rmtoken.rece++;
如果DBP.Rmtoken.decopr=NULL,则置
DBP.Rmtoken.decopr=DBP.Rmtoken.rece-1;}。
11.根据权利要求9所述的并行SOAP通信系统的并发通信方法,其特征在于,所述“解压DECOPR”过程为
(1)获取当前时间段ts;并重复做(2)~(7)工作
(2)根据DBPR.Curi.decopr获取DBPR上当前输入DBP;
(3)如果DBP.Rmtoken.decopr=NULL,则转向(1);
(4)获取DBP的RM的第DBP.Rmtoken.decopr列RMC;
对向量RMC的每一超元素做
{读取超元素上的缓冲块的数据流块,并执行解压解码操作;释放该超元素上的所有缓冲块,并统计释放的缓冲块数bn;DBP.Curout=DBP.Curout+bn;
}
(5)如果DBP.Curout<N,则
{DBP.Rmtoken.decopr++;转向(4)};
(6)如果DBP.Curout=N,则
{置DBP.state=“空壳”;置DBPR.Curi.decopr为DBPR上的下一个DBP;};
(7)删除DBPR上的所有“空壳”状态的DBP;转向(2).
12.根据权利要求9所述的并行SOAP通信系统的并发通信方法,其特征在于,所述“压缩COPR”过程为
(1)如果计算进程有要发送的数据,则重复做(2)(3)工作,直到计算进程的要发送的数据被发送完毕;
(2)从计算进程获取通信数据,并对其压缩,添加路由信息RI,形成数据流块DSB;
(3)根据DBPR.curo.copr获取DBPR上COPR进程的当前操作DBP;
[3.1]如果DBP.state=“膨胀”,则
{根据DBP.Smtoken.copr获取DBP的SM的当前输入列号;根据路由信息RI确定数据流块DSB所对应的SM的行号line(数据流号);根据该数据流的密度因子k确定超元素SM[line,DBP.Smtoken.copr]类型和大小;向缓冲区库申请一个缓冲块B,并把DSB写入B;如果超元素SM[line,DBP.Smtoken.copr]中的缓冲块数小于k,则将B加入该超元素;DBP.Curin++;如果DBP.Curin<N,则DBP.state=“膨胀”,否则DBP.state=“收缩”;}
[3.2]如果DBP.state=“收缩”,则
{创建一个新DBP,并加入DBPR;
执行过程同[3.1]步;}。
13.根据权利要求9所述的并行SOAP通信系统的并发通信方法,其特征在于,所述“发送SEND”过程为
(1)获取当前时间段ts;并重复做(2)~(7)工作;
(2)根据DBPR.Curo.send获取DBPR上SEND进程当前操作的DBP;
(3)如果DBP.Smtoken.send=NULL,则转向(1);
(4)获取DBP的SM的第DBP.Smtoken.send列RMC;
对超元素向量RMC的每一超元素做
{读取超元素上的缓冲块的数据流块,并发送到该数据流所对应的计算节点;释放该超元素上的所有缓冲块,统计该超元素所释放的缓冲块数bn;置DBP.Curout=DBP.Curout+bn;}
(5)如果DBP.Curout<N,则
{DBP.Smtoken.send++;转向(4)};
(6)如果DBP.Curout=N,则
{置DBP.state=“空壳”;置DBPR.Curo.send为DBPR上的下一个DBP;};(7)删除DBPR上的所有“空壳”状态的DBP;转向(2)。
全文摘要
一种并行SOAP通信系统及其方法,涉及网络计算技术领域;所要解决的是多机群网格的并行计算的技术问题;该系统通过多个普通计算机机群构建多机群网格,并对多机群网格中的每个计算节点配置一个面向SOAP并行通信结构,所有计算节点上的并行通信结构构成SOAP并行通信系统。利用并发数据流、动态缓冲池技术、压缩编码技术和并行流水机制,使用内存储器实现通信资源和计算资源的并行运行。运用缓冲块构建并发数据流,利用并发数据流实现并行计算所需要的多对多通信,运用超矩阵元素和密度因子来组织并发数据流并实现并发数据流的流量调节,实现并行SOAP通信系统。本发明具有良好的可扩展性、高效性、能支持多机群网格上的并行计算的特点。
文档编号H04L29/08GK101217564SQ200810032680
公开日2008年7月9日 申请日期2008年1月16日 优先权日2008年1月16日
发明者陈庆奎, 那丽春 申请人:上海理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1