CN102200906B - 大规模并发数据流处理系统及其处理方法 - Google Patents

大规模并发数据流处理系统及其处理方法 Download PDF

Info

Publication number
CN102200906B
CN102200906B CN 201110135906 CN201110135906A CN102200906B CN 102200906 B CN102200906 B CN 102200906B CN 201110135906 CN201110135906 CN 201110135906 CN 201110135906 A CN201110135906 A CN 201110135906A CN 102200906 B CN102200906 B CN 102200906B
Authority
CN
China
Prior art keywords
dsu
data stream
gpu
dsuq
dsub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201110135906
Other languages
English (en)
Other versions
CN102200906A (zh
Inventor
陈庆奎
那丽春
周澍民
刘伯承
王海峰
郝聚涛
霍欢
赵海燕
庄松林
丁晓东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN 201110135906 priority Critical patent/CN102200906B/zh
Publication of CN102200906A publication Critical patent/CN102200906A/zh
Application granted granted Critical
Publication of CN102200906B publication Critical patent/CN102200906B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

一种大规模并发数据流处理系统及其处理方法,涉及数据处理技术领域,所解决的是提高流处理器处理效率的技术问题。该系统包括数据流单元缓冲区、数据流单元聚类队列池、数据流单元映射表、流处理器池、数据流读取部件、DSU聚类分配部件、任务调度部件、计算后处理部件,所述流处理器池由多个GPU构成,其中数据流读取部件用于将并发数据流写入数据流单元缓冲区,DSU聚类分配部件用于对数据流单元缓冲区中当前被处理的数据流单元进行分类,任务调度部件用于将数据流单元聚类队列池中的就绪队列加载至流处理器池中的GPU上执行流计算,计算后处理部件用于将GPU的计算结果返回到数据流。本发明提供的系统,能提高流处理器的处理效率。

Description

大规模并发数据流处理系统及其处理方法
技术领域
本发明涉及数据处理技术,特别是涉及一种大规模并发数据流处理系统及其处理方法的技术。
背景技术
随着信息技术的飞速发展和互联网技术应用的普及,网络已经成为人们日常生活中重要的一部分。近年来,3G网络和物联网技术应用的逐步展开为人们的生活、工作带来了极大的方便。然而,这些新技术的核心应用关键之一就是大规模并发数据流处理问题。所谓数据流就是从一个节点发往另一个节点的具有某种特征的数据单元构成的连续不断的信息流,数据流的处理和分析问题要求处理节点具有一定的实时处理能力。人们可以通过缓冲处理、并行处理机制来解决实时处理问题。然而,现实应用中的数据流并非一个,在两个处理节点间的数据流可能是成千上万个,这就形成了大规模并发数据流的处理需求。如3G通信视频流的质量实时分析问题,在这个问题中,数据抓取节点从3G骨干网络上同时抓去上万门3G通话的IP包,并还原成上万个H.264视频流,而3G视频质量分析系统需要提取这些视频流在某一时刻的上万个静态画面,并进行模糊度计算、块效应计算等工作。大规模并发数据流的实时处理问题给业界带来了极大的挑战。如何构建廉价的高性能处理装置是一个具有挑战性的研究课题。以流处理器为代表的新型计算装置为解决这些困难带来了曙光。流处理器是GPU走向通用计算领域的总称,因其内部采用上百个Stream processor并行架构而得名,其可以有效支持SPMD并行操作,非常适合做大规模并发数据流的处理工作,且其性能十分出众。
但是,由于同一个流处理器核心在同一时刻只能运行同一个核心程序,而同时到来的大规模并发数据流的成千上万个数据流单元却不一定具有同一处理特征,因而无法满足流处理器进行高性能处理的数据特征要求,无法使流处理器发挥其最大能力,进而提高处理效率。
发明内容
针对上述现有技术中存在的缺陷,本发明所要解决的技术问题是提供一种能发挥流处理器的最大能力,提高其处理效率的大规模并发数据流处理系统及其处理方法。
为了解决上述技术问题,本发明所提供的一种大规模并发数据流处理系统,其特征在于,包括:
数据流单元缓冲区,是一个二元组DSB(DSUB,MR),其中DSB为数据流单元缓冲区,DSUB及MR均是由p个元素构成的一维数组,p为并发数据流中的数据流数量,DSUB中的每个数组元素为一个DSU,MR中的每个数组元素是一个取值为0或1的整型数,该数组用于数据流流水处理的同步标志;
所述DSU是指数据流单元,一个数据流单元是一个九元组DSU(id,sno,segno,seq,t,type,prog,data,odata),其中DSU为数据流单元,id为该DSU的标识符,且该id具有唯一性,sno为该DSU的数据流号,segno为该DSU的数据流段号,seq为该DSU的在segno数据流段中的单元序号,用于表示其在数据流段中的位置,t为一个时间印,用于记载该DSU被处理的时刻,type为该DSU的类型,data为该DSU所承载的数据对象,odata为该DSU处理后的输出数据对象,prog是该DSU的data的处理程序;
所述数据流段是由多个seq连续的DSU构成的序列,记为DSS={DSU1,DSU2,DSU3,…,DSUn,DSUE},其中DSS为数据流段,每个DSS均有一个数据流段号segno被分别存储在构成该DSS的每个DSU中,DSS序列尾的DSUE为该DSS的结束标志,是一个type为常量值EOS的DSU,其prog、data、odata均为空;
     所述数据流是由多个segno连续的DSS构成的序列,记为DS={DSS1,DSS2,DSS3,…,DSSo},每个DS均有一个数据流号sno被分别存储在构成该DS的各个DSS的DSU中;
所述并发数据流由多个并发传输的DS构成,每个DS均以DSU作为并发处理的单位,并以DSS作为多个数据流并发同步的单元;
数据流单元聚类队列池,由|TS|个DSU队列构成,记为CPOOL={DSUQ1,DSUQ2,…,DSUQ|TS|},其中CPOOL为数据流单元聚类队列池,DSUQ为数据流单元聚类队列,TS为应用系统数据流单元类型集合,该集合是DSU类型的集合,TS中的元素个数为m,则|TS|=m,同一个DSU队列由同类型的DSU构成,这些DSU来自p个并发数据流的当前处理单元,有:                                                
Figure 2011101359060100002DEST_PATH_IMAGE001
数据流单元映射表,由多个表元构成,记为MapM(nu,sno,segno,seq,t,qso, qoffset),其中MapM为数据流单元映射表,nu为序号,sno为数据流号,segno为数据段号,seq为数据流单元号,t为时间印,qso为聚类队列号,qoffset为聚类队列内部元素位置号;
流处理器池,由多个GPU构成,所述GPU为二元组GPU(KernelP,D_BUFF), 其中KernelP为该GPU当前执行SPMD任务的计算核心部件,D_BUFF为KernelP执行SPMD操作的多个DSU集合;
数据流读取部件,用于读取数据流;
DSU聚类分配部件,用于对数据流单元缓冲区中当前被处理的数据流单元进行分类;
任务调度部件,用于将数据流单元聚类队列池中的就绪队列加载至流处理器池中的GPU上执行流计算;
计算后处理部件,用于将GPU计算的DSU的odata按MapM的标志回归到DSU所在的数据流。
本发明提供的大规模并发数据流处理系统的处理方法,其特征在于:
数据流读取部件重复执行以下步骤直至并发数据流中的DS读取完毕:
1)根据并发数据流的个数,在DSB中为每个DS分配一个单元,并初始化DSB的MR,置MR[i]值为0,其中1≤i≤p,p为并发数据流的个数;
2)读取并发数据流中所有DS的当前DSS;
3)扫描并发数据流,对i=1,2,…,p,对DSi做步骤4的处理,所述DSi是指第i个DS;
4)如果MR[i]值为1,则转至步骤3处理下一个DS的DSU;
如果MR[i]值为0,则提取DSi的当前处理DSU,并判断当前处理DSU的type,如果当前处理DSU的type值为EOS,则DSi的当前DSS结束,则置MR[i]为1,并转至步骤3处理下一个DS的DSU,反之则判断DSUB[i]是否为空,如DSUB[i]为空,则把当前处理DSU存入DSUB[i];
5)如果DSUB的所有元素均置满数据,则等待至DSUB的所有元素都被DSU聚类分配部件置为空;
6)如果DSB中的MR的所有元素都为1,则转至步骤1处理并发数据流中所有DS的下一个DSS,反之则转向步骤2继续处理当前DSS的DSU;
 DSU聚类分配部件重复执行以下步骤:
