CN104937544A - 计算回归模型 - Google Patents
计算回归模型 Download PDFInfo
- Publication number
- CN104937544A CN104937544A CN201380070189.5A CN201380070189A CN104937544A CN 104937544 A CN104937544 A CN 104937544A CN 201380070189 A CN201380070189 A CN 201380070189A CN 104937544 A CN104937544 A CN 104937544A
- Authority
- CN
- China
- Prior art keywords
- mapper
- subtask
- predictor
- group
- sequence
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了计算任务结果的技术。创建记录的处理数据集,其中每个记录包括特定于一组实际子任务中的一个子任务的数据并且包含该组实际子任务的共享数据的参考,并且其中记录的数目等同于该组实际子任务中的实际子任务的数目。通过一组映射器中的每一个映射器接收处理数据集的一个记录。利用接收的记录执行分配的子任务以产生输出,以及通过一个单一的简化器,简化该组映射器中每个映射器的输出以确定任务结果。
Description
技术领域
本发明的实施例涉及利用映射-简化(Map-Reduce)框架中的扫描(sweep)操作计算可能的回归模型。
背景技术
多元线性回归模型通常用于分析一个目标变量(Y)和预测因子变量列表(X)之间的关系。提出如前向选择、淘汰落后、逐步推进等等的众多的技术用以在k个预测因子的大集中选择能够比其他预测因子更能影响目标的一些预测因子。
预测因子可以被描述为预测或影响预测回归模型中的目标的字段。目标可被描述为由回归模型中的一个或多个预测因子(predictor)预测或影响的字段。
寻找最佳回归的方法之一是基于所选择的标准,例如调整后的R方等执行所有的2k回归模型。这种技术也被称为“穷举搜索”。当k较大时,由于计算时间随着k呈指数级增长,执行所有可能的回归可能并不现实。已经作出提高性能的努力,这些努力大致沿两条路径:(1)利用顺序策略,从一个回归模型移动到另一个回归模型;(2)利用并行计算策略来分发密集计算。
映射-简化框架已经成为一种流行的模式,因为它可以处理互联网时代越来越普遍的分布式数据源中的拍字节(petabytes)级的数据。映射-简化框架使应用程序与分布式集群中成千上万的节点一起工作。典型的map-reduce任务通常使用多个映射器在不同的数据拆分/块中进行计算,并且使用一个或多个简化器将映射器的结果合并在一起,以使最终结果/统计数据是基于整个数据的。
发明内容
提供了一种用于计算任务结果的方法、计算机程序产品和系统。记录的处理数据集被创建,其中,每个记录包含特定于一组实际子任务中的一个子任务的数据并包含由该组实际子任务共享数据的参考,并且其中记录的数目相当于该组实际子任务中的实际子任务的数目。利用一组映射器的每一个映射器,接收处理数据集的一个记录并且利用该接收的一个记录执行分配的子任务以产生输出。利用单个简化器,简化从该组映射器的每一个映射器的输出以确定任务的结果。
附图说明
下面参考附图,其中相似的参考标记代表相应的部件,其中:
图1示出了根据某些实施例的映射-简化框架;
图2示出了根据某些实施例的表中的回归模型序列;
图3示出了根据某些实施例的用于计算可能的回归模型的整体流程;
图4示出了根据某些实施例的将全局序列划分成本地序列的例子;
图5示出了根据某些实施例的映射-简化框架实现的例子;
图6示出了用于利用映射-简化框架在原始数据集执行任务的操作的流程图。图6由图6A和图6B组成。
图7描述了根据某些实施例的云计算节点;
图8描述了根据某些实施例的云计算环境;
图9描述了根据某些实施例的抽象回归模型层。
具体实施方式
已经呈现本发明各种实施例的描述用于说明的目的,但不旨在穷尽或限制于所公开的实施例。对那些本领域的普通技术人员来说,不脱离所描述实施例范围的许多修改和变化将是显而易见的。本文所用的术语被选择最好地解释实施例的原理、实际应用以及市场上找到的技术的改进,或使其他普通技术人员能够理解在此公开的实施例。
实施例利用映射-简化框架通过利用扫描操作为k个预测因子计算2k的可能回归模型。实施例利用多个节点(映射器)并行计算本地回归模型(例如,本地最佳回归模型),然后利用一个节点(简化器)合并多个节点的结果以从本地回归模型中选择全局回归模型(例如,全局最佳回归模型)。实施例以系统的方式将全局搜索序列分解成多个本地搜索序列,并且可以在多个节点独立地执行本地搜索序列。本地搜索序列可以描述为全局搜索序列的子序列。
节点可以被描述为与集群中的一个中央处理单元(CPU)相关的执行单元。集群可以描述为具有多个节点,并且这些节点可以位于相同或不同的计算机。在某些实施例中,节点可以执行一个映射或简化任务。
在某些实施例中,多个映射器和单个简化器可以在具有多个CPU核心的单个计算机/机器上执行。在某些实施例中,多个映射器和单个简化器可以在不同的计算机/机器上执行。
实施例将全局搜索序列/空间分成M(=2m)个本地搜索序列/空间,其中m<k–1,在2k–m个扫描枢轴(sweep pivot)的本地搜索序列上应用扫描操作,得到2k-m个回归模型。枢轴对应于在其上应用扫描操作的矩阵的特定对角元素。然后,实施例并行地在M个映射器中找到本地回归模型,并利用一个简化器合并映射器的结果以找到全局回归模型。图1示出了根据某些实施例的映射-简化框架。在某些实施例中,计算体系结构用于计算映射-简化框架100中所有可能的回归模型。映射-简化框架100接收作为输入的全局搜索空间100并输出全局回归模型160。映射-简化框架100包括映射器120,130,…,140以及简化器150。全局搜索空间100被划分为本地搜索空间。每个映射器120,130,…,140接收本地搜索空间并向简化器150输出本地回归模型。简化器150利用来自每个映射器120,130,…,140的本地回归模型确定全局回归模型,并作为全局回归模型160输出。
实施例在回归模型解决方案的开发中利用映射-简化框架100。实施例还利用扫描操作。
扫描操作
这里仅出于增进理解实施例的目的描述扫描操作的性质。
在回归模型中,预测因子可以是连续字段或类别(categorical)字段。类别字段可以描述为具有有限数目的名义或有序类别作为值。基于参数化技术,具有J个类别的每个类别预测因子可以随J个虚拟变量(dummyvariable)扩大,因此,回归模型中具有对应于类别预测因子的J个系数。
假设预测因子X矩阵中存在k个效应(effect)。由于k个效应既可以包括连续预测因子,也可以包括类别预测因子(事实上,k个效应中的一些可以是几个预测因子的组合,但为了保持简单并且不失一般性,排除这些效应,因此k个效应是k个预测因子),回归模型中系数的数目p可能大于k。基于正规方程存在回归系数闭合形式的解其中Y是n×1向量,n是记录的数目,X是从k个预测因子推导出的n×p矩阵并且是系数估计的p×1向量。一种获得的技术是扫描操作。扫描操作的工作方式如下:针对叉积(p+1)×(p+1)矩阵:
在第一个p枢轴或枢转元素(pivotal element)上进行扫描,其结果为:
其中,残差平方和(SSE)为计算选择回归模型中使用的标准时通常需要的残差平方和。通常,在第一个p枢转元素的子集上扫描C产生对应于X’s的子集上Y的回归的回归系数的估计。
扫描操作有两种属性:(1)可逆(具有相同的枢转元素的两个连续扫描操作与空操作相同);(2)可交换(先在第r个枢转元素上,然后在第s个枢转元素上进行的扫描操作与以相反顺序进行的扫描操作结果相同)。利用这些属性,对特定行和列(为某一连续预测因子)或C的特定一组J行和列(为对应于某一类别预测因子的一组J虚拟变量)应用的扫描操作将该预测因子引入拟合回归模型,或者,如果模型中已经存在该预测因子,则将其移除。也就是说,一个预测因子上进行的每一扫描操作都产生一个回归模型。在某些实施例中,可以通过2k-1序列个扫描操作得到可能的2k-1个回归,如下所示:
当k=1,2k-1=1,通过在对应于第一个预测因子的枢转元素上进行扫描执行单一回归。枢轴序列S1={1}。
当k=2,通过在第一个预测因子上进行扫描执行第一回归。现在,在第二个预测因子上进行扫描产生包括第一个和第二个预测因子的新的回归。然后,再在第一个预测因子上进行扫描将删除第一个预测因子并产生只包括第二个预测因子的回归。通过在枢轴序列S2={121}上扫描C矩阵产生所有的2k-1=3个回归模型。
当k=3,在序列S2中得到前三个回归。现在,在第三个预测因子上进行扫描产生一个新的回归,该回归将第三个预测因子添加至序列S2产生的回归。由于序列S2产生了不包括第三个预测因子的三个不同的回归,重复序列S2将产生包括第三个预测因子的另外三个回归。然后通过在枢轴序列S3={S2,3,S2}={1213121}上扫描C矩阵产生2k-1=7个回归模型。
假设k-1个预测因子上所有2k-1个可能的回归可以通过前k-1个预测因子上的序列Sk-1得到。现在,在第k个预测因子上进行扫描产生一个新的回归模型,该回归模型将第k个预测因子添加至序列Sk-1产生的回归模型。然后,重复序列Sk-1产生包括第k个预测因子的另外2k-1个不同的回归模型。因此,通过在枢轴序列Sk={Sk-1,k,Sk-1}上扫描C矩阵产生2k-1个回归模型。
图2示出了根据某些实施例的表200中的回归模型序列。图2中,Sl标识预测因子枢转的索引。图2中,第三列中的每个括号表示回归模型。括号中的数字标识回归模型中包括的预测因子。
表200中,具有4个预测因子的序列是这样的:S4={121312141213121}(第二列),并产生15个回归模型(第三列)(如果将只截距(intercept-only)回归模型包括在内则总共有16个回归模型),搜索序列的大小为15。
一种技术是构造序列Sk,的递归过程并且可以顺序产生2k-1个回归模型,其中Sk={S k-1 ,k,S k-1 }={S k-2 ,k-1,S k-2 ,k,S k-2 ,k-1,S k-2 }=…,等。另一方面,很容易看到,序列Sk可以分解为几个子序列,然后每个子序列产生2k-1个回归模型的子集。例如,将以下序列分解为4个子序列或本地序列,
S4={S3,4,S3}={S2,3,S3,4,S2,3,S2}={121,3,121,4,121,3,121}
分别是{121},{3121},{34121},{4121},并且可以由这4个子序列并行地产生15个回归模型。
回归模型
为了利用扫描操作产生回归模型,实施例首先计算叉积矩阵C,该矩阵基于X和Y并且是(p+1)×(p+1)矩阵。在映射-简化框架中为大型分布式数据源完成该计算。然后,2k个回归模型的计算在C矩阵上重复应用扫描操作,由于该计算并非基于数据源,因此并不是典型的映射-简化任务。因此,实施例提供了一种技术,利用映射-简化框架中并行计算的潜在能力计算该2k个回归模型。
实施例(1)指定正确数目的映射器以充分有效地利用集群中的可用节点,并且(2)向每个映射器提供最小数量的输入以正确地进行2k个回归模型的子集。
假设L是分布式集群中可用中央处理单元(CPU)的数目并且是已知的,那么映射器或实际子任务的数量M基于以下两个规则指定:
(a)M≤L:在某些实施例中为了获得更好的效率。在替代实施例中,M>L。
(b)M=2m(其中m<k-1):每个本地搜索序列的大小是2k-m,那么M个映射器可以覆盖2k个回归模型。
典型的映射-简化任务中,映射器的输入是来自拆分/块的数据,因此数据拆分的数目决定映射器的数目。拆分(split)可以被描述为被拆分成固定大小的块的大数据集的子集。例如,实施例为每个拆分创建一个映射任务,其为拆分中的每个记录运行用户指定的映射函数。在某些实施例中,对于大多数的任务,比较好的拆分大小往往是Hadoop分布式文件系统(HDFS)块的大小,默认是64MB,但其可以为集群(对所有新创建的文件)改变或在文件创建时指定。
这里的2k个回归模型的计算并不是基于原始的数据拆分。相反的,实施例可以通过创建具有M行的临时输入文件,配置拆分大小为一行的大小使得具有M个拆分,从而控制具有M个映射器,然后导出M个映射器。
临时输入文件中一行的信息被发送给一个输入拆分以及一个映射器。该行的信息包括本地搜索序列,其告诉映射器以何种顺序应用扫描操作以得到回归模型序列。用于不同映射器的本地搜索序列不同,以便本地序列的组合产生2k个可能的回归模型。在某些实施例中,如果k很大,那么将每个本地搜索序列的全部发送给不同的映射器会增加网络流量。因此,实施例发送每个本地搜索序列的一部分(即起始索引序列)到不同的映射器以减少网络流量。能够实现这一点的原因是因为本地搜索序列可以进一步被分解成两个部分:(i)“共索引序列”和(ii)“起始索引序列”。
共索引序列对于所有本地搜索序列是相同的,并且与同一组预测因子(称为“共索引预测因子”)相关,因此共索引序列可以在每个映射器内产生而不需通过网络发送该共索引序列。
起始索引序列对于不同的本地搜索序列是不同的,并且与不同的预测因子(称为“起始索引预测因子”)相关,因此每个起始索引序列被发送给不同的映射器。在某些实施例中,起始索引序列比共索引序列小很多,因此只发送起始索引序列(比既发送起始索引序列又发送共索引序列)可以减少网络流量。
除了向不同映射器发送的个别信息外,输入的第二部分对所有的映射器相同并包括叉积矩阵C,共索引预测因子等。共索引序列可以在每个映射器内基于共索引预测因子产生。
利用映射-简化框架的实施例可以执行具有更大数目预测因子的所有可能的回归模型,也可以提高具有固定数目预测因子的性能。因此,实施例是可扩展的,并且在预测因子的数目k非常大时提高找到最佳回归模型的能力。通过控制映射器的数目,实施例是高效的,也减少了通过网络行进的信息的大小。由于工作负载可以平均地在映射器分布,实施例也是均衡的。
实施例由两部分组成,以将2k个可能回归模型的计算纳入映射-简化模型100中:(1)M=2m个映射器的每一个接收指令执行2k个可能回归模型的一个子集并将本地回归模型发送给简化器;(2)简化器选择本地回归模型以找到用于(例如向分布式文件系统)输出的全局回归模型。回归模型,像任何其他预测因子模型一样,可以用于预测和/或发现并解释目标与一组预测因子之间的关系。
可以利用映射-简化框架100和分布式文件系统(例如Hadoop分布式文件系统(HDFS))实现实施例。图3示出了根据某些实施例的用于计算可能的回归模型的整体流程。在某些实施例中,计算出所有可能的回归模型。图3包括本地文件系统300,分布式文件系统310和映射-简化任务330。
本地文件系统300存储(1)作为起始索引序列的特定输入信息;(2)包括共索引预测因子、C矩阵和其他输入(例如记录数目)的共享输入信息;以及(3)共享输入信息的参考,标识共享文件系统310中该共享输入信息的位置。在某些实施例中,参考可以是统一资源标识符(URI),为用于在分布式文件系统310中标识共享输入信息的名字或资源的字符串。分布式文件系统310包括(1)包括拆分1,拆分2,…,拆分M(M行)的临时文件,其中每个拆分包含特定起始索引序列加共享输入信息的参考;以及(2)从本地文件系统上传的共享输入信息。映射-简化任务330包括映射器1332,映射器2334,…,映射器M 336以及简化器338。
共享输入信息从本地文件系统300上传至分布式文件系统310。同时,在分布式文件系统中记录共享输入信息的参考。然后,在分布式文件系统310中创建具有M行的临时文件。一个起始索引序列以及共享输入信息的参考被写入临时文件的一行。一个输入拆分的大小被配置为临时文件中一行的大小,用于利用特定数目(M)个映射器驱动映射-简化任务。因此,一行对应于一个拆分以及一个映射器。如果映射器332、334、…、336被驱动,映射器332、334、…、336提取每个输入拆分中的内容。映射器332、334、…、336通过参考标识共享输入信息在分布式文件系统310中的位置,并且将共享输入信息下载到本地文件系统。利用特定的起始索引序列和共享输入信息,映射器执行本地搜索并产生要输出至简化器338的本地回归模型。简化器338比较来自映射器332、334、…、336的本地回归模型的结果并向分布式文件系统350输出全局回归模型。在某些实施例中,分布式文件系统310、350是同样的分布式文件系统。而在另一些实施例中,分布式文件系统310、350是不同的分布式文件系统。
在某些实施例中,参考不需在临时文件中存储。在某些实施例中,参考可以作为属性在配置的实例中存储并且通过Hadoop框架中的配置应用程序接口(API)传给每个映射器。然后,所有的映射器接收该参考并知晓在HDFS的何处提取共享输入信息。在一些实施例中,通过映射-简化框架的临时文件存储并传递参考。
给定分布式集群中可用CPU核心的数目L以及k个预测因子(表示为1,…,k)的索引,可以指定映射器的数目M为M≤L并且M=2m,其中m<k-1,并且k个预测因子可以被分成m个起始索引预测因子和k-m个共索引预测因子。大小为2k的全局搜索序列被分解成M个大小为2k-m的本地搜索序列以便在每个映射器产生2k-m个回归模型。
典型的映射‐简化任务中,输入是分布式文件系统中存储的数据集。为了将计算分布到多个节点,数据被分成多个部分,并且每个部分称为输入拆分。默认的输入拆分大小是分布式文件系统的默认块大小。因此,映射器的数目由输入数据集的数据块的数目决定。换句话说,映射器的数目由输入数据的大小决定。即,随着数据集变大,映射器的数目增加。
实施例中,2k个回归模型的计算不是基于原始数据拆分,因此实施例创建具有M行的临时输入文件并重新配置输入拆分大小为一行的大小,以便控制要驱动的特定映射‐简化任务中映射器的数目。一行的内容被发送到一个映射器以产生2k-m个回归模型。行内容自然的选择是本地搜索序列。然而,当k比较大时,本地搜索序列(2k-m)的大小可能仍然很大。因此,实施例在每行中包括本地搜索序列的一小部分(即,基于m个起始索引预测因子产生的起始索引序列)。本地搜索序列的另一部分(即,基于k-m个共索引预测因子产生的共索引序列)在每个映射器内产生。总的来说,当k比较大时,起始索引序列(m)的大小比共索引序列(2k- m-1)的大小要小,因此,只向不同的映射器发送起始索引序列显著减少了网络流量。
在驱动映射-简化任务之前,起始索引序列和共享输入信息的参考被写入具有M行的单一文件中,其中每一行代表一个起始索引序列加共享输入信息的参考。通过填充较小的起始索引序列的空间使每一行的大小保持相同。该文件在分布式文件系统中作为映射器的输入存储。输入拆分的大小被配置为一行的大小,因而可以从具有M行的输入文件推导出M个拆分,然后M个拆分决定M个映射器。而且,输入的键/值被定义为与一行对应,其中键为该行的偏移量,值为文件中对应行的内容。因此,每个映射器接收一个键/值对并提取一个特定的起始索引序列及共享输入信息的参考。
输入的第二部分是映射器的共享(相同的)输入信息。输入的第二部分包括(1)C矩阵,用于通过在C矩阵上根据起始索引序列加共索引序列作为枢轴应用扫描操作产生不同的回归模型;(2)记录的数目,用于计算(除SSE之外的)标准值;以及(3)一列共索引预测因子,用于在映射器内产生共索引序列。为了确保共享输入信息正确地在网络中传送,共享输入信息可以串行化至一文件(或文件流)并且在分布式文件系统中存储。然后,每个映射器可以从分布式文件系统经由共享输入信息的参考将共享输入信息复制到该映射器内的本地系统。
利用输入的这两部分,每个映射器执行以下任务:(1)在C矩阵上为分配给该映射器的整个起始索引序列应用扫描操作以产生一个回归模型和结果C矩阵:C*;(2)基于共索引预测因子产生共索引序列;(3)根据共索引序列顺序扫描C*矩阵中的枢轴以产生2k-m-1个回归模型;(4)基于标准值从2k-m个回归模型中找到本地回归模型(例如:如果标准是校正的R方,那么用最大的校正的R方值选择本地回归模型);(5)为本地回归模型分配键并指定本地回归模型的结果作为值;以及(6)经由输出键/值对将本地回归模型传给简化器。
简化器通过输入键/值对收集本地回归模型以在M个回归模型中找到全局回归模型并将全局回归模型通过输出键/值对输出到分布式文件系统。映射器的输出键/值对和简化器的输入和输出键/值对可以定义成同样类型,以便在映射器、简化器以及分布式文件系统之间传递回归模型。一个键/值对对应于一个回归模型,键定义为一个回归模型的标识符(ID),而值定义为回归模型的相关结果。
不利用任何分布或并行计算执行k个预测因子可能的回归模型的时间复杂性为O(2k)。另一方面,利用M个映射器执行同样计算的时间复杂性大约是O(2k–m),简化器的时间复杂性大约是O(M)。因此,映射-简化框架中总的时间复杂性大约是O(2k–m)+O(M)≈O(2k–m)。映射器的数目越大,性能越好。
假设有k个预测因子,具有m个起始索引预测因子以及k-m个共索引预测因子。执行预排序处理操作:首先选择连续预测因子(具有一个类别),然后,以类别的数目升序排列类别预测因子。不失一般性,实施例将k个经预排序处理的预测因子的索引分配为1,…,k,因此,预测因子k具有最大数目的类别。而且,前k-m个经过预排序处理的预测因子被分配为共索引预测因子,后m个预测因子被分配为起始索引预测因子。该操作确保用最少的扫描操作执行2k个回归模型。
假设指定M=2m个映射器。大小为2k的全局搜索序列被分解成M个大小为2k-m本地搜索序列,并且每个本地搜索序列进一步被分解成两部分:(1)“共索引序列”,与k-m个共索引预测因子相关并且对所有的映射器都相同;(2)“起始索引序列”,与m个起始索引预测因子相关并且对不同的映射器不同。基于上面描述的用于扫描操作的回归技术,从k-m个共索引预测因子推导出共索引序列并且是具有大小为2k-m-1的Sk-m。对于所有l的(l=0,…,m),起始索引序列的集合被构建为m个起始索引预测因子的l组合的集合,因此共有2m个,并发送给M=2m个映射器。因此,任意起始索引序列的最大大小为m,如果k很大,则比共索引序列的大小(2k-m-1)小。然后,通过发送起始索引序列到映射器并在每个映射器内产生共索引序列而减小网络流量。
图4示出了根据某些实施例的本地序列的例子。仅仅是为了便于理解,以下举例说明。例中有5个预测因子和4个映射器,以展示什么是本地搜索序列、起始索引序列和共索引序列以及其相应大小。
没有实施例,在没有并行计算的情形:有5个预测因子,然后全局搜索序列生成为{1213121412131215121312141213121}以顺序产生32=25个回归模型。
图4中,面板(panel)400显示了并行计算的情形:5个预测因子被进行预排序处理并分成起始索引序列预测因子4、5以及共索引序列1、2和3。起始索引序列的集合是起始索引预测因子4和5的0个、1个和2个的组合的集合:{0}(意味着没有进行扫描操作)、{4}、{5}和{45}因此最大大小是2。起始索引序列可以被写成{00}、{40}、{05}和{45}以在临时输入文件的4行中保持同样大小。共索引序列是S3={1213121},所以大小是7。然后,构建4个本地序列,每个本地序列具有一个起始索引序列(产生1个回归模型)加共索引序列(产生7个回归模型),以便4个本地索引并行产生32个回归模型。
起始索引序列或共索引序列中的一个值指示将扫描操作应用于某一特定行和列(对于连续预测因子)或某一特定J行和列的集合(对于对应于类别预测因子的一组J个虚拟变量)。来自于4个本地序列,共索引预测因子1、2和3分别出现16、8和4次,因此在其上分别施加16、8、4次扫描操作;并且起始索引预测因子4和5出现2次因此被扫描2次。如果预测因子1是连续预测因子,那么扫描操作的次数为16;但是当预测因子1为具有J个类别的类别预测因子时,该数目变为16J。因此完成预排序预测因子处理以确保扫描操作的总数最小并节省计算时间。
图4的例子显示了共索引序列(2k-m-1)的大小通常大于起始索引序列(m)的大小。图4还显示了如果起始索引序列(并非共索引序列)包括在具有M行的临时输入文件中并被发送给不同的映射器,那么网络流量被减少(因为没有发送共索引序列)。而且,如图4的例子所示,预排序操作使得执行最小数目的扫描操作。
实施例利用映射-简化属性以:(a)创建具有M行的输入文件用于配置映射-简化框架以设置输入文件为M个输入拆分,然后被用于推导用于特定映射简化任务的M个映射器;(b)将输入分成2部分:独立信息和共享输入信息的参考,由键/值对解析以便向每个映射器发送正确的指令;并且共享信息被串行化至文件以便由映射器通过网络正确获取该信息;并且(c)用同样类型定义用于每个映射器输出以及简化器的输入和输出的键/值对,以便选择的回归模型能够在网络中正确地传送。
实施例发送起始索引序列但不发送共索引序列到映射器,以便减少网络流量,其中:(a)起始索引序列的集合为所有l的(l=0,…,m)m个起始索引预测因子的l组合;(b)如果存在一些类别预测因子,那么预排序操作将类别预测因子分配为起始索引预测因子并确保执行最小数目的扫描操作。
图5示出了根据某些实施例的映射-简化框架实现的例子。将参考与图4讨论的相同例子来讨论图5。再次的,对于这个例子,假设共有5个预测因子以及四个映射器。图5包括本地文件系统500、分布式文件系统510以及映射-简化任务530。
预测因子1、2和3是共索引预测因子,并且相应的共索引序列为{1213121}。图5中,只有共索引预测因子被发送到所有四个映射器,然后由每个映射器基于共索引预测因子产生共索引序列。
预测因子4和5是起始索引预测因子,但相应的起始索引序列不同,以致于发送给映射器的输入不同。在图5的映射-简化框架中,起始索引序列为{0},{4},{45},{5},并且作为4行包括在发送给映射器的文件中,然后每个映射器在一个特定序列上扫描C矩阵得到结果C*矩阵。
在映射-简化框架中,每个映射器产生8个回归模型并选择一个本地回归模型,然后,来自四个映射器的本地回归模型被传给简化器,简化选择全局回归模型并发送给分布式文件系统。
由于可以利用集群中任意数目的节点执行2k个回归模型,因此映射-简化框架是可扩展的。
图6示出了利用映射-简化框架的并行计算的潜在能力用于利用映射-简化框架在原始数据集执行任务的操作的流程图。图6由图6A和图7B组成。在某些实施例中,任务是通过扫描C矩阵以计算所有2k个可能的回归模型而选择线性回归模型。在这些实施例中,C矩阵是原始数据集。
控制在块600开始,其中基于原始数据集的至少一个特性为任务计算潜在子任务的最大数目N。在某些实施例中,任务的潜在子任务的最大数目为N=2k。用于计算可能回归模型的原始数据集的特性是与k相关的C矩阵(原始数据集)的维度,因为C矩阵基于X和Y构造,并且X中预测因子的数目为k。
在块602,确定可用映射器的数目L。在某些实施例中,数目L是集群中可用CPU核心的数目。
在块604,基于L和N计算M个实际子任务,其中每个子任务标识为T1,…,TM。由试图在2k-m个回归模型中找到本地线性回归模型的映射器执行每个子任务(Ti)。
在某些实施例中,实际子任务的数目M=2m,其中m<k-1,因此M<N(=2k)。此外,指定实际子任务的数目M小于或等于映射器的数目L,以获得更高的效率(即M≤L)。因此,在大多数情况中,M、L和N之间的关系是M≤L<N。
然而,在某些实施例中,实际子任务的数目M可以大于映射器的数目L(即,M>L)。在这些实施例中,一些子任务可以在队列中等待直到CPU可以处理每个子任务。
在块606,创建处理数据集,其中数据集包括M个记录,标识为R1,…,RM,每个记录Ri包括特定于子任务Ti的数据并且每个记录Ri包括可应用于所有实际子任务的数据的参考。在一些实施例中,处理数据集为临时输入文件,其中该文件包括M行,标识为R1,…,RM,每个记录Ri包括每个子任务Ti各自的起始索引序列(最大大小为m)并且每个记录Ri包括C矩阵和一系列共索引预测因子以及可应用于所有子任务的其他输入的参考。在某些实施例中,还可以通过Hadoop框架中的配置API将该参考传给每个映射器。
在块608,映射/简化框架配置为通过键/值对发送处理数据集的记录Ri到每个映射器处理。
处理块608(图6A)继续到块610(图6B)。
在块610,任务被提交至映射/简化框架,其中每个映射器基于处理数据集的记录Ri中的数据运行分配的子任务Ti以产生输出(例如:本地回归模型)。在某些实施例中,在映射/简化框架中运行子任务Ti,其中每个映射器通过以下获取记录Ri并运行子任务Ti:(a)在C矩阵上为起始索引序列应用扫描操作;(b)基于共索引预测因子产生共索引序列;(c)为共索引序列应用扫描操作;以及(d)找到本地回归模型。
在块612,简化器简化来自映射器的输出以确定任务结果(例如,全局回归模型)。任务结果依据不同的实施例可以变化。例如,任务结果可以根据要解决的问题简单,抑或复杂。在某些实施例中,将M个本地回归模型从映射器发送至简化器以识别全局回归模型。
云计算
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付的回归模型,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云回归模型可以包括至少五个特征、至少三个服务回归模型和至少四个部署回归模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务回归模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署回归模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图7,其中显示了云计算节点的一个例子。图7显示的云计算节点710仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点710能够被用来实现和/或执行以上所述的任何功能。
云计算节点710具有计算机系统/服务器712,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器712一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器712可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器712可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图7所示,云计算节点710中的计算机系统/服务器712以通用计算设备的形式表现。计算机系统/服务器712的组件可以包括但不限于:一个或者多个处理器或者处理单元716,系统存储器728,连接不同系统组件(包括系统存储器728和处理单元716)的总线718。
总线718表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器712典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器712访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器728可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)730和/或高速缓存存储器732。计算机系统/服务器712可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统734可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线718相连。存储器728可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块742的程序/实用工具740,可以存储在存储器728中,这样的程序模块742包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块742通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器712也可以与一个或多个外部设备714(例如键盘、指向设备、显示器724等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器712交互的设备通信,和/或与使得该计算机系统/服务器712能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口722进行。并且,计算机系统/服务器712还可以通过网络适配器720与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器720通过总线718与计算机系统/服务器712的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器712一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图8,其中显示了示例性的云计算环境850。如图所示,云计算环境850包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点710,本地计算设备例如可以是个人数字助理(PDA)或移动电话854A,台式电脑854B、笔记本电脑854C和/或汽车计算机系统854N。云计算节点710之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点710进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境850提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图8显示的各类计算设备54A-N仅仅是示意性的,云计算节点710以及云计算环境850可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图9,其中显示了云计算环境850(图8)提供的一组功能抽象层。首先应当理解,图9所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图9所示,提供下列层和对应功能。
硬件和软件层960包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层962提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层964可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层966提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及计算回归模型。
因此,在某些实施例中,实现根据本文描述的计算回归模型的软件或程序作为服务在云环境中提供。
某些实施例在云环境中实现。某些替代性实施例不在云环境中实现。额外的实施例细节
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、固态存储器、磁带或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的实施例。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
计算机程序指令还可以被加载到计算机、其它可编程数据处理设备或其他装置,以在该计算机、其它可编程设备或其它设备上执行一系列操作处理(例如,操作或步骤)以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或框图的块或多个块中指定的功能/动作的过程。
实施所描述的操作的代码可以进一步在硬件逻辑或电路(例如:集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)实现。这些硬件逻辑可以耦合到处理器执行操作。
除非另外明确说明,彼此通信的设备不必连续彼此通信。此外,彼此通信的设备可以直接或通过一个或多个中间方间接通信。
实施例中彼此通信的若干部件的描述并不意味着所有这些部件都是必需的。相反,多种可选组件被描述以说明本发明各种可能的实施例。
此外,尽管处理步骤、方法步骤、算法等以一个连续的顺序来描述,但这样的过程、方法和算法可以被配置为以另外的顺序工作。换句话说,这里描述的步骤的序列或顺序并不一定要按该顺序执行步骤。可以以实际的任何顺序执行这里描述的过程的步骤。此外,一些步骤可以同时进行。
本文描述单个设备或物品,但显而易见的是可以利用多个设备/物品(无论它们是否协作)来代替单个设备/物品。类似地,这里描述多于一个的设备或物品(无论它们是否协作),同样显而易见的是可以利用单个设备/制品来代替多于一个的设备或制品,或可以利用不同数量的设备/制品代替描述的设备或程序的数目。设备的功能和/或特性可以由一个或多个未明确描述为具有此类功能/特征的其它装置来替代地体现。因此,本发明的其它实施例不需要包括该装置本身。
流程图所示的操作显示以一定的次序发生某些事件。在替代实施例中,某些操作可以以不同的顺序执行、修改或删除。此外,操作可以被添加到上述逻辑,并且仍然符合所描述的实施例。此外,本文描述的操作可以顺序地发生,或者某些操作可以并行地处理。更进一步地,操作可以由单个处理单元或由分布式处理单元来执行。
本文所用的术语仅是为了描述具体实施方案的目的,并非意在限制本发明。除非上下文另外明确指出,如本文所使用的单数形式“一”、“一个”和“该”也意图包括复数形式。将进一步理解,术语“包括”和/或“包括”在本说明书中使用时指定所陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除存在或附加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。
除非明确地说明,否则术语“一个实施例”、“实施例”、“实施方案”、“该实施例”、“该实施方案”、“一个或多个实施例”、“一些实施例”和“一个实施例”的意思是“一个或多个(但不是全部)在本发明(多个)“的实施方案中。
除非另外明确说明,否则术语“包括”、“包含”、“具有”及其变体意指“包括但不限于”。
列举的项目并不意味着任何或全部项目是互相排斥的,除非另有明确规定的除外。
下面的权利要求书中相应的结构、材料、动作以及所有装置的等同物,或步骤加功能元件旨在包括用于与特定要求的其他要求保护的元件结合执行功能的任何结构、材料或动作。本发明的实施例的描述已经呈现用于说明和描述,但并非意在穷举或限制本发明于所公开的形式。不脱离本发明的范围的许多修改和变化那些本领域的普通技术人员将是显而易见的。选择实施例以最好地解释本发明的实际应用的原理,这是为了使本领域的技术人员能够理解本发明的具有各种修改的各种实施例作为适合于预期的特定用途。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明的实施例的上述描述是为了说明和描述的目的。它并非旨在穷尽,或将实施例限制到所公开的精确形式。可以根据上述教导做出许多修改和变化。实施例的范围不是由该详细描述,而是由所附的权利要求书限制。以上说明、示例和数据提供了对制造和使用这些实施例的组合物的一个完整的说明。因为可以作出许多实施例而不脱离本发明的主旨范围,这些实施例驻留在下文所附的权利要求或任何随后提交的权利要求书以及它们的等同物。
Claims (25)
1.一种方法,包括:
创建记录的处理数据集,其中每个记录包括特定于一组实际子任务中的一个子任务的数据并且包含该组实际子任务的共享数据的参考,并且其中记录的数目等同于该组实际子任务中的实际子任务的数目;
通过一组映射器中的每个映射器接收处理数据集的一个记录;以及
利用接收的一个记录执行分配的子任务以产生输出,以及通过一个单一的简化器,简化该组映射器中的每个映射器的输出以确定任务结果,其中由计算机系统执行至少一个步骤。
2.权利要求1的方法,进一步包括:
基于原始数据集的至少一个特性计算潜在子任务的最大数目;以及
基于可用于执行实际子任务的该组映射器中映射器的数目以及潜在子任务的最大数目,计算要执行的该组实际任务中的实际子任务的数目。
3.权利要求2的方法,进一步包括:
计算实际子任务的数目,指定为M个实际子任务,其中M=2m,其中M≤L并且m<k–1,其中L是可用于执行实际子任务的该组映射器中映射器的数目,其中k是预测因子的数目。
4.权利要求3的方法,进一步包括:
将预测因子分成起始索引预测因子和共索引预测因子。
5.权利要求4的方法,进一步包括:
将全局搜索序列分成M个本地搜索序列;
为每个本地搜索序列从起始索引预测因子中识别起始索引序列;
创建具有M个记录的临时输入文件,其中每个记录包含一个起始索引序列,并且其中每个记录包含共索引预测因子的参考以及要在其上应用扫描操作的矩阵。
6.权利要求5的方法,进一步包括:
在该组映射器的每一个映射器:
接收一个本地搜索序列的起始索引序列;
通过处理数据集的每个记录中的参考接收共索引预测因子和矩阵;
利用共索引预测因子产生共索引序列;
根据起始索引序列在矩阵上执行扫描操作;
根据共索引序列在结果矩阵上执行扫描操作;
识别输出,其中输出为本地回归模型。
7.权利要求6的方法,其中发送起始索引序列而不发送共索引序列到该组映射器中的每一个映射器减少了网络流量。
8.权利要求6的方法,其中任务结果是全局回归模型。
9.权利要求1的方法,其中在云环境中以服务方式提供软件。
10.一种计算机程序产品,包括:
具有计算机可读程序代码的计算机可读介质,当计算机的至少一个处理器执行该计算机可读程序代码时执行:
创建记录的处理数据集,其中每个记录包括特定于一组实际子任务中的一个子任务的数据并且包含该组实际子任务的共享数据的参考,并且其中记录的数目等同于该组实际子任务中的实际子任务的数目;
通过一组映射器中的每个映射器接收处理数据集的一个记录;以及
利用接收的一个记录执行分配的子任务以产生输出,以及通过一个单一的简化器,简化该组映射器中的每个映射器的输出以确定任务结果。
11.权利要求10的计算机程序产品,其中当计算机的至少一个处理器执行该计算机可读程序代码时执行:
基于原始数据集的至少一个特性计算潜在子任务的最大数目;以及
基于可用于执行实际子任务的该组映射器中映射器的数目及潜在子任务的最大数目,计算要执行的该组实际任务中的实际子任务的数目。
12.权利要求10的计算机程序产品,其中当计算机的至少一个处理器执行该计算机可读程序代码时执行:
计算实际子任务的数目,指定为M个实际子任务,其中M=2m,其中M≤L并且m<k–1,其中L是可用于执行实际子任务的该组映射器中映射器的数目,其中k是预测因子的数目。
13.权利要求12的计算机程序产品,其中当计算机的至少一个处理器执行该计算机可读程序代码时执行:
将预测因子分成起始索引预测因子和共索引预测因子。
14.权利要求13的计算机程序产品,其中当计算机的至少一个处理器执行该计算机可读程序代码时执行:
将全局搜索序列分成M个本地搜索序列;
为每个本地搜索序列从起始索引预测因子中识别起始索引序列;
创建具有M个记录的临时输入文件,其中每个记录包含一个起始索引序列,并且其中每个记录包含共索引预测因子的参考以及要在其上应用扫描操作的矩阵。
15.权利要求14的计算机程序产品,其中当计算机的至少一个处理器执行该计算机可读程序代码时执行:
在该组映射器的每一个映射器:
接收一个本地搜索序列的起始索引序列;
通过处理数据集的每个记录中的参考接收共索引预测因子和矩阵;
利用共索引预测因子产生共索引序列;
根据起始索引序列在矩阵上执行扫描操作;
根据共索引序列在结果矩阵上执行扫描操作;
识别输出,其中输出为本地回归模型。
16.权利要求15的计算机程序产品,其中发送起始索引序列而不发送共索引序列到该组映射器中的每一个映射器减少了网络流量。
17.权利要求10的计算机程序产品,其中任务结果是全局回归模型。
18.一种计算机系统,包括:
处理器;以及
与处理器连接的存储设备,其中存储设备之上存储程序,并且该处理器被配置为执行程序的指令以执行操作,其中操作包括:
创建记录的处理数据集,其中每个记录包括特定于一组实际子任务中的一个子任务的数据并且包含该组实际子任务的共享数据的参考,并且其中记录的数目等同于该组实际子任务中的实际子任务的数目;
通过一组映射器中的每个映射器接收处理数据集的一个记录;以及
利用接收的一个记录执行分配的子任务以产生输出,以及通过一个单一的简化器,简化该组映射器中的每个映射器的输出以确定任务结果。
19.权利要求18的计算机系统,其中操作进一步包括:
基于原始数据集的至少一个特性计算潜在子任务的最大数目;以及
基于可用于执行实际子任务的该组映射器中映射器的数目以及潜在子任务的最大数目,计算要执行的该组实际任务中的实际子任务的数目。
20.权利要求18的计算机系统,其中操作进一步包括:
计算实际子任务的数目,指定为M个实际子任务,其中M=2m,其中M≤L并且m<k–1,其中L是可用于执行实际子任务的该组映射器中映射器的数目,其中k是预测因子的数目。
21.权利要求20的计算机系统,其中操作进一步包括:
将预测因子分成起始索引预测因子和共索引预测因子。
22.权利要求21的计算机系统,其中操作进一步包括:
将全局搜索序列分成M个本地搜索序列;
为每个本地搜索序列从起始索引预测因子中识别起始索引序列;
创建具有M个记录的临时输入文件,其中每个记录包含一个起始索引序列,并且其中每个记录包含共索引预测因子的参考以及要在其上应用扫描操作的矩阵。
23.权利要求22的计算机系统,其中操作进一步包括:
在该组映射器的每一个映射器:
接收一个本地搜索序列的起始索引序列;
通过处理数据集的每个记录中的参考接收共索引预测因子和矩阵;
利用共索引预测因子产生共索引序列;
根据起始索引序列在矩阵上执行扫描操作;
根据共索引序列在结果矩阵上执行扫描操作;
识别输出,其中输出为本地回归模型。
24.权利要求23的计算机系统,其中发送起始索引序列而不发送共索引序列到该组映射器中的每一个映射器减少了网络流量。
25.权利要求18的计算机系统,其中提供软件即服务(SaaS)执行系统操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/739,667 US9159028B2 (en) | 2013-01-11 | 2013-01-11 | Computing regression models |
US13/739,667 | 2013-01-11 | ||
PCT/IB2013/059603 WO2014108768A1 (en) | 2013-01-11 | 2013-10-24 | Computing regression models |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104937544A true CN104937544A (zh) | 2015-09-23 |
CN104937544B CN104937544B (zh) | 2017-06-13 |
Family
ID=51166314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380070189.5A Active CN104937544B (zh) | 2013-01-11 | 2013-10-24 | 用于计算任务结果的方法、计算机可读介质和计算机系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9159028B2 (zh) |
JP (1) | JP6234477B2 (zh) |
CN (1) | CN104937544B (zh) |
WO (1) | WO2014108768A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555696A (zh) * | 2024-01-11 | 2024-02-13 | 西北工业大学 | 一种多模型并发执行的数据交互方法及系统 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10491663B1 (en) * | 2013-10-28 | 2019-11-26 | Amazon Technologies, Inc. | Heterogeneous computations on homogeneous input data |
US9811504B1 (en) | 2013-11-08 | 2017-11-07 | Michael Epelbaum | Lifespan in multivariable binary regression analyses of mortality and survivorship |
US9600342B2 (en) * | 2014-07-10 | 2017-03-21 | Oracle International Corporation | Managing parallel processes for application-level partitions |
CN104407811B (zh) * | 2014-11-12 | 2017-09-19 | 珠海世纪鼎利科技股份有限公司 | 一种基于云计算的合并io装置 |
US10496514B2 (en) * | 2014-11-20 | 2019-12-03 | Kevin D. Howard | System and method for parallel processing prediction |
CN104834561B (zh) * | 2015-04-29 | 2018-01-19 | 华为技术有限公司 | 一种数据处理方法及装置 |
WO2018222217A1 (en) * | 2017-05-29 | 2018-12-06 | Epelbaum Michael | Lifespan in regression-based estimation of phenomenon-specific probabilities of mortality or survivorship |
CN109885388A (zh) * | 2019-01-31 | 2019-06-14 | 上海赜睿信息科技有限公司 | 一种适用于异构系统的数据处理方法和装置 |
CN111782385A (zh) * | 2019-04-04 | 2020-10-16 | 伊姆西Ip控股有限责任公司 | 用于处理任务的方法、电子设备和计算机程序产品 |
US11144435B1 (en) | 2020-03-30 | 2021-10-12 | Bank Of America Corporation | Test case generation for software development using machine learning |
US11036613B1 (en) | 2020-03-30 | 2021-06-15 | Bank Of America Corporation | Regression analysis for software development and management using machine learning |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5841772A (en) * | 1996-03-07 | 1998-11-24 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US20030028327A1 (en) * | 2001-05-15 | 2003-02-06 | Daniela Brunner | Systems and methods for monitoring behavior informatics |
CN102385719A (zh) * | 2011-11-01 | 2012-03-21 | 中国科学院计算技术研究所 | 回归预测方法及装置 |
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3792879B2 (ja) * | 1998-03-09 | 2006-07-05 | 富士通株式会社 | 並列実行システム |
US8190610B2 (en) * | 2006-10-05 | 2012-05-29 | Yahoo! Inc. | MapReduce for distributed database processing |
US7599898B2 (en) | 2006-10-17 | 2009-10-06 | International Business Machines Corporation | Method and apparatus for improved regression modeling |
US20100162230A1 (en) * | 2008-12-24 | 2010-06-24 | Yahoo! Inc. | Distributed computing system for large-scale data handling |
US20110213655A1 (en) * | 2009-01-24 | 2011-09-01 | Kontera Technologies, Inc. | Hybrid contextual advertising and related content analysis and display techniques |
US8713038B2 (en) * | 2009-04-02 | 2014-04-29 | Pivotal Software, Inc. | Integrating map-reduce into a distributed relational database |
US8321454B2 (en) | 2009-09-14 | 2012-11-27 | Myspace Llc | Double map reduce distributed computing framework |
US9619291B2 (en) * | 2009-12-20 | 2017-04-11 | Yahoo! Inc. | System and method for a task management library to execute map-reduce applications in a map-reduce framework |
GB201007697D0 (en) * | 2010-05-06 | 2010-06-23 | Ucl Business Plc | A supra-threshold test for use in detecting sensitivity loss across the field of vision |
JP5584914B2 (ja) * | 2010-07-15 | 2014-09-10 | 株式会社日立製作所 | 分散計算システム |
GB2485783A (en) | 2010-11-23 | 2012-05-30 | Kube Partners Ltd | Method for anonymising personal information |
JP5478526B2 (ja) * | 2011-01-31 | 2014-04-23 | 日本電信電話株式会社 | データ分析及び機械学習処理装置及び方法及びプログラム |
US8799916B2 (en) * | 2011-02-02 | 2014-08-05 | Hewlett-Packard Development Company, L. P. | Determining an allocation of resources for a job |
US8209274B1 (en) * | 2011-05-09 | 2012-06-26 | Google Inc. | Predictive model importation |
US8943011B2 (en) * | 2011-06-28 | 2015-01-27 | Salesforce.Com, Inc. | Methods and systems for using map-reduce for large-scale analysis of graph-based data |
-
2013
- 2013-01-11 US US13/739,667 patent/US9159028B2/en not_active Expired - Fee Related
- 2013-10-24 CN CN201380070189.5A patent/CN104937544B/zh active Active
- 2013-10-24 WO PCT/IB2013/059603 patent/WO2014108768A1/en active Application Filing
- 2013-10-24 JP JP2015552149A patent/JP6234477B2/ja active Active
-
2014
- 2014-03-21 US US14/222,462 patent/US9152921B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5841772A (en) * | 1996-03-07 | 1998-11-24 | Lsi Logic Corporation | ATM communication system interconnect/termination unit |
US20030028327A1 (en) * | 2001-05-15 | 2003-02-06 | Daniela Brunner | Systems and methods for monitoring behavior informatics |
CN102385719A (zh) * | 2011-11-01 | 2012-03-21 | 中国科学院计算技术研究所 | 回归预测方法及装置 |
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555696A (zh) * | 2024-01-11 | 2024-02-13 | 西北工业大学 | 一种多模型并发执行的数据交互方法及系统 |
CN117555696B (zh) * | 2024-01-11 | 2024-03-15 | 西北工业大学 | 一种多模型并发执行的数据交互方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104937544B (zh) | 2017-06-13 |
US9152921B2 (en) | 2015-10-06 |
US20140207722A1 (en) | 2014-07-24 |
US9159028B2 (en) | 2015-10-13 |
JP2016507093A (ja) | 2016-03-07 |
JP6234477B2 (ja) | 2017-11-22 |
US20140201744A1 (en) | 2014-07-17 |
WO2014108768A1 (en) | 2014-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104937544A (zh) | 计算回归模型 | |
CN106020940B (zh) | 用于确定数据集的放置的存储层级的方法和系统 | |
US9916394B2 (en) | Vectorized graph processing | |
CN103853596B (zh) | 用于在工作组之间迁移虚拟机的方法和系统 | |
CN103718164B (zh) | 虚拟计算机和服务 | |
US20170116157A1 (en) | Parallelizing matrix factorization across hardware accelerators | |
CN104205115A (zh) | 使用不同安全擦除算法以从文件擦除与不同安全级别关联的组块 | |
JP7471401B2 (ja) | フラグ量子ビットの結果を識別するための三価格子スキーム | |
CN103988199A (zh) | 已去重存储云中的数据残留的去除 | |
Smolka et al. | Evaluation of fog application placement algorithms: a survey | |
CN103294556A (zh) | 用于主机系统准入控制的方法和系统 | |
US11586448B2 (en) | Qubit reset from excited states | |
Khiat et al. | Genetic-based algorithm for task scheduling in fog–cloud environment | |
Er et al. | Parallel genetic algorithm to solve traveling salesman problem on mapreduce framework using hadoop cluster | |
US20220114019A1 (en) | Distributed resource-aware training of machine learning pipelines | |
US20210142197A1 (en) | Methods and systems for diverse instance generation in artificial intelligence planning | |
US11200496B2 (en) | Hardware-software co-design of neurosynaptic systems | |
CN115150413B (zh) | 区块链数据的存储方法、装置、电子设备及存储介质 | |
Khattar et al. | Multi-criteria-based energy-efficient framework for VM placement in cloud data centers | |
US20230186168A1 (en) | Performing automated tuning of hyperparameters in a federated learning environment | |
TW202307740A (zh) | 在脈動陣列中利用細粒度結構化權重稀疏性 | |
Althagafy et al. | Novel cloud architecture to decrease problems related to big data | |
Goudarzi et al. | A mathematical optimization model using red deer algorithm for resource discovery in CloudIoT | |
CN114386649A (zh) | 使用优化求解器机器的生产计划的方法、系统和存储介质 | |
Wang et al. | Multi-objective auto-scaling scheduling for micro-service workflows in hybrid clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |