CN108920533B - 一种向量化的整体同步并行计算方法及系统 - Google Patents
一种向量化的整体同步并行计算方法及系统 Download PDFInfo
- Publication number
- CN108920533B CN108920533B CN201810587466.4A CN201810587466A CN108920533B CN 108920533 B CN108920533 B CN 108920533B CN 201810587466 A CN201810587466 A CN 201810587466A CN 108920533 B CN108920533 B CN 108920533B
- Authority
- CN
- China
- Prior art keywords
- data line
- parallel computing
- line group
- group
- line groups
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种向量化的整体同步并行计算方法,包括:初始化步骤,设定并行计算计划,并根据初始数据的初始特征将该初始数据向量化为多个输入数据行组;并行计算步骤,通过多个计算节点对本轮的输入数据行组进行并行计算,以获取多个中间数据行组;向量化步骤,提取该中间数据行组的特征,根据该特征将所有该中间数据行组重排序并向量化为本轮的多个输出数据行组;循环步骤,以该输出数据行组为下轮的输入数据行组以进行下轮并行计算,直到完成该并行计算计划。
Description
技术领域
本发明属于大数据处理领域,特别涉及一种向量化的整体同步并行计算方法。
背景技术
Shuffle是整体同步并行计算(BSP,Bulk synchronous parallel)模型中数据传输(Communication)和同步栅栏(Barrier synchronization)的统称,它代表了节点间多到多的数据传输过程。图1是BSP模型计算过程示意图。如图1所示,BSP模型包括:一个阶段内多个节点的并行计算(local computation)和分属相邻阶段的多节点间停等的数据传递过程。
MapReduce框架遵循BSP模型,映射(Map)阶段和归纳(Reduce)阶段均表示BSP的local computation,Shuffle介于Map阶段和Reduce阶段之间,图2是MapReduce框架流程图,如图2所示,当Map的输出结果要被Reduce使用时,结果的所有记录需要按照键(key)进行划分(partition),并且分发到每一个下轮计算的节点(Reducer)上去,这个过程就是Shuffle。由于Shuffle涉及到了数据的压缩、磁盘的读写和网络的传输,因此Shuffle性能的高低直接影响到了整个程序的运行效率。
向量执行(Vectorized Execution)是最早在分析型数据库MonetDB中提出的,是用于提升分析类(analytical)查询执行性能的执行引擎优化技术。
为了执行一条SQL查询,执行引擎会按照其语义将执行逻辑组织成一棵算子树,图3A是传统执行引擎的算子树处理记录示意图,图3B是向量化执行引擎的算子树处理记录示意图,传统执行引擎的算子树每次处理一条记录最终产生结果,如图3A所示;而VectorizedExecution将迭代粒度从行(record)变成了行组(recordbatch),如图3B所示;图4是RecordBatch内部数据结构示意图,如图4所示,在Record Batch内逻辑数据行Record逐列组织在一起,并逐列处理。
通过将迭代粒度变为每次处理一批行,一批行内按列组织、逐列处理,VectorizedExecution被证明可以有效提升分析类查询的执行效率。其优势具体在于:减少解释执行开销:从每次处理一行变为每次处理一批行(N行),函数调用数目减少为原来的1/N;更好的数据局部性和代码局部性,因而可以更好地利用到CPU Cache;为编译器和CPU提供了进一步自动优化的可能性。
对于基于BSP模型的大数据查询分析系统(BSP-based SQL system),比如基于MapReduce的SQL分析系统(SQL-on-MapReduce),Vectorized Execution同样可以带来性能的提升,然而为了在BSP-based system中实现Vectorized Execution,其首要挑战就是Shuffle的实现。具体即是:shuffle是以record为粒度的数据交换、而VectorizedExecution粒度为recordbatch,如何高效地实现数据shuffle且维持在所有阶段(Map或Reduce)中Vectorized Execution。
针对BSP-based SQL system做Vectorized Execution的当前技术方案为:拆RecordBatch为行。Apache Hive在其0.13.0版本中实现了Vectorized execution,然而并没有解决执行粒度(recordbatch)与shuffle粒度(record)不匹配的问题,因而在shuffle时将batch还原成了行,而在后续的Reduce阶段中,进行的是行式的执行。这样就存在以下缺点:1)Vectorized Execution只存在与Map阶段,未能充分利用Vectorized Execution优势;2)行式shuffle效率不高。
发明内容
针对上述问题,本发明提出一种向量化的整体同步并行计算方法,包括:初始化步骤,设定并行计算计划,并根据初始数据的初始特征将该初始数据划分为多个输入数据行组;并行计算步骤,通过多个计算节点对本轮的输入数据行组进行并行计算,以获取多个中间数据行组;向量化步骤,提取该中间数据行组的特征,根据该特征将所有该中间数据行组重排序并向量化为本轮的多个输出数据行组;循环步骤,以该输出数据行组为下轮的输入数据行组以进行下轮并行计算,直到完成并行计算计划。
本发明所述的整体同步并行计算方法,其中所述向量化步骤具体包括:根据该中间数据行组的特征于每个该计算结点内设置多个缓冲区,将该中间数据行组根据该特征复制到对应的该缓冲区,当该缓冲区满时,序列化该缓冲区以获得该输出数据行组。
本发明所述的整体同步并行计算方法,其中所述向量化步骤具体包括:于每个该计算节点设置一个缓冲区,根据该中间数据行组的特征,将该中间数据行组序列化为多个过渡数据行组并依次追加至该缓冲区,当该缓冲区满时,将具有相同该特征的过渡数据行组进行合并,以获得该输出数据行组。其中,将该过渡数据行组划分为元数据和实际数据,当该缓冲区满时,将具有相同该特征的过渡数据行组的元数据进行合并,并建立合并后的元数据与该实际数据的对应关系,以获得该输出数据行组。
本发明所述的整体同步并行计算方法,其中所述并行计算计划包括执行并行计算的轮数。
本发明还涉及一种整体同步并行计算系统包括:初始化模块,用于设定并行计算计划,并根据初始数据的初始特征将该初始数据向量化为多个输入数据行组;并行计算模块,用于进行并行计算;其中通过多个计算节点对本轮的输入数据行组进行并行计算,以获取多个中间数据行组;向量化模块,用于对获取的该中间数据行组进行向量化;其中提取该中间数据行组的特征,根据该特征将所有该中间数据行组重排序并向量化为本轮的多个输出数据行组;循环模块,用于将获取的该输出数据行组为下轮的输入数据行组,以进行下轮并行计算,直到完成并行计算计划。
本发明所述的整体同步并行计算系统,其中所述向量化模块包括:每个该计算结点内根据该中间数据行组的特征设置的多个缓冲区,用于根据该特征将该中间数据行组复制到对应的该缓冲区,当该缓冲区满时,序列化该缓冲区以获得该数据行组。
本发明所述的整体同步并行计算系统,其中所述向量化模块具体包括:设置于每个该计算节点内的一个缓冲区,用于根据该中间数据行组的特征,将该中间数据行组序列化为多个过渡数据行组并依次追加至该缓冲区,当该缓冲区满时,将具有相同该特征的过渡数据行组进行合并,以获得该输出数据行组。
本发明所述的整体同步并行计算系统,其中所述向量化模块还包括:过渡数据行组合并模块,用于将该过渡数据行组合并该输出数据行组;其中将该过渡数据行组划分为元数据和实际数据,当该独立缓冲区满时,将具有相同该特征的过渡数据行组的元数据进行合并,并建立合并后的元数据与该实际数据的对应关系,以获得该输出数据行组。
本发明所述的整体同步并行计算系统,其中所述并行计算计划包括执行并行计算的轮数。
附图说明
图1是BSP模型计算过程示意图。
图2是MapReduce框架流程图。
图3A是传统执行引擎的算子树处理记录示意图。
图3B是向量化执行引擎的算子树处理记录示意图。
图4是Record Batch内部数据结构示意图。
图5是本发明实施例的一种整体同步并行计算方法流程图。
图6是本发明实施例的一种整体同步并行计算方法的划分数据行组示意图。
图7是本发明实施例的的一种整体同步并行计算方法的序列化后的tiny batch结构示意图。
图8是本发明具体实施例的一种整体同步并行计算方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明提出的一种整体同步并行计算方法及系统进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明。
在BSP模型中,为了使能向量化执行技术,使shuffle前后的执行逻辑均可以向量化,提出以record batch为粒度进行数据shuffle,因此可以保证shuffle前后的执行逻辑可以不感知shuffle存在。
图5是本发明实施例的一种整体同步并行计算方法流程图。如图5所示,于本发明的实施例,包括如下步骤:
步骤S1,指定并行计算计划,以设定此并行计算所需要执行的轮数,并对需要进行处理的初始数据进行初始化,即根据初始数据的初始特征将该初始数据划分为多个数据行组作为MapReduce框架的输入数据行组;
步骤S2,将输入数据行组分配给多个MapReduce框架的计算节点,进行并行计算,以获取多个数据行组;
步骤S3,判断本轮并行计算获取的数据行是否满足目标要求,如果满足则退出并行计算,否则进入下轮并行计算;
步骤S4,提取不受S2获取的数据行的特征,根据该特征将所有该数据行划分为多个数据行组;
步骤S5,以步骤S4获取的数据行组为下轮的输入数据行组发送给多个MapReduce框架的计算节点,以进行下轮并行计算,直到完成并行计算计划。
图6是本发明实施例的一种整体同步并行计算方法的划分数据行组示意图。如图6所示,划分数据行组的过程即为向量化的过程,目的是将每个输入record batch按照shuffle输出partition划分,并将划分后的partitioned record batch进行缓存;按照shuffle的输出并行度——partition数目和可用内存大小,将向量化shuffle技术分为两种实现方法:
1)基于partition粒度的独立缓存机制(Individual Buffer-based VectorizedShuffle——IBV),为每个output partition开辟一块缓冲区,将input record batch中属于该partition的行复制到对应缓冲区,当缓冲区满时,进行缓冲区序列化;即根据该数据行的特征在每个计算结点内设置多个缓冲区,将并行计算获得数据行复制到对应的缓冲区,当缓冲区满时,序列化缓冲区以获得向量化的数据行组。
2)全局共享缓存机制(Shared Buffer-based Vectorized Shuffle——SBV),开辟一块大的缓冲区,将每个input record batch中各个partition的行进行分别序列化为序列化小批记录(tiny record batch),并依次追加到共享缓冲区中,当共享缓冲区满时,合并相同partition的序列化后的行组为较大粒度;即在每个计算节点设置一个缓冲区,根据数据行的特征,将数据行序列化为多个中间数据行组并依次追加至该缓冲区,当该缓冲区满时,将具有相同该特征的中间数据行组进行合并,以获得该数据行组。
其中多个序列化小批记录(tiny record batch)的合并技术包括:将序列化的record batch分为元数据(metadata)和实际数据(data)两部分,合并多个同属一个partition的metadata,连接data,达到高效合并序列化数据的目的。
以上两种向量化shuffle技术根据Partition数目的多少分别采用,其中当Partition数目较少时采用1)方式的基于partition粒度的独立缓存机制;当Partition数目较多时采用2)方式的全局共享缓存机制,而序列化后tiny record batch的合并机制则是为了减少计算的开销。
如图6中的路径(a)所示,逐partition独立缓存(IBV)具体流程包括:对于需要shuffle的record batch,计算出其中各行的partition num,形成一个partition index数组;按照partition号重排partition index数组,形成sorted partition index,相同partition的行在一起;每个partition开辟一块固定大小的缓冲区,将record batch中的各行按照sorted partition index拷贝到对应的缓冲区;缓冲区满时,将缓冲区一次性进行序列化、压缩,写入缓冲区对应文件。
图6中的路径(b)所示,共享缓存(SBV)的具体流程包括:对于需要shuffle的record batch,计算出其中各行的partition num,形成一个partition index数组;按照partition号重排partition index数组,形成sorted partition index,相同partition的行在一起;按照sorted partition index将partition相同的行序列化成一个个tinyrecord batch,追加到共享的缓冲区;共享缓冲区满时,将属于同一partition的多个tinyrecord batch聚合成一个,压缩并写入文件。
图7是本发明实施例的一种整体同步并行计算方法的序列化后的tiny batch结构示意图。如图7所示,序列化后的tiny batch合并算法包括:#Row表示record batch中的行数,#Col表示record batch中的列数,#Col1 null表示record batch第一列的null值个数,Col1 null position表示第一列null值所在行行号,Col1 data size表示序列化后Col1的大小,Col1 data和Col2 data表示实际数据,其中#Row、#Col、#Col1 null、Col1 nullposition及Col1 data size均为元数据(metadata)。在多个tiny record batch进行合并时,元数据需要读出、重新计算,而实际数据可以直接进行拷贝。通过这样的方式,可以最小化合并序列化record batch时的计算开销。
由于每个tiny record batch中的元数据部分大小基本稳定,而数据部分的大小与tiny record batch中的实际记录(record)数成正比,因此对于相同一批行,以tinyrecord batch组织时,每个tiny record batch的平均行数越少,则tiny record batch个数越多,从而元数据总量更大,导致相同一份数据需要更多空间进行表达,浪费了宝贵的网络带宽,因此我们需要对于多个较小的tiny record batch合并到一个最小压缩、传输粒度N。
传输record batch最小粒度为N,三个被合并的tiny record batch大小为N1、N2、N3(N1+N2<N<N1+N2+N3),合并具体流程为:
1、Row#为N1+N2+N3
2、Col#不变
3、Col null#为batch1、batch2、batch3的Col null#的和
4、第一个batch的各列null position不变,第二batch的各列null position为原始值+N1,第三batch各列的null position为原始值+N1+N2
5、Col1 data size为batch1 Col1 data size+batch2 Col1 data size+batch3Col data size
6、Col1实际数据为顺序拷贝batch1 Col1 data,batch2 Col1 data和batch3Col1 data
7、重复5-6两步,直至完成所有Col合并。
图8是本发明具体实施例的一种整体同步并行计算方法的流程图。如图8所示,以统计某公司10年以下,10-20年,20年以上员工工资总和为例详细说明本发明的整体同步并行计算方法:
步骤S11,获取该公司人员工资情况(初始数据),如表1所示;
姓名 | 工作年限 | 工资 | 部门 |
AA | 8 | 1000 | X |
EE | 4 | 900 | Y |
DD | 13 | 2100 | Y |
CC | 15 | 2000 | X |
BB | 21 | 3000 | X |
FF | 25 | 3100 | Y |
表1:公司人员工资情况
步骤S12,将表1划分为两个数据行组,以作为某个计算节点的input,如表2和表3所示:
姓名 | 工作年限 | 工资 | 部门 |
AA | 8 | 1000 | X |
BB | 21 | 3000 | X |
CC | 15 | 2000 | X |
表2:X部门人员工资情况
姓名 | 工作年限 | 工资 | 部门 |
DD | 13 | 2100 | Y |
EE | 4 | 900 | Y |
FF | 25 | 3100 | Y |
表3:Y部门人员工资情况
步骤S13,由于要按照10年以下,10-20年以及20年以上进行重排,因此创建三个缓冲区,其中第一缓冲区对应工作年限10年以内人员工资情况,第二缓冲区对应工作年限10-20年人员工资情况,第三缓冲区对应工作年限20年以上人员工资情况,如表4、表5和表6所示:
姓名 | 工作年限 | 工资 | 部门 |
表4:第一缓冲区
姓名 | 工作年限 | 工资 | 部门 |
表5:第二缓冲区
姓名 | 工作年限 | 工资 | 部门 |
表6:第三缓冲区
步骤S14,将两个input行组中包含的数据按照重排依据放入对应缓冲区后,形成三个输出数据行组,其中第一输出数据行组对应工作年限10年以内人员工资情况,第二输出数据行组对应工作年限10-20年人员工资情况,第三输出数据行组对应工作年限20年以上人员工资情况,如表7、表8和表9所示:
姓名 | 工作年限 | 工资 | 部门 |
AA | 8 | 1000 | X |
EE | 4 | 900 | Y |
表7:第一输出数据行组
姓名 | 工作年限 | 工资 | 部门 |
CC | 15 | 2000 | X |
DD | 13 | 2100 | Y |
表8:第二输出数据行组
姓名 | 工作年限 | 工资 | 部门 |
BB | 21 | 3000 | X |
FF | 25 | 3100 | Y |
表9:第三输出数据行组
步骤S15,第二个循环步骤中,计算出最终结果:10年以下工资总额1900,10-20年工资总额4100,20年以上6100。
本发明提出的向量化shuffle,解决了在BSP-based系统中实现VectorizedExecution时执行粒度(Record Batch)与shuffle语义(Record粒度)不一致的问题,通过根据partition数目大小采取不同的聚集方式,实现了高效的基于record batch的shuffle,同时相较于行式shuffle,vectorized shuffle具有数据总量小、速度快的优势。
虽然本发明已以实施例公开如上,而并非用以限定本发明,任何本技术领域的技术人员,在未脱离本发明的精神与范围内,可对其进行等效修改或变更,均应包含于本发明的权利要求书保护范围中。
Claims (6)
1.一种向量化的整体同步并行计算方法,其特征在于,包括:
初始化步骤,设定并行计算计划,并根据初始数据的初始特征将该初始数据向量化为多个输入数据行组;
并行计算步骤,通过多个计算节点对本轮的输入数据行组进行并行计算,以获取多个中间数据行组;
向量化步骤,提取该中间数据行组的特征;根据该特征于每个计算节点内设置多个缓冲区,将该中间数据行组根据该特征复制到对应的缓冲区,当该缓冲区满时,序列化该缓冲区以获得输出数据行组;或者于每个计算节点设置一个缓冲区,根据该特征,将该中间数据行组序列化为多个过渡数据行组并依次追加至该缓冲区,当该缓冲区满时,将具有相同特征的过渡数据行组进行合并,以获得输出数据行组;
循环步骤,以该输出数据行组为下轮的输入数据行组以进行下轮并行计算,直到完成该并行计算计划。
2.如权利要求1所述的整体同步并行计算方法,其特征在于,当于每个该计算节点设置一个缓冲区时,将该过渡数据行组划分为元数据和实际数据,当该缓冲区满时,将具有相同该特征的过渡数据行组的元数据进行合并,并建立合并后的元数据与该实际数据的对应关系,以获得该输出数据行组。
3.如权利要求1所述的整体同步并行计算方法,其特征在于,所述并行计算计划包括执行并行计算的轮数。
4.一种向量化的整体同步并行计算系统,其特征在于,包括:
初始化模块,用于设定并行计算计划,并根据初始数据的初始特征将该初始数据向量化为多个输入数据行组;
并行计算模块,用于进行并行计算;其中通过多个计算节点对本轮的输入数据行组进行并行计算,以获取多个中间数据行组;
向量化模块,用于对获取的该中间数据行组提取特征并进行向量化;具体包括:第一向量化模块,根据该特征于每个计算节点内设置多个缓冲区,将该中间数据行组根据特征复制到对应的缓冲区,当该缓冲区满时,序列化该缓冲区以获得输出数据行组;第二向量化模块,于每个计算节点设置一个缓冲区,根据该特征,将该中间数据行组序列化为多个过渡数据行组并依次追加至该缓冲区,当该缓冲区满时,将具有相同特征的过渡数据行组进行合并,以获得该输出数据行组;
循环模块,用于将获取的该输出数据行组为下轮的输入数据行组,以进行下轮并行计算,直到完成并行计算计划。
5.如权利要求4所述的整体同步并行计算系统,其特征在于,所述第二向量化模块包括:
过渡数据行组合并模块,用于将该过渡数据行组合并该输出数据行组;其中将该过渡数据行组划分为元数据和实际数据,当该缓冲区满时,将具有相同该特征的过渡数据行组的元数据进行合并,并建立合并后的元数据与该实际数据的对应关系,以获得该输出数据行组。
6.如权利要求4所述的整体同步并行计算系统,其特征在于,所述并行计算计划包括执行并行计算的轮数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810587466.4A CN108920533B (zh) | 2018-06-08 | 2018-06-08 | 一种向量化的整体同步并行计算方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810587466.4A CN108920533B (zh) | 2018-06-08 | 2018-06-08 | 一种向量化的整体同步并行计算方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920533A CN108920533A (zh) | 2018-11-30 |
CN108920533B true CN108920533B (zh) | 2021-03-09 |
Family
ID=64419052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810587466.4A Active CN108920533B (zh) | 2018-06-08 | 2018-06-08 | 一种向量化的整体同步并行计算方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920533B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559205A (zh) * | 2013-10-09 | 2014-02-05 | 山东省计算中心 | 基于MapReduce的并行特征选择方法 |
CN105843933A (zh) * | 2016-03-30 | 2016-08-10 | 电子科技大学 | 分布式内存列式数据库的索引建立方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424274B2 (en) * | 2013-06-03 | 2016-08-23 | Zettaset, Inc. | Management of intermediate data spills during the shuffle phase of a map-reduce job |
-
2018
- 2018-06-08 CN CN201810587466.4A patent/CN108920533B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559205A (zh) * | 2013-10-09 | 2014-02-05 | 山东省计算中心 | 基于MapReduce的并行特征选择方法 |
CN105843933A (zh) * | 2016-03-30 | 2016-08-10 | 电子科技大学 | 分布式内存列式数据库的索引建立方法 |
Non-Patent Citations (2)
Title |
---|
Hadoop 平台中的MapReduce 模型及优化;杨朝辉等;《计算机应用技术 信息技术与信息化》;20171231;第82-85页 * |
Improving the Shuffle of Hadoop MapReduce;Jingui Li.etl;《2013 IEEE International Conference on Cloud Computing Technology and Science》;20131231;第266-273页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108920533A (zh) | 2018-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nykiel et al. | MRShare: sharing across multiple queries in MapReduce | |
EP2743845B1 (en) | Graph traversal operator inside a column store | |
Yuan et al. | Spark-GPU: An accelerated in-memory data processing engine on clusters | |
JP3266351B2 (ja) | データベース管理システムおよび問合せの処理方法 | |
US7779008B2 (en) | Parallel partition-wise aggregation | |
CN110134714B (zh) | 适用于大数据迭代计算的分布式计算框架缓存索引方法 | |
EP2585950B1 (en) | Apparatus and method for data stream processing using massively parallel processors | |
US11068504B2 (en) | Relational database storage system and method for supporting fast query processing with low data redundancy, and method for query processing based on the relational database storage method | |
US20170083286A1 (en) | Parallel merge sorting | |
US11544260B2 (en) | Transaction processing method and system, and server | |
JP4511469B2 (ja) | 情報処理方法及び情報処理システム | |
CN108334532B (zh) | 一种基于Spark的Eclat并行化方法、系统及装置 | |
Mohamed et al. | Hash semi cascade join for joining multi-way map reduce | |
CN108920533B (zh) | 一种向量化的整体同步并行计算方法及系统 | |
US8832157B1 (en) | System, method, and computer-readable medium that facilitates efficient processing of distinct counts on several columns in a parallel processing system | |
Nassar et al. | Chi squared feature selection over Apache Spark | |
WO2020121359A1 (ja) | データベース・クエリ効率化のためのシステム、方法、および、プログラム | |
Nguyen et al. | GPU-accelerated VoltDB: A case for indexed nested loop join | |
CN109002467B (zh) | 一种基于向量化执行的数据库排序方法及系统 | |
CN112163030A (zh) | 多表批量操作方法、系统及计算机设备 | |
Guo et al. | In-memory join algorithms on gpus for large-data | |
CN107807952B (zh) | 一种基于Spark的Apriori并行化方法、系统及装置 | |
Gao et al. | Exploiting sharing join opportunities in big data multiquery optimization with Flink | |
JP7138313B1 (ja) | コンピュテーショナル・ストレージの処理効率化の方法およびプログラム | |
US20130061023A1 (en) | Combining data values through associative operations |
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 |