1)判别DSB的DSUB中是否置满数据,如果未满则重复本步骤,反之则转至步骤2;
2)判别是否收到来自任务调度部件的“数据流处理完毕”消息,如果未收到则重复本步骤,反之则转至步骤3;
3)对i=1,2,…,p,分类处理DSUB[i],其分类处理步骤如下:
如果DSUB[i]的type值不是EOS,则将DSUB[i]加入CPOOL的第w个数据流聚类队列DSUQw中,其中w值等于DSUB[i]的type值;然后获取DSUB[i]在DSUQw的位置下标,记为pos,并置MapM[i]的nu值为i,置MapM[i]的sno值为i,置MapM[i]的segno值为DSUB[i]的segno值,置MapM[i]的seq值为DSUB[i]的seq值,置MapM[i]的t值为DSUB[i]的t值,置MapM[i]的qso值为w值,置MapM[i]的qoffset值为pos,然后置DSUB[i]为空;
4)向任务调度部件发送“数据流聚类队列构建完毕”消息;
任务调度部件执行以下步骤:
1)判别是否收到来自DSU聚类分配部件的“数据流聚类队列构建完毕”消息,如果未收到则重复本步骤,反之则转至步骤2;
2)为流处理器池中的各个GPU配置一个工作标志数组work,并对i=1,2,3,…,q,置work[i]=0,其中q为流处理器池中的GPU数量;
3)从CPOOL中提取q个DSUQ以及每个队列所对应GPU的KernelP,构成任务对(DSUQ1,Kernel1),(DSUQ2,Kernel2),…,(DSUQq,Kernelq);
4)对i=1,2,…,q,分别加载(DSUQi,Kerneli)到GPUi执行步骤5,其中GPUi是指第i个GPU;
5)向GPUi的存储器申请DSUQi大小的存储单元D_BUFFi,然后将DSQUi的内容加载到D_BUFFi,然后再提交Kerneli 及D_BUFFi到GPUi执行;
6)监控所有GPU的执行状况,如果GPUi执行完毕,则向计算后处理部件发送“GPUi数据流处理完毕”消息,并从CPOOL中提取下一个未被执行的任务对(DSUQi,Kerneli)后转至步骤5;如果CPOOL中的所有DSUQ都被加载执行完毕,则向DSU聚类分配部件发送“数据流处理完毕”消息,并对所有的i置work[i]=0,然后再转至步骤1;
计算后处理部件执行以下步骤:
1)判别是否收到来自任务调度部件的“GPUi数据流处理完毕”消息,如果未收到则重复本步骤,反之则转至步骤2;
2)向内存申请D_BUFFi大小空间的POST_DSUQ,所述POST_DSUQ的结构与DSUQ的结构一致;
3)先将D_BUFFi的内容加载到POST_DSUQ,再释放D_BUFFi的空间;
4)扫描POST_DSUQ中的每个DSU,将DSU按照MapM记载的位置映射信息还原到相应的DS中,保持原有DS的顺序,并把结果写入RS;
5)转至步骤1;
GPUi上的Kernel执行以下步骤:
1)获取Kerneli 及D_BUFFi,并计算出D_BUFFi中的DSU数量记为g;
2)在GPUi的各个物理流处理单元分配DSU,每个物理流处理单元得到
Figure 2011101359060100002DEST_PATH_IMAGE003
个DSU,其中h为GPUi的物理流处理单元数量;
3)所有物理流处理单元并行地对其分配到的DSU执行Kerneli进行处理,并输出计算结果到其所处理的DSU的odata;
4)GPUi计算结束。
本发明提供的大规模并发数据流处理系统及其处理方法,通过对并发数据流的流水分拣机制聚类数据流单元,构建了数据流单元聚类队列池来收集同类数据流单元,运用批调度机制加载数据流单元聚类队列到流处理器实施并行处理,运用多维标识机制聚类数据流单元,在处理结束后又可重组数据流单元的计算结果重构数据流,使得同一时刻被处理的数据集合具备同样的数据处理方法,大大发挥了流处理器SPMD计算模式的特长,使流处理器能发挥其最大能力,进而提高处理效率。
附图说明
图1是本发明实施例的大规模并发数据流处理系统的结构示意图;
图2是本发明实施例的大规模并发数据流处理系统的处理过程示意图。
具体实施方式
以下结合附图说明对本发明的实施例作进一步详细描述,但本实施例并不用于限制本发明,凡是采用本发明的相似结构及其相似变化,均应列入本发明的保护范围。
为了对本发明实施例的一种大规模并发数据流处理系统作进一步详细描述,本说明书作如下设定:
设定1(数据流单元),一个数据流单元是一个九元组DSU(id,sno,segno,seq,t,type,prog,data,odata),其中DSU为数据流单元,id为该DSU的标识符,且该id具有唯一性,sno为该DSU的数据流号,segno为该DSU的数据流段号,seq为该DSU的在segno数据流段中的单元序号,用于表示其在数据流段中的位置,t为一个时间印,用于记载该DSU被处理的时刻,type为该DSU的类型,每个DSU根据其数据被加工的特点被划分成多个类型,data为该DSU所承载的数据对象,data可以是一个简单对象,也可以是由多个简单对象构成的复合对象,odata为该DSU处理后的输出数据对象,prog是该DSU的data的处理程序,prog对data进行处理分析,并把输出结果写入odata;
设定2(数据流段),一个数据流段是由多个seq连续的DSU构成的序列,记为DSS={DSU1,DSU2,DSU3,…,DSUn,DSUE},其中DSS为数据流段,每个DSS均有一个数据流段号segno被分别存储在构成该DSS的每个DSU中,DSS序列尾的DSUE为该DSS的结束标志,是一个type为常量值EOS的DSU,其prog、data、odata均为空;
设定3(数据流),一个数据流是由多个segno连续的DSS构成的序列,记为DS={DSS1,DSS2,DSS3,…,DSSo},每个DS均有一个数据流号sno被分别存储在构成该DS的各个DSS的DSU中;
设定4(并发数据流),由多个并发传输的DS构成,每个DS均以DSU作为并发处理的单位,并以DSS作为多个数据流并发同步的单元。
如图1所示,本发明实施例所提供的一种大规模并发数据流处理系统,其特征在于,包括:
数据流单元缓冲区,是一个二元组DSB(DSUB,MR),其中DSB为数据流单元缓冲区,DSUB及MR均是由p个元素构成的一维数组,p为并发数据流中的数据流数量,DSUB中的每个数组元素为一个DSU,MR中的每个数组元素是一个取值为0或1的整型数,该数组用于数据流流水处理的同步标志;
数据流单元聚类队列池,由|TS|个DSU队列构成,记为CPOOL={DSUQ1,DSUQ2,…,DSUQ|TS|},其中CPOOL为数据流单元聚类队列池,DSUQ为数据流单元聚类队列,TS为应用系统数据流单元类型集合,该集合是DSU类型的集合,TS中的元素个数为m,则|TS|=m,同一个DSU队列由同类型的DSU构成,这些DSU来自p个并发数据流的当前处理单元,有: 
Figure 2011101359060100002DEST_PATH_IMAGE005
数据流单元映射表,由多个表元构成,记为MapM(nu,sno,segno,seq,t,qso, qoffset),其中MapM为数据流单元映射表,nu为序号,sno为数据流号,segno为数据段号,seq为数据流单元号,t为时间印,qso为聚类队列号,qoffset为聚类队列内部元素位置号;
流处理器池SPP,由多个GPU构成,所述GPU为二元组GPU(KernelP,D_BUFF), 其中KernelP为该GPU当前执行SPMD任务的计算核心部件,D_BUFF为KernelP执行SPMD操作的多个DSU集合;
数据流读取部件SReadP,用于读取数据流;
DSU聚类分配部件AllotP,用于对数据流单元缓冲区中当前被处理的数据流单元进行分类;
任务调度部件ExecP,用于将数据流单元聚类队列池中的就绪队列加载至流处理器池中的GPU上执行流计算;
计算后处理部件PostP,用于将GPU计算的DSU的odata按MapM的标志回归到DSU所在的数据流。
如图2所示,本发明实施例所提供的大规模并发数据流处理系统的处理方法,其特征在于:
数据流读取部件SReadP重复执行以下步骤直至并发数据流中的DS读取完毕:
1)根据并发数据流的个数,在DSB中为每个DS分配一个单元,并初始化DSB的MR,置MR[i]值为0,其中1≤i≤p,p为并发数据流的个数;
2)读取并发数据流中所有DS的当前DSS;
3)扫描并发数据流,对i=1,2,…,p,对DSi做步骤4的处理,所述DSi是指第i个DS;
4)如果MR[i]值为1,则转至步骤3处理下一个DS的DSU;
如果MR[i]值为0,则提取DSi的当前处理DSU,并判断当前处理DSU的type,如果当前处理DSU的type值为EOS,则DSi的当前DSS结束,则置MR[i]为1,并转至步骤3处理下一个DS的DSU,反之则判断DSUB[i]是否为空,如DSUB[i]为空,则把当前处理DSU存入DSUB[i];
5)如果DSUB的所有元素均置满数据,则等待至DSUB的所有元素都被DSU聚类分配部件AllotP置为空;
6)如果DSB中的MR的所有元素都为1,则转至步骤1处理并发数据流中所有DS的下一个DSS,反之则转向步骤2继续处理当前DSS的DSU;
 DSU聚类分配部件AllotP重复执行以下步骤:
