CN106802787B - 基于GPU排序的MapReduce优化方法 - Google Patents

基于GPU排序的MapReduce优化方法 Download PDF

Info

Publication number
CN106802787B
CN106802787B CN201710026869.7A CN201710026869A CN106802787B CN 106802787 B CN106802787 B CN 106802787B CN 201710026869 A CN201710026869 A CN 201710026869A CN 106802787 B CN106802787 B CN 106802787B
Authority
CN
China
Prior art keywords
merger
value
data
cut
sequence
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
CN201710026869.7A
Other languages
English (en)
Other versions
CN106802787A (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.)
Tianze Information Industry Corp
Original Assignee
Tianze Information Industry Corp
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 Tianze Information Industry Corp filed Critical Tianze Information Industry Corp
Priority to CN201710026869.7A priority Critical patent/CN106802787B/zh
Publication of CN106802787A publication Critical patent/CN106802787A/zh
Application granted granted Critical
Publication of CN106802787B publication Critical patent/CN106802787B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提出了一种基于GPU排序的MapReduce优化方法,其中MapReduce包含Map阶段、Shuffle阶段、以及Reduce阶段,Map阶段包含Spill过程和Merge过程,Reduce阶段包含Merge过程,其中,在Map阶段的Spill过程中采用基于GPU的快速排序流程,在Map阶段的Merge过程中和Reduce阶段的Merge过程中采用基于GPU的归并排序流程。通过以基于GPU的快速排序和归并排序算法替代传统的基于CPU的快速排序、归并排序和堆排序算法,提高中间数据处理速度,进而提升MapReduce的性能。

Description

