CN102722412A - 组合计算装置和方法 - Google Patents
组合计算装置和方法 Download PDFInfo
- Publication number
- CN102722412A CN102722412A CN2011100796173A CN201110079617A CN102722412A CN 102722412 A CN102722412 A CN 102722412A CN 2011100796173 A CN2011100796173 A CN 2011100796173A CN 201110079617 A CN201110079617 A CN 201110079617A CN 102722412 A CN102722412 A CN 102722412A
- Authority
- CN
- China
- Prior art keywords
- data
- combination
- input data
- setting
- input
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供一种组合计算装置和方法,所述装置包括:输入设定单元,配置为接收与多组输入数据相关的第一设定和与所述多组输入数据之间的组合方式相关的第二设定;数据获取单元,配置为根据所述第一设定和第二设定,获取由多组输入数据构成的数据组合;以及至少一个组合操作单元,配置为对所述数据组合进行所需的计算操作。本发明还提供了与上述装置对应的***和方法。通过上述装置和方法,改进了现有的并行计算方式,使得并行计算的设计和操作更加简单,提高了并行计算***的性能和效率。
Description
技术领域
本发明涉及分布式并行计算***,更具体而言,涉及并行计算***中进行组合计算的装置和方法。
背景技术
信息技术的发展为人们提供了越来越丰富和强大的应用和服务,同时也对处理设备的运算能力提出了越来越高的要求。尽管处理器的运行速度也在不断提高,但是面对海量信息和数据,分布式并行计算成为一种实用的解决方式。
分布式并行计算是将一个处理任务分散到多个处理器中同时并行执行的方案。目前,已经存在多种大规模并行计算的执行方式,其中最为重要和常用的是MapReduce模型。
MapReduce是一种简洁的并行计算模型,其名字源于这个模型中的两项核心操作:映射(Map)和规约(Reduce),这两个概念来自于函数式编程语言(Function Programming)。简单地说,Map是把一组数据一对一地映射为另外的一组数据,其映射的规则由用户定义的一个函数来指定。Reduce是根据用户定义的函数对一组数据进行合并和规约。在Map过程中,数据被并行地分开、独立处理,而在Reduce过程中,分开的数据被合并到了一起。因此,利用Map和Reduce操作的一分一合,就可以将一个复杂庞大的任务分拆成许多个作业并行执行运算,然后对并行运算的结果进行综合,从而得到期望的结果。
图1示出现有技术MapReduce模型的基本架构的示意图。在图1所示的映射规约模型中,每个映射单元从对应的数据源读取键值对(k,v)形式的输入数据,根据用户定义的函数,将输入键值对(k,v)映射为新的键值对,称为中间键值对。之后,在规约阶段,将具有相同键的中间键值对发往相同的规约单元,由规约单元对结果进行综合。
如上所述,在现有的MapReduce模型中,输入数据必须遵从单个键值对的输入形式。也就是说,映射单元只能对单个键值对(k,v)进行操作,因此只能支持单个数据源的输入。然而,对于很多应用来说,单个键值对形式的输入要求对于并行计算设计来说过于严格。实际上,在许多应用中,将多个数据源作为输入数据,并希望对多个数据源进行组合运算。这时,现有的MapReduce模型就带来了很大的局限性。下面结合两个例子说明多组输入数据的组合运算的情况。
在一个例子中,利用并行计算***对阵列天线进行配置。由于阵列天线的各种信息都是以矩阵形式进行存储,因此计算***需要对大型矩阵进行各种运算。对于m*s的矩阵A,如果要计算A乘以一个常数λ的结果,那么在现有的MapReduce模型下,可以将输入键值对(k1,v1)设定为k1=矩阵行号,v1=对应行的矩阵元素,并将映射函数设定为f(k1,v1)=(k1,λv1),从而得到映射后的键值对(k2,v2)=f(k1,v1),以此键值对表示乘以常数之后的结果。然而,如果要计算矩阵A乘以另一个s*n的矩阵B的结果,根据矩阵乘法的定义,必然要同时对A、B两个矩阵的元素进行组合操作,也就需要将两个矩阵的元素同时作为输入数据。在现有MapReduce计算***下,由于映射单元只能接受单个键值对作为输入,因此编程人员往往要通过非常复杂的算法将矩阵B的元素拆分和分发,并设定复杂的输入键值对来实现两个矩阵的乘法运算。
在另一个例子中,利用并行计算***实现推荐功能,这一功能广泛应用在各种购物网站中。具体地,在用户m购买某商品n之后,***会记录用户m对该商品n的评分Rm-n,用于分析商品之间的相似度S。在获得任意商品之间的相似度的基础上,在用户购买某商品i时,***可以计算出与商品i具有最大相似度S的商品,并将这样的商品推荐给用户。一般地,用于计算相似度的评分数据以矩阵、表格等形式记录在例如HDFS(Hadoop Distributed File System)的共享文件中。
为了计算商品之间的相似度,在一种算法中,商品i与商品j之间的相似度被定义为:
很明显,以上相似度的计算涉及用户对两个商品i,j的评分。然而,如上所述,现有的MapReduce***只能读取单个键值对作为输入。因此,通常将各个用户对某个商品i的评价作为输入数据,也就是将输入键值对设定为(商品i,(用户1,R1-i)(用户2,R2-i)(用户3,R3-i)...)。为了计算商品i,j的相似度,在一种解决方案下,MapReduce***中的并行计算单元到HDFS共享文件中读取与商品j相关的数据,并结合接收的商品i的评分信息进行相似度计算。然而,由于各个计算单元都要通过网络访问HDFS***,这样的方式会造成极大的网络IO,从而影响计算性能。在另一种解决方案下,MapReduce***首先对接收到的键值对数据进行转换,以用户为索引将其布置为(用户m,(商品1,Rm-1)(商品2,Rm-2)(商品3,Rm-3)...),由此获得Rm-i,Rm-j,然后再按照公式(1)遍历m进行求和计算。然而,上述转换和计算过程会产生大量的中间键值对。这些中间键值对需要在MapReduce的各个计算单元之间进行分发,从而在***中引起IO阻塞的风险,降低其计算性能和执行效率。
除了以上列举的两个例子之外,还存在许多依赖于多重数据源的应用。由于现有的MapReduce并行计算***的局限性,这些应用的执行会存在与上述例子相似的问题。因此,希望提供一种方案,对现有的并行计算方式进行改进,以进一步提高计算性能。
发明内容
考虑到上述问题,指出本发明,旨在对现有的并行计算***进行改进。
根据本发明第一方面,提供一种组合计算装置,位于并行计算***中,包括:输入设定单元,配置为接收与多组输入数据相关的第一设定和与所述多组输入数据之间的组合方式相关的第二设定;数据获取单元,配置为根据所述第一设定和第二设定,获取由多组输入数据构成的数据组合;以及至少一个组合操作单元,配置为对所述数据组合进行所需的计算操作。
根据本发明第二方面,提供一种并行计算***,包括:如本发明第一方面的组合计算装置,其产生中间数据;以及规约计算装置,包括多个规约单元,其每一个配置为对所述中间数据进行规约和合并,产生最终结果。
根据本发明第三方面,提供一种在并行计算***中的组合计算方法,包括:接收与多组输入数据相关的第一设定和与所述多组输入数据之间的组合方式相关的第二设定;根据所述第一设定和第二设定获取由多组输入数据构成的数据组合;以及对所述数据组合进行所需的计算操作。
利用本发明的装置、***和方法,可以改进现有的并行计算模式,使得并行计算的设计和操作更加简单,提高了并行计算***的性能和效率。
附图说明
图1示出现有技术MapReduce模型的基本架构的示意图;
图2示出根据本发明实施例的组合计算装置的示意图;
图3示出根据本发明一个实施例的组合操作单元16的结构框图;
图4示出根据本发明一个实施例的并行计算***的示意图;
图5示出根据本发明一个实施例的方法的流程图;以及
图6示出了适于用来实现本发明实施方式的示例性计算***100的框图。
具体实施方式
下面参照附图,结合具体实施例对本发明进行描述。这样的描述仅仅出于说明目的,而不意图对本发明的范围进行限制。
在本发明的多个实施例中,在分布式并行计算***中提供组合计算装置来替代现有的MapReduce模型的映射单元。为了克服现有映射单元的局限性,将组合计算装置配置为接收关于多组输入数据及其组合方式的设定,并对设定的数据组合实施组合计算操作。由此,组合计算装置可以支持多个数据源的输入,从而简单地对多个数据组进行运算。
图2示出根据本发明实施例的组合计算装置的示意图。如图2所示,并行计算***中的组合计算装置10包括输入设定单元12,数据获取单元16和至少一个(图2的示例中为3个)组合操作单元16,其中输入设定单元12配置为接收与多组输入数据相关的第一设定和与所述多组输入数据之间的组合方式相关的第二设定;数据获取单元16配置为根据所述第一设定和第二设定获取由多组数据构成的输入数据的组合;至少一个组合操作单元16配置为,对所述输入数据的组合进行所需的计算操作。
具体地,在一种实施方式中,输入设定单元12可以作用为接口,接收用户关于输入的各种设定,包括关于输入数据的设定和关于数据之间的组合方式的设定。在一个实施例中,关于输入数据的设定包括各个数据组的数据源的信息,例如各个数据源的源文件的名称和路径、存储输入数据的数据库的访问路径等。通过这样的信息,用户可以指示组合计算装置10分别从何处获得多组输入数据。
在一个实施例中,关于输入数据的设定还包括输入数据的格式设定。在一个例子中,组合计算装置10配置为接收和处理键值对(K,V)形式的输入数据。在这种情况下,对数据格式的设定可以包括对键和值的设定。通过这样的设定,用户可以指示组合计算装置10以特定方式和格式读取多组输入数据,例如第一键值对(Ka,Va)和第二键值对(Kb,Vb)。
由于组合计算装置10将会获得多组输入数据并对特定的输入数据的组合进行操作,因此输入设定单元12还接收关于输入数据的组合方式的设定。在该设定中,用户可以定义一个表示组合规则的函数,通过上述组合规则将多组输入数据进行组合,从而形成数据组合。
下面结合背景技术部分中举例的阵列天线和推荐***的例子来说明关于输入的各种设定。
在配置阵列天线而进行矩阵运算的例子中,假定要计算m*s的矩阵A乘以s*n的矩阵B的结果。根据矩阵乘法的定义,要对矩阵A的每一行与矩阵B的每一列的组合进行运算,将运算结果作为结果矩阵C的元素。为此,希望获得矩阵A的每一行的元素作为第一输入数据,矩阵B的每一列的元素作为第二输入数据。在这种情况下,可以在关于输入数据的设定中分别指明存储矩阵A和矩阵B的源文件的信息,例如在HDFS中的存储位置和路径,从而将矩阵A作为第一数据源,将矩阵B作为第二数据源。进一步地,在关于输入数据的设定中还可以指定从第一数据源和第二数据源读取输入数据的格式。具体地,对于矩阵A构成的第一数据源,可以将矩阵中第i行的行号作为键,将该行中的矩阵元素作为值,从而构成键值对形式的第一输入数据(Kai,Vai)=(i,(ai1,ai2,...ais))。这也是以键值对为输入数据的并行计算***中的默认数据读取方式。对于矩阵B构成的第二数据源,可以将矩阵中列的序号j作为键,将该列中的矩阵元素作为值,从而构成第二输入数据(Kbj,Vbj)=(j,(b1j,b2j,...bsj))。由此,可以获得第一输入数据序列和第二输入数据序列。由于需要对第一输入数据和第二输入数据的组合进行操作,还需要定义输入数据之间的组合规则。对于矩阵相乘来说,需要计算矩阵A的每一行与矩阵B的每一列的操作结果,因此,可以在组合规则中设定将每个第一输入数据(Kai,Vai)和每个第二输入数据(Kbj,Vbj)进行组合,从而构成多组输入数据的组合。
在推荐***的例子中,假定要按照公式(1)计算商品之间的相似度。根据公式(1)中的定义,商品i和商品j之间的相似度涉及各个用户对两个商品的评分,因此可以直接将有待计算的两个商品的评分信息分别作为输入数据。具体地,可以在关于输入数据的设定中定义,将各个用户对商品i的评分作为第一输入数据,将用户对商品j的评分作为第二输入数据。进一步地,在关于输入数据的设定中还可以指定输入数据的格式。具体地,以商品为索引,第一输入数据和第二输入数据可以分别被设定为如下的键值对形式(商品i,(用户1,R1-i)(用户2,R2-i)(用户3,R3-i)...),以及(商品j,(用户1,R1-j)(用户2,R2-j)(用户3,R3-j)...)。通过改变i,j的值,可以获得第一输入数据的序列和第二输入数据的序列。由于公式(1)对于商品i和商品j是对称的,也就是,S(商品i,商品j)=S(商品j,商品i),因此,为了避免重复计算,可以在输入数据的组合规则中定义,如果第二输入数据中商品索引j大于第一输入数据中的索引i,则将第一输入数据和第二输入数据进行组合,构成有待操作的数据组合。例如,i=1时,构成的数据组合包括(商品1,商品2),(商品1,商品3)...(商品1,商品n);i=2时,由于需要满足j>i,因此构成的数组组合包括(商品2,商品3),(商品2,商品4)...(商品2,商品n),从而排除了不需要再次计算的组合(商品2,商品1)。如此,通过允许对组合规则的灵活设定,可以极大减小组合计算装置10的运算量和中间结果的传输,提高计算性能。
尽管以上结合矩阵运算和推荐***的例子说明了输入设定单元12能够接收的与输入数据相关的设定,但是可以理解,输入设定单元12所提供的设定接口也适用于其他应用。在其他应用的情况下,本领域技术人员能够根据应用的特点进行输入数据的设定,并将这样的设定通过输入设定单元12应用到组合计算装置10。此外,尽管在以上的例子中,对输入数据的设定都包含了对两组并行的输入数据的设定,即第一输入数据和第二输入数据,但是在不同实施例中,输入设定单元12可以接收对更多输入数据的设定,从而使得组合计算装置10可以支持更多组并行的输入数据。
可以理解,除了以上列举的各种具体设定之外,输入设定单元12还可以接收与输入相关的更进一步的设定。例如,在一个例子中,所述更进一步的设定可以包括对输入数据的读取顺序、读取范围的设定。此外,根据需要,输入设定单元12还可以配置为在所接收的设定的基础上,针对各个组合操作单元16进行进一步的限定。在一个例子中,输入设定单元12接收到关于输入数据的设定,其指示组合计算装置10从一较大数据源读取输入数据,并对输入数据进行组合。另一方面,如图2所示,组合计算装置10包含了3个组合操作单元16,这3个组合操作单元16可能具有不同的处理能力。为此,输入设定单元12除了将所接收的关于输入的设定传递到数据获取单元14之外,还对这些设定进行细化。具体地,输入设定单元12根据每个组合操作单元16的处理能力将上述设定中指示的目标数据源划分为多个部分,指示数据获取单元14从指定的数据源部分读取数据,从而将任务进行分割,并分配到各个组合操作单元16。在进行上述任务分割时,输入设定单元12可以参考关于输入数据组合方式的设定来进行数据源的划分,使得各个操作单元16产生的中间键值对的数量尽可能少,并尽可能降低各个操作单元16之间的I/O传输。
在输入设定单元12获得关于输入的各种设定的基础上,数据获取单元14根据这些设定从数据源读取输入数据,从而构成所需的数据组合。
图3示出根据本发明一个实施例的数据获取单元14的结构框图。如图3所示,数据获取单元14包括数据读取模块40,配置为根据与输入数据相关的设定读取多组输入数据;以及数据组合模块42,配置为根据与输入数据的组合方式有关的设定对所读取的多组输入数据进行组合,形成数据组合。
具体地,数据读取模块40从输入设定单元12获得关于输入数据的设定,包括数据源信息、数据格式信息等,根据这样的设定从指定数据源按照指定格式读取数据,由此形成多组并行的输入数据(例如D1,D2)。在一个实施例中,数据读取模块40根据上述设定形成键值对形式的输入数据。
在此基础上,数据组合模块42从输入设定单元12获得关于输入数据的组合方式的设定,也就是获得输入数据的组合规则。基于这样的规则,数据组合模块42对数据读取模块40获取的多个并行的输入数据进行组合,从而形成所需的数据组合(例如,(D1,D2))。
在获得数据组合的基础上,至少一个组合操作单元16就可以对形成的数据组合进行所需的计算操作。一般地,组合操作单元16根据用户定义的函数对获得的数据组合施加计算操作(例如,f(D1,D2))。这样的组合操作单元16的功能与现有技术中映射单元的功能相似,也就是基于用户定义的函数对输入数据流进行映射或计算操作。然而不同的是,现有映射单元只能对单个数据进行映射,而组合操作单元16是对多组数据构成的数据组合进行操作,这样的操作可能涉及数据组合中不同数据组之间的计算。
可以理解,为了获得以上所述的用户定义的函数,组合操作单元16中可以提供一个接口,用于从用户接收对操作函数的定义。在一个实施例中,这个接口也可以由输入设定单元12统一提供。
可以理解,以上结合附图对数据获取单元14和至少一个组合操作单元16的描述仅仅是对其功能进行示例说明,而不意图限定其形式。在实际应用中,这些单元可以被安排为不同的结构和形式。在一个实施例中,组合操作单元16可以与数据获取单元14合并在一起,使得每个组合操作单元16具有自己专属的数据读取功能。在另一个实施例中,组合操作单元16和数据获取单元14相独立,各个组合操作单元16可以共享同一数据获取单元14,从其接收分配给自己的数据组合。
在一个实施例中,为了使得组合计算装置10尽可能地基于已有的MapReduce平台,对MapReduce***中的映射单元进行改动来实现上述组合操作单元16。为了符合映射单元对输入数据的形式要求,数据获取单元14还配置为将获得的数据组合按照一定规则在形式上组织为单个键值对的形式。组合操作单元16在现有的映射单元的基础上进一步配置为,根据上述规则将获得的键值对拆分为数据组,也就是还原为包含多个数据组的数据组合,并基于用户定义的函数对数据组合施加运算操作。在一个具体例子中,数据读取模块40分别读取了第一输入数据(Ka,Va)和第二输入数据(Kb,Vb),数据组合模块42将其进行组合,形成数据组合{(Ka,Va),(Kb,Vb)}。为了符合单个键值对的输入形式,数据组合模块42将形成的数据组合重新组织为(KaKb,VaVb)的形式,其中新的键值对中的键由第一键Ka和第二键Kb组合而成,其间添加特定标识符进行分隔。组合操作单元16接收到这样的键值对之后,通过识别上述特定标识符,从而将获得的单个键值对拆分为两个键值对,并根据定义的函数对两个键值对进行操作。不过可以理解,在其他实施方式中,组合操作单元16也可以不基于现有的任何计算***。由此,数据获取单元14可以直接将多组输入数据以数据组合的形式传输到组合操作单元16以进行计算操作。
以下继续结合矩阵运算的例子和推荐***的例子说明数据获取单元14和组合操作单元16的执行方式。
在配置阵列天线而进行矩阵运算的例子中,如上所述,输入设定单元12可以获得关于输入的各种设定。具体地,在这些设定中定义了从矩阵A读取(i,(ai1,ai2,...ais))形式的第一输入数据,从矩阵B读取(j,(b1j,b2j,...bsj))形式的第二输入数据,并将任意第一输入数据和第二输入数据进行组合。基于这样的设定,数据获取单元14中的数据读取模块40通过扫描矩阵A的1-m行,可以得到第一输入数据的序列(i,(ai1,ai2,...ais)),i=1-m,其中每一输入数据代表矩阵A中一行的元素数据。类似地,通过扫描矩阵B的1-n列,可以得到第二输入数据的序列(j,(b1j,b2j,...bsj)),j=1-n,其中每一输入数据代表矩阵B中一列的元素数据。由此,数据读取模块40从第一数据源和第二数据源分别读取了键值对形式的第一输入数据序列和第二输入数据序列。接着,数据组合模块42基于定义的组合规则对获得的输入数据序列中的数据进行组合。如上所述,对于矩阵乘法来说,需要将矩阵A的每一行乘以矩阵B的每一列。因此,数据组合模块42根据组合规则将每个第一输入数据(Kai,Vai)和每个第二输入数据(Kbj,Vbj)进行组合,形成输入数据组合{(Kai,Vai),(Kbj,Vbj)},其中i=1-m,j=1-n。对于获得的数据组合,组合操作单元16根据用户定义的函数来施加运算。对于矩阵乘法来说,此处用户定义的函数即为矩阵元素相乘再相加。因此,组合操作单元16相应地对每个数据组合施加如下的函数运算:
f{(Kai,Vai),(Kbj,Vbj)}=f{(i,(ai1,ai2,...ais)),(j,(b1j,b2j,...bsj))}=(Cij,ai1 b1j+ai2 b2j+...+ais bsj)
通过上述运算,组合操作单元16就可以对数据组合中的两组输入数据进行直接运算,从而得到结果矩阵的元素Cij。
在推荐***的例子中,根据前述设定,数据读取模块40将各个用户对商品i的评分作为第一输入数据,即(Kai,Vai)=(商品i,(用户1,R1-i)(用户2,R2-i)(用户3,R3-i)...),将用户对商品j的评分作为第二输入数据,即(Kbj,Vbj)=(商品j,(用户1,R1-j)(用户2,R2-j)(用户3,R3-j)...),并通过改变i,j的值,获得第一输入数据序列和第二输入数据序列。进一步地,根据对输入数据的组合规则的设定,数据组合模块42将第一输入数据(Kai,Vai)和第二输入数据(Kbj,Vbj)进行组合,形成输入数据组合{(Kai,Vai),(Kbj,Vbj)},其中i<j。对于如此获得的每个数据组合,组合操作单元16根据用户定义的函数来施加运算。对于推荐***中相似度的计算来说,此处用户定义的函数即为公式(1)所示的相似度计算公式。因此,组合操作单元16直接将数据组合代入公式(1),就可以获得商品i和商品j之间的相似度。
尽管以上结合矩阵运算和推荐***的例子说明了数据获取单元14和组合操作单元16的执行方式,但是可以理解,以上单元可以适用于更多种不同应用。此外,尽管在以上的例子中,组合操作单元16配置为对于由两组输入数据构成的数据组合进行操作,但是在不同实施例中,输入设定单元12可以接收对更多组输入数据的设定,相应地,数据获取单元14可以根据设定读取更多组并行的输入数据,从而使得组合操作单元16对更加复杂的数据组合进行操作和运算。例如,在一个例子中,数据获取单元14可以根据输入设定单元12接收的关于输入数据的设定,并行地读取四组输入数据,并根据关于组合规则的设定,从四组输入数据中选择其中的三组,形成数据组合,然后组合操作单元16对这样的数据组合施加用户定义的函数操作。
此外,应该理解,所示出的输入接收单元12、数据获取单元14和组合操作单元16的划分和各自的结构仅仅出于功能示意的目的,而不对其实际的结构和物理平台有任何限制。上述多个单元可以在相同的或者多个不同的物理机或虚拟机中实现,以并行地执行所需处理。
在以上描述的组合计算装置10的基础上,本发明的实施例还提供一种并行计算***。图4示出根据本发明一个实施例的并行计算***的示意图。如图所示,并行计算***包括组合计算装置10和规约计算装置20,其中组合计算装置10如上所述地对多组并行的输入数据进行组合计算和处理,产生中间数据;规约计算装置20对中间数据进行规约和合并,产生最终结果。规约计算装置20可以包含多个规约单元,与现有的MapReduce***中的规约单元相似。通过组合计算装置10和规约计算装置20,可以将一个庞大的任务分散到多个并行的计算单元进行组合计算,然后合并为希望的结果。同时,由于组合计算装置10能够支持多组数据的组合操作处理,使得并行计算***的任务处理更加简单。在多重数据输入的情况下,使用者只需要设定要处理的数据源并定义操作函数,并行计算***就可以自动地获取数据组合,并对数据组合进行操作,而不必像现有的并行计算***那样,需要通过复杂编程将数据源组织为特定格式来满足输入要求。
基于同一发明构思,本发明还提供了对应的进行组合计算的方法。图5示出根据本发明一个实施例的方法的流程图。如图5所示,本发明实施例的进行组合计算的方法包括,步骤52,接收与多组输入数据相关的第一设定和与所述多组输入数据之间的组合方式相关的第二设定;步骤54,根据所述第一设定和第二设定获取由多组输入数据构成的数据组合;步骤56,对所述数据组合进行定义的计算操作。
具体地,在一个实施例中,上述第一设定包括各个数据的数据源的信息,例如各个数据源的源文件的名称和路径、存储输入数据的数据库的访问路径等。在一个实施例中,上述第一设定还包括输入数据的格式设定,例如关于键值对中键和值的设定。在一个实施例中,第二设定包括多个输入数据的组合规则。
在获得以上设定的基础上,在步骤54,基于这些设定获得有待操作的数据组合。具体地,步骤54可以按照如下两个步骤执行。首先,基于第一设定中的数据源信息、数据格式信息等,从指定数据源按照指定格式读取数据,由此形成多组并行的输入数据。接着,基于第二设定中的组合规则,对读取的多组并行的输入数据进行组合,从而形成数据组合。对于形成的数据组合,在步骤56,可以根据定义的函数对其施加计算操作。
由于上述组合计算方法执行的原理和方式与前述对图3和图4的装置描述相对应,因此不再赘述。
通过本发明实施例的组合计算装置和方法,可以直接对多重数据输入进行操作和处理,从而提高并行计算***的操作性和可用性。
可以理解,本发明的装置和方法可以通过多种形式实现。图6示出了适于用来实现本发明实施方式的示例性计算***100的框图。如所示,计算机***100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、***总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与***总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图6所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
本领域技术人员可以理解,上述执行组合计算的装置和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。各实施例的装置及其单元、模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。用于执行本发明的操作的软件和程序代码,可以用一种或多种程序设计语言的组合来编写,包括但不限于,面向对象的程序设计语言,诸如Java,Smalltalk,C++之类,以及常规的过程式程序设计语言,诸如C程序设计语言或类似的程序设计语言。程序代码可以本地地或远程地在计算机上执行,以完成设定的操作。
虽然以上结合具体实施例,对本发明的组合计算装置和方法进行了详细描述,但本发明并不限于此。本领域普通技术人员能够在说明书教导之下对本发明进行多种变换、替换和修改而不偏离本发明的精神和范围。应该理解,所有这样的变化、替换、修改仍然落入本发明的保护范围之内。本发明的保护范围由所附权利要求来限定。
Claims (15)
1.一种组合计算装置,位于并行计算***中,包括:
输入设定单元,配置为接收与多组输入数据相关的第一设定和与所述多组输入数据之间的组合方式相关的第二设定;
数据获取单元,配置为根据所述第一设定和第二设定,获取由多组输入数据构成的数据组合;
至少一个组合操作单元,配置为对所述数据组合进行所需的计算操作。
2.根据权利要求1的装置,其中所述第一设定包括所述多组输入数据的数据源的信息和输入数据的格式设定。
3.根据权利要求2的装置,其中所述输入数据的格式设定包括将输入数据设定为键值对的形式。
4.根据权利要求2的装置,其中所述输入设定单元还配置为,针对所述至少一个组合操作单元进一步限定所述第一设定中的数据源的信息。
5.根据权利要求1-4中任一项的装置,其中所述数据获取单元包括:
数据读取模块,配置为根据所述第一设定读取多组输入数据;以及
数据组合模块,配置为根据所述第二设定对所读取的多组输入数据进行组合,形成所述数据组合。
6.根据权利要求1的装置,其中所述数据获取单元配置为,根据特定规则将所述数据组合组织为单组数据的形式;所述至少一个组合操作单元还配置为,基于所述特定规则将所述单组数据还原为包含多组输入数据的数据组合。
7.根据权利要求1的装置,其中所述至少一个组合操作单元包含用于接收操作函数的接口,并根据所接收的操作函数对所述数据组合进行计算操作。
8.一种并行计算***,包括:
如权利要求1-7中任一项所述的组合计算装置,其产生中间数据;以及
规约计算装置,包括多个规约单元,其每一个配置为对所述中间数据进行规约和合并,产生最终结果。
9.一种组合计算方法,包括:
接收与多组输入数据相关的第一设定和与所述多组输入数据之间的组合方式相关的第二设定;
根据所述第一设定和第二设定获取由多组输入数据构成的数据组合;以及
对所述数据组合进行所需的计算操作。
10.根据权利要求9的方法,其中所述第一设定包括所述多组输入数据的数据源的信息和输入数据的格式设定。
11.根据权利要求10的方法,其中所述输入数据的格式设定包括将输入数据设定为键值对的形式。
12.根据权利要求10的方法,还包括,进一步限定所述第一设定中的数据源的信息。
13.根据权利要求9-12中任一项的方法,其中所述获取由多组输入数据构成的数据组合包括:
根据所述第一设定读取多组输入数据;以及
根据所述第二设定对所读取的多组输入数据进行组合,从而形成数据组合。
14.根据权利要求9的方法,其中所述获取数据组合还包括,根据特定规则将所述数据组合组织为单组数据的形式;所述进行所需的计算操作还包括,基于所述特定规则将所述单组数据还原为包含多组输入数据的数据组合。
15.根据权利要求9的方法,还包括接收定义的操作函数,并且所述进行定义的计算操作包括,根据接收的操作函数对所述数据组合进行计算操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100796173A CN102722412A (zh) | 2011-03-31 | 2011-03-31 | 组合计算装置和方法 |
US13/432,080 US9021500B2 (en) | 2011-03-31 | 2012-03-28 | Rule based combinatorial computing for map/reduce platform |
US13/584,876 US9021501B2 (en) | 2011-03-31 | 2012-08-14 | Combinatorial computing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100796173A CN102722412A (zh) | 2011-03-31 | 2011-03-31 | 组合计算装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102722412A true CN102722412A (zh) | 2012-10-10 |
Family
ID=46929059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100796173A Pending CN102722412A (zh) | 2011-03-31 | 2011-03-31 | 组合计算装置和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9021500B2 (zh) |
CN (1) | CN102722412A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109325069A (zh) * | 2018-09-07 | 2019-02-12 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及网络设备 |
WO2022105743A1 (zh) * | 2020-11-19 | 2022-05-27 | 华为技术有限公司 | 一种算子计算方法、装置、设备及*** |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799269B2 (en) * | 2012-01-03 | 2014-08-05 | International Business Machines Corporation | Optimizing map/reduce searches by using synthetic events |
US9460200B2 (en) | 2012-07-02 | 2016-10-04 | International Business Machines Corporation | Activity recommendation based on a context-based electronic files search |
US8903813B2 (en) | 2012-07-02 | 2014-12-02 | International Business Machines Corporation | Context-based electronic document search using a synthetic event |
US8898165B2 (en) | 2012-07-02 | 2014-11-25 | International Business Machines Corporation | Identification of null sets in a context-based electronic document search |
US9262499B2 (en) | 2012-08-08 | 2016-02-16 | International Business Machines Corporation | Context-based graphical database |
US8676857B1 (en) | 2012-08-23 | 2014-03-18 | International Business Machines Corporation | Context-based search for a data store related to a graph node |
US8959119B2 (en) | 2012-08-27 | 2015-02-17 | International Business Machines Corporation | Context-based graph-relational intersect derived database |
US9251237B2 (en) | 2012-09-11 | 2016-02-02 | International Business Machines Corporation | User-specific synthetic context object matching |
US8620958B1 (en) | 2012-09-11 | 2013-12-31 | International Business Machines Corporation | Dimensionally constrained synthetic context objects database |
US9619580B2 (en) | 2012-09-11 | 2017-04-11 | International Business Machines Corporation | Generation of synthetic context objects |
US9223846B2 (en) | 2012-09-18 | 2015-12-29 | International Business Machines Corporation | Context-based navigation through a database |
US8782777B2 (en) | 2012-09-27 | 2014-07-15 | International Business Machines Corporation | Use of synthetic context-based objects to secure data stores |
US9741138B2 (en) | 2012-10-10 | 2017-08-22 | International Business Machines Corporation | Node cluster relationships in a graph database |
US8931109B2 (en) | 2012-11-19 | 2015-01-06 | International Business Machines Corporation | Context-based security screening for accessing data |
US8983981B2 (en) | 2013-01-02 | 2015-03-17 | International Business Machines Corporation | Conformed dimensional and context-based data gravity wells |
US9229932B2 (en) | 2013-01-02 | 2016-01-05 | International Business Machines Corporation | Conformed dimensional data gravity wells |
US8914413B2 (en) | 2013-01-02 | 2014-12-16 | International Business Machines Corporation | Context-based data gravity wells |
US9069752B2 (en) | 2013-01-31 | 2015-06-30 | International Business Machines Corporation | Measuring and displaying facets in context-based conformed dimensional data gravity wells |
US8856946B2 (en) | 2013-01-31 | 2014-10-07 | International Business Machines Corporation | Security filter for context-based data gravity wells |
US9053102B2 (en) | 2013-01-31 | 2015-06-09 | International Business Machines Corporation | Generation of synthetic context frameworks for dimensionally constrained hierarchical synthetic context-based objects |
US9292506B2 (en) | 2013-02-28 | 2016-03-22 | International Business Machines Corporation | Dynamic generation of demonstrative aids for a meeting |
US9110722B2 (en) | 2013-02-28 | 2015-08-18 | International Business Machines Corporation | Data processing work allocation |
US10152526B2 (en) | 2013-04-11 | 2018-12-11 | International Business Machines Corporation | Generation of synthetic context objects using bounded context objects |
US9348794B2 (en) | 2013-05-17 | 2016-05-24 | International Business Machines Corporation | Population of context-based data gravity wells |
US9195608B2 (en) | 2013-05-17 | 2015-11-24 | International Business Machines Corporation | Stored data analysis |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US11119813B1 (en) * | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US10055808B1 (en) | 2017-01-23 | 2018-08-21 | Kinetica Db, Inc. | Distributed and parallelized visualization framework |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
RU2704735C1 (ru) * | 2019-03-11 | 2019-10-30 | федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный технический университет" | Пороговый модуль |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1394314A (zh) * | 2000-11-02 | 2003-01-29 | 索尼计算机娱乐公司 | 并行运算设备、娱乐设备、处理方法、计算机程序和半导体设备 |
US7523123B2 (en) * | 2006-11-16 | 2009-04-21 | Yahoo! Inc. | Map-reduce with merge to process multiple relational datasets |
CN101441557A (zh) * | 2008-11-08 | 2009-05-27 | 腾讯科技(深圳)有限公司 | 基于动态数据拆分的分布式并行计算的***及其方法 |
CN101582090A (zh) * | 2009-07-07 | 2009-11-18 | 北京黑米世纪信息技术有限公司 | 一种基于web分析的分布式处理方法和*** |
CN101847086A (zh) * | 2010-05-14 | 2010-09-29 | 清华大学 | 一种基于循环雅克比的实对称阵特征分解装置 |
US20100257198A1 (en) * | 2009-04-02 | 2010-10-07 | Greeenplum, Inc. | Apparatus and method for integrating map-reduce into a distributed relational database |
CN101980182A (zh) * | 2010-10-15 | 2011-02-23 | 清华大学 | 基于矩阵运算的并行计算方法 |
US20110066602A1 (en) * | 2009-09-16 | 2011-03-17 | Ab Initio Software Llc | Mapping dataset elements |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7756919B1 (en) | 2004-06-18 | 2010-07-13 | Google Inc. | Large-scale data processing in a distributed and parallel processing enviornment |
US9178935B2 (en) | 2009-03-05 | 2015-11-03 | Paypal, Inc. | Distributed steam processing |
US20100281078A1 (en) | 2009-04-30 | 2010-11-04 | Microsoft Corporation | Distributed data reorganization for parallel execution engines |
-
2011
- 2011-03-31 CN CN2011100796173A patent/CN102722412A/zh active Pending
-
2012
- 2012-03-28 US US13/432,080 patent/US9021500B2/en not_active Expired - Fee Related
- 2012-08-14 US US13/584,876 patent/US9021501B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1394314A (zh) * | 2000-11-02 | 2003-01-29 | 索尼计算机娱乐公司 | 并行运算设备、娱乐设备、处理方法、计算机程序和半导体设备 |
US7523123B2 (en) * | 2006-11-16 | 2009-04-21 | Yahoo! Inc. | Map-reduce with merge to process multiple relational datasets |
CN101441557A (zh) * | 2008-11-08 | 2009-05-27 | 腾讯科技(深圳)有限公司 | 基于动态数据拆分的分布式并行计算的***及其方法 |
US20100257198A1 (en) * | 2009-04-02 | 2010-10-07 | Greeenplum, Inc. | Apparatus and method for integrating map-reduce into a distributed relational database |
CN101582090A (zh) * | 2009-07-07 | 2009-11-18 | 北京黑米世纪信息技术有限公司 | 一种基于web分析的分布式处理方法和*** |
US20110066602A1 (en) * | 2009-09-16 | 2011-03-17 | Ab Initio Software Llc | Mapping dataset elements |
CN101847086A (zh) * | 2010-05-14 | 2010-09-29 | 清华大学 | 一种基于循环雅克比的实对称阵特征分解装置 |
CN101980182A (zh) * | 2010-10-15 | 2011-02-23 | 清华大学 | 基于矩阵运算的并行计算方法 |
Non-Patent Citations (1)
Title |
---|
DAWEI JIANG, ANTHONY K. H. TUNG, GANG CHEN: "Towards Scalable and Efficient Data Analysis on Large Clusters", 《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109325069A (zh) * | 2018-09-07 | 2019-02-12 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及网络设备 |
WO2022105743A1 (zh) * | 2020-11-19 | 2022-05-27 | 华为技术有限公司 | 一种算子计算方法、装置、设备及*** |
Also Published As
Publication number | Publication date |
---|---|
US20120254871A1 (en) | 2012-10-04 |
US9021500B2 (en) | 2015-04-28 |
US9021501B2 (en) | 2015-04-28 |
US20120311587A1 (en) | 2012-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102722412A (zh) | 组合计算装置和方法 | |
Chen et al. | Big data: A survey | |
Zhang et al. | PPHOPCM: Privacy-preserving high-order possibilistic c-means algorithm for big data clustering with cloud computing | |
Vossen | Big data as the new enabler in business and other intelligence | |
US9607331B2 (en) | Near-duplicate filtering in search engine result page of an online shopping system | |
US10997176B2 (en) | Massive time series correlation similarity computation | |
Hu et al. | Time-and cost-efficient task scheduling across geo-distributed data centers | |
Zhang et al. | A weighted kernel possibilistic c‐means algorithm based on cloud computing for clustering big data | |
Liu | Computing infrastructure for big data processing | |
Böse et al. | Beyond online aggregation: parallel and incremental data mining with online map-reduce | |
CN103970604A (zh) | 基于MapReduce架构实现图处理的方法和装置 | |
CN108268586B (zh) | 跨多数据表的数据处理方法、装置、介质和计算设备 | |
TW201740294A (zh) | 一種模型的訓練方法和裝置 | |
CN111914378B (zh) | 一种单振幅量子计算模拟方法及装置 | |
CN103514229A (zh) | 用于在分布式数据库***中处理数据库数据的方法和装置 | |
Mohbey et al. | The impact of big data in predictive analytics towards technological development in cloud computing | |
Senger et al. | BSP cost and scalability analysis for MapReduce operations | |
Misra et al. | Stark: Fast and scalable Strassen’s matrix multiplication using Apache Spark | |
US10013393B2 (en) | Parallel computer system, parallel computing method, and program storage medium | |
Huang et al. | Performance evaluation of enabling logistic regression for big data with R | |
CN103124273A (zh) | 基于用户行为分析的路径倒排表建立、匹配方法及*** | |
CN113157695B (zh) | 数据处理方法、装置、可读介质及电子设备 | |
US8775776B2 (en) | Hash table using hash table banks | |
García-Cortés | A novel recursive algorithm for the calculation of the detailed identity coefficients | |
CN110147804B (zh) | 一种不平衡数据处理方法、终端及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121010 |