面向流处理器并行环境的数据流通信系统及其通信方法转让专利

申请号 : CN201110135776.0

文献号 : CN102201992B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈庆奎那丽春曹欢欢郝聚涛霍欢赵海燕庄松林丁晓东

申请人 : 上海理工大学

摘要 :

一种面向流处理器并行环境的数据流通信系统及其通信方法,涉及并行通信技术领域,所解决的是CUDA和MPI混合程序开发不便且不利于海量数据流实时处理的技术问题。该系统中的每个计算节点均配置有CPU计算部件、GPU计算部件、动态管道池,及用于MPI通信的MPI接收部件、MPI发送部件,且在每个计算节点中均设有节点资源表、部件资源表、流通信管道映射表,各计算节点部件之间的通信均通过动态管道池进行,并使用通信数据单元来传输。本发明提供的系统及其通信方法,能有效地支持利用MPI和流处理器计算机构建大规模信息处理并行环境,利于程序员开发系统程序,适用于云计算节点的构建和大规模数据流的实时处理。

权利要求 :

1.一种面向流处理器并行环境的数据流通信系统,其特征在于:包括流处理器并行计算物理环境、节点资源表、部件资源表、流通信管道映射表;

所述流处理器并行计算物理环境为一个四元组SPPE(PCS,MASTER,SOFS,NS);其中,SPPE为流处理器并行计算物理环境,PCS={C1,C2,…,Cc}为SPPE中的计算节点的集合,MASTER为SPPE中的主控制计算节点,SOFS为SPPE中的软件的集合,NS为SPPE中的互连网络的集合,且在NS上配有消息传递接口MPI通信环境;

所述计算节点配置有CPU计算部件、GPU计算部件、动态管道池,及用于MPI通信的MPI接收部件、MPI发送部件,所述CPU计算部件、GPU计算部件、MPI接收部件、MPI发送部件均为广义计算部件,所述GPU计算部件为流处理计算设备;

所述动态管道池为一个四元组DPP(ID,CPS,PPS,PipeM);其中,DPP为动态管道池,ID为DPP的标识符,CPS={CP1,CP2,…,CPm}为DPP中的公有管道的管道集合,PPS={PN1,PN2,…,PNn}为DPP中的私有管道的管道集合,是广义计算部件读取信息的专有管道,PipeM为DPP的管道管理部件,所述公有管道及私有管道均为单向流动的数据流通道,所述CPS分为两组,分别为CPSM管道组和CPSS管道组,CPSM管道组用于接收消息,CPSS管道组用于发送消息和数据流信息通信的管道绑定,每个广义计算部件均配有一个私有管道,用于接收消息及数据流;

所述广义计算部件为一个五元组GP(ID,RP,WP,PN,SP);其中,GP为广义计算部件,ID为GP的部件标识符,RP为GP的读管道进程;WP为GP的写公有管道进程,PN为GP的私有管道,SP={P1,p2,p3,…,Pp}为GP中的各狭义计算部件的集合;

所述节点资源表为一个二维表NTA(Nid,Nname,Nip,Ntype),记载有SPPE中所有计算节点的节点信息;其中,NTA为节点资源表,Nid为所记载计算节点的节点标识符,Nname为所记载计算节点的节点名字,用于通信标识,Nip为所记载计算节点的节点IP地址,用于MPI环境的配置,Ntype为所记载计算节点的节点类型,用于表明所记载计算节点的是普通计算节点还是主控制计算节点;

所述部件资源表为一个二维表PTA(Pid,Pname,Ptype,PN),记载有SPPE中所有广义计算部件的部件信息;其中,PTA为部件资源表,Pid为所记载部件的部件标识符,Pname为所记载部件的部件名字,用于通信标识,Ptype为所记载部件的部件类型,用于表明该部件是CPU计算部件、GPU计算部件,还是通信部件,PN为所记载部件的私有管道;