基于GPU排序的MapReduce优化方法
技术领域
本发明涉及MapReduce技术,尤其涉及一种MapReduce的优化处理方法。
背景技术
MapReduce是一种分布式编程框架,在云计算和大数据处理中应用非常广泛。MapReduce流程如图1所示,分为Map、Shuffle和Reduce三个阶段,Map和Reduce阶段分别执行用户编写的Map()和Reduce()程序,而Shuffle阶段介于Map阶段和Reduce阶段中间,用于对Map阶段产生的中间结果进行处理,为Reduce阶段准备数据。具体而言,Map阶段包括如下几个步骤:
数据读入(Read):从分布式文件系统中读入数据;
Map执行(Map):执行用户编写的Map()函数;
数据收集(Collect):将Map产生的结果存入缓冲区;
缓存溢写(Spill):当缓存中数据量超过阈值时,将缓存中的数据写入本地硬盘;
溢写合并(Merge):多次缓存溢写会产生多个溢写文件,需要将所有的溢写文件合并成一个输出文件。
Shuffle阶段的详细操作如下:
中间数据传输(Copy):将Map端的中间结果通过网络传输到Reduce端的缓冲区;
缓存溢写(Spill):Reduce端的缓冲区数据量超过阈值时,将缓冲区数据写入本地硬盘,每次写入形成一个shuffle文件;
Reduce阶段的具体流程如下:
Shuffle文件合并(Merge):在Reduce端将大量的shuffle文件合并形成少量的大文件,并将大文件合并形成一个有序的大文件;
Reduce执行(Reduce):执行用户编写的Reduce()函数;
数据输出(Output):将Reduce产生的结果输出到分布式文件系统。
从以上分析可以看出MapReduce框架对中间结果的处理非常复杂,需要花费大量的处理时间,尤其是其中包含的四次排序操作:①Map阶段的Spill过程中,每次溢写时需要将溢写文件进行排序,一般采用快速排序方法;②Map阶段的Merge过程中,溢写文件合并步骤采用归并排序的方法;③Reduce阶段的Merge过程中,采用归并排序方法将大量的shuffle文件合并成少量的大文件;④Reduce阶段的Merge过程中,采用堆排序方法将多个大文件合并成为一个有序的大文件。由于常用的基于CPU的排序算法的时间复杂度通常为O(N·logN),其中N为待排序数据个数或记录条数,当数据量很大时排序操作消耗的时间很长,而MapReduce通常用于大数据处理。
GPU因其强大的计算能力以及相对较低的性能价格比,通常用GPU替代CPU用以提高任务处理性能。使用GPU对MapReduce进行优化的方法主要有两类,一是与用户程序相关的优化方法,即对MapReduce框架进行扩展,使MapReduce程序执行过程中可以使用GPU设备替代CPU,提高程序执行效率;二是与用户程序无关的优化方法,即修改MapReduce框架或者组件,使MapReduce框架更好的发挥GPU性能,从而提高效率。用户程序相关的优化方法需要用户参与进行任务分配,需要用户对程序的处理流程和GPU的编程规范非常熟悉,并且不同的用户程序之间优化方法不可重用。而现有的基于GPU排序的MapReduce优化方法只针对第一次排序过程的优化,即将基于CPU的快速排序算法替换成基于GPU的快速排序算法或者基于GPU的双调排序算法,而对于其他三次排序操作并不关注,对MapReduce性能的提升有限。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于GPU排序的MapReduce优化方法,将MapReduce执行流程中的四次排序操作全部使用GPU执行,并分别使用基于GPU的快速排序和归并排序算法替代传统的基于CPU的快速排序、归并排序和堆排序算法,提高中间数据处理速度,进而提升MapReduce的性能。为实现本发明的目的,本发明的基于GPU排序的MapReduce优化方法中,MapReduce包含:Map阶段、Shuffle阶段、以及Reduce阶段,Map阶段包含Spill过程和Merge过程,Reduce阶段包含Merge过程,其中,在Map阶段的Spill过程中采用基于GPU的快速排序流程,在Map阶段的Merge过程中和Reduce阶段的Merge过程中采用基于GPU的归并排序流程,其中:
基于GPU的快速排序流程包含步骤:
(1.1)将数据存入GPU的全局存储空间,并划分成m个互不重叠的数据块,每个数据块由一个线程块处理;
(1.2)m个线程块并行地遍历对应的数据块,每个线程块内部n个线程并行地遍历相应数据块的一部分,并记录大于和小于分界值的元素的个数;
(1.3)依次统计每个线程块内部的每个线程的相对计数值;
(1.4)依次统计每个线程块的计数值和相对计数值;
(1.5)所有线程进行数据交换,序列分成大于分界值和小于分界值的两个子序列:子序列1,、子序列2;
(1.6)对步骤(1.5)中产生的子序列1、子序列2分别再采用步骤(1.1)-(1.5)进行排序,直到最终排序完成,即可实现对原始序列的排序,
基于GPU的归并排序流程包含步骤:
(2.1)将待归并的序列两两分组,分成h组,每组序列包含Ai和Bi两个序列,每次对一组序列Ai和Bi进行归并,其中1≤i≤h,Ai和Bi表示第i个分组包含的两个序列;
(2.2)分别将Ai和Bi划分成m个子序列,每个线程块对Ai的一个子序列和Bi的一个子序列进行归并,共需进行log2 m+1轮子序列的归并即可将序列Ai和Bi归并为一个有序序列Ci
(2.3)重复步骤(2.2),直到所有分组的序列Ai和Bi归并完成,分别产生每个分组的归并结果C1、C2、……、Ch;其中1≤i≤h,Ai和Bi表示第i个分组包含的两个序列,Ci为Ai和Bi归并完成后产生的有序序列;
(2.4)对h个分组的归并结果C1、C2、……、Ch,重复步骤(2.1)-(2.3)进行归并,直到产生最终归并结果。
进一步地,在步骤(1.3)中,线程块Bk(1≤k≤m)中的每个线程的计数值分别为Lk,1,...,Lk,n和Rk,1,...,Rk,n,则第i(1≤i≤n)个线程的相对计数值分别为:
其中Lk,1和Rk,1分别表示线程块Bk中第1个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,Lk,n和Rk,n分别表示线程块Bk中第n个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,Lk,j和Rk,j分别表示线程块Bk中第j个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,BLk,i和BRk,i分别表示线程块Bk中第i个线程的相对计数值,即该线程块中前i-1个线程遍历的数据中比分界值小的数据总量和比分界值大的数据总量。
进一步地,在步骤(1.4)中,线程块Bk(1≤k≤m)的计数值分别为线程块Bk的相对计数值分别为:
其中Lk、Lj和Rk、Rj分别表示线程块Bk和Bj遍历的数据块内小于分界值的数据总量和大于分界值的数据总量,SLk和SRk分别表示线程块Bk之前的k-1个线程块遍历的数据块中小于分界值的数据总量和大于分界值的数据总量。
进一步地,在步骤(1.5)中,每个线程块中每个线程将其遍历的小于分界值的数据依次交换到分界值左侧,大于分界值的数据依次交换到分界值右侧,然后每个线程块将对应位置的数据块写入辅助单元,加入分界值并根据分界值将序列分成比分界值小和比分界值大的两个子序列:子序列1和子序列2。
进一步地,在步骤(2.2)中,包含以下子步骤:
(2.21)对于Ai和Bi的第k轮归并(0≤k≤log2 m),产生m/2k个归并结果R1,R2,……,Rkr,并将每个归并结果Rp(1≤p≤kr)划分为2k个子序列Rp,1,Rp,2,……,Rp,km;其中kr(kr=m/2k)表示序列Ai和Bi的第k轮归并产生的归并结果数量,R1、R2和Rkr分别表示第1个、第2个以及第kr个归并结果,km(其中km=2k)表示序列Ai和Bi的第k轮归并产生的每个归并结果划分的子序列个数,Rp,1、Rp,2和Rp,km分别表示第p(1≤p≤kr)个归并结果划分后的第1个、第2个和第km个子序列;
(2.22)对于Ai和Bi的第k+1轮归并(0≤k<log2 m),将第k轮产生的m/2k个归并结果依次两两分组(R1,R2),...,(Rkr-1,Rkr),每一组归并结果(Ri-1,Ri)(1≤i≤m/2k)相同位置的子序列由同一线程块进行归并,即子序列Ri-1,1和Ri,1、Ri-1,2和Ri,2、...、Ri-1,km和Ri,km分别由一个线程块进行归并,本轮参与归并操作的线程块数量为m;
(2.23)重复子步骤(2.21)-(2.22),直到序列Ai和Bi归并完成,输出该分组的归并结果Ci
在本发明中,通过在Map阶段的Spill过程中将基于CPU的快速排序替换为基于GPU的快速排序;在Map阶段的Merge过程中将基于CPU的归并排序替换为基于GPU的归并排序;在Reduce阶段的Merge过程中,将基于CPU的归并排序和堆排序均替换为基于GPU的归并排序。由GPU实现的归并排序的性能比堆排序的性能更优,且Merge过程中的堆排序本质上是将有序的大文件合并为一个大文件。因此本发明的基于GPU排序的MapReduce优化方法充分利用了GPU设备强大的计算能力替代CPU完成MapReduce对中间结果的排序,将MapReduce中四次基于CPU的排序操作(包括一次快速排序、两次归并排序和一次堆排序)替换为基于GPU的快速排序和归并排序操作,加快排序的速度,进而很大程度地提高了MapReduce的性能。
相比传统的入侵检测系统中网络日志采集和存储方法,本发明具有如下优点:
①用基于GPU的排序算法替代基于CPU的排序算法,充分利用GPU的强大计算能力,提高中间数据处理速度,进而提升MapReduce性能;
②不需要对MapReduce框架进行修改,只替换对中间结果的排序算法,实现难度较小;
③可以与其他基于用户程序的优化方法以及基于MapReduce框架的优化方法同时使用,适用范围广泛;
④由于GPU设备的应用越来越多,很多服务器和个人计算机均已配置GPU设备,因此本发明可以充分发挥现有GPU设备的计算能力,即便新购买GPU设备的硬件成本也不高。
附图说明
下面结合附图对本发明作进一步描写和阐述。
图1是现有技术中MapReduce的流程图。
图2是本发明首选实施方式的优化方法中基于GPU的快速排序流程。
图3是本发明首选实施方式的优化方法中基于GPU的归并排序流程的一个流程示例。
具体实施方式
如现有技术中所述,MapReduce包含:Map阶段、Shuffle阶段、以及Reduce阶段,Map阶段包含Spill过程和Merge过程,Reduce阶段包含Merge过程。
本发明的基于GPU排序的MapReduce优化方法中,采用GPU快速排序替代Map阶段的Spill过程中基于CPU的快速排序;采用基于GPU的归并排序替代Map阶段的Merge过程中基于CPU的归并排序;采用基于GPU的归并排序替代Reduce阶段的Merge过程中基于CPU的归并排序。
基于GPU的快速排序流程包含:
(1.1)将数据存入GPU的全局存储空间,并划分成m个互不重叠的数据块,每个数据块由一个线程块处理;如图2中a序列划分和b线程遍历所示;
(1.2)m个线程块并行地遍历对应的数据块,每个线程块内部n个线程并行地遍历相应数据块的一部分,并记录大于和小于分界值的元素的个数;如图2中c遍历计数所示;
(1.3)依次统计每个线程块内部的每个线程的相对计数值;在图2中d计数累加中进行;其中线程块Bk(1≤k≤m)中的每个线程的计数值分别为Lk,1,...,Lk,n和Rk,1,...,Rk,n,则第i(1≤i≤n)个线程的相对计数值分别为:
其中Lk,1和Rk,1分别表示线程块Bk中第1个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,Lk,n和Rk,n分别表示线程块Bk中第n个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,Lk,j和Rk,j分别表示线程块Bk中第j个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,BLk,i和BRk,i分别表示线程块Bk中第i个线程的相对计数值,即该线程块中前i-1个线程遍历的数据中比分界值小的数据总量和比分界值大的数据总量。
(1.4)依次统计每个线程块的计数值和相对计数值;在图2中d计数累加中进行;线程块Bk(1≤k≤m)的计数值分别为线程块Bk的相对计数值分别为:
其中Lk、Lj和Rk、Rj分别表示线程块Bk和Bj遍历的数据块内小于分界值的数据总量和大于分界值的数据总量,SLk和SRk分别表示线程块Bk之前的k-1个线程块遍历的数据块中小于分界值的数据总量和大于分界值的数据总量。
(1.5)所有线程进行数据交换,序列分成大于分界值和小于分界值的两个子序列:子序列1,、子序列2;如图2中所示e数据交换、f数据回写、g划分子序列,其中e数据交换后进行f数据回写,数据回写完毕形成两子序列,即g划分子序列;更具体一点,首先每个线程块中每个线程将其遍历的小于分界值的数据依次交换到分界值左侧,大于分界值的数据依次交换到分界值右侧,如第k个线程块的第i个线程中小于分界值的数据从序列的SLk+BLk,i位置依次存放至SLk+BLk,i+Lk,i位置,然后每个线程块将对应位置的数据块写入辅助单元,加入分界值并根据分界值将序列分成比分界值小和比分界值大的两个子序列:子序列1和子序列2。
(1.6)对步骤(1.5)中产生的子序列1、子序列2分别再采用步骤(1.1)-(1.5)进行排序,直到最终排序完成,即可实现对原始序列的排序。
为了提高GPU的利用率,基于GPU的归并排序方法的具体操作步骤如下:
(2.1)将待归并的序列两两分组,分成h组,每组序列包含Ai和Bi两个序列,每次对一组序列Ai和Bi进行归并,其中1≤i≤h,Ai和Bi表示第i个分组包含的两个序列;
(2.2)分别将Ai和Bi划分成m个子序列,每个线程块对Ai的一个子序列和Bi的一个子序列进行归并,共需进行log2 m+1轮子序列的归并即可将序列Ai和Bi归并为一个有序序列Ci;更具体地,步骤(2.2)细化为下面子步骤:
(2.21)对于Ai和Bi的第k轮归并(0≤k≤log2 m),产生m/2k个归并结果R1,R2,……,Rkr,并将每个归并结果Rp(1≤p≤kr)划分为2k个子序列Rp,1,Rp,2,……,Rp,km;其中kr(kr=m/2k)表示序列Ai和Bi的第k轮归并产生的归并结果数量,R1、R2和Rkr分别表示第1个、第2个以及第kr个归并结果,km(其中km=2k)表示序列Ai和Bi的第k轮归并产生的每个归并结果划分的子序列个数,Rp,1、Rp,2和Rp,km分别表示第p(1≤p≤kr)个归并结果划分后的第1个、第2个和第km个子序列;
(2.22)对于Ai和Bi的第k+1轮归并(0≤k<log2m),将第k轮产生的m/2k个归并结果依次两两分组(R1,R2),...,(Rkr-1,Rkr),每一组归并结果(Ri-1,Ri)(1≤i≤m/2k)相同位置的子序列由同一线程块进行归并,即子序列Ri-1,1和Ri,1、Ri-1,2和Ri,2、...、Ri-1,km和Ri,km分别由一个线程块进行归并,本轮参与归并操作的线程块数量为m;
(2.23)重复子步骤(2.21)-(2.22),直到序列Ai和Bi归并完成,输出该分组的归并结果Ci
(2.3)重复步骤(2.2),直到所有分组的序列Ai和Bi归并完成,分别产生每个分组的归并结果C1、C2、……、Ch;其中1≤i≤h,Ai和Bi表示第i个分组包含的两个序列,Ci为Ai和Bi归并完成后产生的有序序列;
(2.4)对h个分组的归并结果C1、C2、……、Ch,重复步骤(2.1)-(2.3)进行归并,直到产生最终归并结果。
图3所示为子序列A1和B1划分为4个子序列,采用4个线程块进行归并排序的流程示例,其中G1、G2、G3、……、Gn表示用以进行子序列归并的第1、2、3...n个线程块,每个线程块在每一轮归并中处理的子序列不同,Ri,j(1≤i≤n,1≤j≤n)表示每轮归并过程中产生的第i个归并结果的第j个子序列。
上述具体实施方式仅仅对本发明的优选实施方式进行描述,而并非对本发明的保护范围进行限定。在不脱离本发明设计构思和精神范畴的前提下,本领域的普通技术人员根据本发明所提供的文字描述、附图对本发明的技术方案所作出的各种变形、替代和改进,均应属于本发明的保护范畴。本发明的保护范围由权利要求确定。

