大规模并发数据流处理系统及其处理方法技术方案

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

【技术实现步骤摘要】

本专利技术涉及数据处理技术,特别是涉及一种的技术。
技术介绍
随着信息技术的飞速发展和互联网技术应用的普及,网络已经成为人们日常生活中重要的一部分。近年来,3G网络和物联网技术应用的逐步展开为人们的生活、工作带来了极大的方便。然而,这些新技术的核心应用关键之一就是大规模并发数据流处理问题。所谓数据流就是从一个节点发往另一个节点的具有某种特征的数据单元构成的连续不断的信息流,数据流的处理和分析问题要求处理节点具有一定的实时处理能力。人们可以通过缓冲处理、并行处理机制来解决实时处理问题。然而,现实应用中的数据流并非一个,在两个处理节点间的数据流可能是成千上万个,这就形成了大规模并发数据流的处理需求。如 3G通信视频流的质量实时分析问题,在这个问题中,数据抓取节点从3G骨干网络上同时抓去上万门3G通话的IP包,并还原成上万个H. 264视频流,而3G视频质量分析系统需要提取这些视频流在某一时刻的上万个静态画面,并进行模糊度计算、块效应计算等工作。大规模并发数据流的实时处理问题给业界带来了极大的挑战。如何构建廉价的高性能处理装置是一个具有挑战性的研究课题。以流处理器为代表的新型计算装置为解决这些困难带来了曙光。流处理器是GPU走向通用计算领域的总称,因其内部采用上百个Mream processor 并行架构而得名,其可以有效支持SPMD并行操作,非常适合做大规模并发数据流的处理工作,且其性能十分出众。但是,由于同一个流处理器核心在同一时刻只能运行同一个核心程序,而同时到来的大规模并发数据流的成千上万个数据流单元却不一定具有同一处理特征,因而无法满足流处理器进行高性能处理的数据特征要求,无法使流处理器发挥其最大能力,进而提高处理效率。
技术实现思路
针对上述现有技术中存在的缺陷,本专利技术所要解决的技术问题是提供一种能发挥流处理器的最大能力,提高其处理效率的。为了解决上述技术问题,本专利技术所提供的一种大规模并发数据流处理系统,其特征在于,包括数据流单元缓冲区,是一个二元组DSB(DSUB,MR),其中DSB为数据流单元缓冲区,DSUB 及MR均是由ρ个元素构成的一维数组,ρ为并发数据流中的数据流数量,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,…, DSUQ1ts1 },其中CP00L为数据流单元聚类队列池,DSUQ为数据流单元聚类队列,TS为应用系统数据流单元类型集合,该集合是DSU类型的集合,TS中的元素个数为m,则|TS|=m,同一个DSU队列由同类型的DSU构成,这些DSU来自ρ个并发数据流的当前处理单元,有》DSUQ\ = p ; I=T数据流单元映射表,由多个表元构成,记为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值为0,其中1彡i彡ρ,ρ为并发数据流的个数;2)读取并发数据流中所有DS的当前DSS;3)扫描并发数据流,对i=l,2,…,p,对DSi做步骤4的处理,所述DSi是指第i个DS;4)如果MR值为1,则转至步骤3处理下一个DS的DSU;如果MR值为0,则提取DSi的当前处理DSU,并判断当前处理DSU的type,如果当前处理DSU的type值为E0S,则DSi的当前DSS结束,则置MR为1,并转至步骤3处理下一个DS的DSU,反之则判断DSUB是否为空,如DSUB为空,则把当前处理DSU存入 DSUB ;5)如果DSUB的所有元素均置满数据,则等待至DSUB的所有元素都被DSU聚类分配部件置为空;6)如果DSB中的MR的所有元素都为1,则转至步骤1处理并发数据流中所有DS的下一个DSS,反之则转向步骤2继续处理当前DSS的DSU ;DSU聚类分配部件重复执行以下步骤1)判别DSB的DSUB中是否置满数据,如果未满则重复本步骤,反之则转至步骤2;2)判别是否收到来自任务调度部件的“数据流处理完毕”消息,如果未收到则重复本步骤,反之则转至步骤3;3)对i=l,2,…,p,分类处理DSUB,其分类处理步骤如下如果DSUB 的type值不是E0S,则将DSUB 加入CPOOL的第w个数据流聚类队列 DSTOw中,其中w值等于DSUB 的type值;然后获取DSUB 在DSUQw的位置下标,记为 pos,并置 MapM的 nu 值为 i,置 MapM的 sno 值为 i,置MapM的 segno 值为 DSUB 的 segno 值,置 MapM的 seq 值为 DSUB 的 seq 值,本文档来自技高网
...

【技术保护点】
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集合;数据流读取部件,用于读取数据流;DSU聚类分配部件,用于对数据流单元缓冲区中当前被处理的数据流单元进行分类;任务调度部件,用于将数据流单元聚类队列池中的就绪队列加载至流处理器池中的GPU上执行流计算;计算后处理部件,用于将GPU计算的DSU的odata按MapM的标志回归到DSU所在的数据流。...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈庆奎那丽春刘伯承王海峰郝聚涛霍欢赵海燕庄松林丁晓东
申请(专利权)人:上海理工大学
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1