所述流通信管道映射表为一个二维表MTA(mPid,group,sno,PipeA,PipeB);其中,MTA为流通信管道映射表,mPid为标识符,group为数据流通信组号,用于通信标识,sno为序号,PipeA为数据流源管道号,PipeB为数据流目标管道号;

所述NTA、PTA、MTA 在每个计算节点中均保持一个副本,并采用强一致性维护;

各部件之间的通信均通过数据通信单元来承载,所述通信数据单元为一个十元组CDU(id,Sno,Segno,SourceN,SourceP,DestNS,DestPS,type,COM,DATA);其中,CDU为通信数据单元,id为该CDU的标识符,Sno、Segno均用于数据流通信,Sno为该CDU的数据流号,Segno为该CDU的数据段号,SourceN为通信源计算节点,SourceP为该CDU的发出部件,DestNS为该CDU的目标计算节点的集合,DestPS为该CDU的目标部件的集合,是目标计算节点内接收该CDU的部件的集合,type为该CDU的通信数据单元类别,共有数据流、命令消息、短消息三种类别,COM为通信命令,DATA为消息数据。

2.根据权利要求1所述的面向流处理器并行环境的数据流通信系统的通信方法,其特征在于:

每个广义计算部件中的SP执行本地的计算任务,并接收该广义计算部件中的RP送来的信息进行处理;

设发送端的广义计算部件为GP1,接收端的广义计算部件为GP2,INFO为消息,SINFO为数据流;

GP1中的SP要发送INFO到GP2时,先查询PTA获取GP2的ID,再把GP2的ID和INFO

提交给GP1的WP,然后再处理后续计算任务;

GP1中的SP要发送SINFO到GP2时,先查询PTA获取GP2的ID,再把GP2的ID和SINFO提交给GP1的WP,并等待至SINFO通信结束后再处理后续计算任务;

GP1中的WP收到该GP中的SP提交的GP2的ID及通信数据后,先判断收到的通信数据的类型,如果GP1中的WP收到的通信数据是INFO,则创建一个CDU,再根据GP1的ID从NTA和PTA中获取本地计算节点的节点信息及GP1的部件信息填写到CDU的SourceN及SourceP中,并将通信命令填入CDU的COM,将INFO填入CDU的DATA,将CDU的type填写为短消息类别,然后获取本地动态管道池的一个公有管道记为CP,并将该CDU写入CP;如果GP1中的WP收到的通信数据是SINFO,则根据GP2的ID从NTA和PTA获取GP2的私有管道记为PP,并获取本地动态管道池的一个公有管道记为CP,然后把CP、PP及GP1的ID一起发给本地的PipeM,PipeM收到CP、PP及GP1的ID后在MTA中建立一个映射元组mtat将CP和PP绑定,并把CP置为繁忙状态,然后把映射元组mtat发往GP2所在的计算节点,然后再将SINFO分段成多个数据段,并为每个数据段创建一个CDU,将各数据段分别填入各CDU的DATA,根据分段次序为各数据段依序设置数据流号及数据段号分别填入各CDU的Sno及Segno中,然后将各个CDU按分段次序逐次写入CP,直至SINFO发送完毕;SINFO通信结束后,GP1中的WP向本地的PipeM发送一个请求使PipeM将映射元组mtat撤销,并释放CP;

每个广义计算部件中的RP扫描自己的私有管道,如果RP扫描到自己的私有管道中有命令消息或短消息类别的CDU,则提取CDU中的id和DATA并传输给该广义计算部件中的SP,如果RP扫描到自己的私有管道中有数据流类别的CDU,并获取到与该CDU相对应的映射元组mtat,则RP对每个接收到的CDU用映射元组mtat进行识别,并按接收到的CDU的Sno及Segno进行数据流复原,并逐一传给本广义计算部件中的SP;

每个动态管道池中的PipeM循环扫描本地CPS中的每个公有管道,如果本地CPS中的公有管道中有CDU,则先判定该CDU中的目标部件是否为本地部件,如果该CDU中的目标部件为本地部件则根据该CDU中的DestPS从PTA中获取目标部件所对应的私有管道,然后把该CDU传输至目标部件所对应的私有管道;如果该CDU的目标部件为远程部件则将该CDU写入本地MPI发送部件的私有管道中;

