并行排序装置、方法及程序的制作方法

文档序号:6456832阅读:177来源:国知局
专利名称:并行排序装置、方法及程序的制作方法
技术领域
本发明涉及用于执行排序数据的并行处理的并行排序装置、方法以及程序。
背景技术
在专利文献1和2中公开了执行排序数据的并行处理的方法的示例。
图1是用于描述在专利文献1中公开的并行排序方法的图。图2是示出在专利文献1中公开的并行排序装置的构造的框图。下面参考这些图描述在专利文献1中公开的并行排序技术。
如图2中所示,要被排序的输入数据81被输入至并行排序装置。通过数据输入处理装置92执行对于输入数据81的输入处理,然后将数据存储在主存储区95中。当线程启动处理装置93启动线程池94中的线程(未示出)时,线程递归地重复读取和处理来自于主存储区95的数据的处理并且然后写回数据。当通过线程池94通过递归处理完成排序时,数据输出处理装置97从主存储区95读取数据并且然后输出数据作为输出数据85。
参考图1,示出由16个值组成的输入数据81。线程选择用于输入数据81的键(key) 82。在这里,键82="10"。然后,线程将输入数据81分类为小于键82的值的数据集合83和大于或者等于键82的值的数据集合84,然后将数据存储在主存储区95中。结果,如(b)中所示地重新排列如(a)中所示排列的输入数据81。当为每个数据集合递归地重复选择键和分类数据的处理时,最终如(d)中所示地完成排序。
图3是用于描述在专利文献2中公开的并行排序方法的图。在专
利文献2中公开的并行排序技术中,将如(a)中所示地给出的要被排序的输入数据101划分为如(b)中所示的对应于多个处理器的多个部分。在这里,假定是被称为处理器0至3的四个处理器。
处理器0至3中的每一个排序被指派的部分中的数据。结果,(b)中所示的数据102被重新排列成(c)中所示的数据103。然后,多个处理器0至3合并已经完成排序的各个部分中的数据集合。在这里,与处理器0相对应的部分和与处理器1相对应的部分合并,而与处理器2相对应的部分和与处理器3相对应的部分合并。结果,(c)中所示的数据103被重新排列成(d)中所示的数据104。当递归地重复排序和合并的该处理时,最终如(e)中所示地完成排序。
专利文献1:日本专利特开No.2005-18158 (第7页到12页,图1)专利文献2:日本专利特开No.3415914 (第4页到5页,图l)

