一种数据并行排序方法和系统技术方案

技术编号:9596553 阅读:88 留言:0更新日期:2014-01-23 02:05
本发明专利技术公开了一种数据并行排序方法和系统。该系统包括数据源、通过网络连接数据源的多个并行处理单元、以及通信接口。该方法包括将待排序的数据分成多个数据块,各并行处理单元分别获取数据块并进行采样;第一并行处理单元汇总各并行处理单元的采样数据并进行排序,根据并行处理单元的数量确定全局排序区间序列,将全局排序区间序列中各数据区间与各并行处理单元依次对应;各并行处理单元判断本单元获取的数据块中每个数据所属的数据区间并将该数据分发至对应的并行处理单元;各并行处理单元接收数据并进行局部排序;将各并行处理单元的局部排序结果顺序组合。本发明专利技术提高了大规模数据的排序速度,同时对数据量有较高的扩展性。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种数据并行排序方法和系统。该系统包括数据源、通过网络连接数据源的多个并行处理单元、以及通信接口。该方法包括将待排序的数据分成多个数据块,各并行处理单元分别获取数据块并进行采样;第一并行处理单元汇总各并行处理单元的采样数据并进行排序,根据并行处理单元的数量确定全局排序区间序列,将全局排序区间序列中各数据区间与各并行处理单元依次对应;各并行处理单元判断本单元获取的数据块中每个数据所属的数据区间并将该数据分发至对应的并行处理单元;各并行处理单元接收数据并进行局部排序;将各并行处理单元的局部排序结果顺序组合。本专利技术提高了大规模数据的排序速度,同时对数据量有较高的扩展性。【专利说明】一种数据并行排序方法和系统
本专利技术涉及一种数据处理方法和系统,具体涉及一种数据并行排序方法和系统。
技术介绍
大规模数据处理中进行数据的全局排序是一种常见操作,例如PageRank计算。传统的排序算法可以分成内排序和外排序两类。其中,内排序包括插入排序、快速排序等,需要将数据全部加载到内存中进行计算,在需要排序的数据为大规模数据的情况下,单机内存成为瓶颈。外排序主要是基于多路并归的排序算法,这种方式可以处理大规模数据,但速度较慢。目前在PageRank计算中,需要对最终的计算结果进行一个全局的排序,数据规模在上百GB,从计算规模来考虑,需要引入并行机制。但是,现有的并行排序方法在采样环节进行串行处理,因此速度和效率仍有待提高。消息传递接口(Message Passing Interface,简称为MPI)是一种应用于并行环境的消息传递标准,通过它可以使用多机并行工作,机器之间通过网络交互数据。因此,为了更好地满足PageRank计算中大规模数据排序的需求,克服现有的串行采样的并行排序方法的缺陷,通过MPI开发了排序算法。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的充分利用并行处理及消息传递接口实现快速排序的数据并行排序方法和系统。根据本专利技术的一个方面,提供了一种数据并行排序方法。本专利技术的数据并行排序方法包括:将待排序的数据分成多个数据块,各并行处理单元分别获取一数据块并对数据块进行采样;第一并行处理单元汇总各并行处理单元采样得到的数据并进行排序,根据并行处理单元的数量确定全局排序区间序列,将全局排序区间序列中的各个数据区间与各并行处理单元依次对应;各并行处理单元判断本单元初始获取的数据块中每个数据所属的数据区间并将该数据分发至对应的并行处理单元;各并行处理单元接收数据并对属于本单元对应的数据区间的数据进行局部排序;以及将各并行处理单元的局部排序结果顺序组合。根据本专利技术的另一方面,提供了一种数据并行排序系统。本专利技术的数据并行排序系统包括数据源、多个并行处理单元、以及将多个并行处理单元和数据源连接起来的网络、以及与多个并行处理单元相连的并行处理单元间通信接口。其中,数据源包括数据分块装置。各个并行处理单元包括缓存器以及与缓存器相连的采样装置、排序装置和归属区间查找装置。第一并行处理单元还包括与排序装置相连的分割装置、以及与分割装置和缓冲器相连的映射装置。其中:数据分块装置,适于将待排序的数据分成多个数据块;采样装置,适于对来自数据分块装置的数据块进行采样,并将采样数据通过并行处理单元间通信接口传递至第一并行处理单元供后续汇总排序使用;排序装置,适于对数据进行排序;分割装置,适于根据并行处理单元的数量由排序后的采样数据确定全局排序区间序列;映射装置,适于将全局排序区间序列中的各数据区间与各并行处理单元依次对应得到映射表,将映射表通过并行处理单元间通信接口传递至各个并行处理单元;以及归属区间查找装置,适于根据映射表判断本单元的数据块中每个数据所属的数据区间并进一步找到对应的并行处理单元,将各条数据通过并行处理单元间通信接口发送至对应的并行处理单元进行后续的局部排序。根据本专利技术的技术方案,通过消息传递接口实现数据并行排序,与现有的大规模数据排序方法相比,具有涉及环节少、简单高效的特点,在排序过程中待处理的数据和阶段性处理结果可以在多个并行处理单元之间传递,因此与现有的大规模数据并行排序方案相t匕,能够在排序的各个环节充分利用并行处理,不仅在归属区间查找阶段和局部排序阶段采取并行处理,而且在数据取样阶段也采取并行处理,还有可能在并行处理环节进一步并行,大大提高了大规模数据的排序速度,同时本专利技术的排序方案对数据量有更高的扩展性。另外,本专利技术由于在排序系统中采用消息传递接口,保证了并行处理单元间的负载平衡和最小的消息传递通信开销,排序过程能够全程在并行处理单元上进行,无需客户端参与,避免了占用客户端的工作负载和缓存空间,而且阶段性处理结果不需要传输到客户端,只需要在并行处理单元之间传输,传输距离短,传输速度快,不占用客户端侧的网络流量。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。【专利附图】【附图说明】通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是根据本专利技术一个实施例的数据并行排序方法的流程图;图2是根据本专利技术一个实施例的数据并行排序系统的组成结构示意图。【具体实施方式】下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出根据本专利技术一个实施例的并行排序方法。该方法基于包括数据源、通过网络连接数据源的多个并行处理单元、以及使多个并行处理单元能够互相交换数据的并行单元间通信接口例如MPI的系统,其中,并行处理单元的数量为两个以上。该方法始于步骤101,为了在多个并行处理单元上进行并行排序,在数据源将需要排序的数据分块。优选地,假设并行处理单元的个数为N,则把需要排序的数据均匀划分成N块,每块数据的数据量为原始数据量的1/N。将待排序的数据均匀分块可以保证并行处理单元之间的负载平衡。每个并行处理单元从数据源获得自己的数据块。然后,进入步骤102,每个并行处理单元对从数据源获得的数据块进行内部采样。采样的数据量越大越能体现出待排序数据的总体情况,由于本专利技术在数据采样阶段即采用并行处理方式,数据采样的速度和效率大大提高,所以在同样的采样速度的情况下可以从待排序的数据中采样更多数据,样本数据的量与原数据量之比提高,样本数据能够代替整体数据分布,进而使后续的局部排序过程中各个并行处理单元处理的数据量大致相等,即各个并行处理单元的工作量均衡。该方法进入步骤103,第一并行处理单元获取各个并行处理单元采样得到的数据,对各个并行处理单元采样得到的数据进行汇总排序。另外,本领域技术人员容易理解,第一并行处理单元对汇总的采样数据进行排序可以采用任本文档来自技高网
...

【技术保护点】
一种数据并行排序方法,包括:将待排序的数据分成多个数据块,各并行处理单元分别获取一数据块并进行采样;第一并行处理单元汇总各并行处理单元采样得到的数据并进行排序,根据并行处理单元的数量确定全局排序区间序列,将全局排序区间序列中各数据区间与各并行处理单元依次对应;各并行处理单元判断本单元获取的数据块中每个数据所属的数据区间并将该数据分发至对应的并行处理单元;各并行处理单元接收数据并对属于本单元对应的数据区间的数据进行局部排序;将各并行处理单元的局部排序结果顺序组合。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈建唐会军齐路
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1
相关领域技术
  • 暂无相关专利