每个MPI接收部件实时接收来自SPPE中的NS的CDU,并根据收到的CDU中的DestPS从PTA中得到目标部件的部件信息并获取其私有管道,然后将收到的CDU写入目标部件的私有管道中;

每个MPI发送部件循环扫描自己的私有管道,如果扫描到自己的私有管道中有待发送的CDU,则根据PTA、MTA及该CDU的DestPS获取目标计算节点的节点信息及目标部件的部件信息,然后将本计算节点的节点信息填入该CDU的SourceN,将该CDU发出部件的部件信息填入该CDU的SourceP,将目标计算节点的节点信息填入该CDU的DestNS,将目标部件的部件信息填入该CDU的DestPS,并填写该CDU的type和COM,然后将该CDU发送给目标计算节点。

说明书 :

面向流处理器并行环境的数据流通信系统及其通信方法

技术领域

[0001] 本发明涉及数据通信技术,特别是涉及一种面向流处理器并行环境的数据流通信系统及其通信方法的技术。

背景技术

[0002] 随着信息技术的飞速发展和互联网技术应用的普及,网络已经成为人们日常生活中重要的一部分。近年来,3G网络和物联网技术应用逐步展开为人们的生活、工作带来了极大的方便。然而,这些新技术的广泛应用带来海量信息处理问题以及如何提高大规模实时支持能力的新挑战。以流处理器为代表的新型计算装置为解决这些困难带来了曙光。流处理器是GPU走向通用计算领域的总称,因其内部采用上百个Stream processor并行架构而得名,其性能十分出众,以GTX480为例其浮点计算性能已经超过Tfloaps。目前世界主流显卡厂商NVIDIA、AMD(ATI)、Intel等公司都积极投入流处理器的研究和通用计算研究领域。在通用计算研究领域已经成熟的编程模型有NVIDIA的CUDA(Compute Unified Device Architecture)和AMD的CTM(Close To Metal),这些技术已经被广泛的应用到图像处理、游戏、3D处理、科学计算、数据挖掘等领域。根据传统的并行技术,利用计算机网络把若干个配置流处理器的计算机连接起来可以构建更为强大的并行信息处理系统是一个十分重要的工作。因而流处理器集群不仅可以构建更大规模的处理系统,更主要的是,其可以使用较传统CPU集群更少的计算节点构建比CPU集群强大数百倍的计算系统,而其能源消耗大大降低,且大大增强了系统的稳定性。构建集群除了物理网络外,还需要有效的并行通信协议的支持,方能发挥其并行处理的能力。MPI已经成为并行环境构建领域一个重要的通信系统,被学术界和工业界广泛应用。
[0003] 但是,现有基于流处理器的网络中各计算节点的处理环境及各计算节点之间的通信环境比较复杂,使得CUDA(Compute Unified Device Architecture)程序员及CTM(Close To Metal)程序员在开发并行通信程序和并行流处理器程序时需要先详细了解计算节点的处理细节及各计算节点之间的通信细节,因此不利于系统程序的开发,而且也不利于海量数据流(如3G视频流)的实时处理。

发明内容