发明内容
本发明要解决的问题
然而,在专利文献1中公开的并行排序方法中,为要对其执行分类处理的每个数据集合指派处理器。因此,当数据集合的数目不是大的数字时不能获得并行处理的效果。根据通过递归处理的重复进行的分类处理,数据集合的数目增加并因此并行处理的效果逐渐地显现。然而,在开始时,数据集合的数目小于处理器的数目并因此过多的处理器处于等待状态。例如,在图1中,仅由一个处理器执行将输入数据81分类成数据83和数据84的处理。因此,其它的处理都在等待。
此外,在专利文献2中公开的并行排序方法中,为了加速的目的,在主存储区中进行处理,将合并的数据存储在另一区域中。然而,进
8说 行了大量次数的合并处理。专利文献2中的段落0070描述了使用竞赛(tournament)方法作为合并处理的示例。然而,在竞赛方法中,合并被重复许多次。因此,合并处理的次数增加。因此,在其存储器系统具有慢的操作速度的计算机系统中,要求访问存储器的合并处理阻止了排序的加速。
本发明的示例性目的是为了提供具有高速排序处理的并行排序装置。
解决问题的措施
为了实现上述示例性目的,根据本发明的示例性方面的并行排序装置是
并行排序装置,该并行排序装置用于通过并行处理排序由多个数
据组成的输入数据,包括
基准值计算部件,该基准值计算部件基于输入数据计算用作用于根据输入数据的值的大小分配输入数据的区间的边界的多个基准值;
输入数据聚集部件,该输入数据聚集部件将输入数据划分为多个输入数据区域,并且通过并行处理计算映射信息,所述映射信息用于将所划分的输入数据区域中的每一个中的数据分配到具有在由基准值计算部件计算的基准值上的边界的多个区间;
数据分配部件,该数据分配部件根据由输入数据聚集部件计算的映射信息通过并行处理将输入数据区域中的每一个中的数据分配到多个区间;以及
区间排序部件,该区间排序部件通过并行处理分别排序由数据分配部件分配的多个区间中的数据。
根据本发明,通过并行处理将其中输入数据已经被划分的多个输入数据区域中的数据分配到多个区间。然后,通过并行处理分别排序多个区间中的数据。因此,通过并行处理执行要求长时间的处理,并因此能够加速整个排序处理。此外,映射信息可以是下述信息,当包含在多个输入数据区域中 的数据要被分配到多个区间时,该信息用于确定与其中要累积被分配 到多个区间的数据的区间相对应的输出数据区域,并且
输入数据聚集部件可以为输入数据区域中的每一个计数包含在区 间中的每一个中的数据的数目,并且为每个输入数据区域聚集计数的 结果以便于计算映射信息从而多个输出数据区域中的每一个具有下述 尺寸,该尺寸允许被分配到区间的数据被累积,而没有数据的相互重 叠。
根据此,能够彼此独立地执行在各输入数据区域中分配数据的处 理。因此,能够并行地执行用于多个输入数据区域的处理。
此外,输入数据区域的数目可以等于用于执行并行处理的多个处 理器的数目或者处理器数巨的整数倍。
根据此,能够将与每个输入数据区域相对应的处理指派给每个处 理器而不是无用的。因此,能够有效地使用处理器。
此外,输入数据聚集部件可以将输入数据划分为已经被使得相等 的输入数据区域。
根据此,能够使并行处理的负荷相等,并因此提高并行处理的效率。
此外,基于被分配给多个区间中的每一个的数据的数目,区间排 序部件可以将区间指派给处理器从而使得用于执行并行处理的多个处 理器的负荷相等。
根据此,提高了处理器的利用效率从而增强通过并行处理的加速
10的效果。
此外,基于基准值划分的区间的数目可以等于用于执行并行处理 的处理器的数目或者处理器数目的整数倍。
根据此,能够容易地减少在用于对各区间执行并行处理的处理器 之间的变化引起的处理时间中的差异。因此,能够提高处理器的利用 效率。
此外,基准值计算部件可以基于对输入数据的统计处理计算基准 值,从而使得要被分配给多个区间的数据的数目相等。
根据此,提高了并行处理中的处理器的利用效率。
发明的效果
根据本发明,通过并行处理执行要求长时间的处理。因此,能够 加速排序处理。


