CN102141995A - 简化并行计算系统中的传输的系统与方法 - Google Patents
简化并行计算系统中的传输的系统与方法 Download PDFInfo
- Publication number
- CN102141995A CN102141995A CN2010101049784A CN201010104978A CN102141995A CN 102141995 A CN102141995 A CN 102141995A CN 2010101049784 A CN2010101049784 A CN 2010101049784A CN 201010104978 A CN201010104978 A CN 201010104978A CN 102141995 A CN102141995 A CN 102141995A
- Authority
- CN
- China
- Prior art keywords
- index
- project
- unit
- corresponding relation
- parallel computation
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 title claims abstract description 22
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 241000404172 Minois dryas Species 0.000 description 7
- 230000009467 reduction Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000005094 computer simulation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种用于简化分布式并行计算系统中的传输的方法,所述分布式并行计算系统包括至少一个产生中间结果的并行计算单元,所述方法包括:识别输入到所述并行计算单元的数据中的至少一个项目;根据简化编码算法,建立所述至少一个项目与其索引之间的对应关系,所述索引的平均大小小于所述至少一个项目的平均大小;根据所述对应关系,将所述至少一个项目替换为其对应的索引;基于所述索引由所述并行计算单元产生简化的中间结果;以及传输所述简化的中间结果。本发明还提供了与上述方法对应的系统。通过这些系统和方法,并行计算系统中的中间结果得到简化,传输这些中间结果的IO消耗得到显著降低。
Description
技术领域
本发明涉及分布式并行计算系统,更具体而言,涉及分布式并行计算系统中传输的简化。
背景技术
信息技术的发展为人们提供了越来越丰富和强大的应用和服务,同时也对处理设备的运算能力提出了越来越高的要求。尽管处理器的运行速度也在不断提高,但是面对海量信息和数据,分布式并行计算成为一种实用的解决方式。
例如,在各种统计方法中都会涉及海量数据的处理。网页排名是一项基本的也是广泛采用的方法,用来评价网站或特定内容的状态。词频统计是示出人们关心的热门话题的另一个例子。此外,各种智能分析,包括用户行为分析、关系分析、推荐系统以及内容定制等等,都是基于大量的数据和信息。在以上这些例子中,处理系统的输入通常是一系列文件,例如web日志文件,其输出是从这些输入中提取出来的信息。对于商业网站来说,一天之中产生的日志文件就会超过1T字节(1000G)。这样的数据量几乎不可能通过传统方式进行处理。
为了进行大量数据的处理,提出了分布式并行计算,将一个处理任务分散到多个处理器中同时并行执行。目前,已经存在多种大规模并行计算的执行方式,其中最为重要和常用的是Google提出的MapReduce模型和Microsoft提出的Dryad模型。
MapReduce是一种简洁的并行计算模型,其名字源于这个模型中的两项核心操作:映射(Map)和规约(Reduce),这两个概念来自于函数式编程语言(Function Programming)。简单地说,Map是把一组数据一对一地映射为另外的一组数据,其映射的规则由用户定义的一个函数来指定。Reduce是根据用户定义的函数对一组数据进行合并和规约。在Map过程中,我们将数据并行,也就是将数据分开,而Reduce则把分开的数据合到了一起。换句话说,Map是一个分的过程,Reduce则对应着合,利用这一分一合,就可以将一个复杂庞大的任务分拆成许多个作业并行执行运算,然后对并行运算的结果进行综合,从而得到期望的结果。
图1示出现有技术MapReduce模型的基本架构的示意图。在图1所示的映射规约模型中,每个映射单元从对应的数据源读取键值(key,value)对形式的输入数据,根据用户定义的函数,将输入键值对映射为一组新的键值对,即图1中包含键1,键2,键3的键值对,称为中间键值对。映射单元通常将产生的中间键值对存储在其本地。之后,在规约阶段,将具有相同键的中间键值对发往相同的规约单元,由规约单元对结果进行综合。
下面结合一个例子说明映射和规约的过程。在这个例子中,需要完成的任务是在一个文档集合中统计每个单词出现的次数。对于这样的任务,可以将文档集合中的每个文档分配给一个映射单元。映射操作的输入是键值对形式的每一篇文档,映射内容可以是将输入文档中每一个单词的出现输出到中间文件中去。更具体地,可以如下设置输入键值对,其中键(key)对应于文档名称,值(value)对应于文档内容。进一步地,可以将映射函数定义为,对于值中的每个单词w,产生中间键值对(w,1)。基于此,如果某篇文档的内容是:“hello beijing,hello world”,那么得到的中间键值对就是(hello,1),(beijing,1),(hello,1),(world 1)。之后,在规约阶段,规约单元对单词和出现次数的序列进行处理和综合,得到最后的统计结果:(hello,2),(beijing,1),(world,1)。
与MapReduce相似,Dryad模型同样将一项任务分散到多个处理单元中进行运算。图2示出现有技术Dryad模型的基本架构的示意图。如图所示,输入文档被分散到多个计算单元,经过多个阶段的层层分拆,以及反向地层层合并,得到最后的处理结果。与图1的MapReduce模型相比,两者最大的不同在于,MapReduce模型是典型的两阶段处理过程,即映射阶段与规约阶段,而Dryad作业构建的执行流程图包含多个处理阶段。
不管是MapReduce模型,还是Dryad模型,或者是其他分布式并行计算方法,在不同处理阶段之间都需要进行中间结果的传输。以MapReduce为例,在映射阶段,映射单元会产生大量的中间键值对。这些中间键值对需要发送给适当的规约单元做进一步处理,这就产生了不同处理单元之间的I/O问题。由于中间键值对的数量非常庞大,传输这些数据往往要占用大量网络IO资源,降低并行计算的效率。以维基百科WikiPedia的所有单词的统计分析为例,采用MapReduce模型,利用1G共享网络的5台刀片机架进行处理。处理中可以检测到,在映射/规约阶段之间,每台机器的IO已经达到24MB/s,5台机器的网络IO总消耗达到约1Gb/s。如此庞大的网络IO消耗很容易成为整个并行计算的瓶颈,降低整个并行计算系统的性能。因此,希望提供一种方法,对现有的并行计算方式进行改进以降低IO消耗,提高计算性能。
发明内容
考虑到上述问题,指出本发明,旨在提供简化并行计算系统的IO传输的方案。
根据本发明第一方面,提供一种用于简化分布式并行计算系统中的传输的方法,所述分布式并行计算系统包括至少一个产生中间结果的并行计算单元,所述方法包括:识别输入到所述并行计算单元的数据中的至少一个项目;根据简化编码算法,建立所述至少一个项目与其索引之间的对应关系,所述索引的平均大小小于所述至少一个项目的平均大小;根据所述对应关系,将所述至少一个项目替换为其对应的索引;基于所述索引由所述并行计算单元产生简化的中间结果;以及传输所述简化的中间结果。
根据本发明第二方面,提供一种用于简化分布式并行计算系统中的传输的系统,所述分布式并行计算系统包括至少一个产生中间结果的并行计算单元,所述系统包括简化装置,包括:项目识别单元,配置用于识别输入到所述并行计算单元的数据中的至少一个项目;对应建立单元,配置用于根据简化编码算法,建立所述至少一个项目与其索引之间的对应关系,所述索引的平均大小小于所述至少一个项目的平均大小;项目替换单元,配置用于根据所述对应关系,将所述至少一个项目替换为其对应的索引,使得所述并行计算单元能够基于所述索引产生简化的中间结果,并由所述并行计算单元传输所述简化的中间结果。
利用本发明的方法和系统,使得分布式并行计算系统中的中间结果得到简化,从而有效缩减中间结果的传输所带来的IO问题,提高并行计算系统的总体效率。
附图说明
图1示出现有技术MapReduce模型的基本架构的示意图;
图2示出现有技术Dryad模型的基本架构的示意图;
图3示出根据本发明实施例的改进的并行计算系统的示意图;
图4示出根据本发明实施例的简化装置210的框图;
图5示出根据本发明实施例的复原装置230的框图;以及
图6示出根据本发明实施例的简化传输的方法流程图。
具体实施方式
下面参照附图,结合具体实施例对本发明进行描述。这样的描述仅仅出于说明目的,而不意图对本发明的范围进行限制。
图3示出根据本发明实施例的改进的并行计算系统的示意图。如图3所示,该改进的系统包括计算系统100和传输简化系统200。应该理解,所示出的计算系统100和传输简化系统200的划分和各自的结构仅仅出于功能示意的目的,而不对其实际的结构和物理平台有任何限制。在图3中,以MapReduce模型的结构为例图示了计算系统100。但是,可以理解,该计算系统100也可以采用其他的并行计算模型。具体地,在示出为MapReduce模型的计算系统100中,将输入的一项任务分为多个(在图3的例子中为两个)相对独立的作业,再将每个作业分散到多个映射操作单元中进行处理。这些映射操作单元按照用户定义的函数,将输入的键值对映射到中间键值对,产生大量中间结果。然后,这些中间结果被发送到对应的规约操作单元。规约操作单元于是将大量中间键值对进行规约与合并,并将合并的结果发送至综合单元。综合单元基于合并的结果产生最终结果,并响应于用户获得最终结果的请求,而将该最终结果呈现出来。可以理解,上述多个映射操作单元和多个规约操作单元可以在相同的或者多个不同的物理机或虚拟机中实现,以并行地执行所需处理。
本领域技术人员可以理解,MapReduce形式的计算系统100只是一个示例,计算系统100不限于使用MapReduce模型的计算系统。在其他并行计算模型中,例如Dryad模型中,计算系统100不限于映射和规约两阶段的处理,而是包含多个阶段的处理过程。为了表述的清楚并不失一般性,我们认为计算系统可能包含n个处理阶段,在各个阶段中都有多个处理单元来执行计算和处理,包括但不限于映射和规约操作。可以将这样的多个处理单元统称为并行计算单元。这些并行计算单元可以分布在多个计算机和处理器中。
为了解决计算系统100中不同阶段的并行计算单元之间(例如映射操作单元与规约操作单元之间)的IO问题,根据本发明一个实施例,为计算系统100提供了附加的传输简化系统200。如图3所示,传输简化系统200包含简化装置210,用于对并行计算单元的中间结果进行简化,从而缩减有待进行传输的中间结果的大小;中央字典库220,用于存储简化前后的对应关系;以及复原装置230,用于复原经过简化的处理结果。以下对传输简化系统200中的各个装置进行进一步详细描述。
图4示出根据本发明实施例的简化装置210的框图。如图所示,简化装置210包括:项目识别单元211,配置用于识别输入数据中的项目;对应建立单元212,配置用于根据简化编码算法,建立所述项目与索引之间的对应关系,所述索引的平均大小小于所述项目的平均大小;以及项目替换单元213,配置用于根据所述对应关系,将所述项目替换为所述索引,使得并行计算单元基于所述索引产生简化的中间结果。
结合MapReduce模型进一步说明简化装置210的配置与操作。在MapReduce并行计算系统的情况下,简化装置210可以设置在每个映射操作单元中。如上所述,映射操作单元获得键值对形式的输入数据,并根据定义的函数将输入键值对映射为中间键值对。例如,在背景技术中描述的用于统计单词出现次数的例子中,映射操作单元可以将输入的文档“hellobeijing,hello world”映射为多个中间键值对:(hello,1),(beijing,1),(hello,1),(world 1)。针对这样的例子,简化装置210可以对映射操作单元产生的中间键值对进行简化,缩减该中间结果的大小。
具体地,项目识别单元211识别输入数据中的项目,即输入键值对的内容。在上述单词统计的例子中,项目识别单元211识别输入文档中的每一个单词,该每一个单词成为一个输入项目。
接着,对应建立单元212根据特定的简化编码算法,建立项目与索引之间的对应关系,并使得项目的平均大小大于索引的平均大小。项目或索引的大小可以是其所占据的存储空间的大小、占用的传输带宽的大小等等。上述平均大小可以是根据项目和索引的形式和特点采用的数学平均、(根据出现频率的)加权平均等各种平均方式得到的平均大小。在项目和索引都是字符串形式的情况下,该大小对应于字符串的长度。也就是,在字符串的情况下,平均来说,索引的长度更短。在数据简化编码领域,通常会建立一个字典,包含多个条目,每一条目记录一个简化编码前的项目与简化编码后的索引之间的对应关系。因此,可以认为,该对应建立单元212配置用于根据一定的简化编码算法,构建压缩字典的条目。例如,在上述单词统计的例子中,对应建立单元212可以基于某种算法,将识别的项目“hello”映射为索引“11”,将项目“beijing”映射为“22”,将“world”映射为“33”。
在建立项目与索引之间的对应关系之后,对应建立单元212可以将这样的对应关系注册到中央字典库220。在一个实施例中,对应建立单元212对于新构建的每一个条目,都实时地将其注册到中央字典库220中。在另一个实施例中,对应建立单元212定时地执行条目的注册。为了避免重复构建条目,对应建立单元212对于识别的每一个项目,可以首先核查是否已经为该项目建立了对应关系,在尚未建立对应关系的情况下才构建新的条目。为了执行这样的核查,在一个实施例中,对应建立单元212到中央字典库220中进行查询,判断是否已经存在相应的条目。在另一个实施例中,对应建立单元212还将建立的对应关系存储在本地,首先核查本地存储的对应关系,以此加速上述核查过程。于是,在上面的例子中,在对应建立单元212针对第一个项目建立了“hello”与“11”的对应关系之后,就不必在再次遇到这个项目时重新建立对应关系的条目。
为了构建项目与“较短”的索引之间的对应关系,对应建立单元212可以采用多种简化编码算法,只要使得索引的平均大小小于项目的平均大小即可。在后文中会给出简化编码算法的举例。
在构建了项目与索引的对应关系之后,项目替换单元213就可以基于这样的对应关系,将映射操作单元所处理的项目替换为简化编码后的较短的索引,使得映射操作单元产生简化的中间键值对。这样的替换可以在映射操作执行之前或之后进行。在上述单词统计的例子中,根据一个实施例,项目替换单元213可以在执行映射操作、产生中间键值对(hello,1),(beijing,1),(hello,1),(world 1)之后进行项目的替换,从而将其转换为简化的中间键值对(11,1),(22,1)等。在另一个实施例中,项目替换单元213在识别输入项目之后、执行映射操作之前进行项目的替换,使得输入数据转变为“11 22,11 33”。于是,映射操作单元可以对该简化的输入项目执行映射操作,直接产生经过简化编码的中间键值对。
通过以上结合具体例子的描述可以看到,通过项目识别单元211、对应建立单元212和项目替换单元213的操作,简化装置210对映射操作单元产生的中间键值对进行了简化,极大地缩减了中间键值对的大小和所占空间。通常,映射操作单元会将产生的中间键值对存储在本地,并在需要的时候发送给适当的规约操作单元。因此,中间键值对的简化编码不仅节省了映射操作单元本地的存储空间,还减少了后续发送给规约操作单元时IO的压力。
虽然以上针对MapReduce模型并结合单词统计的具体例子描述了简化装置210,但是本领域技术人员能够理解,简化装置210可以类似地应用于其他计算任务和其他并行计算系统。对于如上所述的包含n个处理阶段的一般性的并行计算系统,简化装置210可以设置在计算系统的任何阶段的并行计算单元中,只要该并行计算单元产生中间结果,并且该中间结果有待在不同并行计算单元之间进行传输。在这种情况下,项目识别单元211识别输入到该并行计算单元中的数据中的项目,对应建立单元212根据特定简化编码算法,建立所述项目与索引之间的对应关系,项目替换单元213根据所述对应关系,将所述项目替换为所述索引,使得该并行计算单元产生经过简化的中间结果。由于并行计算单元得到的输入不限于键值对的形式,因此简化装置210根据输入数据的形式,对输入数据中各种存在简化可能的数据项目进行简化,而不限于上述例子中仅简化键值对中的键。由此,简化装置210实现了中间结果的简化,从而降低了并行计算系统中与中间结果传输相关的IO消耗。
如上所述,在简化装置210对中间结果进行简化的过程中,它产生了大量的简化前项目与简化后索引之间的对应关系,或称字典条目。简化装置210可以将这些字典条目注册到中央字典库220进行统一管理。
总体来说,中央字典库220用于存储简化前后的对应关系。典型地,中央字典库220以字典的形式来存储上述对应关系,该字典包括多个条目,每个条目记录一个项目与一个索引之间的对应,字典中多个项目的平均大小大于对应的多个索引的平均大小。中央字典库220中的条目可以来自于简化装置210。多个简化装置210可以同时向中央字典库220注册其构建的条目。在一个实施例中,中央字典库220是与简化装置210和复原装置230相独立的实体。简化装置210和复原装置230各自通过现有技术中已知的各种有线、无线通信方式与中央字典库220实现通信。
为了防止多个简化装置210同时注册可能引起的注册重复,在一个实施例中,中央字典库220还配置为在接收到新的字典条目注册时,检查是否已经注册有相同的条目。此外,简化装置210可能采用的各种简化编码算法具有不同的可能冲突率。为此,中央字典库220还配置为在接收到新的条目时,检查该新条目是否与已有条目相冲突,并在出现冲突的情况下,通知试图注册该新条目的简化装置210重新进行简化。由此,保证了原始项目与简化后的索引之间的唯一对应,使得该简化具有可恢复性。
进一步地,为了在读取处理结果时恢复数据,与简化装置210相对应地提供有复原装置230。图5示出根据本发明实施例的复原装置230的框图。如图5所示,复原装置230包括对应获取单元231和结果替换单元232。仍然以MapReduce模型为例描述该复原装置230。
在图3的MapReduce结构中,复原装置230可以设置在综合单元中,用于将经过简化的处理结果复原为原始结果。更具体地,在产生中间结果过程中,简化装置210建立原始项目与索引之间的对应关系,并根据该对应关系将数据中的项目替换成了较短的索引。对应地,在进行复原时,对应获取单元231首先获取上述原始项目与索引之间的对应关系,然后结果替换单元232根据获得的对应关系,将处理结果中的索引替换回原始项目,由此产生用户可读的处理结果。在一个实施例中,简化装置210将上述对应关系注册到了中央字典库中。相应地,对应获取单元231通过查阅中央字典库220中的条目,而获得原始项目与索引之间的对应关系。
在单词统计的例子中,映射操作单元通过简化装置210产生了简化的中间键值对(11,1),(22,1)等。通过规约操作单元对中间键值对的常规处理,综合单元于是将会得到这样的统计结果(11,2),(22,1),(33,1)。然而这样的结果对于用户来说是没有意义的。因此,在一个实施例中,一旦综合单元获得处理结果,复原装置230中的对应获取单元231就查阅中央字典库220,获得与处理结果相关的对应关系,并将这样的对应关系发送给结果替换单元232,结果替换单元232于是基于这样的对应关系执行替换,得到用户可读的处理结果(hello,2),(beijing,1),(world,1)。由于并行计算系统中最终获得的处理结果往往也很庞大,因此,在另一个实施例中,复原装置230响应于综合单元接收到的用户要求读取特定部分结果的请求来进行操作。在一个例子中,对应获取单元231响应于用户请求,获得用户请求中涉及的项目,通过查询中央字典库找到记录该项目的条目,得到该条目所记录的对应关系以及相应的索引,并将这样的信息发给结果替换单元232。结果替换单元232根据获得的索引,确定处理结果中与用户请求的特定部分结果相关的部分,并根据索引与项目的对应关系对这部分结果执行替换。例如,如果用户仅仅请求读取“hello”出现的次数,那么对应获取单元231首先基于“hello”在中央字典库中查找到“hello”与索引“11”的对应关系,获得索引“11”,然后结果替换单元232从处理结果中筛选出与索引“11”相关的结果作为用户请求的特定部分结果,并对这部分结果进行替换,也就是仅仅将处理结果中的(11,2)替换为(hello,2),并提供给用户。
类似地,在不同于MapReduce结构的其他并行计算系统中可以类似地设置复原装置。对于如上所述的包含n个处理阶段的一般性的并行计算系统,复原装置230可以设置在最后一阶段的计算单元中或专用于呈现结果的单元中。
如此,通过图3的传输简化系统200,在并行计算开始时将处理数据进行简化,在并行计算结束时将处理数据复原,使得整个并行计算过程中,在多个并行计算单元之间传输的中间结果的大小得到缩减,从而极大地减小了并行计算系统内、计算单元之间的IO消耗,有效解决现有技术中的IO瓶颈。可以理解,并行计算系统中中间结果的简化比例以及IO缩减的比例都取决于简化装置210所采用的简化编码算法。下面对该简化编码算法进行举例和描述。
为了实现数据简化编码,哈希算法是一种较为常用的方法。哈希算法是一类算法的统称,它将任意长度的二进制值根据特定的数学函数映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。较为完善的哈希算法能够使得,构造两个相互独立且具有相同哈希值的输入不能通过计算方法实现。哈希算法常用于身份认证、数字签名等操作。典型的哈希算法包括MD2、MD4、MD5和SHA-1。其中MD5是一种符合工业标准的单向128位哈希方案,它以结果唯一并且不能返回到其原始格式的方式来转换数据。
下面我们以并行计算中常遇到的单词统计问题为例,说明哈希算法在并行计算的中间结果简化编码中的可用性。
统计表明,日常生活中最为常用的英语单词只有2000个左右。我们假定,有待统计的文本中可能出现的单词个数为常用单词的100倍(实际上会远远低于该值),即2000×100=200,000。假定我们将每个单词哈希至4个字节大小,即32位,那么可能存储的单词数目为4,294,967,296个。这意味着,用4个字节存储可能出现的200,000个单词的稀疏度为4.6566e-5,平均的冲突率小于2e-9。如果在设计哈希算法时进一步考虑字母的分布规律,那么冲突率可以进一步降低。如此低的冲突率足以使得这样的简化编码能够保证编码前后的唯一对应。以维基百科的单词量为例,2008年11月英文版维基百科所有单词的总数为35M,占用的总空间大小为211MB,平均每个单词6个字节。将所有单词哈希至4个字节,仍然用5台刀片机架进行处理,那么可以看到,每台机器的平均IO从原来的25MB/s(见背景技术部分中的举例)降至19MB/s。如果简化的对象是并行计算中常常遇到网页URL,那么简化效率将更加可观。URL的平均长度为95字节,通过将这样的URL哈希至4个字节,可以将IO流量降低为原来的10%。在基本哈希算法的基础上,还可以根据需要采用阶跃哈希,以进一步优化简化编码的结果。
采用哈希算法的另一个优势是计算资源的复用。实际上,在现有的MapReduce并行计算系统中,在映射阶段产生大量中间键值。在规约阶段,由特定的管理机(master)或由某个规约操作单元充当这样的管理机来负责中间键值对的“路由”,以使得来自多个映射操作单元的“键”相同的键值对被发往同一规约操作单元。为了实现这样的“路由”,规约阶段中通常仍然需要将这些键值对中的键进行哈希,据此对这些键值对进行分组,基于该分组来确定哪个键值对应该发往哪个规约操作单元以进行进一步处理。而在本发明的实施例中,在映射操作阶段已经用哈希算法对中间键值对进行了简化,潜在地对中间键值对进行了分组,那么在规约阶段就可以直接复用哈希的结果,而不必再次进行哈希运算。因此,在映射操作阶段进行中间键值对的哈希简化使得计算资源得到复用,进一步提高了MapReduce并行计算系统的运行效率。在其他并行计算系统中,也存在中间结果的“路由”传输问题。可以类似地基于中间结果的简化编码来对中间结果进行分组传输。
如上所述,哈希算法是将输入序列映射为固定长度的索引的过程。然而,在其他简化编码算法中,索引的长度并不必然是固定的。在一种简化编码算法中,将出现频率较高的序列映射为长度较短的索引,将出现频率较低的序列映射为长度较长的索引。在这种方法中,索引的长度并不固定,并且并不保证每个序列的长度都必然地大于其对应的索引的长度。但是,以出现频率为权重进行平均之后可以使得简化编码后的索引的平均长度要远远小于序列的长度,从而起到灵活编码的作用。除了根据数学函数来执行映射的哈希算法之外,还可以通过其他映射方法来对输入序列进行简化,例如人为规定输入序列与索引之间的对应关系。这类方法可以称为类哈希算法。
本领域技术人员可以理解,除了以上描述的编码算法之外,还可以根据并行计算单元中输入数据的格式、内容等特点,采用其他简化编码方法,只要使得简化前后的项目和索引保持足够良好的唯一对应关系,且索引的平均大小小于项目的平均大小。
通过以上描述的简化装置210,中央字典库220和复原装置230所构成的系统200,分布式并行计算系统中的IO消耗大为减小,处理瓶颈得到解除,处理效率得到提高。
基于同一发明构思,本发明还提供了对应的简化并行计算系统中的传输的方法。
图6示出根据本发明实施例的用于简化分布式并行计算系统中的传输的方法,所述分布式并行计算系统包括至少一个产生中间结果的并行计算单元。如图所示,该方法包括以下步骤。在步骤601,识别输入到所述并行计算单元的数据中的至少一个项目;在步骤602,根据简化编码算法,建立所述至少一个项目与其索引之间的对应关系,所述索引的平均大小小于所述至少一个项目的平均大小;之后,在步骤603,根据所述对应关系,将所述至少一个项目替换为其对应的索引;由此,在步骤604,基于所述索引由所述并行计算单元产生简化的中间结果;之后,在步骤605,传输所述简化的中间结果。通过这样的过程,并行计算系统中的中间结果的传输得到简化。
进一步地,与上述简化相对应,本发明的方法还包括复原处理结果的步骤。具体地,上述方法还可以包括如下步骤:获取所述项目与索引之间的对应关系;然后,根据所述对应关系,将基于所述简化的中间结果而获得的处理结果中的所述索引替换为其对应的项目。通过这样的步骤,并行计算系统的处理结果得到复原,成为用户可读的处理结果。
由于上述传输简化方法执行的原理和方式与前述对图4和图5的装置描述相对应,因此不再赘述。
本领域技术人员可以理解,上述简化中间结果、复原处理结果的装置及方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本实施例的系统、装置及其单元可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。
虽然以上结合具体实施例,对本发明的提供动态帮助信息的方法和系统进行了详细描述,但本发明并不限于此。本领域普通技术人员能够在说明书教导之下对本发明进行多种变换、替换和修改而不偏离本发明的精神和范围。应该理解,所有这样的变化、替换、修改仍然落入本发明的保护范围之内。本发明的保护范围由所附权利要求来限定。
Claims (20)
1.一种用于简化分布式并行计算系统中的传输的方法,所述分布式并行计算系统包括至少一个产生中间结果的并行计算单元,所述方法包括:
识别输入到所述并行计算单元的数据中的至少一个项目;
根据简化编码算法,建立所述至少一个项目与其索引之间的对应关系,所述索引的平均大小小于所述至少一个项目的平均大小;
根据所述对应关系,将所述至少一个项目替换为其对应的索引;
基于所述索引由所述并行计算单元产生简化的中间结果;以及
传输所述简化的中间结果。
2.根据权利要求1的方法,其中所述分布式并行计算系统是采用MapReduce模型的计算系统,所述并行计算单元是映射操作单元。
3.根据权利要求1的方法,还包括:将所述对应关系注册到中央字典库。
4.根据权利要求1的方法,还包括:将所述对应关系存储在所述并行计算单元本地。
5.根据权利要求1的方法,其中所述简化编码算法包括哈希算法。
6.根据权利要求1的方法,其中所述替换的步骤包括:在所述并行计算单元执行并行计算之前,将所述至少一个项目替换为其对应的索引。
7.根据权利要求1的方法,还包括:
获取所述项目与索引之间的对应关系;以及
根据所述对应关系,将基于所述简化的中间结果而获得的处理结果中的所述索引替换为其对应的项目。
8.根据权利要求7的方法,其中所述获取对应关系的步骤包括:通过查询中央字典库中的条目而获得所述对应关系。
9.根据权利要求7的方法,其中所述获取对应关系的步骤包括:响应于用户对部分结果的请求,基于该部分结果所涉及的部分项目获得与所述部分项目相关联的部分对应关系以及与所述部分项目相对应的部分索引。
10.根据权利要求9的方法,其中所述替换步骤包括:根据所述部分索引在处理结果中获得与所请求的部分结果相关的部分数据,并根据所述部分对应关系将所述部分数据中的部分索引替换为对应的部分项目。
11.一种用于简化分布式并行计算系统中的传输的系统,所述分布式并行计算系统包括至少一个产生中间结果的并行计算单元,所述系统包括简化装置,包括:
项目识别单元,配置用于识别输入到所述并行计算单元的数据中的至少一个项目;
对应建立单元,配置用于根据简化编码算法,建立所述至少一个项目与其索引之间的对应关系,所述索引的平均大小小于所述至少一个项目的平均大小;以及
项目替换单元,配置用于根据所述对应关系,将所述至少一个项目替换为其对应的索引,使得所述并行计算单元能够基于所述索引产生简化的中间结果,并由所述并行计算单元传输所述简化的中间结果。
12.根据权利要求11的系统,其中所述分布式并行计算系统是采用MapReduce模型的计算系统,所述并行计算单元是映射操作单元。
13.根据权利要求11的系统,其中所述对应建立单元还配置为,将所述对应关系注册到中央字典库。
14.根据权利要求11的系统,其中所述对应建立单元还配置为,将所述对应关系存储在所述并行计算单元本地。
15.根据权利要求11的系统,其中所述简化编码算法包括哈希算法。
16.根据权利要求11的系统,其中所述项目替换单元进一步配置为,在所述并行计算单元执行并行计算之前,将所述至少一个项目替换为其对应的索引。
17.根据权利要求11的系统,还包括复原装置,所述复原装置包括:
对应获取单元,配置用于获取所述项目与索引之间的对应关系;以及
结果替换单元,配置用于根据所述对应关系,将基于所述简化的中间结果而获得的处理结果中的所述索引替换为其对应的项目。
18.根据权利要求17的系统,其中所述对应获取单元配置为通过查询中央字典库中的条目而获得所述对应关系。
19.根据权利要求17的系统,其中所述对应获取单元配置为,响应于用户对部分结果的请求,基于该部分结果所涉及的部分项目获得与所述部分项目相关联的部分对应关系以及与所述部分项目相对应的部分索引。
20.根据权利要求19的系统,其中所述结果替换单元配置为,根据所述部分索引在处理结果中获得与所请求的部分结果相关的部分数据,并根据所述部分对应关系将所述部分数据中的部分索引替换为对应的部分项目。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101049784A CN102141995B (zh) | 2010-01-29 | 2010-01-29 | 简化并行计算系统中的传输的系统与方法 |
US13/016,044 US8344916B2 (en) | 2010-01-29 | 2011-01-28 | System and method for simplifying transmission in parallel computing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101049784A CN102141995B (zh) | 2010-01-29 | 2010-01-29 | 简化并行计算系统中的传输的系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102141995A true CN102141995A (zh) | 2011-08-03 |
CN102141995B CN102141995B (zh) | 2013-06-12 |
Family
ID=44409521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101049784A Expired - Fee Related CN102141995B (zh) | 2010-01-29 | 2010-01-29 | 简化并行计算系统中的传输的系统与方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8344916B2 (zh) |
CN (1) | CN102141995B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260324A (zh) * | 2015-10-14 | 2016-01-20 | 北京百度网讯科技有限公司 | 用于分布式缓存系统的键值对数据操作方法和装置 |
CN106227881A (zh) * | 2016-08-04 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
CN107180017A (zh) * | 2016-03-11 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种样本序列化方法和装置 |
CN108090358A (zh) * | 2017-12-28 | 2018-05-29 | 哈尔滨安天科技股份有限公司 | 一种防御哈希碰撞躲避反病毒检测的方法及系统 |
CN110851433A (zh) * | 2018-07-27 | 2020-02-28 | 武汉斗鱼网络科技有限公司 | 键值存储系统键优化方法、存储介质、电子设备及系统 |
CN111858017A (zh) * | 2019-04-30 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于处理任务的方法、设备和计算机程序产品 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590620B1 (en) | 2004-06-18 | 2009-09-15 | Google Inc. | System and method for analyzing data records |
US7756919B1 (en) | 2004-06-18 | 2010-07-13 | Google Inc. | Large-scale data processing in a distributed and parallel processing enviornment |
US11048765B1 (en) | 2008-06-25 | 2021-06-29 | Richard Paiz | Search engine optimizer |
US8510538B1 (en) | 2009-04-13 | 2013-08-13 | Google Inc. | System and method for limiting the impact of stragglers in large-scale parallel data processing |
US8918388B1 (en) * | 2010-02-26 | 2014-12-23 | Turn Inc. | Custom data warehouse on top of mapreduce |
US8863146B1 (en) * | 2011-04-07 | 2014-10-14 | The Mathworks, Inc. | Efficient index folding using indexing expression generated using selected pair of indices for parallel operations based on the number of indices exceeding a pre-determined threshold |
KR20130024996A (ko) * | 2011-08-24 | 2013-03-11 | 한국전자통신연구원 | 멀티캐스트 환경에서 싱글 버퍼 해시를 이용한 소스 인증 방법 및 장치 |
US8938416B1 (en) | 2012-01-13 | 2015-01-20 | Amazon Technologies, Inc. | Distributed storage of aggregated data |
US9009155B2 (en) * | 2012-04-27 | 2015-04-14 | Sap Se | Parallel set aggregation |
US20140059552A1 (en) * | 2012-08-24 | 2014-02-27 | International Business Machines Corporation | Transparent efficiency for in-memory execution of map reduce job sequences |
US8875227B2 (en) * | 2012-10-05 | 2014-10-28 | International Business Machines Corporation | Privacy aware authenticated map-reduce |
CN103106253B (zh) * | 2013-01-16 | 2016-05-04 | 西安交通大学 | 一种MapReduce计算模型中基于遗传算法的数据平衡方法 |
WO2014117295A1 (en) * | 2013-01-31 | 2014-08-07 | Hewlett-Packard Development Company, L.P. | Performing an index operation in a mapreduce environment |
US11809506B1 (en) | 2013-02-26 | 2023-11-07 | Richard Paiz | Multivariant analyzing replicating intelligent ambience evolving system |
US11741090B1 (en) | 2013-02-26 | 2023-08-29 | Richard Paiz | Site rank codex search patterns |
KR102250137B1 (ko) * | 2013-11-08 | 2021-05-11 | 한국전자통신연구원 | 정보 제공 시스템 및 방법 |
US9773210B2 (en) * | 2013-11-08 | 2017-09-26 | Electronics And Telecommunications Research Institute | System and method for providing information |
CN103970874A (zh) * | 2014-05-14 | 2014-08-06 | 浪潮(北京)电子信息产业有限公司 | 一种实现Hadoop文件处理的方法及装置 |
US20160092493A1 (en) * | 2014-09-29 | 2016-03-31 | International Business Machines Corporation | Executing map-reduce jobs with named data |
CN106202092B (zh) * | 2015-05-04 | 2020-03-06 | 阿里巴巴集团控股有限公司 | 数据处理的方法及系统 |
CN104866605A (zh) * | 2015-06-03 | 2015-08-26 | 江苏马上游科技股份有限公司 | 一种基于MapReduce框架的物联网系统 |
US10410018B2 (en) | 2015-06-29 | 2019-09-10 | PeerNova, Inc. | Cryptographic assurances of data integrity for data crossing trust boundaries |
CN108037925A (zh) * | 2017-12-25 | 2018-05-15 | 首都师范大学 | 程序分析信息并行提取方法及装置 |
RU2685018C1 (ru) * | 2018-04-24 | 2019-04-16 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ распараллеливания программ в вычислительной системе |
RU2704533C1 (ru) * | 2019-01-28 | 2019-10-29 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ распараллеливания программ в среде агентно-ориентированного программирования в вычислительной системе |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070038659A1 (en) * | 2005-08-15 | 2007-02-15 | Google, Inc. | Scalable user clustering based on set similarity |
US20080098370A1 (en) * | 2006-10-20 | 2008-04-24 | Marcus Felipe Fontoura | Formal Language and Translator for Parallel Processing of Data |
CN101183368A (zh) * | 2007-12-06 | 2008-05-21 | 华南理工大学 | 联机分析处理中分布式计算及查询海量数据的方法和系统 |
CN101403978A (zh) * | 2007-10-01 | 2009-04-08 | 埃森哲环球服务有限公司 | 用于机器集群的并行编程的基础构造 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742806A (en) | 1994-01-31 | 1998-04-21 | Sun Microsystems, Inc. | Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system |
US6480125B2 (en) * | 2000-06-09 | 2002-11-12 | Seagate Technology Llc | Method and apparatus for efficient encoding of large data words at high code rates |
US6928428B1 (en) | 2000-11-27 | 2005-08-09 | Microsoft Corporation | Distributed confidential contextual querying |
WO2003048961A1 (en) * | 2001-12-04 | 2003-06-12 | Powerllel Corporation | Parallel computing system, method and architecture |
US8201142B2 (en) * | 2006-09-29 | 2012-06-12 | Microsoft Corporation | Description language for structured graphs |
US7779047B2 (en) * | 2007-06-22 | 2010-08-17 | International Business Machines Corporation | Pluggable merge patterns for data access services |
US8209664B2 (en) * | 2009-03-18 | 2012-06-26 | Microsoft Corporation | High level programming extensions for distributed data parallel processing |
US20100281078A1 (en) * | 2009-04-30 | 2010-11-04 | Microsoft Corporation | Distributed data reorganization for parallel execution engines |
-
2010
- 2010-01-29 CN CN2010101049784A patent/CN102141995B/zh not_active Expired - Fee Related
-
2011
- 2011-01-28 US US13/016,044 patent/US8344916B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070038659A1 (en) * | 2005-08-15 | 2007-02-15 | Google, Inc. | Scalable user clustering based on set similarity |
US20080098370A1 (en) * | 2006-10-20 | 2008-04-24 | Marcus Felipe Fontoura | Formal Language and Translator for Parallel Processing of Data |
CN101403978A (zh) * | 2007-10-01 | 2009-04-08 | 埃森哲环球服务有限公司 | 用于机器集群的并行编程的基础构造 |
CN101183368A (zh) * | 2007-12-06 | 2008-05-21 | 华南理工大学 | 联机分析处理中分布式计算及查询海量数据的方法和系统 |
Non-Patent Citations (1)
Title |
---|
JEFFREY DEAN,ET AL: "MapReduce: Simplified Data Processing on Large Clusters", 《COMMUNICATIONS OF THE ACM》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260324A (zh) * | 2015-10-14 | 2016-01-20 | 北京百度网讯科技有限公司 | 用于分布式缓存系统的键值对数据操作方法和装置 |
CN105260324B (zh) * | 2015-10-14 | 2018-12-07 | 北京百度网讯科技有限公司 | 用于分布式缓存系统的键值对数据操作方法和装置 |
CN107180017A (zh) * | 2016-03-11 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种样本序列化方法和装置 |
CN106227881A (zh) * | 2016-08-04 | 2016-12-14 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器 |
CN108090358A (zh) * | 2017-12-28 | 2018-05-29 | 哈尔滨安天科技股份有限公司 | 一种防御哈希碰撞躲避反病毒检测的方法及系统 |
CN108090358B (zh) * | 2017-12-28 | 2021-07-20 | 哈尔滨安天科技集团股份有限公司 | 一种防御哈希碰撞躲避反病毒检测的方法及系统 |
CN110851433A (zh) * | 2018-07-27 | 2020-02-28 | 武汉斗鱼网络科技有限公司 | 键值存储系统键优化方法、存储介质、电子设备及系统 |
CN110851433B (zh) * | 2018-07-27 | 2022-06-17 | 武汉斗鱼网络科技有限公司 | 键值存储系统键优化方法、存储介质、电子设备及系统 |
CN111858017A (zh) * | 2019-04-30 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于处理任务的方法、设备和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US8344916B2 (en) | 2013-01-01 |
US20110208947A1 (en) | 2011-08-25 |
CN102141995B (zh) | 2013-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102141995B (zh) | 简化并行计算系统中的传输的系统与方法 | |
US8959138B2 (en) | Distributed data scalable adaptive map-reduce framework | |
US9367359B2 (en) | Optimized resource management for map/reduce computing | |
CN105339924A (zh) | 作为服务的有效数据压缩和分析 | |
CN103473121A (zh) | 一种基于云计算平台的海量图片并行处理方法 | |
US11087026B2 (en) | Data protection based on earth mover's distance | |
Bagui et al. | Positive and negative association rule mining in Hadoop’s MapReduce environment | |
Siddiqui et al. | Pseudo-cache-based IoT small files management framework in HDFS cluster | |
Sun et al. | Gradientflow: Optimizing network performance for large-scale distributed dnn training | |
CN110147507A (zh) | 一种获取短链接地址的方法、装置及服务器 | |
CN114844792A (zh) | 基于lua语言的动态监控方法、装置、设备及存储介质 | |
CN112235409A (zh) | 文件上传方法、装置、电子设备及计算机可读存储介质 | |
Tiwary et al. | Efficient implementation of apriori algorithm on HDFS using GPU | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN111143461A (zh) | 映射关系处理系统、方法和电子设备 | |
US11042530B2 (en) | Data processing with nullable schema information | |
CN116150185A (zh) | 基于人工智能的数据标准提取方法、装置、设备及介质 | |
Sridhar et al. | A study of big data analytics in clouds with a security perspective | |
US11182359B2 (en) | Data deduplication in data platforms | |
CN113946617A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112363992A (zh) | 一种基于人工智能的大数据访问方法及系统 | |
Gao et al. | A parallel method for unpacking original high speed rail data based on mapreduce | |
Yu | Unbalanced Big Data‐Compatible Cloud Storage Method Based on Redundancy Elimination Technology | |
Godase et al. | Security and privacy issues of big data in cloud computing | |
Jiang et al. | Basics of Distributed Machine Learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
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: 20130612 |