1)判别DSB的DSUB中是否置满数据,如果未满则重复本步骤,反之则转至步骤2;
2)判别是否收到来自任务调度部件ExecP的“数据流处理完毕”消息,如果未收到则重复本步骤,反之则转至步骤3;
3)对i=1,2,…,p,分类处理DSUB[i],其分类处理步骤如下:
如果DSUB[i]的type值不是EOS,则将DSUB[i]加入CPOOL的第w个数据流聚类队列DSUQw中,其中w值等于DSUB[i]的type值;然后获取DSUB[i]在DSUQw的位置下标,记为pos,并置MapM[i]的nu值为i,置MapM[i]的sno值为i,置MapM[i]的segno值为DSUB[i]的segno值,置MapM[i]的seq值为DSUB[i]的seq值,置MapM[i]的t值为DSUB[i]的t值,置MapM[i]的qso值为w值,置MapM[i]的qoffset值为pos,然后置DSUB[i]为空;
4)向任务调度部件ExecP发送“数据流聚类队列构建完毕”消息;
任务调度部件ExecP执行以下步骤:
1)判别是否收到来自DSU聚类分配部件AllotP的“数据流聚类队列构建完毕”消息,如果未收到则重复本步骤,反之则转至步骤2;
2)为流处理器池SPP中的各个GPU配置一个工作标志数组work,并对i=1,2,3,…,q,置work[i]=0,其中q为流处理器池SPP中的GPU数量;
3)从CPOOL中提取q个DSUQ以及每个队列所对应GPU的KernelP,构成任务对(DSUQ1,Kernel1),(DSUQ2,Kernel2),…,(DSUQq,Kernelq);
4)对i=1,2,…,q,分别加载(DSUQi,Kerneli)到GPUi执行步骤5,其中GPUi是指第i个GPU;
5)向GPUi的存储器申请DSUQi大小的存储单元D_BUFFi,然后将DSQUi的内容加载到D_BUFFi,然后再提交Kerneli 及D_BUFFi到GPUi执行;
6)监控所有GPU的执行状况,如果GPUi执行完毕,则向计算后处理部件PostP 发送“GPUi数据流处理完毕”消息,并从CPOOL中提取下一个未被执行的任务对(DSUQi,Kerneli)后转至步骤5;如果CPOOL中的所有DSUQ都被加载执行完毕,则向DSU聚类分配部件AllotP发送“数据流处理完毕”消息,并对所有的i置work[i]=0,然后再转至步骤1;
计算后处理部件PostP执行以下步骤:
1)判别是否收到来自任务调度部件ExecP的“GPUi数据流处理完毕”消息,如果未收到则重复本步骤,反之则转至步骤2;
2)向内存申请D_BUFFi大小空间的POST_DSUQ,所述POST_DSUQ的结构与DSUQ的结构一致;
3)先将D_BUFFi的内容加载到POST_DSUQ,再释放D_BUFFi的空间;
4)扫描POST_DSUQ中的每个DSU,将DSU按照MapM记载的位置映射信息还原到相应的DS中,保持原有DS的顺序,并把结果写入RS;
5)转至步骤1;
GPUi上的Kernel执行以下步骤:
1)获取Kerneli 及D_BUFFi,并计算出D_BUFFi中的DSU数量记为g;
2)在GPUi的各个物理流处理单元分配DSU,每个物理流处理单元得到
Figure 737541DEST_PATH_IMAGE003
个DSU,其中h为GPUi的物理流处理单元数量;
3)所有物理流处理单元并行地对其分配到的DSU执行Kerneli进行处理,并输出计算结果到其所处理的DSU的odata;
4)GPUi计算结束。
本发明实施例中所述的大规模并发数据流是指数据流数量在1200个以上的并发数据流,本发明实施例实际应用时也可用于处理数据流数量少于1200个的并发数据流。
以下以一个简化的3G视频数据流中的H.264解码问题的预测阵计算实例来进一步说明本发明实施例的处理方法:
H264把视频图像编码若干个16X16点阵规模的宏块,每个宏块有其编码方法,一个宏块相当一个DSU,而一个视频帧相当于一个DSS,所以一个H264视频流可以由多个DSS构成,一个DSS由多个DSU构成,实际上在H264的编码中,每个宏块又会根据图像实际情况分为多个4X4或8X8的子快,因而对于H264的I帧具有21种预测阵计算方法;为了简化描述,我们假设本应用中的宏块只是16X16宏块,因此示例模型的H264视频流是由多个16X16宏块构成,根据H264编码规则,16X16宏块有4种预测阵处理模式,即只有4种类型的DSU,因而CPOOL只有4个数据流单元聚类队列,也就是说只有4类KernelP部件。
实际应用中,利用本发明实施例构建了基于流处理器并行环境的3G网络质量监测系统,该系统由2个功能集群构成:9台高性能计算机构成I/O任务密集型CPU集群,9台流处理器机器构成计算密集型GPU集群,集群通过2台基板带宽为48Gbps的千兆以太网交换机连接而成;所有计算节点用MPI通信协议互联,每个计算节点配置UBANTU10操作系统,流处理器采用NVIDIA GTX480,开发环境为NVIDIA CUDA,每个CPU集群节点有一个与之对应的GPU集群节点,在这两个节点间有1120个视频流进行数据流传输,9对计算节点可以处理10080个并发视频流,每对节点采用本发明实施例的系统实现,该集群运用CPU集群把3G视频流H.264参数提取,然后GPU节点对10080个视频图像参数进行计算(图像还原成YUV、模糊度、块效应、平滑度分析),10080个3G视频流大约有20GB的网络带宽,该系统对10080个视频流的10080个当前I帧的分析处理单位平均时间为1.5秒,能满足电信对3G视频的分析规模的要求和性能的要求。