图1是用于描述在专利文献1中公开的并行排序方法的图。
图2是示出在专利文献1中公开的并行排序装置的构造的框图。
图3是用于描述在专利文献2中公开的并行排序方法的图。
图4是示出根据第一示例性实施例的并行排序装置的构造的框图。
图5是用于描述根据第一示例性实施例的并行排序装置和它的各 部件的操作的示意图。
图6是示出根据第一示例性实施例的并行排序装置的操作的流程图。
图7是示出根据第二示例性实施例的并行排序装置和它的各部件 的操作的示意图。图8是用于描述第一示例中的并行排序装置的操作的示意图。 图9是示出在步骤A4中的详细操作的流程图。
图IO是用于描述步骤A4中的详细操作的示意图。
图11是示出由并行排序程序执行的处理的流程图。
附图标记的描述 1基准值计算部件
2输入数据聚集部件 3数据分配部件 4区间排序部件 5, 35输入数据
5- 1至5-M、 35-1至35-4输入数据区域
6- l至6-(L-l)、 36-1至36-7基准值
7- 1至7-L、 37-1至37-8区间
8- l-l至8隱M-L、 38-1-1至38-4-8映射信息 9、 39输出数据
9- l至9-L、 39-1至39-8输出数据区域
50- 1-1至50-4-8数据的数目
51- j区间的总数目
52-j累积的数目 71多处理器系统 72并行排序程序 A1至A6、 A4-l至A4-4步骤
具体实施例方式
将会参考附图详细地描述用于实施本发明的示例性实施例。
(第一示例性实施例)
图4是示出根据第一示例性实施例的并行排序装置的构造的框 图。图5是用于描述根据第一示例性实施例的并行排序装置和它的各
12部件的操作的示意图。如图4中所示,并行排序装置包括基准值计算 部件1、输入数据聚集部件2、数据分配部件3以及区间排序部件4。
然后,这些部件顺序地执行处理以排序数据。如图5中所示,到并行 排序装置的输入是输入数据5。并行排序装置排序输入数据5,并且然 后输出排序的结果作为输出数据9。
基准值计算部件1从输入数据5中选择L-l个基准值6-1至
6- (L-l)。这些值6-1至6-(L-l)用作用于根据值的大小分配输入数据5 的各数据的边界。然后,基准值计算部件l根据次序关系(值的大小) 排列L-l个基准值6-1至6-(L-l)以便于构造L个区间7-1至7-L。
输入数据聚集部件2将输入数据5划分成M个输入数据区域5-1 至5-M。这时,为了提高并行处理的效率的目的,优选的是使输入数 据区域5-1至5-M的大小相等。然后,输入数据聚集部件2计算用于 将在每个划分的输入数据区域5-1至5-M中的数据分配给由基准值计 算部件1构造的区间7-1至7-L的映射信息8-1-1至8-M墨L。
在此映射信息8-1-1至8-M-L的计算中,输入数据聚集部件2通 过并行处理执行与各区间7-1至7-L相对应的处理。可以通过将多个处 理器指派给各区间7-1至7-L并且然后并行地执行分配处理来执行该并 行处理。或者,可以定义多个线程,然后可以虚拟地执行并行处理。
此外,通过事先计算映射信息8-1-1至8-M-L,能够为各输入数据 区域5-1至5-M独立地执行分配。因此,能够执行用于各区域5-1至 5-M的分配的并行处理。
根据由输入数据聚集部件2计算的映射信息8-1-1至8-M-L,数据 分配部件3将输入数据区域5-1至5-M中的数据分配给与区间7-1至
7- L相对应的输出数据区域9-l至9-L。那时,数据分配部件3对各输 入数据区域5-1至5-M执行并行处理。在并行处理中,可以将多个处理器指派给各输入数据区域5-1至5-M,然后并行地执行分配处理。或 者,可以定义多个线程,然后可以虚拟地执行并行处理。
区间排序部件4分别排序由数据分配部件3分配的输出数据区域 9-l至9-L中的数据。那时,区间排序部件4对各输出数据区域9-l至 9-L执行并行处理。在并行处理中,可以将多个处理器指派给各输出数 据区域9-l至9-L,然后可以并行地执行分配处理。或者,可以定义多 个线程,然后可以虚拟执行并行处理。当完成通过区间排序部件4的 排序时,获得了排序后的输出数据9。
图6是示出根据第一示例性实施例的并行排序装置的操作的流程 图。参考图6,首先,使用输入数据5中的数据集合,基准值计算部件 1计算L-1个基准值6-1至6-(L-1)(步骤A1)。然后,基准值计算部 件1根据次序关系排列基准值6-1至6-(L-l)以便于计算具有在基准值 6-1至6-(L-l)上的边界的区间7-1至7-L (步骤A2)。
此外,输入数据聚集部件2将输入数据5划分成M个连续的输入 数据区域5-1至5-M (步骤A3)。
此外,对于输入数据区域5-1至5-M中的每一个,输入数据聚集 部件2检査区域中的整个数据的值,然后计算用于将数据分配给与区 间7-1至7-L相对应的区域的映射信息8-1-1至8-M-L (步骤A4)。
然后,对于输入数据区域5-1至5-M中的每一个,数据分配部件 3检查区域中的全体数据的值,然后基于映射信息8-1-1至8-M-L将各 数据写入输出数据区域9-1至9-L (步骤A5)。结果,仅从区间7-1 至7-L中的相对应的一个中的值的数据构造输出数据区域9-1至9-L中 的每一个。
最后,区间排序部件4排序输出数据区域9-1至9-L中的每一个中的数据(步骤A6)。结果,获得了其整体已经被排序的输出数据9。 如上所述,根据示例性实施例,通过并行处理将通过划分输入数
据5构造的M个输入数据区域5-1至5-M中的数据分配给与L个区间 7-1至7-L相对应的区域。然后,通过并行处理排序L个区间7-1至7-L 中的数据。因此,通过并行处理执行要求长时间的处理,并因此能够 加速整个排序处理。
这里,在示例性实施例中,没有通过并行处理来执行在步骤Al 的计算基准值的处理、在步骤A2的计算区间的处理、以及在步骤A3 的划分输入数据5的处理。但是,当L和M被设置为合适的值时,能 够将步骤Al至A3的处理时间相对于整个排序处理的处理时间的比率 抑制为很小。例如,当L和M是充分地小于输入数据5的数据的数目 时,步骤Al至A3的处理时间是可以少到被忽略的程度。
此外,在示例性实施例中,仅在步骤A5执行了复制全体输入数据 5的处理一次。因此,能够将存储器系统的操作速度的影响抑制为很小。
(第二示例性实施例) 在第一示例性实施例中,还没有对是通过多个处理器执行并行处 理还是虚拟实现并行处理进行明确的限制。相反地,第二示例性实施 例示出通过多处理器执行的并行处理。
在第二示例性实施例中,由采用多个处理器的多处理器系统构造 并行排序装置。多处理器系统执行用于执行排序数据的并行处理的程 序。在第二示例性实施例中,由多处理器系统构造根据第一示例性实 施例的并行处理装置。因此,基本功能没有不同,并因此主要描述不 同于第一示例性实施例的部件。
根据第二示例性实施例的并行排序装置具有与图4中所示的根据
15第一示例性实施例的并行排序装置相类似的构造。图7是用于描述根 据第二示例性实施例的并行排序装置和它的各部件的操作的示意图。 在这里,假定多处理器系统71具有在数目上大于或者等于P的处理器。
如图7中所示,在根据第二示例性实施例的并行排序装置中,多
处理器系统71读取并且执行并行排序程序72。结果,多处理器系统 71如第一示例性实施例中描述的并行排序装置的基准值计算部件1、 输入数据聚集部件2、数据分配部件3、以及区间排序部件4一样进行 操作。
那时,在多处理器系统71中,通过P个处理器的并行操作执行图 6中所示的步骤A4至A6的操作中的并行处理。
根据示例性实施例,由多个处理器通过并行处理执行要求长时间 的步骤A4至A6的处理。因此,能够加速整个排序处理。
(第一示例)
给出根据上述第一或者第二示例性实施例的并行排序装置的详细 示例作为第一示例。
图8是用于描述第一示例中的并行排序装置的操作的示意图。如 图8中所示,假定将16个数值作为输入数据35给到并行排序装置。 此外,在本示例中假定M二4并且I^8。
参考图8中的流程图,首先,在步骤A1,基准值计算部件l计算 L-l=7个基准值36-1至36-7。然后,在步骤A2,基准值计算部件1通 过使用基准值36-1至36-7生成8个区间37-1至37-8。此外,在步骤 A3,输入数据聚集部件2将输入数据35划分为M=4个输入数据区域 35-1至35-4。
16然后,在步骤A4,对于输入数据区域35-1至35-4中的每一个, 输入数据聚集部件2计算用于将数据分配给与区间37-1至37-8相对应 的区域的映射信息38-1-1至38-4-8。
在本示例中,还描述了步骤A4中的详细操作。图9是示出步骤 A4中的详细操作的流程图。图IO是用于描述步骤A4中的详细操作的 示意图。
参考图9,首先,对于每个输入数据区域和每个区间,输入数据 聚集部件2对包含在输入数据区域35-1至35-4中的每一个和包含在区 间37-1至37-8中的每一个中的数据的数目计数。然后,输入数据聚集 部件2以矩阵形式存储结果作为数据的数目的值50-1-1至50-4-8。
然后,对于每个具有从l至8的值的所有j,输入数据聚集部件2 计算数据的总数的值50-l-j至50-4-j,然后存储结果作为区间的总数的 值51-j (步骤A4-2)。区间的总数的值51-j表示输入数据35中的16 个数值当中被包括在区间37-j中的数值(数据)的数目。
此外,对于每个具有从1到8的值的所有j,输入数据聚集部件2 计算从区间的总数的值51-1到区间的总数的值51-(j-l)的总和,并且然 后存储结果作为累积的数目的值52-j (步骤A4-3)。累积的数目的值 52-j表示输入数据35中的16个数值当中每个具有比包含在区间37-j 中的最小数值小的值的数值的总数。在图6中所示的步骤A5,数据分 配部件3通过并行处理将输入数据35-1至35-4分配给与区间37-1至 37-8相对应的输出数据区域39-1至39-8。这时,输出数据区域39-j的 起始位置被定位在第{(累积的数目的值52-j)+"l,。个位置上。例如, 区间37-3是用于"大于或者等于5并且小于10"的值。因此,"大 于或者等于5并且小于10"的值要被分配到的输出数据区域39-3在输 出数据39中的第五((累积的数目52-3) +"1" = "5")个位置开始, 并且在第九((累积的数目52-4) ="9")个位置结束。当通过此过程确定输出数据区域39-1至39-8并且然后分配数据时,能够分配数据
使得各区间中的数据没有彼此重叠。结果,能够彼此独立地执行分配 各输入数据区域中的数据的处理。因此,能够并行地执行用于多个输 入数据区域的处理。
参考图9,然后,对于每个具有从l到8的值的所有j和每个具有 从1至4的值的所有i,输入数据聚集部件2将从数据的数目的值50-1-j 到数据的数目的值50-(i-l)-j的总和添加至累积的数目的值52-j,并且 然后存储结果作为映射信息38-i-j (步骤A4-4)。
这里,这时,当数据的数目的值50-i-j是"0"时,这表示包含在 输入数据区域35-i中的数据没有被包含在区间37-j中。因此,没有什 么需要被存储作为映射信息38-i-j。
映射信息38-i-j的意义如下。在步骤A5,在包含在输入数据区域 35-1至35-4中的每一个中的数据当中,需要在没有重叠的情况下将包 含在区间37-j中的数据分配给输出数据区域39-j。这时,当将包含在 输入数据区域35-i中的数据复制到在第((映射信息38-i-j) +"1" }个 位置开始的区域时,即使在通过并行处理执行复制各输入数据区域 35_1至35_4中的数据的处理的情况下,也能够在没有重叠的情况下将 数据分配给输出数据区域39-1至39-8。
例如,参考图10,映射信息38-1-3是"4",映射信息38-2-3是 "5",映射信息38-3-3是"7",并且映射信息38-4-3是"8"。因此, 足以将包含在输入数据区域35-1中的"大于或者等于5并且小于10" 的数据分配给在输出数据39的区域中的第五个区域开始的区域。此外, 足以将包含在输入数据区域35-2中的"大于或者等于5并且小于10" 的数据分配给在输出数据39的区域中的第六个区域开始的区域。此外, 足以将包含在输入数据区域35-3中的"大于或者等于5并且小于10" 的数据分配给在输出数据39的区域中的第八个区域开始的区域。此外,足以将包含在输入数据区域35-4中的"大于或者等于5并且小于10"
的数据分配给在输出数据39的区域中的第九个区域开始的区域。
参考图6,在步骤A4的处理之后,在步骤A5,对于每个输入数 据区域35-i中的每个数据,数据分配部件3计算其中数据要被包含的 区间37-j,并且然后将数据顺序地存储在输出数据39的区域中的第 {(映射信息38-i-j) + "1" }个位置开始的区域。
最后,在步骤A6,区间排序部件4排序输出数据区域39-l至39-8 中的每一个中的数据。结果,完成了整个输出数据39的排序从而获得 了排序结果。在由区间排序部件4执行的对于输出数据区域39-1至39-8 中的每一个的排序处理可以通过采用诸如通用单处理器的快速排序的 排序处理来进行。
(第二示例)
给出根据第二示例性实施例的并行排序装置的详细示例作为第二 示例。在第二示例中,如图7中所示,多处理器系统71执行并行排序 程序72。假定多处理器系统71具有在数目上大于或者等于P的处理器。
图11是示出通过并行排序程序执行的处理的流程图。在图11中, 其特征在于如图9的详细流程图中所示的处理一样实施图6的流程图 中的步骤A4的处理。其特征还在于步骤A4至A6的处理是通过P个 处理器执行的并行处理。
参考图11,通过P个处理器并行地执行在步骤A4生成映射信息 的聚集处理从而实现加速。
在步骤A4-l,与各输入数据区域5-l至5-M相对应的各处理被指 派给多个处理器。在步骤A4-2和A4-4,与各区间7-1至7-L相对应的
各处理被指派给多个处理器。
19例如,在图10中所示的示例中,在处理器的数目是4, M=4,并 且I^8的情况下,在步骤A4-1,能够通过四个处理器同时执行对于各 输入数据区域35-1至35-4的计数处理。此外,在步骤A4-2,能够通 过四个处理器为各区间7-1至7-8同时独立地执行聚集数据的数目的值 50"-l至50-4-8的处理。此外,在步骤A4-4,能够通过四个处理器为 各区间7-1至7-8同时独立地执行计算映射信息38-1-1至38-4-8的处 理。
此外,返回图11,通过P个处理器并行地执行在步骤A5的数据 分配处理从而实现加速。
例如,在图8中所示的示例中,在处理器的数目是4、 M=4、并且 L=8的情况下,各输入数据区域35-1至35-4的数据能够被同时分配给 四个处理器。
此外,在图11中,通过P个处理器并行地执行在步骤A6的排序 处理从而实现加速。
例如,在图8中所示的示例中,在处理器的数目是4、 M=4、并且 L=8的情况下,四个处理器能够同时为各输出数据区域39-1至39-8执 行数据排序。
这里,在图11中,在示例中,因为当适当地选择L和M的值时, 步骤Al、 A2、 A3以及A4-3的处理对整个排序处理时间的影响能够被 抑制为很小,所以其没有被作为并行处理的目标来对待。然而,也可 以通过多个处理器通过并行处理来执行这些处理。
例如,在步骤A1和A2,能够由多个处理器通过并行处理执行对 于各基准值的处理。此外,在步骤A3,能够由多个处理器通过并行处理执行对于各区域的处理。此外,由于在步骤A4-3的处理的内容是算 术总计运算,因此可以采用通过并行处理器的已知的算术总计运算技 术。
此外,在上述的每个示例性实施例和每个示例中,可以任意地选
择M的值。然而,为了通过并行处理的加速的效果被增强,优选的是, M的值被设置为大于或者等于处理器的数目的值。例如,当M被设置 为等于处理器的数目或者它的整数倍时,能够将与各输入数据区域5-1 至5-M相对应的处理指派给各处理器而不是无用的。结果,避免部分 处理器处于等待状态的情况。因此,能够有效地使用处理器。
此外,在上述每个示例性实施例和每个示例中,可以任意地选择 L的值。但是,为了通过并行处理的加速的效果被增强,优选的是,L 的值被设置为大于或者等于处理器的数目的值。在步骤A5的数据分配 之后,在各输出数据区域9-l至9-L的大小上可能出现变化。然后,与 此相关联地,当在步骤A6的对于输出数据区域9-l至9-L的区间排序 处理中用于各处理器的处理的量中出现变化时,通过并行处理加速的 效果降低。因此,优选的是,L被设置为大于处理器的数目的值并且当 在步骤A6将输出数据区域9-1至9-L指派给处理器时,区间排序部件 4调整处理器的负荷使得相等。结果,提高了处理器的利用效率从而增 强了通过并行处理加速的效果。
例如,在将输出数据区域9-l至9-L指派给P个处理器时,足以 将被指派给每个处理器的区域的大小的和调整为对于所有的处理器来 说相等。输出数据区域9-1至9-L中的每一个的大小等于被指派给相应 的区间7-l至7-L中的每一个的数据的数目。因此,当使被指派给每个 处理器的区域的大小的和相等时,使要被每个处理器处理的数据的数 目相等。因此,使处理器的负荷相等。
此外,优选的是,L被设置为等于处理器的数目或者它的整数倍。在方法中,整数值是从1到5等等。在输出数据区域9-1至9-L的大小
几乎彼此相等的情况下,当L被设置为等于处理器的数目或者它的整 数倍时,能够容易地减少在步骤A6由处理器中的变化引起的处理时间 中的差异。然而,当采用非常大的整数值时,处理的负担变大并因此 与增强加速形成对比,加速被阻止。
此外,在上述每个示例性实施例和每个示例中,优选的是,在步 骤Al的基准值被选择为使得输出数据区域9-1至9-L的大小中的变化 被减少。因此,当通过使用统计处理等等选择尽可能均匀地分配的基 准值时,提高了并行处理中的处理器的利用效率。图8示出从输入数 据35以规则区间选择基准值的示例。但是,本发明不限于此示例。在 另一个示例中,在图5中,可以从输入数据5获取在数目上大于L-l 的数据。然后,可以检查它们的分布。此后,可以基于获取的分布选 择L-l个基准值从而使每个区间中的数据的数目相等。
此外,在上述的每个示例性实施例和每个示例中,已经给出从输 入数据5选择基准值的示例。但是,本发明不限于此。在统计地计算 基准值的情况下,可以选择没有被包含在输入数据5中的值作为基准 值。
例如,在方法中,在图5中,从输入数据5中提取K^L个数据(K 是常数),并且然后根据次序关系(值的大小)分组成K组。然后, 组之间的每个数可以被采用作为基准值。
另一个示例是下述方法,对从输入数据区域5-1至5-M中获取的 多个数据执行统计分布预测或者数据数目预测,并且然后选择L-l个基 准值以便于最小化输出数据区域9-1至9-L的大小中的变化。能够通过 现有的统计学的技术执行统计分布预测或者数据数目预测。特别地, 当输入数据具有诸如均匀的分布或者正态分布的已知分布时此种统计 方法是有效的。要在均匀分布的情况下获取最大值和最小值,而要在
22正态分布的情况下获取平均数和方差。然后,能够基于这些值计算基 准值。当通过此种统计方法选择基准值时,与简单地选择基准值的情 况相比较步骤Al的处理时间增加。因此,可以通过多个处理器执行步 骤Al的处理从而可以实现加速。
本申请基于并要求2006年12月22日提交的日本专利申请 No.2006-345802的优先权,其公开在这里通过引用而整体并入。
权利要求
1.一种并行排序装置,所述并行排序装置用于通过并行处理对由多个数据组成的输入数据进行排序,包括基准值计算部件,所述基准值计算部件基于所述输入数据计算多个基准值,所述多个基准值用作用于根据所述输入数据的值的大小分配所述输入数据的区间的边界;输入数据聚集部件,所述输入数据聚集部件将所述输入数据划分为多个输入数据区域,并且通过并行处理计算用于将所划分的输入数据区域中的每一个中的数据分配给具有在由所述基准值计算部件计算的所述基准值上的边界的所述多个区间的映射信息;数据分配部件,所述数据分配部件根据由所述输入数据聚集部件计算的所述映射信息通过并行处理将所述输入数据区域中的每一个中的数据分配给所述多个区间;以及区间排序部件,所述区间排序部件通过并行处理分别对由所述数据分配部件分配的所述多个区间中的数据进行排序。
2. 根据权利要求1所述的并行排序装置,其中所述映射信息是下述信息,当包含在所述多个输入数据区域中的所述数据要被分配给所述多个区间时,所述信息用于确定与所述区间相对应的其中要累积被分配给所述多个区间的数据的输出数据区域,并且其中所述输入数据聚集部件为所述输入数据区域中的每一个计数包含在所述区间中的每一个中的数据的数目,并且为每个输入数据区域聚集所计数的结果以便于计算所述映射信息从而所述多个输出数据区域中的每一个具有下述大小,所述大小允许被分配给所述区间的数据被累积,而没有所述数据的相互重叠。
3. 根据权利要求1或者2所述的并行排序装置,其中所述输入数据区域的数目等于用于执行所述并行处理的多个处理器的数目或者所述处理器的数目的整数倍。
4. 根据权利要求1至3中的任何一项所述的并行排序装置,其中所述输入数据聚集部件将所述输入数据划分为已经被使得相等的所述输入数据区域。
5. 根据权利要求1至4中的任何一项所述的并行排序装置,其中基于被分配给所述多个区间中的每一个的数据的数目,所述区间排序部件将所述区间指派给所述处理器从而使得用于执行所述并行处理的所述多个处理器的负荷相等。
6. 根据权利要求1至5中的任何一项所述的并行排序装置,其中基于所述基准值划分的所述区间的数目等于用于执行所述并行处理的处理器的数目或者所述处理器的数目的整数倍。
7. 根据权利要求1至6中的任何一项所述的并行排序装置,其中所述基准值计算部件通过对所述输入数据进行统计处理计算所述基准值从而使得要被分配给所述多个区间的数据的数目相等。
8. —种并行排序方法,所述并行排序方法用于通过并行处理对由多个数据组成的输入数据进行排序,包括基于所述输入数据计算多个基准值,所述多个基准值用作用于根据所述输入数据的值的大小分配所述输入数据的区间的边界;将所述输入数据划分为多个输入数据区域;通过并行处理计算用于将所划分的输入数据区域中的每一个中的数据分配给具有在计算出的基准值上的边界的所述多个区间的映射信息;根据计算出的映射信息通过并行处理将所述输入数据区域中的每一个中的数据分配给所述多个区间;以及通过并行处理分别对所述多个区间中的被分配的数据进行排序。
9. 根据权利要求8所述的并行排序方法,其中所述映射信息是下述信息,当包含在所述多个输入数据区域中的所述数据要被分配给所述多个区间时,所述信息用于确定与所述区间相对应的其中要累积被分配给所述多个区间的数据的输出数据区域,并且其中为所述输入数据区域中的每一个计数包含在所述区间中的每一个中的数据的数目,并且聚集对于每个输入数据区域的计数的结果从而计算所述映射信息使得所述多个输出数据区域中的每一个具有下述大小,所述大小允许被分配给所述区间的所述数据被累积而没有所述数据的相互重叠。
10. 根据权利要求8或者9所述的并行排序方法,其中所述输入数据区域的数目等于用于执行所述并行处理的多个处理器的数目或者所述处理器的数目的整数倍。
11. 根据权利要求8至10中的任何一项所述的并行排序方法,其中将所述输入数据划分为已经被使得相等的所述输入数据区域。
12. 根据权利要求8至11中的任何一项所述的并行排序装置,其中基于被分配给所述多个区间中的每一个的数据的数目,所述区间被指派给所述处理器从而使得用于执行所述并行处理的所述多个处理器的负荷相等,并且然后对所述区间中的所述数据进行排序。
13. 根据权利要求8至12中的任何一项所述的并行排序方法,其中基于所述基准值划分的所述区间的数目等于用于执行所述并行处理的处理器的数目或者所述处理器的数目的整数倍。
14. 根据权利要求8至13中的任何一项所述的并行排序方法,其中通过对所述输入数据的统计处理计算所述基准值从而使得要被分配给所述多个区间的数据的数目相等。
15. —种并行排序程序,所述并行排序程序用于使得计算机执行通过并行处理对由多个数据组成的输入数据迸行排序的处理并且用于使得计算机执行基于所述输入数据计算用作用于根据所述输入数据的值的大小分配所述输入数据的区间的边界的多个基准值的过程;将所述输入数据划分为多个输入数据区域的过程;通过并行处理计算用于将所划分的输入数据区域中的每一个中的数据分配给具有在计算出的基准值上的边界的所述多个区间的映射信息的过程;根据计算出的映射信息通过并行处理将所述输入数据区域中的每一个中的数据分配给所述多个区间的过程;以及通过并行处理分别对所述多个区间中的被分配的数据进行排序的过程。
16. 根据权利要求15所述的并行排序程序,其中所述映射信息是下述信息,当包含在所述多个输入数据区域中的所述数据要被分配给所述多个区间时,所述信息用于确定与所述区间相对应的其中要累积被分配给所述多个区间的数据的输出数据区域,并且其中为所述输入数据区域中的每一个计数包含在所述区间中的每一个中的数据的数目,并且聚集为每个输入数据区域的计数的结果以便于计算所述映射信息从而所述多个输出数据区域中的每一个具有下述大小,所述大小允许被分配给所述区间的所述数据被累积而没有所述数据的相互重叠。
17. 根据权利要求15或者16所述的并行排序程序,其中所述输入数据区域的数目等于用于执行所述并行处理的多个处理器的数目或者所述处理器的数目的整数倍。
18. 根据权利要求15至17中的任何一项所述的并行排序程序,其中将所述输入数据划分为已经被使得相等的所述输入数据区域。
19. 根据权利要求15至18中的任何一项所述的并行排序程序,其中基于被分配给所述多个区间中的每一个的数据的数目,所述区间被指派给所述处理器从而使得用于执行所述并行处理的所述多个处理器的负荷相等,并且然后对所述区间中的所述数据进行排序。
20. 根据权利要求15至19中的任何一项所述的并行排序程序,其中基于所述基准值划分的所述区间的数目等于用于执行所述并行处理的处理器的数目或者所述处理器的数目的整数倍。
21. 根据权利要求15至20中的任何一项所述的并行排序程序,其中通过对所述输入数据的统计处理计算所述基准值从而使得要被分配给所述多个区间的数据的数目相等。
全文摘要
提供了一种其排序处理被加速的并行排序装置。基准值计算部件计算用作用于根据值的大小分配输入数据的区间的边界的多个基准值。输入数据聚集部件将输入数据划分为多个输入数据区域,并且通过并行处理计算用于将被划分的输入数据区域中的每一个中的数据分配给具有在由基准值计算部件计算的基准值上的边界的多个区间的映射信息。数据分配部件根据由输入数据聚集部件计算的映射信息通过并行处理将输入数据区域中每一个中的数据分配给多个区间。区间排序部件通过并行处理分别地排序由数据分配部件分配的多个区间中的数据。
文档编号G06F7/22GK101568900SQ20078004764
公开日2009年10月28日 申请日期2007年12月4日 优先权日2006年12月22日
发明者山下庆子, 枝广正人 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1