CN102831102A - 一种在计算机集群上进行矩阵乘积运算的方法和系统 - Google Patents
一种在计算机集群上进行矩阵乘积运算的方法和系统 Download PDFInfo
- Publication number
- CN102831102A CN102831102A CN2012102669406A CN201210266940A CN102831102A CN 102831102 A CN102831102 A CN 102831102A CN 2012102669406 A CN2012102669406 A CN 2012102669406A CN 201210266940 A CN201210266940 A CN 201210266940A CN 102831102 A CN102831102 A CN 102831102A
- Authority
- CN
- China
- Prior art keywords
- matrix
- key
- value pair
- task
- result
- 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
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供了一种在计算机集群上进行矩阵乘积运算的方法和装置,所述计算机集群上部署有分布式文件系统、用来执行映射Map任务和化简Reduce任务的多个计算节点,其中的方法具体包括:在所述多个计算节点上执行第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务;其中,所述第一Map任务进行第一处理得到相应的第一键值对结果;所述第一Reduce任务对第一键值对结果中相同主键的键值进行聚合;第二Map任务识别得到第一矩阵和第二矩阵的元素,并进行两两组合求乘积运算,得到第二键值对结果;第二Reduce任务对所述第二键值对结果中相同主键的键值进行求和。本发明能够提高矩阵乘积的运算速度。
Description
技术领域
本申请涉及计算机并行运算技术领域,特别是涉及一种在计算机集群上进行矩阵乘积运算的方法和系统。
背景技术
目前,随着高性能应用和运算需求的迅猛发展,单台计算机已经不能解决一些超大规模应用问题,如空间连接、多个数据集的最近邻查询等。这就需要将多台计算机资源联合起来,构成计算机集群,共同解决大规模应用问题。海盗(Hadoop)就是这样一个分布式系统的集群架构,可以实现高效率的并行计算和海量存储。
Hadoop由许多元素构成,其最底部是海盗分布式文件系统(HadoopDistributed File System,HDFS),它存储Hadoop集群中所有存储节点上的文件;HDFS的上一层是映射化简(MapReduce)引擎,MapReduce引擎是一个分布式计算框架,用于数据分析处理。主键-键值(key-value)存储可以为HDFS元数据存储管理带来更好的扩展性,故在Hadoop中常用于存储运算中的中间数据或结果数据。
用计算机对大规模矩阵进行运算在工程和科学运算中有着广泛应用,例如在算法中动态规划优化、图邻接矩阵的最小最大边路径问题、数据处理中变量的映射和关联等应用领域均需要进行矩阵乘积的运算。
现有技术一种在Hadoop上进行矩阵乘积运算的方法,其通过对矩阵进行分块将矩阵乘积运算分割成多个子运算,最后将多个子运算的结果合并处理成最终的乘积矩阵,参照图1所示的流程示意图,该方法具体可以包括作业1(job1)和作业2(job2);其中,
在job1的Map任务阶段,分别以矩阵1和矩阵2的列坐标和行坐标为主键(key)标记元素;
在job1的Reduce任务阶段,对key相同的矩阵1和矩阵2中的元素两两组合求乘积;
在job2的Map任务阶段,对key相同的元素求和得到乘积矩阵中的元素;
在job2的Reduce任务阶段,将乘积矩阵中的元素输出至HDFS。
在MapReduce引擎中,Reduce任务数通常为0.95或者1.75×计算节点数×Mapred.tasktracker.tasks.maximum,其中,计算节点(Computer Nodes)相当于Hadoop的服务器主机(Host),其上通常部署有多个任务追踪器(tasktracker)节点,一个tasktracker节点可用于执行一个Map/Reduce任务,Mapred.tasktracker.Map.tasks.maximum通常设置为计算节点的cpu核数目减1,如果计算节点的Host为8核,则Reduce任务数为6.65或者12.25*计算节点数,也即,Reduce任务数是有限的;这样,在矩阵规模比较大时,在job1的Reduce任务阶段,需要用有限的任务数完成大量的两矩阵元素两两组合并求乘积的运算,这个过程十分耗时,成为整个矩阵乘积运算速度的瓶颈。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提高矩阵乘积的运算速度。
发明内容
本申请所要解决的技术问题是提供一种在计算机集群上进行矩阵乘积运算的方法和系统,能够提高矩阵乘积的运算速度。
为了解决上述问题,本申请公开了一种在计算机集群上进行矩阵乘积运算的方法,所述计算机集群上部署有分布式文件系统、用来执行映射Map任务和化简Reduce任务的多个计算节点,所述方法包括:在所述多个计算节点上执行第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务;其中,
所述第一Map任务从分布式文件系统读取第一矩阵和第二矩阵的行数据,并对所述行数据进行第一处理得到相应的第一键值对结果,并输出;
所述第一Reduce任务对所述第一键值对结果中相同主键的键值进行聚合,并将相应的聚合结果输出至分布式文件系统;
所述第二Map任务从分布式文件系统读取所述聚合结果,从所述聚合结果中识别得到第一矩阵和第二矩阵的元素,并对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算,将运算得到的第二键值对结果进行输出;其中,所述第二键值对结果的主键为乘积矩阵元素的行列号,键值为乘积矩阵元素的值;
所述第二Reduce任务对所述第二键值对结果中相同主键的键值进行求和,并将相应的求和结果作为乘积矩阵元素的值输出至分布式文件系统。
优选的,所述第一矩阵对应的第一键值对结果的键值包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值包括第二标识、列坐标和元素值;
则所述从所述聚合结果中识别得到第一矩阵和第二矩阵的元素的步骤进一步包括:
针对所述聚合结果中的键值,如果其包括第一标识则从中获取第一矩阵的元素,如果其包括第二标识则从中获取第二矩阵的元素。
优选的,所述第一矩阵对应的第一键值对结果的键值包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值包括第二标识、列坐标和元素值;
则所述对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算的步骤进一步包括:
以所述第一矩阵的元素对应的行坐标为关键字,将所述第一矩阵的元素存放至第一存储结构;
以所述第二矩阵的元素对应的列坐标为关键字,将所述第二矩阵的元素存放至第二存储结构;
对所述第一存储结构和第二存储结构中的元素进行两两组合求乘积运算,得到相应的第二键值对结果,其中,以两个元素对应的关键字共同作为所述第二键值对结果的主键,以两个元素的乘积作为所述第二键值对结果的键值。
优选的,所述从分布式文件系统读取第一矩阵和第二矩阵的行数据的步骤进一步包括:
每读入一行数据,获取分布式文件系统的环境变量,并依据该环境变量确定该行数据来自第一矩阵还是第二矩阵。
优选的,所述对所述行数据进行第一处理得到相应的第一键值对结果的步骤进一步包括:
针对第一矩阵的行数据中的元素,以其列坐标为主键,以其第一标识、行坐标和元素值为键值;
针对第二矩阵的行数据中的元素,以其行坐标为主键,以其第二标识、列坐标和元素值为键值;所述第一键值对结果中存储有第一矩阵和第二矩阵的主键和键值。
优选的,所述计算机集群上还部署有作业服务器,所述作业服务器用于将所述第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务分配到所述多个计算节点;
则所述方法还包括:
在所述多个计算节点上执行所述作业服务器分配的第一Map任务;
在所述多个计算节点上执行所述作业服务器分配的第一Reduce任务;
在所述多个计算节点上执行所述作业服务器分配的第二Map任务;
在所述多个计算节点上执行所述作业服务器分配的第二Reduce任务。
另一方面,本申请还提供了一种在计算机集群上进行矩阵乘积运算的装置,所述计算机集群上部署有分布式文件系统、用来执行映射Map任务和化简Reduce任务的多个计算节点,所述装置包括:
第一Map任务执行模块,用于在所述多个计算节点上执行第一Map任务;所述第一Map任务从分布式文件系统读取第一矩阵和第二矩阵的行数据,并对所述行数据进行第一处理得到相应的第一键值对结果,并输出;
第一Reduce任务执行模块,用于在所述多个计算节点上执行第一Reduce任务;所述第一Reduce任务对所述第一键值对结果中相同主键的键值进行聚合,并将相应的聚合结果输出至分布式文件系统;
第二Map任务执行模块,用于在所述多个计算节点上执行第二Map任务;所述第二Map任务从分布式文件系统读取所述聚合结果,从所述聚合结果中识别得到第一矩阵和第二矩阵的元素,并对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算,将运算得到的第二键值对结果进行输出;其中,所述第二键值对结果的主键为乘积矩阵元素的行列号,键值为乘积矩阵元素的值;及
第二Reduce任务执行模块,用于在所述多个计算节点上执行第一Reduce任务;所述第二Reduce任务对所述第二键值对结果中相同主键的键值进行求和,并将相应的求和结果作为乘积矩阵元素的值输出至分布式文件系统。
优选的,所述第一矩阵对应的第一键值对结果的键值包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值包括第二标识、列坐标和元素值;
则所述第二Map任务执行模块进一步包括:
识别模块,用于针对所述聚合结果中的键值,如果其包括第一标识则从中获取第一矩阵的元素,如果其包括第二标识则从中获取第二矩阵的元素。
优选的,所述第一矩阵对应的第一键值对结果的键值包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值包括第二标识、列坐标和元素值;
则所述第二Map任务执行模块进一步包括:
第一存储模块,用于以所述第一矩阵的元素对应的行坐标为关键字,将所述第一矩阵的元素存放至第一存储结构;
第二存储模块,用于以所述第二矩阵的元素对应的列坐标为关键字,将所述第二矩阵的元素存放至第二存储结构;
两两组合求乘积运算模块,用于对所述第一存储结构和第二存储结构中的元素进行两两组合求乘积运算,得到相应的第二键值对结果,其中,以两个元素对应的关键字共同作为所述第二键值对结果的主键,以两个元素的乘积作为所述第二键值对结果的键值。
优选的,所述第一Map任务执行模块进一步包括:
数据判定模块,用于每读入一行数据,获取分布式文件系统的环境变量,并依据该环境变量确定该行数据来自第一矩阵还是第二矩阵。
优选的,所述第一Map任务执行模块进一步包括:
第一键值对获取模块,用于针对第一矩阵的行数据中的元素,以其列坐标为主键,以其第一标识、行坐标和元素值为键值;
第二键值对获取模块,用于针对第二矩阵的行数据中的元素,以其行坐标为主键,以其第二标识、列坐标和元素值为键值;所述第一键值对结果中存储有第一矩阵和第二矩阵的主键和键值。
优选的,所述计算机集群上还部署有作业服务器,所述作业服务器用于将所述第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务分配到所述多个计算节点;
则所述第一Map任务执行模块,还用于在所述多个计算节点上执行所述作业服务器分配的第一Map任务;
所述第一Reduce任务执行模块,还用于在所述多个计算节点上执行所述作业服务器分配的第一Reduce任务;
所述第一Map任务执行模块,还用于在所述多个计算节点上执行所述作业服务器分配的第二Map任务;
所述第二Reduce任务执行模块,还用于在所述多个计算节点上执行所述作业服务器分配的第二Reduce任务。
与现有技术相比,本申请具有以下优点:
本申请将比较耗时的两矩阵元素两两组合并求乘积的运算从Reduce任务调整至Map任务,利用Map任务的并行度可设置为远大于Reduce任务的并行度的优势,能够有效地提高两矩阵元素两两组合并求乘积的运算的速度,从而能够大幅度地提高整个矩阵乘积的运算速度;由于计算机集群上部署有用来执行Map任务和Reduce任务的多个计算节点,一个计算节点上部署有多个tasktracker节点,一个tasktracker节点可用于执行一个Map/Reduce任务;在实际应用中,可以通过调整数据块block的大小来调整Map任务的并行度。其中,Map任务的并行度与所使用的计算节点上部署的tasktracker节点的数目相应,故分配较多的计算节点或者,在计算节点上部署较多的tasktracker节点来执行Map任务均可实现Map任务的较多的并行度。
附图说明
图1是现有技术一种在Hadoop上进行矩阵乘积运算的方法流程图;
图2是本申请一种在计算机集群上进行矩阵乘积运算的方法实施例的流程图;
图3是本申请一种job1的简要处理流程;
图4是本申请一种job1的详细处理流程;
图5是本申请一种job2的简要处理流程;
图6是本申请一种job1的详细处理流程;
图7是本申请一种在计算机集群上进行矩阵乘积运算的装置实施例的结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本技术领域中,公知的是,计算机集群上部署有用来执行Map任务和Reduce任务的多个计算节点,其中,一个计算节点上部署有多个tasktracker节点,一个tasktracker节点可用于执行一个Map/Reduce任务,故一个计算节点可用于执行数个Map任务或Reduce任务,以实现Map任务和Reduce任务的并行度。
在MapReduce引擎中,一个计算节点执行Reduce任务的并行度是有限的,为6.65或者12.25;故现有技术中,在Reduce任务涉及的复杂运算(如两大规模矩阵元素两两组合并求乘积的运算)时,运算过程耗时严重,也就影响了矩阵乘积的运算速度。
而MapReduce引擎中,每一个Map操作都是相对独立的,所有的Map任务都是高度并行的,一个计算节点执行Map任务的并行度要比Reduce任务的并行度好。
在实际应用中,Map任务的并行度不一定局限于计算节点数,其通常是由输入数据中的数据块(block)的数量来决定的,也即,可以通过调整block的大小来调整Map任务的并行度。假设有个6400M的文件需要处理,如果设置block大小为64M,则此时Map任务的并行度为100,需要100个tasktracker节点,并且每个tasktracker节点执行Map任务的文件刚好是一个64M的block文件。当然,可以根据需要将Map任务的并行度设置地更多一些(例如可以将block调整得小一点),使其远远大于Reduce任务的并行度。
本申请利用了可以根据需要将Map任务的并行度设置为远大于Reduce任务的并行度这一规律,将Reduce任务涉及的复杂运算调整至Map任务,具体而言,将job1中Reduce任务涉及的两矩阵元素两两组合并求乘积的运算调整到job2的Map任务;由于Map任务的并行度可设置为远大于Reduce任务的并行度,故Map任务中执行两矩阵元素两两组合并求乘积的运算所耗费的时间可以远小于Reduce任务中执行两矩阵元素两两组合并求乘积的运算所耗费的时间,因此,相对于现有技术,能够提高矩阵乘积的运算速度。
参照图2,其示出了本申请一种在计算机集群上进行矩阵乘积运算的方法实施例的流程图,所述计算机集群上部署有分布式文件系统、用来执行Map任务和Reduce任务的多个计算节点,所述方法具体可以包括:
步骤201、在所述多个计算节点上执行第一Map任务;所述第一Map任务从分布式文件系统读取第一矩阵和第二矩阵的行数据,并对所述行数据进行第一处理得到相应的第一键值对结果,并输出;
在实际应用中,第一矩阵和第二矩阵对应输入文件可存储于分布式文件系统上,其中,第一矩阵的列数(column)应与第二矩阵的行数(row)相同。
在MapReduce引擎中,Map任务和Reduce任务均从标准输入读入数据(一行一行读),并把计算结果发给标准输出;故所述第一Map任务从分布式文件系统读取的是第一矩阵和第二矩阵的行数据。
假设第一矩阵为矩阵M,行数为p,列数为q,则其行数据具有q个矩阵元素,总共有p个这样的行数据,其中,每个矩阵元素mi,j可由其所在的行i和列j决定。这里,p,q均为自然数。
本申请可以在各种计算机集群上实施例,下面主要以Hadoop为例进行说明,其它计算机集群相互参照即可。
在具体实现中,可以通过调整block的大小来调整Map任务的并行度。其中,Map任务的并行度与所使用的计算节点上部署的tasktracker节点的数目相应。
假设第一矩阵和第二矩阵的容量和为6400M,如果设置block大小为64M,则此时Map任务的并行度为100,需要100个tasktracker节点,并且每个tasktracker节点执行Map任务的文件刚好是一个64M的block文件,这100个tasktracker节点上的Map任务都是并发、独立的执行。
当然,可以根据需要将Map任务的并行度设置地更多一些,如设置为100-300之间的数值等,使其远远大于Reduce任务的并行度;也可以根据需要将Map任务的并行度设置地更少一些,例如,20-100之间的数值等等。
在本申请的一种优选实施例中,所述从分布式文件系统读取第一矩阵和第二矩阵的行数据的步骤可以进一步包括:
每读入一行数据,获取分布式文件系统的环境变量,并依据该环境变量确定该行数据来自第一矩阵还是第二矩阵。
在实际应用中,用JAVA实现的Map-Reduce引擎可以通过Hadoop提供的编程接口访问作业的配置信息,而streaming程序不能使用JAVA编程接口,因此,streaming框架可以通过设置环境变量的方式给Map、Reduce任务传递配置信息。这里,streaming是和hadoop一起发布的实用程序,它允许用户创建和执行使用任何程序或者脚本编写的Map-Reduce作业。
streaming框架设置的环境变量很多,其中的map_input_file环境变量用于描述Map任务正在处理的输入文件路径,而行数据属于第一矩阵或第二矩阵对应的输入文件,故本申请实施例可以依据该环境变量获取行数据所属矩阵对应输入文件的存储路径,由于不同矩阵对应输入文件的存储路径是不同的,从而可以确定该行数据来自第一矩阵还是第二矩阵。
在本申请的一种优选实施例中,所述对所述行数据进行第一处理得到相应的第一键值对结果的步骤可以进一步包括:
子步骤A1、针对第一矩阵的行数据中的元素,以其列坐标为主键,以其第一标识、行坐标和元素值为键值;
子步骤A2、针对第二矩阵的行数据中的元素,以其行坐标为主键,以其第二标识、列坐标和元素值为键值;所述第一键值对结果中存储有第一矩阵和第二矩阵的主键和键值。
假设第一矩阵为矩阵M,第二矩阵为矩阵N,则
子步骤A1可以对矩阵M中的每一个元素mi,j,以其列坐标为key,以M+元素的行坐标+元素值作为value,则mi,j对应的键值对可以表示为 其中,表示mi,j的元素值,M为第一标识的一个示例,可以理解,第一标识可以用其它字符来表示。
可以看出,mi,j对应的value是一个字符串,这个字符串具体可以包括三部分:标识该元素来自矩阵M的第一标识M,当前元素的行坐标,当前元素在矩阵中对应的数值,这三部分拼接成一个字符串作为mi,j的value。
同理,子步骤A2可以对矩阵N中的每一个元素nj,k,以其行坐标为key,以N+元素的列坐标+元素值作为value,则nj,k对应的键值对可以表示为 其中,表示nj,k的元素值,N为第二标识的一个示例,可以理解,第二标识可以用其它字符来表示。
步骤202、在所述多个计算节点上执行第一Reduce任务;所述第一Reduce任务对所述第一键值对结果中相同主键的键值进行聚合,并将相应的聚合结果输出至分布式文件系统;
对于Map任务输出的第一键值对结果,Hadoop通常会按照key对其进行排序,这样,具有相同key的键值对在位置上相邻。
假设Reduce任务的并行度为10,则需要10个tasktracker节点,且这10个tasktracker节点各自从上述执行第一Map任务的计算节点上取到属于自己的文件(所述文件中存储有第一键值对结果),并对读取的第一键值对结果中相同主键的键值进行聚合。本来第一键值对结果中相同主键的键值是分散的,本申请的聚合就是将这些分散的相同主键的键值聚集到一起。
在本申请的一种应用示例中,所述第一Reduce任务对所述第一键值对结果中相同主键的键值进行聚合的过程可以为,使用一个字符串将相同主键的键值连接起来。例如,可以对j相同的键值对,将其连接成 的形式后输出,将输出结果存放至HDFS。当然,使用一个字符串将相同主键的键值连接起来的聚合过程只是示例,实际上其它聚合过程也是可行的,例如,将所述第一键值对结果中相同主键的键值聚集到一起,并进行存储等等,本申请对具体的聚合方式不加以限制。
由于算法一样,保证了每个执行第一Reduce任务的计算节点经过步骤202的操作后,相同key的键值在HDFS的同一个聚合文件里。
步骤203、在所述多个计算节点上执行第二Map任务;所述第二Map任务从分布式文件系统读取所述聚合结果,从所述聚合结果中识别得到第一矩阵和第二矩阵的元素,并对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算,将运算得到的第二键值对结果进行输出;其中,所述第二键值对结果的主键为乘积矩阵元素的行列号,键值为乘积矩阵元素的值;
步骤203从HDFS上的聚合文件读取所述聚合结果,并进行处理,通常处理的第一步是从所述聚合结果中解析出value。
在本申请的一种优选实施例中,所述第一矩阵对应的第一键值对结果的键值具体可以包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值具体可以包括第二标识、列坐标和元素值;
则所述从所述聚合结果中识别得到第一矩阵和第二矩阵的元素的步骤可以进一步包括:针对所述聚合结果中的键值,如果其包括第一标识则从中获取第一矩阵的元素,如果其包括第二标识则从中获取第二矩阵的元素。
假设HDFS采用三个字段存储矩阵的元素,也即三个字段分别对应第一标识、行坐标和元素值,或者三个字段分别对应第二标识、列坐标和元素值,那么,可以根据所述聚合结果中的键值中的第一个字段(是第一标识还是第二标识)来确定相应的矩阵元素来自哪一个矩阵,从而可以识别出矩阵M和矩阵N的元素,
在本申请的另一种优选实施例中,所述第一矩阵对应的第一键值对结果的键值具体可以包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值具体可以包括第二标识、列坐标和元素值;
则所述对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算的步骤可以进一步包括:
子步骤B1、以所述第一矩阵的元素对应的行坐标为关键字,将所述第一矩阵的元素存放至第一存储结构;
子步骤B2、以所述第二矩阵的元素对应的列坐标为关键字,将所述第二矩阵的元素存放至第二存储结构;
子步骤B3、对所述第一存储结构和第二存储结构中的元素进行两两组合求乘积运算,得到相应的第二键值对结果,其中,以两个元素对应的关键字共同作为所述第二键值对结果的主键,以两个元素的乘积作为所述第二键值对结果的键值。
在具体实现中可以,子步骤B1和B2可以分别将第一矩阵的元素和第二矩阵的元素放入字典存放,假设第一存储结构和第二存储结构分别为为dicM和dicN,则可以value中的第二个字段(即矩阵M中元素的行坐标或矩阵N中元素的列坐标)为关键字,以value中的第三个字段(即为M或N中元素的真实数值)作为值,则第一矩阵的元素可表示为 第二矩阵的元素可表示为
子步骤B3可对dicM和dicN中的元素,两两组合,以M中关键字和N中的关键字共同作为新的key,以M中元素和N中元素的乘积作为数值,例如第二键值对结果的一个形式为 通常第二键值对结果被输出至HDFS的文件中。
步骤204、在所述多个计算节点上执行第二Reduce任务;所述第二Reduce任务对所述第二键值对结果中相同主键的键值进行求和,并将相应的求和结果作为乘积矩阵元素的值输出至分布式文件系统。
对于执行第二Map任务的计算节点输出的第二键值对结果,Hadoop通常会按照key对其进行排序,这样,具有相同key的键值对在位置上相邻。
假设Reduce任务的并行度为10,则需要10个tasktracker节点,且这10个tasktracker节点各自从上述执行第二Map任务的计算节点上取到属于自己的文件(所述文件中存储有第二键值对结果),并对key相同的键值进行求和,即得到乘积矩阵P中的元素的值。如对以(i1,k1)为key的键值求和,得到的数值为乘积矩阵P中第i1行,第k1列这个元素的值,以此类推,可求得整个乘积矩阵P,乘积矩阵P为第一矩阵和第二矩阵的乘积矩阵,假设第一矩阵M为(r行,s列),第二矩阵N为(s行,t列),则乘积矩阵M为(r行,t列)。
总之,本申请将比较耗时的两矩阵元素两两组合并求乘积的运算从Reduce任务调整至Map任务,利用Map任务的并行度可设置为远大于Reduce任务的并行度的优势,能够有效地提高两矩阵元素两两组合并求乘积的运算的速度,从而能够大幅度地提高整个矩阵乘积的运算速度;一个计算节点上部署有多个tasktracker节点,一个tasktracker节点可用于执行一个Map/Reduce任务;在实际应用中,可以通过调整block的大小来调整Map任务的并行度。其中,Map任务的并行度与所使用的计算节点上部署的tasktracker节点的数目相应,故分配较多的计算节点或者,在计算节点上部署较多的tasktracker节点来执行Map任务均可实现Map任务的较多的并行度。
在本申请的一种优选实施例中,所述计算机集群上还可部署有作业服务器,所述作业服务器用于将所述第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务分配到所述多个计算节点;
则所述方法还可以包括:
步骤C1、在所述多个计算节点上执行所述作业服务器分配的第一Map任务;
步骤C2、在所述多个计算节点上执行所述作业服务器分配的第一Reduce任务;
步骤C3、在所述多个计算节点上执行所述作业服务器分配的第二Map任务;
步骤C4、在所述多个计算节点上执行所述作业服务器分配的第二Reduce任务。
在实际中,作业服务器(JobTracker)可被部署在计算机集群的主节点上,接收用户提交的作业(job),统一调度所有的作业,管理所有的任务服务器,将用户提交的每一个作业拆分成多个任务,包括Map任务和Reduce任务等,负责将任务分配给各计算节点,任务是具体执行的基本单元,它们都需要分配到合适的计算节点上去执行。对于同一计算节点而言,其既可执行Map任务,也可执行Reduce任务;不同的是,可以通过分配或设置,使得执行Map任务的计算节点的数目远大于执行Reduce任务的计算节点的数目。
为使本领域技术人员更好地理解本申请,以下通过一个具体的示例说明本申请在计算机集群上进行矩阵乘积运算的方法流程,该示例涉及对现有矩阵M(r行,s列)和矩阵N(s行,t列)进行矩阵乘积运算得到乘积矩阵P(r行,t列),假设矩阵M和矩阵N分别存放在HDFS上的不同路径下。假设该示例通过两个job来完成。
参照图3所示的本申请一种job1的简要处理流程,job1的Map任务阶段从HDFS读取矩阵M、N,由Hadoop的环境变量判定当前行数据来自哪个矩阵,以M的列坐标或N的行坐标为key标记元素得到相应的第一键值对结果;Hadoop以key为基准对第一键值对结果进行排序;job1的Reduce任务阶段从第一键值对结果中解析key,对相同key的键值用字符串连接,将连接结果输出至HDFS。
参照图4,示出了本申请一种job1的详细处理流程,具体可以包括:
1)Map任务阶段:
在执行Map任务的计算节点上从HDFS上读取存放的矩阵M和矩阵N,然后在逐行处理的过程中根据Hadoop的map_input_file判定当前处理行来自矩阵M还是N,以M的列坐标或N的行坐标为key标记得到第一键值对结果:
对矩阵M中的每一个元素mi,j,以其列坐标为key,以M+元素的行坐标+元素值作为value,则mi,j对应的键值对可以表示为
对矩阵N中的每一个元素nj,k,以其行坐标为key,以N+元素的列坐标+元素值作为value,则nj,k对应的键值对可以表示为
Hadoop对在执行Map任务的计算节点上输出的第一键值对结果按照key进行排序,具有相同key的元组位置相邻。
2)Reduce任务阶段:
在执行Reduce任务的计算节点上使用一个字符串将相同主键的键值连接起来。例如,可以对j相同的键值对,将其连接成 的形式后输出,将输出结果存放至HDFS。
参照图5所示的本申请一种job2的简要处理流程,job2的Map任务阶段从HDFS读取job1的输出结果,逐行处理,将来自M和N的元素进行两两组合,以M元素的行坐标和N元素的列坐标为key,以两个元素的乘积为value输出;Hadoop以key为基准对键值对进行排序;job2的Reduce任务阶段解析key,对相同key的元素求和,得到乘积矩阵的元素,并输出至HDFS。
参照图6,示出了本申请一种job2的详细处理流程,具体可以包括:
1)Map任务阶段:
在执行Map任务的计算节点上从HDFS读取数据,逐行处理:
a.由value中的第一个字段是M还是N判定此元素来自哪一个矩阵,从而分离出来自矩阵M和矩阵N的元素,将矩阵M和矩阵N的元素分别放入一个字典存放,此处设为dicM和dicN,以value中的第二个字段(即矩阵M中元素的行坐标或矩阵N中元素的列坐标)为关键字,以value中的第三个字段(即为M或N中元素的真实数值)作为值,如可表示为 第二矩阵的元素可表示为
b.对dicM和dicN中的元素,两两组合,以M中关键字和N中的关键字共同作为新的key,以M中元素和N中元素的乘积作为数值,如以 的形式输出。
2)Reduce任务阶段:
在执行Reduce任务的计算节点上对key相同的value求和,即得到乘积矩阵P中的元素的值。如对以(i1,k1)为key的键值求和,得到的数值为乘积矩阵P中第i1行,第k1列这个元素的值,以此类推,可求得整个乘积矩阵P。
与前述方法实施例相应,本申请还公开了一种在计算机集群上进行矩阵乘积运算的装置实施例,所述计算机集群上部署有分布式文件系统、用来执行Map任务和Reduce任务的多个计算节点,参照图7所示的结构图,所述装置具体可以包括:
第一Map任务执行模块701,用于在所述多个计算节点上执行第一Map任务;所述第一Map任务从分布式文件系统读取第一矩阵和第二矩阵的行数据,并对所述行数据进行第一处理得到相应的第一键值对结果,并输出;
第一Reduce任务执行模块702,用于在所述多个计算节点上执行第一Reduce任务;所述第一Reduce任务对所述第一键值对结果中相同主键的键值进行聚合,并将相应的聚合结果输出至分布式文件系统;
第二Map任务执行模块703,用于在所述多个计算节点上执行第二Map任务;所述第二Map任务从分布式文件系统读取所述聚合结果,从所述聚合结果中识别得到第一矩阵和第二矩阵的元素,并对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算,将运算得到的第二键值对结果进行输出;其中,所述第二键值对结果的主键为乘积矩阵元素的行列号,键值为乘积矩阵元素的值;及
第二Reduce任务执行模块704,用于在所述多个计算节点上执行第一Reduce任务;所述第二Reduce任务对所述第二键值对结果中相同主键的键值进行求和,并将相应的求和结果作为乘积矩阵元素的值输出至分布式文件系统。
在本申请的一种优选实施例中,所述第一矩阵对应的第一键值对结果的键值具体可以包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值具体可以包括第二标识、列坐标和元素值;
则所述第二Map任务执行模块703可以进一步包括:
识别模块,用于针对所述聚合结果中的键值,如果其包括第一标识则从中获取第一矩阵的元素,如果其包括第二标识则从中获取第二矩阵的元素。
在本申请的另一种优选实施例中,所述第一矩阵对应的第一键值对结果的键值具体可以包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值具体可以包括第二标识、列坐标和元素值;
则所述第二Map任务执行模块703可以进一步包括:
第一存储模块,用于以所述第一矩阵的元素对应的行坐标为关键字,将所述第一矩阵的元素存放至第一存储结构;
第二存储模块,用于以所述第二矩阵的元素对应的列坐标为关键字,将所述第二矩阵的元素存放至第二存储结构;
两两组合求乘积运算模块,用于对所述第一存储结构和第二存储结构中的元素进行两两组合求乘积运算,得到相应的第二键值对结果,其中,以两个元素对应的关键字共同作为所述第二键值对结果的主键,以两个元素的乘积作为所述第二键值对结果的键值。
在本申请的再一种优选实施例中,所述第一Map任务执行模块701可以进一步包括:
数据判定模块,用于每读入一行数据,获取分布式文件系统的环境变量,并依据该环境变量确定该行数据来自第一矩阵还是第二矩阵。
在本申请的一种优选实施例中,所述第一Map任务执行模块701可以进一步包括:
第一键值对获取模块,用于针对第一矩阵的行数据中的元素,以其列坐标为主键,以其第一标识、行坐标和元素值为键值;
第二键值对获取模块,用于针对第二矩阵的行数据中的元素,以其行坐标为主键,以其第二标识、列坐标和元素值为键值;所述第一键值对结果中存储有第一矩阵和第二矩阵的主键和键值。
在本申请的一种优选实施例中,所述系统还可以包括作业服务器,所述作业服务器用于将所述第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务分配到所述多个计算节点;
则所述第一Map任务执行模块701,还用于在所述多个计算节点上执行所述作业服务器分配的第一Map任务;
所述第一Reduce任务执行模块702,还用于在所述多个计算节点上执行所述作业服务器分配的第一Reduce任务;
所述第一Map任务执行模块703,还用于在所述多个计算节点上执行所述作业服务器分配的第二Map任务;
所述第二Reduce任务执行模块704,还用于在所述多个计算节点上执行所述作业服务器分配的第二Reduce任务。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
以上对本申请所提供的一种在计算机集群上进行矩阵乘积运算的方法和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种在计算机集群上进行矩阵乘积运算的方法,所述计算机集群上部署有分布式文件系统、用来执行映射Map任务和化简Reduce任务的多个计算节点,其特征在于,所述方法包括:在所述多个计算节点上执行第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务;其中,
所述第一Map任务从分布式文件系统读取第一矩阵和第二矩阵的行数据,并对所述行数据进行第一处理得到相应的第一键值对结果,并输出;
所述第一Reduce任务对所述第一键值对结果中相同主键的键值进行聚合,并将相应的聚合结果输出至分布式文件系统;
所述第二Map任务从分布式文件系统读取所述聚合结果,从所述聚合结果中识别得到第一矩阵和第二矩阵的元素,并对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算,将运算得到的第二键值对结果进行输出;其中,所述第二键值对结果的主键为乘积矩阵元素的行列号,键值为乘积矩阵元素的值;
所述第二Reduce任务对所述第二键值对结果中相同主键的键值进行求和,并将相应的求和结果作为乘积矩阵元素的值输出至分布式文件系统。
2.如权利要求1所述的方法,其特征在于,所述第一矩阵对应的第一键值对结果的键值包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值包括第二标识、列坐标和元素值;
则所述从所述聚合结果中识别得到第一矩阵和第二矩阵的元素的步骤进一步包括:
针对所述聚合结果中的键值,如果其包括第一标识则从中获取第一矩阵的元素,如果其包括第二标识则从中获取第二矩阵的元素。
3.如权利要求1所述的方法,其特征在于,所述第一矩阵对应的第一键值对结果的键值包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值包括第二标识、列坐标和元素值;
则所述对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算的步骤进一步包括:
以所述第一矩阵的元素对应的行坐标为关键字,将所述第一矩阵的元素存放至第一存储结构;
以所述第二矩阵的元素对应的列坐标为关键字,将所述第二矩阵的元素存放至第二存储结构;
对所述第一存储结构和第二存储结构中的元素进行两两组合求乘积运算,得到相应的第二键值对结果,其中,以两个元素对应的关键字共同作为所述第二键值对结果的主键,以两个元素的乘积作为所述第二键值对结果的键值。
4.如权利要求1所述的方法,其特征在于,所述从分布式文件系统读取第一矩阵和第二矩阵的行数据的步骤进一步包括:
每读入一行数据,获取分布式文件系统的环境变量,并依据该环境变量确定该行数据来自第一矩阵还是第二矩阵。
5.如权利要求2或3所述的方法,其特征在于,所述对所述行数据进行第一处理得到相应的第一键值对结果的步骤进一步包括:
针对第一矩阵的行数据中的元素,以其列坐标为主键,以其第一标识、行坐标和元素值为键值;
针对第二矩阵的行数据中的元素,以其行坐标为主键,以其第二标识、列坐标和元素值为键值;所述第一键值对结果中存储有第一矩阵和第二矩阵的主键和键值。
6.如权利要求1至4中任一项所述的方法,其特征在于,所述计算机集群上还部署有作业服务器,所述作业服务器用于将所述第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务分配到所述多个计算节点;
则所述方法还包括:
在所述多个计算节点上执行所述作业服务器分配的第一Map任务;
在所述多个计算节点上执行所述作业服务器分配的第一Reduce任务;
在所述多个计算节点上执行所述作业服务器分配的第二Map任务;
在所述多个计算节点上执行所述作业服务器分配的第二Reduce任务。
7.一种在计算机集群上进行矩阵乘积运算的装置,所述计算机集群上部署有分布式文件系统、用来执行映射Map任务和化简Reduce任务的多个计算节点,其特征在于,所述装置包括:
第一Map任务执行模块,用于在所述多个计算节点上执行第一Map任务;所述第一Map任务从分布式文件系统读取第一矩阵和第二矩阵的行数据,并对所述行数据进行第一处理得到相应的第一键值对结果,并输出;
第一Reduce任务执行模块,用于在所述多个计算节点上执行第一Reduce任务;所述第一Reduce任务对所述第一键值对结果中相同主键的键值进行聚合,并将相应的聚合结果输出至分布式文件系统;
第二Map任务执行模块,用于在所述多个计算节点上执行第二Map任务;所述第二Map任务从分布式文件系统读取所述聚合结果,从所述聚合结果中识别得到第一矩阵和第二矩阵的元素,并对所述第一矩阵和第二矩阵的元素进行两两组合求乘积运算,将运算得到的第二键值对结果进行输出;其中,所述第二键值对结果的主键为乘积矩阵元素的行列号,键值为乘积矩阵元素的值;及
第二Reduce任务执行模块,用于在所述多个计算节点上执行第一Reduce任务;所述第二Reduce任务对所述第二键值对结果中相同主键的键值进行求和,并将相应的求和结果作为乘积矩阵元素的值输出至分布式文件系统。
8.如权利要求7所述的装置,其特征在于,所述第一矩阵对应的第一键值对结果的键值包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值包括第二标识、列坐标和元素值;
则所述第二Map任务执行模块进一步包括:
识别模块,用于针对所述聚合结果中的键值,如果其包括第一标识则从中获取第一矩阵的元素,如果其包括第二标识则从中获取第二矩阵的元素。
9.如权利要求7所述的装置,其特征在于,所述第一矩阵对应的第一键值对结果的键值包括第一标识、行坐标和元素值,所述第二矩阵对应的第一键值对结果的键值包括第二标识、列坐标和元素值;
则所述第二Map任务执行模块进一步包括:
第一存储模块,用于以所述第一矩阵的元素对应的行坐标为关键字,将所述第一矩阵的元素存放至第一存储结构;
第二存储模块,用于以所述第二矩阵的元素对应的列坐标为关键字,将所述第二矩阵的元素存放至第二存储结构;
两两组合求乘积运算模块,用于对所述第一存储结构和第二存储结构中的元素进行两两组合求乘积运算,得到相应的第二键值对结果,其中,以两个元素对应的关键字共同作为所述第二键值对结果的主键,以两个元素的乘积作为所述第二键值对结果的键值。
10.如权利要求7所述的装置,其特征在于,所述第一Map任务执行模块进一步包括:
数据判定模块,用于每读入一行数据,获取分布式文件系统的环境变量,并依据该环境变量确定该行数据来自第一矩阵还是第二矩阵。
11.如权利要求8或9所述的装置,其特征在于,所述第一Map任务执行模块进一步包括:
第一键值对获取模块,用于针对第一矩阵的行数据中的元素,以其列坐标为主键,以其第一标识、行坐标和元素值为键值;
第二键值对获取模块,用于针对第二矩阵的行数据中的元素,以其行坐标为主键,以其第二标识、列坐标和元素值为键值;所述第一键值对结果中存储有第一矩阵和第二矩阵的主键和键值。
12.如权利要求7至10中任一项所述的装置,其特征在于,所述计算机集群上还部署有作业服务器,所述作业服务器用于将所述第一Map任务、第一Reduce任务、第二Map任务和第二Reduce任务分配到所述多个计算节点;
则所述第一Map任务执行模块,还用于在所述多个计算节点上执行所述作业服务器分配的第一Map任务;
所述第一Reduce任务执行模块,还用于在所述多个计算节点上执行所述作业服务器分配的第一Reduce任务;
所述第一Map任务执行模块,还用于在所述多个计算节点上执行所述作业服务器分配的第二Map任务;
所述第二Reduce任务执行模块,还用于在所述多个计算节点上执行所述作业服务器分配的第二Reduce任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102669406A CN102831102A (zh) | 2012-07-30 | 2012-07-30 | 一种在计算机集群上进行矩阵乘积运算的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012102669406A CN102831102A (zh) | 2012-07-30 | 2012-07-30 | 一种在计算机集群上进行矩阵乘积运算的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102831102A true CN102831102A (zh) | 2012-12-19 |
Family
ID=47334247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012102669406A Pending CN102831102A (zh) | 2012-07-30 | 2012-07-30 | 一种在计算机集群上进行矩阵乘积运算的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831102A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970520A (zh) * | 2013-01-31 | 2014-08-06 | 国际商业机器公司 | MapReduce架构中的资源管理方法、装置和架构系统 |
CN104216865A (zh) * | 2013-05-31 | 2014-12-17 | 三星Sds株式会社 | 映射和化简运算加速系统及方法 |
WO2016123808A1 (zh) * | 2015-02-06 | 2016-08-11 | 华为技术有限公司 | 数据处理系统、计算节点和数据处理的方法 |
WO2017084509A1 (zh) * | 2015-11-17 | 2017-05-26 | 阿里巴巴集团控股有限公司 | 基于MapReduce的数据处理方法及装置 |
CN107273339A (zh) * | 2017-06-21 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种任务处理方法及装置 |
CN109710406A (zh) * | 2018-12-21 | 2019-05-03 | 腾讯科技(深圳)有限公司 | 数据分配及其模型训练方法、装置、及计算集群 |
CN110069539A (zh) * | 2019-05-05 | 2019-07-30 | 上海缤游网络科技有限公司 | 一种数据关联方法及系统 |
-
2012
- 2012-07-30 CN CN2012102669406A patent/CN102831102A/zh active Pending
Non-Patent Citations (3)
Title |
---|
AMOL GHOTING 等: "SystemML: Declarative Machine Learning on MapReduce", 《DATA ENGINEERING(ICDE),2011 IEEE 27TH INTERNATIONAL CONFERENCE》 * |
刘猛: "云计算平台下神经网络方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
曾大军: "云平台下大型矩阵乘法运算处理方案设计", 《科技广场》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970520B (zh) * | 2013-01-31 | 2017-06-16 | 国际商业机器公司 | MapReduce架构中的资源管理方法、装置和架构系统 |
CN103970520A (zh) * | 2013-01-31 | 2014-08-06 | 国际商业机器公司 | MapReduce架构中的资源管理方法、装置和架构系统 |
US9582334B2 (en) | 2013-01-31 | 2017-02-28 | International Business Machines Corporation | Resource management in MapReduce architecture and architectural system |
US9720740B2 (en) | 2013-01-31 | 2017-08-01 | International Business Machines Corporation | Resource management in MapReduce architecture and architectural system |
CN104216865A (zh) * | 2013-05-31 | 2014-12-17 | 三星Sds株式会社 | 映射和化简运算加速系统及方法 |
CN104216865B (zh) * | 2013-05-31 | 2017-08-08 | 三星Sds株式会社 | 映射和化简运算加速系统及方法 |
CN106062732A (zh) * | 2015-02-06 | 2016-10-26 | 华为技术有限公司 | 数据处理系统、计算节点和数据处理的方法 |
WO2016123808A1 (zh) * | 2015-02-06 | 2016-08-11 | 华为技术有限公司 | 数据处理系统、计算节点和数据处理的方法 |
CN106062732B (zh) * | 2015-02-06 | 2019-03-01 | 华为技术有限公司 | 数据处理系统、计算节点和数据处理的方法 |
US10567494B2 (en) | 2015-02-06 | 2020-02-18 | Huawei Technologies Co., Ltd. | Data processing system, computing node, and data processing method |
WO2017084509A1 (zh) * | 2015-11-17 | 2017-05-26 | 阿里巴巴集团控股有限公司 | 基于MapReduce的数据处理方法及装置 |
CN107273339A (zh) * | 2017-06-21 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种任务处理方法及装置 |
CN109710406A (zh) * | 2018-12-21 | 2019-05-03 | 腾讯科技(深圳)有限公司 | 数据分配及其模型训练方法、装置、及计算集群 |
CN110069539A (zh) * | 2019-05-05 | 2019-07-30 | 上海缤游网络科技有限公司 | 一种数据关联方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102831102A (zh) | 一种在计算机集群上进行矩阵乘积运算的方法和系统 | |
CN105117286B (zh) | MapReduce中任务的调度方法和流水化执行方法 | |
US9846589B2 (en) | Virtual machine placement optimization with generalized organizational scenarios | |
US7647590B2 (en) | Parallel computing system using coordinator and master nodes for load balancing and distributing work | |
CN103716381B (zh) | 一种分布式系统的控制方法,及管理节点 | |
CN103853618B (zh) | 基于截止日期驱动的云系统代价最小化资源分配方法 | |
CN110209494A (zh) | 一种面向大数据的分布式任务调度方法及Hadoop集群 | |
CN102541858A (zh) | 基于映射和规约的数据均衡性处理方法、装置及系统 | |
CN105471985A (zh) | 负载均衡方法及云平台计算方法、云平台 | |
CN109614227A (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
da Silva et al. | Scalability limits of Bag-of-Tasks applications running on hierarchical platforms | |
Kaur et al. | An energy-efficient load balancing approach for scientific workflows in fog computing | |
CN106681823A (zh) | 一种处理MapReduce数据倾斜的负载均衡方法 | |
Zhang et al. | Design and implementation of task scheduling strategies for massive remote sensing data processing across multiple data centers | |
CN106874109A (zh) | 一种分布式作业分发处理方法及系统 | |
CN107729218A (zh) | 一种监控处理计算资源设备的系统及方法 | |
CN106227465B (zh) | 一种环结构的数据放置方法 | |
CN104239520A (zh) | 一种基于历史信息的hdfs数据块放置策略 | |
Malathy et al. | Performance improvement in cloud computing using resource clustering | |
Perwej et al. | An extensive investigate the mapreduce technology | |
Xiao et al. | Dynamic resource allocation algorithm of virtual networks in edge computing networks | |
Yassir et al. | Graph-based model and algorithm for minimising big data movement in a cloud environment | |
Shi et al. | Two-phase online virtual machine placement in heterogeneous cloud data center | |
Shakil et al. | A latency-aware max-min algorithm for resource allocation in cloud | |
Ma et al. | Cloud-based multidimensional parallel dynamic programming algorithm for a cascade hydropower system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121219 |