Claims (2)

1.一种大规模并发数据流处理系统,其特征在于,包括:
(1)数据流读取部件,用于读取数据流;
数据流单元缓冲区,是一个二元组DSB(DSUB,MR),其中DSB为数据流单元缓冲区,DSUB及MR均是由p个元素构成的一维数组,p为并发数据流中的数据流数量,DSUB中的每个数组元素为一个DSU,MR中的每个数组元素是一个取值为0或1的整型数,该数组用于数据流流水处理的同步标志;
所述DSU是指数据流单元,一个数据流单元是一个九元组DSU(id,sno,segno,seq,t,type,prog,data,odata),其中DSU为数据流单元,id为该DSU的标识符,且该id具有唯一性,sno为该DSU的数据流号,segno为该DSU的数据流段号,seq为该DSU的在segno数据流段中的单元序号,用于表示其在数据流段中的位置,t为一个时间印,用于记载该DSU被处理的时刻,type为该DSU的类型,data为该DSU所承载的数据对象,odata为该DSU处理后的输出数据对象,prog是该DSU的data的处理程序;
 所述数据流段是由多个seq连续的DSU构成的序列,记为DSS={DSU1,DSU2,DSU3,…,DSUn,DSUE},其中DSS为数据流段,每个DSS均有一个数据流段号segno被分别存储在构成该DSS的每个DSU中,DSS序列尾的DSUE为该DSS的结束标志,是一个type为常量值EOS的DSU,其prog、data、odata均为空;
    所述数据流是由多个segno连续的DSS构成的序列,记为DS={DSS1,DSS2,DSS3,…,DSSo},每个DS均有一个数据流号sno被分别存储在构成该DS的各个DSS的DSU中;