Claims (3)

1.一种基于GPU排序的MapReduce优化方法,其中:MapReduce包含:Map阶段、Shuffle阶段、以及Reduce阶段,所述Map阶段包含Spill过程和Merge过程,所述Reduce阶段包含Merge过程,其特征在于,在所述Map阶段的Spill过程中采用基于GPU的快速排序流程,在所述Map阶段的Merge过程中和Reduce阶段的Merge过程中采用基于GPU的归并排序流程,其中:
所述基于GPU的快速排序流程包含步骤:
(1.1)将数据存入GPU的全局存储空间,并划分成m个互不重叠的数据块,每个数据块由一个线程块处理,共有m个线程块;
(1.2)所述m个线程块并行地遍历对应的数据块,每个线程块内部n个线程并行地遍历相应数据块的一部分,并记录大于和小于分界值的元素的个数;
(1.3)依次统计每个线程块内部的每个线程的相对计数值;
(1.4)依次统计每个线程块的计数值和相对计数值;
(1.5)所有线程进行数据交换,序列分成大于分界值和小于分界值的两个子序列:子序列1、子序列2;
(1.6)对步骤(1.5)中产生的所述子序列1、所述子序列2分别再采用步骤(1.1)-(1.5)进行排序,直到最终排序完成,即可实现对原始序列的排序,
所述基于GPU的归并排序流程包含步骤:
(2.1)将待归并的序列两两分组,分成h组,每组序列包含Ai和Bi两个序列,每次对一组序列Ai和Bi进行归并,其中1≤i≤h,Ai和Bi表示第i个分组包含的两个序列;
(2.2)分别将Ai和Bi划分成m个子序列,每个线程块对Ai的一个子序列和Bi的一个子序列进行归并,共需进行log2 m+1轮子序列的归并即可将序列Ai和Bi归并为一个有序序列Ci
(2.3)重复步骤(2.2),直到所有分组的序列Ai和Bi归并完成,分别产生每个分组的归并结果C1、C2、……、Ch;其中1≤i≤h,Ai和Bi表示第i个分组包含的两个序列,Ci为Ai和Bi归并完成后产生的有序序列;
(2.4)对h个分组的归并结果C1、C2、……、Ch,重复步骤(2.1)-(2.3)进行归并,直到产生最终归并结果,
在步骤(1.3)中,线程块Bk中的每个线程的计数值分别为Lk,1,...,Lk,n和Rk,1,...,Rk,n,则第i个线程的相对计数值分别为:
其中Lk,1和Rk,1分别表示线程块Bk中第1个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,Lk,n和Rk,n分别表示线程块Bk中第n个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,Lk,j和Rk,j分别表示线程块Bk中第j个线程遍历的数据中比分界值小的数据个数和比分界值大的数据个数,BLk,i和BRk,i分别表示线程块Bk中第i个线程的相对计数值,即该线程块中前i-1个线程遍历的数据中比分界值小的数据总量和比分界值大的数据总量,
在步骤(1.4)中,线程块Bk的计数值分别为线程块Bk的相对计数值分别为:
其中Lk、Lj和Rk、Rj分别表示线程块Bk和Bj遍历的数据块内小于分界值的数据总量和大于分界值的数据总量,SLk和SRk分别表示线程块Bk之前的k-1个线程块遍历的数据块中小于分界值的数据总量和大于分界值的数据总量,
在以上公式中,1≤k≤m、1≤i≤n。
2.如权利要求1所述的基于GPU排序的MapReduce优化方法,其特征在于,基于GPU的快速排序流程的步骤(1.5)中,每个线程块中每个线程将其遍历的小于分界值的数据依次交换到分界值左侧,大于分界值的数据依次交换到分界值右侧,然后每个线程块将对应位置的数据块写入辅助单元,加入分界值并根据分界值将序列分成比分界值小和比分界值大的两个子序列:子序列1和子序列2。
3.如权利要求1所述的基于GPU排序的MapReduce优化方法,其特征在于,步骤(2.2)中,包含以下子步骤:
(2.21)对于Ai和Bi的第k轮归并,其中0≤k≤log2 m,产生m/2k个归并结果R1,R2,……,Rkr,并将每个归并结果Rp划分为2k个子序列Rp,1,Rp,2,……,Rp,km,1≤p≤kr;其中kr表示序列Ai和Bi的第k轮归并产生的归并结果数量,kr=m/2k,R1、R2和Rkr分别表示第1个、第2个以及第kr个归并结果,km表示序列Ai和Bi的第k轮归并产生的每个归并结果划分的子序列个数,km=2k,Rp,1、Rp,2和Rp,km分别表示第p个归并结果划分后的第1个、第2个和第km个子序列,1≤p≤kr;
(2.22)对于Ai和Bi的第k+1轮归并,其中0≤k<log2 m,将第k轮产生的m/2k个归并结果依次两两分组(R1,R2),...,(Rkr-1,Rkr),每一组归并结果(Ri-1,Ri)相同位置的子序列由同一线程块进行归并,即子序列Ri-1,1和Ri,1、Ri-1,2和Ri,2、...、Ri-1,km和Ri,km分别由一个线程块进行归并,其中1≤i≤m/2k,本轮参与归并操作的线程块数量为m;
(2.23)重复子步骤(2.21)-(2.22),直到序列Ai和Bi归并完成,输出该分组的归并结果Ci
CN201710026869.7A 2017-01-15 2017-01-15 基于GPU排序的MapReduce优化方法 Expired - Fee Related CN106802787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710026869.7A CN106802787B (zh) 2017-01-15 2017-01-15 基于GPU排序的MapReduce优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710026869.7A CN106802787B (zh) 2017-01-15 2017-01-15 基于GPU排序的MapReduce优化方法