[0004] 针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种系统程序开发方便,且利于海量数据流实时处理的面向流处理器并行环境的数据流通信系统及其通信方法。
[0005] 为了解决上述技术问题,本发明所提供的一种面向流处理器并行环境的数据流通信系统,其特征在于:包括流处理器并行计算物理环境、节点资源表、部件资源表、流通信管道映射表;
[0006] 所述流处理器并行计算物理环境为一个四元组SPPE(PCS,MASTER,SOFS,NS);其中,SPPE为流处理器并行计算物理环境,PCS={C1,C2,…,Cc}为SPPE中的计算节点的集合,MASTER为SPPE中的主控制计算节点,SOFS为SPPE中的软件的集合,NS为SPPE中的互连网络的集合,且在NS上配有消息传递接口MPI通信环境;
[0007] 所述计算节点配置有CPU计算部件、GPU计算部件、动态管道池,及用于MPI通信的MPI接收部件、MPI发送部件,所述CPU计算部件、GPU计算部件、MPI接收部件、MPI发送部件均为广义计算部件,所述GPU计算部件为流处理计算设备;
[0008] 所述动态管道池为一个四元组DPP(ID,CPS,PPS,PipeM);其中,DPP为动态管道池,ID为DPP的标识符,CPS={CP1,CP2,…,CPm}为DPP中的公有管道的管道集合,PPS={PN1,PN2,…,PNn}为DPP中的私有管道的管道集合,是广义计算部件读取信息的专有管道,PipeM为DPP的管道管理部件,所述公有管道及私有管道均为单向流动的数据流通道,所述CPS分为两组,分别为CPSM管道组和CPSS管道组,CPSM管道组用于接收消息,CPSS管道组用于发送消息和数据流信息通信的管道绑定,每个广义计算部件均配有一个私有管道,用于接收消息及数据流;
[0009] 所述广义计算部件为一个五元组GP(ID,RP,WP,PN,SP);其中,GP为广义计算部件,ID为GP的部件标识符,RP为GP的读管道进程;WP为GP的写公有管道进程,PN为GP的私有管道,SP={P1,p2,p3,…,Pp}为GP中的各狭义计算部件的集合;
[0010] 所述节点资源表为一个二维表NTA(Nid,Nname,Nip,Ntype),记载有SPPE中所有计算节点的节点信息;其中,NTA为节点资源表,Nid为所记载计算节点的节点标识符,Nname为所记载计算节点的节点名字,用于通信标识,Nip为所记载计算节点的节点IP地址,用于MPI环境的配置,Ntype为所记载计算节点的节点类型,用于表明所记载计算节点的是普通计算节点还是主控制计算节点;
[0011] 所述部件资源表为一个二维表PTA(Pid,Pname,Ptype,PN),记载有SPPE中所有广义计算部件的部件信息;其中,PTA为部件资源表,Pid为所记载部件的部件标识符,Pname为所记载部件的部件名字,用于通信标识,Ptype为所记载部件的部件类型,用于表明该部件是CPU计算部件、GPU计算部件,还是通信部件,PN为所记载部件的私有管道;
[0012] 所述流通信管道映射表为一个二维表MTA(mPid,group,sno,PipeA,PipeB);其中,MTA为流通信管道映射表,mPid为标识符,group为数据流通信组号,用于通信标识,sno为序号,PipeA为数据流源管道号,PipeB为数据流目标管道号;
[0013] 所述NTA、PTA、MTA 在每个计算节点中均保持一个副本,并采用强一致性维护;
[0014] 各部件之间的通信均通过数据通信单元来承载,所述通信数据单元为一个十元组CDU(id,Sno,Segno,SourceN,SourceP,DestNS,DestPS,type,COM,DATA);其中,CDU为通信数据单元,id为该CDU的标识符,Sno、Segno均用于数据流通信,Sno为该CDU的数据流号,Segno为该CDU的数据段号,SourceN为通信源计算节点,SourceP为该CDU的发出部件,DestNS为该CDU的目标计算节点的集合,DestPS为该CDU的目标部件的集合,是目标计算节点内接收该CDU的部件的集合,type为该CDU的通信数据单元类别,共有数据流、命令消息、短消息三种类别,COM为通信命令,DATA为消息数据。
[0015] 本发明所提供的面向流处理器并行环境的数据流通信系统的通信方法,其特征在于:
[0016] 每个广义计算部件中的SP执行本地的计算任务,并接收该广义计算部件中的RP送来的信息进行处理;
[0017] 设发送端的广义计算部件为GP1,接收端的广义计算部件为GP2,INFO为消息,SINFO为数据流;
[0018] GP1中的SP要发送INFO到GP2时,先查询PTA获取GP2的ID,再把GP2的ID和INFO提交给GP1的WP,然后再处理后续计算任务;
[0019] GP1中的SP要发送SINFO到GP2时,先查询PTA获取GP2的ID,再把GP2的ID和SINFO提交给GP1的WP,并等待至SINFO通信结束后再处理后续计算任务;
[0020] GP1中的WP收到该GP中的SP提交的GP2的ID及通信数据后,先判断收到的通信数据的类型,如果GP1中的WP收到的通信数据是INFO,则创建一个CDU,再根据GP1的ID从NTA和PTA中获取本地计算节点的节点信息及GP1的部件信息填写到CDU的SourceN及SourceP中,并将通信命令填入CDU的COM,将INFO填入CDU的DATA,将CDU的type填写为短消息类别,然后获取本地动态管道池的一个公有管道记为CP,并将该CDU写入CP;如果GP1中的WP收到的通信数据是SINFO,则根据GP2的ID从NTA和PTA获取GP2的私有管道记为PP,并获取本地动态管道池的一个公有管道记为CP,然后把CP、PP及GP1的ID一起发给本地的PipeM,PipeM收到CP、PP及GP1的ID后在MTA中建立一个映射元组mtat将CP和PP绑定,并把CP置为繁忙状态,然后把映射元组mtat发往GP2所在的计算节点,然后再将SINFO分段成多个数据段,并为每个数据段创建一个CDU,将各数据段分别填入各CDU的DATA,根据分段次序为各数据段依序设置数据流号及数据段号分别填入各CDU的Sno及Segno中,然后将各个CDU按分段次序逐次写入CP,直至SINFO发送完毕;SINFO通信结束后,GP1中的WP向本地的PipeM发送一个请求使PipeM将映射元组mtat撤销,并释放CP;
[0021] 每个广义计算部件中的RP扫描自己的私有管道,如果RP扫描到自己的私有管道中有命令消息或短消息类别的CDU,则提取CDU中的id和DATA并传输给该广义计算部件中的SP,如果RP扫描到自己的私有管道中有数据流类别的CDU,并获取到与该CDU相对应的映射元组mtat,则RP对每个接收到的CDU用映射元组mtat进行识别,并按接收到的CDU的Sno及Segno进行数据流复原,并逐一传给本广义计算部件中的SP;
[0022] 每个动态管道池中的PipeM循环扫描本地CPS中的每个公有管道,如果本地CPS中的公有管道中有CDU,则先判定该CDU中的目标部件是否为本地部件,如果该CDU中的目标部件为本地部件则根据该CDU中的DestPS从PTA中获取目标部件所对应的私有管道,然后把该CDU传输至目标部件所对应的私有管道;如果该CDU的目标部件为远程部件则将该CDU写入本地MPI发送部件的私有管道中;
[0023] 每个MPI接收部件实时接收来自SPPE中的NS的CDU,并根据收到的CDU中的DestPS从PTA中得到目标部件的部件信息并获取其私有管道,然后将收到的CDU写入目标部件的私有管道中;
[0024] 每个MPI发送部件循环扫描自己的私有管道,如果扫描到自己的私有管道中有待发送的CDU,则根据PTA、MTA及该CDU的DestPS获取目标计算节点的节点信息及目标部件的部件信息,然后将本计算节点的节点信息填入该CDU的SourceN,将该CDU发出部件的部件信息填入该CDU的SourceP,将目标计算节点的节点信息填入该CDU的DestNS,将目标部件的部件信息填入该CDU的DestPS,并填写该CDU的type和COM,然后将该CDU发送给目标计算节点。
[0025] 本发明提供的面向流处理器并行环境的数据流通信系统及其通信方法,系统中的每个计算节点均配置有CPU计算部件、GPU计算部件、动态管道池,及用于MPI通信的MPI接收部件、MPI发送部件,且在每个计算节点中均设有节点资源表、部件资源表、流通信管道映射表,每个广义计算部件均配有一个私有管道,各计算节点部件之间的通信均通过动态管道池进行,方便了各计算节点之间的通信,利于海量数据流实时处理,而且系统程序开发时与具体的流处理器编程环境无关,CUDA及CTM程序员无需了解计算节点的处理细节及各计算节点之间的通信细节,只需正确填写通信数据包,减少了编程复杂度,并且流处理器程序和中央处理器程序可以各自独立编写开发,因此也利于系统程序的开发。