所述并发数据流由多个并发传输的DS构成,每个DS均以DSU作为并发处理的单位,并以DSS作为多个数据流并发同步的单元;
数据流单元聚类队列池,由|TS|个DSU队列构成,记为CPOOL={DSUQ1,DSUQ2,…,DSUQ|TS|},其中CPOOL为数据流单元聚类队列池,DSUQ为数据流单元聚类队列,TS为应用系统数据流单元类型集合,该集合是DSU类型的集合,TS中的元素个数为m,则|TS|=m,同一个DSU队列由同类型的DSU构成,这些DSU来自p个并发数据流的当前处理单元,有:                                                
数据流单元映射表,由多个表元构成,记为MapM(nu,sno,segno,seq,t,qso, qoffset),其中MapM为数据流单元映射表,nu为序号,sno为数据流号,segno为数据流段号,seq为数据流单元号,t为时间印,qso为聚类队列号,qoffset为聚类队列内部元素位置号;
流处理器池,由多个GPU构成,所述GPU为二元组GPU(KernelP,D_BUFF), 其中KernelP为该GPU当前执行SPMD任务的计算核心部件,D_BUFF为KernelP执行SPMD操作的多个DSU集合;
(2)DSU聚类分配部件,用于对数据流单元缓冲区中当前被处理的数据流单元进行分类;
(3)任务调度部件,用于将数据流单元聚类队列池中的就绪队列加载至流处理器池中的GPU上执行流计算;
(4)计算后处理部件,用于将GPU计算的DSU的odata按MapM的标志回归到DSU所在的数据流。
2.根据权利要求1所述的大规模并发数据流处理系统的处理方法,其特征在于:
数据流读取部件重复执行以下步骤直至并发数据流中的DS读取完毕:
1)根据并发数据流的个数,在DSB中为每个DS分配一个单元,并初始化DSB的MR,置MR[i]值为0,其中1≤i≤p,p为并发数据流的个数;
2)读取并发数据流中所有DS的当前DSS;
3)扫描并发数据流,对i=1,2,…,p,对DSi做步骤4的处理,所述DSi是指第i个DS;
4)如果MR[i]值为1,则转至步骤3处理下一个DS的DSU;
如果MR[i]值为0,则提取DSi的当前处理DSU,并判断当前处理DSU的type,如果当前处理DSU的type值为EOS,则DSi的当前DSS结束,则置MR[i]为1,并转至步骤3处理下一个DS的DSU,反之则判断DSUB[i]是否为空,如DSUB[i]为空,则把当前处理DSU存入DSUB[i];
5)如果DSUB的所有元素均置满数据,则等待至DSUB的所有元素都被DSU聚类分配部件置为空;
6)如果DSB中的MR的所有元素都为1,则转至步骤1处理并发数据流中所有DS的下一个DSS,反之则转向步骤2继续处理当前DSS的DSU;
 DSU聚类分配部件重复执行以下步骤:
