CN103577161A - 一种面向大数据的数据频度并行处理方法 - Google Patents
一种面向大数据的数据频度并行处理方法 Download PDFInfo
- Publication number
- CN103577161A CN103577161A CN201310488199.2A CN201310488199A CN103577161A CN 103577161 A CN103577161 A CN 103577161A CN 201310488199 A CN201310488199 A CN 201310488199A CN 103577161 A CN103577161 A CN 103577161A
- Authority
- CN
- China
- Prior art keywords
- data
- array
- processing
- task
- gpu
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种面向大数据的数据频度并行处理方法,该方法在CUDA环境下把对大数据的数据频度统计以并行方式处理,从而降低处理时间。用户提供目标数据流,在接收到数据后,对数据进行读取,提取有效数据并做一些预处理,使其易于在GPU上以并行化方式处理;对处理后的数据进行任务块划分,并行化处理任务块。该处理方法中利用GPU并行特点,合理的任务划分,CPU与GPU协作处理,根据数据流的接收速度动态设置并发速度,保持接收与处理的一致性,具有很好的透明性、体验性和自适应性,高效可靠,特别适用于数据规模较大的数据频度统计处理中。
Description
技术领域:
本发明属于大数据并行处理技术领域,涉及一种数据频度处理的方法,具体涉及一种面向大数据的数据频度并行处理方法。
背景技术:
随着大数据时代的来临,数据处理的复杂度也越来越高。针对大数据规模大、结构复杂、类型众多等特点,现有的数据处理技术已不能满足用户对实时性、高效率的要求。
现有的大数据频度处理主要技术及其弊端为:
1.Hadoop集群技术:在当前的Hadoop的设计中,单一NameNode、单一Jobracker的设计严重制约了整个Hadoop的可扩展性和可靠性。设备复杂,规模较大。
2.基于云计算技术的数据处理:要求必须采用一些支撑云环境的相关技术,比如需要为所有数据提供多个副本的故障检测与转移机制和容错机制,要有持久稳定和快速的因特网连接的保障。安全性较低,并且会产生网络延迟。
3.基于CPU的串行处理技术:串行处理数据具有速度慢、效率低、等待时间长等缺点,已不再适用大数据的处理。
4.CPU多核处理:虽然CPU多核处理在一定意义上实现了并行处理方法,比串行处理的速度有所提高,但是对于大数据规模大的特点,其核数远远不能满足要求。
本专利利用GPU架构特点在CUDA环境下实现大数据的数据频度并行处理方法,具有自适应性,较高的实时性和可靠性。
发明内容:
本发明所要解决的技术问题是:针对以上传统的数据频度处理方法在处理大数据时存在的处理速度慢、效率低的问题,提出了一种新的高效处理方法,使频度统计处理方式具有更快的处理速度,更好的自适应性。
为了实现上述目的,本发明解决上述问题的技术方案是利用GPU的并行处理技术,在数据读取阶段对数据进行预处理,在数据统计处理阶段动态设置并发数,将数据由CPU传输到GPU进行并行化计算,在最后的得出结果阶段再将并行结果由GPU回传到CPU,处理得到最终结果。
数据预处理阶段:
读取有效数据到数组生成目标数据(数据存储类型为字符形式),每个子数据存储长度固定为L(L可根据接收数据的子数据长度特征决定)个字节,对于需要统计处理的特征数据存储形式与目标数据相同,即特征数据占L个字节。
数据统计处理阶段包括以下步骤:
步骤1:设置一些用于记录各种状态的变量,分为host端变量和device端变量。host端变量包括:目标数据数组,特征数据数组,存储块统计状态的数组。device端变量包括:目标数据数组,特征数据数组,块统计状态数组;
步骤2:数据传输。目标数据采用零拷贝内存形式实现从host端到device端的传输,将步骤1中的host端其他数据传输到device端,对device端数据初始化;
步骤3:对数据进行任务块划分,动态设置并发速度。对数据进行任务块划分指具体分配每个thread的任务,每个thread完成单个字符的目标数据与特征数据之间的运算。根据目标数据流的接收速度动态设置并发处理速度,使得处理速度大于或等于接收速度,具体指设置block和grid数目,并且block数除了要适应处理速度大于接收速度外还要满足是L的倍数的要求;
步骤4:设置shared数组,用来记录每个thread比较计算的结果,数组长度为block的大小;
步骤5:根据thread运算结果设置步骤4中shared数组对应位置处的值;
步骤6:块同步处理,保证每个block中的thread都完成任务,然后再继续以下的任务,保持同步性;
如附图2所示为shared数组生成过程。
步骤7:对每L个thread中的第一个thread执行以下任务:统计shared数组中的值,当对应数组L个长度中的值有0出现时就停止对这L个长度的值的统计,继续下一个L长度数据的统计,统计的结果以原子加操作形式存到对应的块统计状态数组中,得到每个block的计算结果,如附图3所示。
结果处理阶段包括:
device端得到的块统计状态数组传输到host端,在host端做最后的循环统计处理,得出最终结果并输出。
本发明的一种面向大数据的数据频度并行处理方法,具有的特点和有益效果:
1.本发明中数据处理阶段利用GPU并行的特点处理大数据,同时进行多个thread的处理,大大缩短了处理时间,提高了数据处理效率;
2.本发明在数据处理阶段充分利用了GPU硬件架构,同时启动多个内核,设备利用率高;
3.本发明在对于大数据的数据频度处理方面,根据接收数据流速度自适应的设置并发处理速度,具有动态可控制性,利用此处理方法与传统处理方法相比的优势就越加明显;
4.本发明在数据处理阶段,各block利用了块同步处理,保证了数据处理的完整性。
附图说明:
图1为本发明的系统流程图;
图2为本发明中thread处理目标数据与特征数据,生成shared数组的过程;
图3为本发明中以L为单位对shared数组处理生成块统计状态数组的过程。
具体实施方式:
下面结合附图对本发明进行进一步的详细介绍。
1.本发明的总体流程图见附图1所示:
(1)接收数据流及用户需查询统计的数据,并对其进行预处理,分别生成目标数据和特征数据;
(2)定义各状态变量。分为host端变量和device端变量。host端变量包括:目标数据数组,特征数据数组,存储块统计状态的数组。device端变量包括:目标数据数组,特征数据数组,块统计状态数组,目标数据数组用于存储接收到的有效数据,特征数据数组用于存放要统计的数据,块统计状态数组存放每个block的最终处理结果;
(3)数据传输。目标数据采用零拷贝内存形式实现从host端到device端的传输,将host端其他数据传输到device端,对device端数据初始化。其中零拷贝内存形式不占用额外内存大小,提高了传输效率;
(4)任务分配。每个thread完成单个字符的目标数据与特征数据之间的运算;
(5)设置并发速度。根据目标数据流的接收速度动态设置并发处理速度,使得处理速度大于或等于接收速度,具体指设置block和grid数目,并且block数除了要适应处理速度大于或等于接收速度外还要满足是L的倍数的要求。
(6)启动GPU并行处理,计算结果返回CPU端处理,得出最终统计结果。
2.数据预处理的方法是:
读取有效数据到数组,生成目标数据(数据存储类型可以是字符形式),每个子数据存储长度固定为L(L可根据文本数据的子数据长度特征决定)个字节,对于需要统计处理的特征数据存储形式与目标数据相同。数据存储长度L要大于或等于接收数据中子数据的最长字节,读取的子数据实际存储长度小于L时,系统自动补全,这样使得子数据存储长度都为L。
3.GPU并行处理的方法是:
(1)shared数组生成(参见附图2):
a)在device端,读取由host端传输过来的目标数据与特征数据,并以字符为单位对二者进行比较,相等则对应shared数组位置赋1,否则赋0,转向b);
b)块同步处理。用于保证每个block中的thread都完成a)中的任务,保持同步性,转向c);
c)得出每个block的shared数组,对其进行处理,转向d);
d)检查目标数据是否统计结束,是则得出最终的块统计状态数组;否则继续下一个任务块的处理,转向a),直至目标数据统计结束。
(2)处理shared数组,生成块统计状态数组:
对shared数组以长度L为单位做如下处理,如附图3所示:
a)将thread id对L取模,并判断结果是否为0,是则转向b),否则该线程空闲;
b)判断与thread对应的shared数组中的值是否为0,是则转向c),否则转向f);
c)将0赋给中间变量并停止这L个长度的shared数组的统计,转向d);
d)对块统计状态数组执行原子加操作,加上中间变量(中间变量初值为0),转向e);
e)判断目标数据是否统计结束,是则得出最后的块统计状态数组,否则继续下一个任务块的处理,转向a);
f)将shared数组的偏移量加1,当偏移量增值小于L时,转向b),否则g);
g)将1赋给中间变量并停止统计,转向d)。
(3)将(2)中得到的块统计状态数组传输回host端,对数组循环求和,得到最后的结果。
Claims (8)
1.一种面向大数据的数据频度并行处理方法,在CUDA环境下把要处理的数据进行任务块划分实现并行化,其特征在于包括以下步骤:
步骤1:接收数据,对数据预处理;
步骤2:定义各状态变量;
步骤3:将数据由CPU传输到GPU端;
步骤4:在GPU上划分任务,并根据任务分配情况动态设置并发速度;
步骤5:在CUDA环境下并行发射任务,在device端利用GPU的并行性特点处理数据,统计特征数据频度。
2.根据权利要求1所述的一种面向大数据的数据频度并行处理方法,其特征在于:所述的步骤1中的数据预处理是指读取接收数据流中的有效数据到数组,生成目标数据,数据存储类型可以是字符形式,每个子数据存储长度固定为L(L可根据接收数据的子数据长度特征决定)个字节,对于需要统计处理的特征数据存储形式与目标数据相同,即特征数据占L个字节。
3.根据权利要求1所述的一种面向大数据的数据频度并行处理方法,其特征在于:所述步骤2中的状态变量分为host端变量和device端变量;host端变量包括:目标数据数组,特征数据数组,存储块统计状态的数组;对应的device端变量包括:目标数据数组,特征数据数组,块统计状态数组。
4.根据权利要求1所述的一种面向大数据的数据频度并行处理方法,其特征在于:所述步骤3的数据由CPU传输到GPU端时,目标数据采用零拷贝内存形式实现从host端到device端的传输,host端其他数据传输到device端,对device端数据初始化,并行处理后得到的块统计状态结果传输回host端做最后的统计得出结果。
5.根据权利要求1所述的一种面向大数据的数据频度并行处理方法,其特征在于:所述的步骤4中的任务分配指具体分配每个thread的任务,动态设置并发速度;每个thread完成单个字符的目标数据与特征数据之间的运算。
6.根据权利要求5所述的一种面向大数据的数据频度并行处理方法,其特征在于:所述的每个thread执行的运算指的是比较运算,目标数据与特征数据比较,相等则为1,否则为0,以及对比较之后的结果进行处理。
7.根据权利要求5所述的一种面向大数据的数据频度并行处理方法,其特征在于:所述的动态设置并发速度是指根据目标数据流的接收速度动态设置并发处理速度,使得处理速度大于接收速度,具体指设置block和grid数目,并且block数除了要适应处理速度大于或者等于接收速度,保持一致性外还要满足是L的倍数的要求。
8.根据权利要求1所述的一种面向大数据的数据频度并行处理方法,其特征在于:所述的步骤5中的在device端利用GPU的并行性特点处理数据,其具体步骤如下:
步骤1:定义shared数组,用来记录每个thread计算结果;
步骤2:根据权利要求4所述执行任务,并根据运算结果设置步骤1中shared数组中的值;
步骤3:块同步处理,保证每个block中的thread都完成任务,然后再继续以下的任务,保持同步性;
步骤4:对每L个thread中的第一个thread执行以下任务:统计shared数组中的值,当对应数组L个长度中的值有0出现时就停止对这L个长度值的统计,继续下一个L长度数据的统计,统计的结果以原子加操作形式存到对应的块统计状态数组中,得到每个block的计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310488199.2A CN103577161A (zh) | 2013-10-17 | 2013-10-17 | 一种面向大数据的数据频度并行处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310488199.2A CN103577161A (zh) | 2013-10-17 | 2013-10-17 | 一种面向大数据的数据频度并行处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103577161A true CN103577161A (zh) | 2014-02-12 |
Family
ID=50049018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310488199.2A Pending CN103577161A (zh) | 2013-10-17 | 2013-10-17 | 一种面向大数据的数据频度并行处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577161A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102690A (zh) * | 2014-05-26 | 2014-10-15 | 北京宇航系统工程研究所 | 一种基于存储结构的遥测数据处理方法 |
CN104317751A (zh) * | 2014-11-18 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种gpu上数据流处理系统及其数据流处理方法 |
CN105117368A (zh) * | 2015-09-18 | 2015-12-02 | 浪潮(北京)电子信息产业有限公司 | 基于gpu的三维纵横波分离的弹性波方程的模拟方法及系统 |
CN105426163A (zh) * | 2015-10-27 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于mic协处理器的单数据流分位数处理方法 |
CN106649887A (zh) * | 2017-01-16 | 2017-05-10 | 湖南财政经济学院 | 大数据处理方法及大数据处理装置 |
CN109918133A (zh) * | 2019-01-24 | 2019-06-21 | 董栋挺 | 一种电力传输系统用多核心任务处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526934A (zh) * | 2009-04-21 | 2009-09-09 | 浪潮电子信息产业股份有限公司 | 一种gpu与cpu复合处理器的组建方法 |
CN101727653A (zh) * | 2008-10-31 | 2010-06-09 | 中国科学院过程工程研究所 | 一种基于图形处理器的多组分系统离散模拟计算方法 |
CN102073982A (zh) * | 2011-01-10 | 2011-05-25 | 西安电子科技大学 | 用gpu实现超大sar图像各向异性扩散滤波加速方法 |
CN102200906A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 大规模并发数据流处理系统及其处理方法 |
CN103049241A (zh) * | 2013-01-24 | 2013-04-17 | 重庆邮电大学 | 一种提高cpu+gpu异构装置计算性能的方法 |
-
2013
- 2013-10-17 CN CN201310488199.2A patent/CN103577161A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727653A (zh) * | 2008-10-31 | 2010-06-09 | 中国科学院过程工程研究所 | 一种基于图形处理器的多组分系统离散模拟计算方法 |
CN101526934A (zh) * | 2009-04-21 | 2009-09-09 | 浪潮电子信息产业股份有限公司 | 一种gpu与cpu复合处理器的组建方法 |
CN102073982A (zh) * | 2011-01-10 | 2011-05-25 | 西安电子科技大学 | 用gpu实现超大sar图像各向异性扩散滤波加速方法 |
CN102200906A (zh) * | 2011-05-25 | 2011-09-28 | 上海理工大学 | 大规模并发数据流处理系统及其处理方法 |
CN103049241A (zh) * | 2013-01-24 | 2013-04-17 | 重庆邮电大学 | 一种提高cpu+gpu异构装置计算性能的方法 |
Non-Patent Citations (2)
Title |
---|
MAYANK DAGA,ET AL.: "On the Efficacy of a Fused CPU+GPU Processor (or APU) for Parallel Computing", 《APPLICATION ACCELERATORS IN HIGH-PERFORMANCE COMPUTING (SAAHPC), 2011 SYMPOSIUM ON》, 21 July 2011 (2011-07-21), pages 141 - 149, XP031969028, DOI: doi:10.1109/SAAHPC.2011.29 * |
姚平: "CUDA平台上的CPU/GPU异步计算模式", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 January 2011 (2011-01-15) * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102690A (zh) * | 2014-05-26 | 2014-10-15 | 北京宇航系统工程研究所 | 一种基于存储结构的遥测数据处理方法 |
CN104102690B (zh) * | 2014-05-26 | 2017-04-19 | 北京宇航系统工程研究所 | 一种基于存储结构的遥测数据处理方法 |
CN104317751A (zh) * | 2014-11-18 | 2015-01-28 | 浪潮电子信息产业股份有限公司 | 一种gpu上数据流处理系统及其数据流处理方法 |
CN104317751B (zh) * | 2014-11-18 | 2017-03-01 | 郑州云海信息技术有限公司 | 一种gpu上数据流处理系统及其数据流处理方法 |
CN105117368A (zh) * | 2015-09-18 | 2015-12-02 | 浪潮(北京)电子信息产业有限公司 | 基于gpu的三维纵横波分离的弹性波方程的模拟方法及系统 |
CN105426163A (zh) * | 2015-10-27 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于mic协处理器的单数据流分位数处理方法 |
CN106649887A (zh) * | 2017-01-16 | 2017-05-10 | 湖南财政经济学院 | 大数据处理方法及大数据处理装置 |
CN109918133A (zh) * | 2019-01-24 | 2019-06-21 | 董栋挺 | 一种电力传输系统用多核心任务处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102443546B1 (ko) | 행렬 곱셈기 | |
CN103577161A (zh) | 一种面向大数据的数据频度并行处理方法 | |
CN104915322B (zh) | 一种卷积神经网络硬件加速方法 | |
Cheung et al. | A large-scale spiking neural network accelerator for FPGA systems | |
CN103049241B (zh) | 一种提高cpu+gpu异构装置计算性能的方法 | |
CN106156851B (zh) | 面向深度学习业务的加速装置及方法 | |
CN108537331A (zh) | 一种基于异步逻辑的可重构卷积神经网络加速电路 | |
CN105389277A (zh) | Gpdsp中面向科学计算的高性能dma部件 | |
CN105518625A (zh) | 具有高带宽存储器接口的计算硬件 | |
CN109947573A (zh) | 适用于电力系统边缘计算的智能加速芯片 | |
CN109934336A (zh) | 基于最优结构搜索的神经网络动态加速平台设计方法及神经网络动态加速平台 | |
CN104391748A (zh) | 一种mapreduce计算过程优化方法 | |
CN110147252A (zh) | 一种卷积神经网络的并行计算方法及装置 | |
CN104572505A (zh) | 一种保证海量数据缓存最终一致性的系统及方法 | |
CN103559017A (zh) | 基于gpu异构计算平台的字符串匹配方法及系统 | |
CN115150471B (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN109359729A (zh) | 一种在fpga上实现缓存数据的系统及方法 | |
CN106156142A (zh) | 一种文本聚类的处理方法、服务器及系统 | |
WO2020103883A1 (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN105955896B (zh) | 一种可重构dbf算法硬件加速器及控制方法 | |
CN105554069B (zh) | 一种大数据处理分布式缓存系统及其方法 | |
CN110324204A (zh) | 一种在fpga中实现的高速正则表达式匹配引擎及方法 | |
CN104299170B (zh) | 间歇性能源海量数据处理方法 | |
CN116431562B (zh) | 一种基于加速处理器的多头注意力机制融合计算分配方法 | |
CN109446478A (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140212 |