Publications (2)

Publication Number Publication Date
CN106802787A CN106802787A (zh) 2017-06-06
CN106802787B true CN106802787B (zh) 2019-08-02

Family

ID=58984446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710026869.7A Expired - Fee Related CN106802787B (zh) 2017-01-15 2017-01-15 基于GPU排序的MapReduce优化方法

Country Status (1)

Country Link
CN (1) CN106802787B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102839A (zh) * 2017-04-13 2017-08-29 青岛蓝云信息技术有限公司 一种基于硬件排序MapReduce的数据处理方法
CN107315632A (zh) * 2017-06-27 2017-11-03 郑州云海信息技术有限公司 一种双调合并排序方法及系统
CN111767023A (zh) * 2019-07-17 2020-10-13 北京京东尚科信息技术有限公司 数据排序方法和数据排序系统
CN111813370B (zh) * 2020-07-08 2023-10-31 上海雪湖科技有限公司 基于fpga的多路并行归并排序系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021169A (zh) * 2014-05-30 2014-09-03 江苏大学 一种基于SDD-1算法的Hive连接查询方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101569093B1 (ko) * 2013-08-13 2015-11-13 삼성에스디에스 주식회사 분산 시스템에서 데이터를 처리하는 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021169A (zh) * 2014-05-30 2014-09-03 江苏大学 一种基于SDD-1算法的Hive连接查询方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GPU加速MapReduce集群的设计与实现;辛淼;《中国优秀硕士学位论文全文数据库(电子期刊)》;20140228;第8-9,27-30页