1)判别DSB的DSUB中是否置满数据,如果未满则重复本步骤,反之则转至步骤2;
2)判别是否收到来自任务调度部件的“数据流处理完毕”消息,如果未收到则重复本步骤,反之则转至步骤3;
3)对i=1,2,…,p,分类处理DSUB[i],其分类处理步骤如下:
如果DSUB[i]的type值不是EOS,则将DSUB[i]加入CPOOL的第w个数据流聚类队列DSUQw中,其中w值等于DSUB[i]的type值;然后获取DSUB[i]在DSUQw的位置下标,记为pos,并置MapM[i]的nu值为i,置MapM[i]的sno值为i,置MapM[i]的segno值为DSUB[i]的segno值,置MapM[i]的seq值为DSUB[i]的seq值,置MapM[i]的t值为DSUB[i]的t值,置MapM[i]的qso值为w值,置MapM[i]的qoffset值为pos,然后置DSUB[i]为空;
4)向任务调度部件发送“数据流聚类队列构建完毕”消息;
任务调度部件执行以下步骤:
1)判别是否收到来自DSU聚类分配部件的“数据流聚类队列构建完毕”消息,如果未收到则重复本步骤,反之则转至步骤2;
2)为流处理器池中的各个GPU配置一个工作标志数组work,并对i=1,2,3,…,q,置work[i]=0,其中q为流处理器池中的GPU数量;
3)从CPOOL中提取q个DSUQ以及每个队列所对应GPU的KernelP,构成任务对(DSUQ1,Kernel1),(DSUQ2,Kernel2),…,(DSUQq,Kernelq);
4)对i=1,2,…,q,分别加载(DSUQi,Kerneli)到GPUi执行步骤5,其中GPUi是指第i个GPU;
5)向GPUi的存储器申请DSUQi大小的存储单元D_BUFFi,然后将DSQUi的内容加载到D_BUFFi,然后再提交Kerneli 及D_BUFFi到GPUi执行;
6)监控所有GPU的执行状况,如果GPUi执行完毕,则向计算后处理部件发送“GPUi数据流处理完毕”消息,并从CPOOL中提取下一个未被执行的任务对(DSUQi,Kerneli)后转至步骤5;如果CPOOL中的所有DSUQ都被加载执行完毕,则向DSU聚类分配部件发送“数据流处理完毕”消息,并对所有的i置work[i]=0,然后再转至步骤1;
计算后处理部件执行以下步骤:
1)判别是否收到来自任务调度部件的“GPUi数据流处理完毕”消息,如果未收到则重复本步骤,反之则转至步骤2;
2)向内存申请D_BUFFi大小空间的POST_DSUQ,所述POST_DSUQ的结构与DSUQ的结构一致;
3)先将D_BUFFi的内容加载到POST_DSUQ,再释放D_BUFFi的空间;
4)扫描POST_DSUQ中的每个DSU,将DSU按照MapM记载的位置映射信息还原到相应的DS中,保持原有DS的顺序,并把结果写入RS;
5)转至步骤1;
GPUi上的Kernel执行以下步骤:
1)获取Kerneli 及D_BUFFi,并计算出D_BUFFi中的DSU数量记为g;
2)在GPUi的各个物理流处理单元分配DSU,每个物理流处理单元得到个DSU,其中h为GPUi的物理流处理单元数量;
3)所有物理流处理单元并行地对其分配到的DSU执行Kerneli进行处理,并输出计算结果到其所处理的DSU的odata;
4)GPUi计算结束。
CN 201110135906 2011-05-25 2011-05-25 大规模并发数据流处理系统及其处理方法 Expired - Fee Related CN102200906B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110135906 CN102200906B (zh) 2011-05-25 2011-05-25 大规模并发数据流处理系统及其处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110135906 CN102200906B (zh) 2011-05-25 2011-05-25 大规模并发数据流处理系统及其处理方法