附图说明

[0026] 图1是本发明实施例的面向流处理器并行环境的数据流通信系统中的两个计算节点之间通信的通信示意图。

具体实施方式

[0027] 以下结合附图说明对本发明的实施例作进一步详细描述,但本实施例并不用于限制本发明,凡是采用本发明的相似结构及其相似变化,均应列入本发明的保护范围。
[0028] 如图1所示,本发明实施例所提供的一种面向流处理器并行环境的数据流通信系统,其特征在于:包括流处理器并行计算物理环境、节点资源表、部件资源表、流通信管道映射表;
[0029] 所述流处理器并行计算物理环境为一个四元组SPPE(PCS,MASTER,SOFS,NS);其中,SPPE为流处理器并行计算物理环境,PCS={C1,C2,…,Cc}为SPPE中的计算节点的集合,MASTER为SPPE中的主控制计算节点,SOFS为SPPE中的软件的集合,NS为SPPE中的互连网络的集合,且在NS上配有MPI通信环境;
[0030] 所述计算节点配置有CPU计算部件Np、GPU计算部件SPP、动态管道池,及用于MPI通信的MPI接收部件MR、MPI发送部件MS,所述CPU计算部件Np、GPU计算部件SPP、MPI接收部件MR、MPI发送部件MS均为广义计算部件,所述GPU计算部件SPP为流处理计算设备;
[0031] 所述动态管道池为一个四元组DPP(ID,CPS,PPS,PipeM);其中,DPP为动态管道池,ID为DPP的标识符,CPS={CP1,CP2,…,CPm}为DPP中的公有管道的管道集合,PPS={PN1,PN2,…,PNn}为DPP中的私有管道的管道集合,是广义计算部件读取信息的专有管道,PipeM为DPP的管道管理部件,所述公有管道及私有管道均为单向流动的数据流通道,所述CPS分为两组,分别为CPSM管道组和CPSS管道组,CPSM管道组用于接收消息,CPSS管道组用于发送消息和数据流信息通信的管道绑定,每个广义计算部件均配有一个私有管道,用于接收消息及数据流;
[0032] 所述广义计算部件为一个五元组GP(ID,RP,WP,PN,SP);其中,GP为广义计算部件,ID为GP的部件标识符,RP为GP的读管道进程;WP为GP的写公有管道进程,PN为GP的私有管道,SP={P1,p2,p3,…,Pp}为GP中的各狭义计算部件的集合;
[0033] 所述节点资源表为一个二维表NTA(Nid,Nname,Nip,Ntype),记载有SPPE中所有计算节点的节点信息;其中,NTA为节点资源表,Nid为所记载计算节点的节点标识符,Nname为所记载计算节点的节点名字,用于通信标识,Nip为所记载计算节点的节点IP地址,用于MPI环境的配置,Ntype为所记载计算节点的节点类型,用于表明所记载计算节点的是普通计算节点还是主控制计算节点;
[0034] 所述部件资源表为一个二维表PTA(Pid,Pname,Ptype,PN),记载有SPPE中所有广义计算部件的部件信息;其中,PTA为部件资源表,Pid为所记载部件的部件标识符,Pname为所记载部件的部件名字,用于通信标识,Ptype为所记载部件的部件类型,用于表明该部件是CPU计算部件Np、GPU计算部件SPP,还是通信部件,PN为所记载部件的私有管道;
[0035] 所述流通信管道映射表为一个二维表MTA(mPid,group,sno,PipeA,PipeB);其中,MTA为流通信管道映射表,mPid为标识符,group为数据流通信组号,用于通信标识,sno为序号,PipeA为数据流源管道号,PipeB为数据流目标管道号;
[0036] 所述NTA、PTA、MTA 在每个计算节点中均保持一个副本,并采用强一致性维护;
[0037] 各部件之间的通信均通过数据通信单元来承载,所述通信数据单元为一个十元组CDU(id,Sno,Segno,SourceN,SourceP,DestNS,DestPS,type,COM,DATA);其中,CDU为通信数据单元,id为该CDU的标识符,Sno、Segno均用于数据流通信,Sno为该CDU的数据流号,Segno为该CDU的数据段号,SourceN为通信源计算节点,SourceP为该CDU的发出部件,DestNS为该CDU的目标计算节点的集合,DestPS为该CDU的目标部件的集合,是目标计算节点内接收该CDU的部件的集合,type为该CDU的通信数据单元类别,共有数据流、命令消息、短消息三种类别,COM为通信命令,DATA为消息数据。
[0038] 图1是本发明实施例的面向流处理器并行环境的数据流通信系统中的两个计算节点之间通信的通信示意图,该图中的实有向线为私有管道读方向, 虚有向线为公有管道写方向,粗有向箭头表示通信信息由公有管道转发到每个广义计算部件的私有管道中。
[0039] 如图1所示,本发明实施例所提供的面向流处理器并行环境的数据流通信系统的通信方法,其特征在于:
[0040] 每个广义计算部件中的SP执行本地的计算任务,并接收该广义计算部件中的RP送来的信息进行处理;
[0041] 设发送端的广义计算部件为GP1,接收端的广义计算部件为GP2,INFO为消息,SINFO为数据流;
[0042] GP1中的SP要发送INFO到GP2时,先查询PTA获取GP2的ID,再把GP2的ID和INFO提交给GP1的WP,然后再处理后续计算任务;
[0043] GP1中的SP要发送SINFO到GP2时,先查询PTA获取GP2的ID,再把GP2的ID和SINFO提交给GP1的WP,并等待至SINFO通信结束后再处理后续计算任务;
[0044] GP1中的WP收到该GP中的SP提交的GP2的ID及通信数据后,先判断收到的通信数据的类型,如果GP1中的WP收到的通信数据是INFO,则创建一个CDU,再根据GP1的ID从NTA和PTA中获取本地计算节点的节点信息及GP1的部件信息填写到CDU的SourceN及SourceP中,并将通信命令填入CDU的COM,将INFO填入CDU的DATA,将CDU的type填写为短消息类别,然后获取本地动态管道池的一个公有管道记为CP,并将该CDU写入CP;如果GP1中的WP收到的通信数据是SINFO,则根据GP2的ID从NTA和PTA获取GP2的私有管道记为PP,并获取本地动态管道池的一个公有管道记为CP,然后把CP、PP及GP1的ID一起发给本地的PipeM,PipeM收到CP、PP及GP1的ID后在MTA中建立一个映射元组mtat将CP和PP绑定,并把CP置为繁忙状态,然后把映射元组mtat发往GP2所在的计算节点,然后再将SINFO分段成多个数据段,并为每个数据段创建一个CDU,将各数据段分别填入各CDU的DATA,根据分段次序为各数据段依序设置数据流号及数据段号分别填入各CDU的Sno及Segno中,然后将各个CDU按分段次序逐次写入CP,直至SINFO发送完毕;SINFO通信结束后,GP1中的WP向本地的PipeM发送一个请求使PipeM将映射元组mtat撤销,并释放CP;
[0045] 每个广义计算部件中的RP扫描自己的私有管道,如果RP扫描到自己的私有管道中有命令消息或短消息类别的CDU,则提取CDU中的id和DATA并传输给该广义计算部件中的SP,如果RP扫描到自己的私有管道中有数据流类别的CDU,并获取到与该CDU相对应的映射元组mtat,则RP对每个接收到的CDU用映射元组mtat进行识别,并按接收到的CDU的Sno及Segno进行数据流复原,并逐一传给本广义计算部件中的SP;
[0046] 每个动态管道池中的PipeM循环扫描本地CPS中的每个公有管道,如果本地CPS中的公有管道中有CDU,则先判定该CDU中的目标部件是否为本地部件,如果该CDU中的目标部件为本地部件则根据该CDU中的DestPS从PTA中获取目标部件所对应的私有管道,然后把该CDU传输至目标部件所对应的私有管道;如果该CDU的目标部件为远程部件则将该CDU写入本地MPI发送部件MS的私有管道中;
[0047] 每个MPI接收部件MR实时接收来自SPPE中的NS的CDU,并根据收到的CDU中的DestPS从PTA中得到目标部件的部件信息并获取其私有管道,然后将收到的CDU写入目标部件的私有管道中;
[0048] 每个MPI发送部件MS循环扫描自己的私有管道,如果扫描到自己的私有管道中有待发送的CDU,则根据PTA、MTA及该CDU的DestPS获取目标计算节点的节点信息及目标部件的部件信息,然后将本计算节点的节点信息填入该CDU的SourceN,将该CDU发出部件的部件信息填入该CDU的SourceP,将目标计算节点的节点信息填入该CDU的DestNS,将目标部件的部件信息填入该CDU的DestPS,并填写该CDU的type和COM,然后将该CDU发送给目标计算节点。
[0049] 以下以两个计算节点之间的通信来进一步说明本发明实施例的通信过程:
[0050] 设通信发送端的计算节点为计算节点1,通信接收端的计算节点为计算节点2,计算节点1中的CDU发出部件为GPU计算部件SPP1,计算节点2中的CDU接收部件为GPU计算部件SPP2,计算节点1的GPU计算部件SPP 1所发出的CDU,通过该GPU计算部件SPP 1的WP部件发送至本地计算节点的公有管道CP;本地的PipeM把该CDU发送到本地MPI发送部件MS的私有管道PN;本地MPI发送部件MS读取自己私有管道PN中的CDU,填充MPI网络通信信息,运用MPI发送原语把CDU通过MPI网络发送到计算节点2的MPI接收部件MR;计算节点2的MPI接收部件MR提取CDU并发送到计算节点2的公有管道CP中,计算节点
2的PipeM根据CDU头部信息把它转发至GPU计算部件SPP2的私有管道PN;GPU计算部件SPP2的RP读取GPU计算部件SPP2的私有管道PN,并提取CDU后转发给GPU计算部件SPP2的SP。
[0051] 实际应用中,利用本发明实施例构建了基于流处理器并行环境的3G网络质量监测系统,该系统由2个功能集群构成:9台计算机构成I/O任务密集型CPU集群,9台流处理器机器构成计算密集型GPU集群,集群通过2台基板带宽为48Gbps的千兆以太网交换机连接而成;所有计算节点用MPI通信协议互联,每个计算节点配置UBANTU10操作系统,并都配置了动态管道池、MTA、PTA、NTA、PipeM、MPI接收部件MR、MPI发送部件MS,流处理器采用NVIDIA GTX480和配置CUDA驱动程序、开发环境,该系统运用CPU集群把3G视频流H.264参数提取,然后用GPU集群对10080个视频图像参数进行计算(图像还原成YUV、模糊度、块效应、平滑度分析),实现了对10080个3G视频流进行视频质量分析,实践表明对10080个视频图像的分析处理的平均时间为1.5秒,该并行处理环境已经满足电信对3G视频的分析规模的要求和性能的要求;关于数据流通信,每个CPU集群节点有一个与之对应的GPU集群节点,在这两个节点间有1120个视频流进行数据流传输,利用UBANTU的性能监视器可以看到,在流数据峰值传输阶段,CPU和GPU节点对之间数据流的通信带宽可以达到80MBps,即可以达到640Mbps的通信能力,表明该通信系统已经满足了3G网络质量监测系统的通信性能要求。