Also Published As

Publication number Publication date
CN106802787A (zh) 2017-06-06

Similar Documents

Publication Publication Date Title
CN106802787B (zh) 基于GPU排序的MapReduce优化方法
CN106294684A (zh) 词向量的文本分类方法及终端设备
CN108376143B (zh) 一种新型的olap预计算系统及生成预计算结果的方法
CN104361113B (zh) 一种内存‑闪存混合存储模式下的olap查询优化方法
CN107340993A (zh) 一种支持较少位数浮点数的神经网络运算的装置和方法
JP2017517082A (ja) 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ
CN107102839A (zh) 一种基于硬件排序MapReduce的数据处理方法
CN103914483B (zh) 文件存储方法、装置及文件读取方法、装置
CN103440246A (zh) 用于MapReduce的中间结果数据排序方法及系统
US20160085832A1 (en) System and method of analyzing data using bitmap techniques
CN105359142B (zh) 哈希连接方法和装置
CN106778079A (zh) 一种基于MapReduce的DNA序列k‑mer频次统计方法
US20200026746A1 (en) Matrix and Vector Multiplication Operation Method and Apparatus
CN110188878A (zh) 神经网络搜索方法及装置
CN106294745A (zh) 大数据清洗方法及装置
CN110187965A (zh) 神经网络的运行优化及数据处理方法、设备及存储介质
CN103309984A (zh) 数据处理的方法和装置
CN105808582A (zh) 基于分层策略的决策树并行生成方法和装置
CN115186802A (zh) 基于卷积神经网络的块稀疏方法、装置及处理单元
Chambi et al. Optimizing druid with roaring bitmaps
CN110264392B (zh) 一种基于多gpu的强连通图检测方法
CN104462080B (zh) 针对检索结果进行分组统计的索引结构创建方法和系统
CN111126619B (zh) 一种机器学习方法与装置
CN109800867B (zh) 一种基于fpga片外存储器的数据调用方法
CN108920097B (zh) 一种基于交织存储的三维数据处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20170606

Assignee: JIANGSU SEA LEVEL DATA TECHNOLOGY Co.,Ltd.

Assignor: TIANZE INFORMATION INDUSTRY Corp.

Contract record no.: X2020320000015

Denomination of invention: GPU (graphics processing unit) sorting-based MapReduce optimizing method

Granted publication date: 20190802

License type: Exclusive License

Record date: 20200518

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: 20190802

Termination date: 20220115