Publications (2)

Publication Number Publication Date
CN102200906A CN102200906A (zh) 2011-09-28
CN102200906B true CN102200906B (zh) 2013-12-25

Family

ID=44661606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110135906 Expired - Fee Related CN102200906B (zh) 2011-05-25 2011-05-25 大规模并发数据流处理系统及其处理方法

Country Status (1)

Country Link
CN (1) CN102200906B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2834755B1 (en) 2012-04-05 2018-01-24 Microsoft Technology Licensing, LLC Platform for continuous graph update and computation
CN102946443B (zh) * 2012-12-06 2015-02-18 北京邮电大学 一种实现大规模数据传输的多任务调度方法
CN104252466A (zh) * 2013-06-26 2014-12-31 阿里巴巴集团控股有限公司 流计算处理方法、设备和系统
CN103577161A (zh) * 2013-10-17 2014-02-12 江苏科技大学 一种面向大数据的数据频度并行处理方法
CN107729147B (zh) 2014-03-06 2021-09-21 华为技术有限公司 流计算系统中的数据处理方法、控制节点及流计算系统
CN104020994B (zh) * 2014-05-30 2017-07-14 华为技术有限公司 基于流系统的流过程定义装置和流过程定义方法
CN104320382B (zh) * 2014-09-30 2018-04-20 华为技术有限公司 分布式的实时流处理装置、方法和单元
CN107085532B (zh) * 2017-03-21 2019-12-13 东软集团股份有限公司 任务监听方法和装置
CN108257077B (zh) * 2018-01-02 2022-03-22 深圳云天励飞技术有限公司 基于gpu的聚类数据的处理方法、系统及计算设备
CN111400048B (zh) * 2020-03-23 2022-06-07 上海理工大学 面向大规模ai数据流处理的集群汇集通信系统
CN111245664B (zh) * 2020-03-23 2022-12-09 上海理工大学 面向大规模数据流处理的gpu边缘计算集群通信系统
CN111541617B (zh) * 2020-04-17 2021-11-02 网络通信与安全紫金山实验室 一种用于高速大规模并发数据流的数据流表处理方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
WO2002084957A2 (en) * 2001-04-13 2002-10-24 Motorola, Inc., A Corporation Of The State Of Delaware Manipulating data streams in data stream processors
CN101034345A (zh) * 2007-04-16 2007-09-12 中国人民解放军国防科学技术大学 流处理器中数据流、指令流的控制方法
US7856544B2 (en) * 2008-08-18 2010-12-21 International Business Machines Corporation Stream processing in super node clusters of processors assigned with stream computation graph kernels and coupled by stream traffic optical links
CN101739242B (zh) * 2009-11-27 2013-07-31 深圳中微电科技有限公司 一种流数据处理方法及流处理器

Also Published As

Publication number Publication date
CN102200906A (zh) 2011-09-28

Similar Documents

Publication Publication Date Title
CN102200906B (zh) 大规模并发数据流处理系统及其处理方法
CN108171117B (zh) 基于多核异构并行计算的电力人工智能视觉分析系统
Mehta et al. Object detection at 200 frames per second
CN109769115A (zh) 一种优化智能视频分析性能的方法、装置和设备
US9219769B2 (en) Efficient multiple filter packet statistics generation
CN102523131A (zh) 用户上网行为收集方法、分析方法和系统
CN110414600A (zh) 一种基于迁移学习的空间目标小样本识别方法
CN109711323B (zh) 一种实时视频流分析加速方法、装置和设备
CN110413776A (zh) 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法
CN111614769A (zh) 一种深度学习技术的行为智能分析引擎系统及控制方法
CN109583334A (zh) 一种基于时空关联神经网络的动作识别方法及其系统
CN102201992B (zh) 面向流处理器并行环境的数据流通信系统及其通信方法
CN107436865A (zh) 一种词对齐训练方法、机器翻译方法及系统
CN114339266B (zh) 一种基于国产cpu和操作系统的视频流队列处理方法
CN105224922A (zh) 一种人车分类视频流式处理系统及方法
CN101276476A (zh) 对2d卡通动画的前景背景分离方法
CN101674192B (zh) 一种基于流量统计的VoIP识别方法
CN103324956B (zh) 一种基于分布式视频检测的座位统计方法
CN103891272B (zh) 用于视频分析和编码的多个流处理
CN108334602A (zh) 数据标注方法和装置、电子设备、计算机存储介质、程序
CN113641654A (zh) 一种基于实时事件的营销处置规则引擎方法
CN111917600A (zh) 一种基于Spark性能优化的网络流量分类装置及分类方法
CN110415217A (zh) 基于子集导引与变异系数的图像集增强优选方法
Cao Dynamic Allocation Method of Economic Information Integrated Data Based on Deep Learning Algorithm
Chen et al. Training tinyYoloV2 based on OHEM

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Chen Qingkui

Inventor after: Ding Xiaodong

Inventor after: Na Lichun

Inventor after: Zhou Shumin

Inventor after: Liu Bocheng

Inventor after: Wang Haifeng

Inventor after: Hao Jutao

Inventor after: Huo Huan

Inventor after: Zhao Haiyan

Inventor after: Zhuang Songlin

Inventor before: Chen Qingkui

Inventor before: Na Lichun

Inventor before: Liu Bocheng

Inventor before: Wang Haifeng

Inventor before: Hao Jutao

Inventor before: Huo Huan

Inventor before: Zhao Haiyan

Inventor before: Zhuang Songlin

Inventor before: Ding Xiaodong

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: CHEN QINGKUI NA LICHUN LIU BOCHENG WANG HAIFENG HAO JUTAO HUO HUAN ZHAO HAIYAN ZHUANG SONGLIN DING XIAODONG TO: CHEN QINGKUI NA LICHUN ZHOU SHUMIN LIU BOCHENG WANG HAIFENG HAO JUTAO HUO HUAN ZHAO HAIYAN ZHUANG SONGLIN DING XIAODONG

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131225

Termination date: 20160525