并行处理期间资源分配的校准的制作方法

文档序号:6581033阅读:200来源:国知局
专利名称:并行处理期间资源分配的校准的制作方法
技术领域
本说明书涉及并行处理期间的资源分配。
背景技术
已知计算领域中的许多场景(scenarios)受益于并行处理。一般说来,这样的并 行处理可以指代使用两个或更多个在其它方面分立的(otherwise-s印arate)计算资源以 同时或重叠的方式执行单个任务或计算。这样的并行处理的一个例子可能发生在数据库搜 索/访问领域,在该领域中使用两个或更多个计算资源(例如,两个服务器、处理器或核) 来执行大型数据库的单个查询,以便比仅用单个计算资源所能够达到的速度更快地提供查 询结果。可能受益于并行处理的领域的许多例子中另一个是云计算(cloudcomputing)。云 计算一般指的是将计算/处理能力作为公用设施来提供,并且按需满足用户(多个用户) 的计算需求,包括依照用户的需要增加、减少或者以其他方式改变用户的计算能力(从而 增加、减少或者以其他方式改变提供这些计算能力的相关成本)。例如,用户可以使用一般 的通用计算设备来通过网络访问提供商的计算资源,从而使提供商可以对所提供的计算资 源进行控制。为了实现这些场景,提供商可以部署必要的硬件和软件,这些硬件和软件被认为 是向提供商的消费者群体(customer base)提供服务必不可少的。也就是说,这样的提供 商会对将访问提供商的硬件/软件资源的用户数量具有某种期望或预测,并且对这些用户 将消费资源的规模也有所期望/预测(例如,可能有些用户要求的任务的数据密集性远高 于其它用户)。于是,为了提高成本效率,提供商一般会试图优化可用资源,包括使用最少的 必要资源来满足提供商的消费者群体的当前计算需求。并行处理允许这种场景下的提供商通过例如将并行执行的资源分配给特定用户 和/或用于特定计算任务来进行这样的优化。通过这样的方式,特定用户可以在期望时间 段内得到访问大量计算资源的效果(例如,快速的处理速度),而不会产生与实际购买、安 装以及管理相关硬件和软件关联的所有成本。但是,这样的并行处理的实施难以以有效或最优的方式实现。例如,可能存在与将 (多个用户的)多个任务划分/分配给多个可用处理资源相关联的开销成本、以及与重新结 合或合并任务处理结果相关联的成本。例如,取决于所讨论的任务的特性以及并行化的程 度,可能使添加的处理资源的利用率降低,并且这些开销成本可能限制、并可能最终支配或 者淹没并行化的好处。这种使用超出最优数目或数量的处理资源的场景可以被称为过度并 行化(over-parallelization)。相反,为给定任务/用户分配过少的处理资源的情况也可 能发生,这可以被称为低度并行化(under-parallelization),低度并行化可能导致无谓的 较慢的总处理时间以及相应的用户满意度下降。而且,一个或多个正在运行的任务的运行时环境的复杂度和不可预测性可能使多 核并行查询处理的难度加剧。例如,即使在运行时之前制定了用于并行处理的可接受的计划,也可能出现使所计划的并行化的有效性或合意性降低的运行时事件。因此,并行处理的 有效实施是一项艰巨的挑战,次优的实施方式可能限制计算资源的有效性以及用户的生产率/满意度。

发明内容
根据一个一般方面,一种系统包括记录于计算机可读介质上的指令。该系统可以 包括抽样器,其被配置为在任务由并行操作的第一数量的节点执行的同时确定该正在执 行的任务的第一性能量度,并且被配置为在该任务由并行操作的第二数量的节点执行的同 时确定该正在执行的任务的第二性能量度;以及校准器,其被配置为基于第一性能量度和 第二性能量度,相对于节点数量的变化,计算开销因子,该开销因子表征利用并行执行的节 点执行所述任务的并行化开销的变化,并且该校准器被配置为基于该开销因子来确定并行 操作以继续执行所述任务的节点的最优数量。实施方式可以包括一个或多个下列特征。例如,所述任务可以包括软件应用的任 务,并且第一性能量度和第二性能量度可以分别包括使用第一数量的节点和第二数量的节 点处理该软件应用的固定数据量所用的逝去时间的量度。所述抽样器可以包括调整管理器,其被配置为在确定了第一性能量度之后确定并 执行从第一节点数量调整为第二节点数量,包括确定固定节点数量以及确定将第一节点数 量增加还是减少该固定节点数量以得到第二节点数量。所述调整管理器可以被配置为基于 第一性能量度与前一性能量度之间的差来确定增加还是减少第一节点数量。所述校准器可以被配置为基于第一性能量度和第二性能量度确定第一开销因 子;在任务正在由并行操作的第三数量的节点执行的同时,接收至少该正在执行的任务的 第三性能量度;使用第三性能量度和至少一个其它的性能量度确定第二开销因子;以及确 定第一开销因子和第二开销因子的平均值作为所述开销因子。所述校准器可以被配置为计算所述开销因子,使其表征衰减函数f(n) = (1/ η)+0(η)中的开销函数0(n),其中,η表示节点数量,并且其中,该衰减函数表征了利用并 行执行的节点执行所述任务的并行化开销的变化。所述开销函数Ο(η)可以被表示为αη, 并且所述校准器可以被配置为计算开销因子,该开销因子包括α项,以表示利用并行执行 的节点执行所述任务的并行化开销的线性变化速率。所述校准器可以被配置为根据公式 f (Nsecond) -f (Nfirst) = (Psecond-Pfirst) /T,通过将利用第一节点数量和第二节点数量求值的衰 减函数与第一性能和第二性能之间的性能变化进行比较,来确定包括α项的开销因子,在 公式中Pfiret和Pserand分别表示第一性能量度和第二性能量度,T表示使用单个节点执行的 时间。最优节点数量的确定可以表示当前抽样然后校准操作的结束,并且所述系统还可 以包括校准持续时间控制器,其被配置为控制当前抽样然后校准操作与后续抽样然后校准 操作之间的时间间隔。所述校准持续时间控制器可以被配置为,基于当前抽样然后校准操 作的最优节点数量和至少一个先前抽样然后校准操作的至少一个先前确定的最优节点数 量中的变化,来确定所述时间间隔。所述校准持续时间控制器可以被配置为,基于当前抽样 然后校准操作与前一抽样然后校准操作之间的前一时间间隔来确定所述时间间隔。所述校准器可以被配置为指令资源调度器分配所述最优数量的节点以供利用其执行所述任务。根据另一个一般方面,提供一种计算机实现的方法。可以在任务由并行操作的第 一数量的节点执行的同时确定该正在执行的任务的第一性能量度。可以在该任务由并行操 作的第二数量的节点执行的同时确定该正在执行的任务的第二性能量度。可以基于第一性 能量度和第二性能量度、相对于节点数量的变化来计算开销因子,该开销因子表征利用并 行执行的节点来执行该任务的并行化开销的变化。然后,可以基于该开销因子来确定将并 行操作以继续执行该任务的节点的最优数量。实施方式可以包括一个或多个下列特征。例如确定第一性能量度可以包括在 确定了第一性能量度之后执行从第一节点数量调整为第二节点数量,包括确定固定节点数 量以及确定将第一节点数量增加还是减少该固定节点数量以得到第二节点数量。计算开 销因子可以包括将所述开销因子计算为表征衰减函数f (η) = (1/η)+0(η)中的开销函数 Ο(η),其中,η表示节点数量,并且其中,该衰减函数表征利用并行执行的节点执行所述任务 的并行化开销的变化。所述最优节点数量的确定可以与当前抽样然后校准操作的结束相关联。然后,可 以基于当前抽样然后校准操作的最优节点数量和至少一个先前抽样然后校准操作的至少 一个先前确定的最优节点数量中的变化,并且基于当前抽样然后校准操作与最新近的先前 抽样然后校准操作之间的先前时间间隔,来控制当前抽样然后校准操作与后续抽样然后校 准操作之间的时间间隔。根据另一个一般方面,一种计算机程序产品可以被有形地具体实施在计算机可读 介质上,并且可以包括指令,所述指令在被执行时被配置为在任务由并行操作的第一数量 的节点执行的同时确定该正在执行的任务的第一性能量度;在任务由并行操作的第二数量 的节点执行的同时确定该正在执行的任务的第二性能量度;基于第一性能量度和第二性能 量度、相对于节点数量的变化来计算开销因子,该开销因子表征利用并行执行的节点来执 行任务的并行化开销的变化;以及基于该开销因子确定将并行操作以继续执行该任务的节 点的最优数量。实施方式可以包括一个或多个下列特征。例如,所述开销因子可以表征衰减函数 f(n) = (1/η)+0(η)中的开销函数0 (η),其中,η表示节点数量,并且其中,该衰减函数表征 了利用并行执行的节点执行所述任务的并行化开销的变化。所述开销函数Ο(η)可以表示 为α η,并且所述开销因子可以被计算为包括项α,以表示利用并行执行的节点执行所述 任务的并行化开销的线性变化速率。所述最优节点数量的确定可以与当前抽样然后校准操作的结束相关联,并且可以 基于当前抽样然后校准操作的最优节点数量不同于先前抽样然后校准操作的先前确定的 最优节点数量的程度,来确定当前抽样然后校准操作与后续抽样然后校准操作之间的时间 间隔。一个或多个实施方式的细节将在附图和下面的描述中进行阐述。从说明书和附图 以及权利要求书中其它特征将变得清楚。


图1是用于对并行处理的资源分配进行校准的系统的框图。
图2A是示出抽样时间与对应的节点数量的关系的图。图2B是示出逝去的处理时间相对于节点数量的图。图2C是示出并行开销相对于节点数量的图。图3是示出图1的系统的示例操作的流程图。图4是示出图1的系统的示例实施方式的流程图。图5是图1的系统的实施方式的框图。图6是示出用于执行图1和图5的系统的示例操作的流程图。
具体实施例方式图1是在并行处理期间用于对资源分配进行校准的系统100的框图。在图1的例 子中,自适应资源控制器102被配置为向资源调度器104提供指令,由此指令资源调度器 104在包括任务108和任务110在内的多个任务中和所述多个任务之间分配逻辑资源106。 更加具体来说,自适应资源控制器102可以被配置为确保适当数量的逻辑资源106被分配 用于执行任务108、110中的每一个,以便使任务108、110的执行可以以最优方式或者其它 期望的方式进行。在图1的例子中,逻辑资源106可以被理解为表示例如几乎任何分立的和/或独 立的计算资源,这些计算资源可以被配置为彼此并行操作以便执行任务108、110中的一个 或全部。例如,逻辑资源106可以包括多个节点或节点池(pool),所述节点可以表示基于硬 件和/或软件的服务器、各个处理器、处理核或者可以被配置为与对应的组件、设备或资源 并行操作的任何其它计算组件、设备或资源。例如,术语“核”应当被理解为指代或包括任 何多计算平台(multi-computing platform),在该多计算平台中可获得多个处理器、中央 处理单元(CPU)或其它处理资源,所述多计算平台包括网络/设备群。在特定例子中,如上 所述,已知并行查询处理是用于改进现有SMP/CMP (对称多处理/芯片级多处理)服务器的 数据库性能、特别是改进能够有效处理大量数据和复杂查询的高性能数据库系统的性能一 个选择。因此,在本说明书中,应当理解,逻辑资源106表示在可获得多种处理选择的任何 环境中的处理能力(多个)单元。为了简便和一致,所有这些资源在这里都被称为“节点”, 但是应当理解,所说的节点可能实际上表示上述例子中的任何一个或多个,或者可以被配 置为执行并行处理的计算资源的其它例子,正如本领域技术人员应当清楚的那样。相应地,应当理解,任务108、110可以表示几乎任何应用、操作、查询、请求、计算 或者可以被划分成多执行线程或处理线程的其它(多个)任务。例如,从上面的讨论应当 理解,任务108、110可以表示针对数据库应用的查询、或者可以表示对于作为云计算基础 设施的一部分而提供的计算资源的请求。当然,这些例子是非限制性的,还存在任务108、 110的许多其它例子。例如,任务108、110可以表示对待执行的特定计算的请求,或者可以 表示对动态组装和提供网站的请求、或者对网站的特定操作或功能(例如,使用所述网站 完成金融交易)的请求。存在许多其它例子,其中的一些将在下面更加详细地给出。在图1的例子中,资源调度器104可以被理解为部分地表示可以用于执行在任务 108,110中或在任务108、110之间分配逻辑资源106池内的节点的标准组件或传统组件。 对于传统功能,这里不进行详细描述。但是,可以理解,在图1的系统100的特定执行中可 能出现资源调度器104的新功能或特有功能,例如,有关于与自适应资源控制器102和/或逻辑资源106的节点池的交互或者来自自适应资源控制器102和/或逻辑资源106的节点 池的指令,因此这些在本说明书中会被详细介绍。具体来说,如从上述讨论中可以理解的那样,使用诸如资源调度器104(或者类似 的组件或其组成部分)这样的组件来分配特定数量的节点以并行执行,由此试图提高任务 的处理速度或效率,这是众所周知的。但是,也正如上面所述,使用这些传统组件可能难以 以最优方式或其它期望的方式分配用于并行处理任务108、110的节点。例如,众所周知,在开始执行任务108之前分配规定数量的节点,例如,10个节点 以用于执行任务108。这样的分配可以例如基于可用资源进行和/或基于对任务108的需 求的估计进行。在已知的资源分配的可能方案的其它例子中,可以根据这样的方法进行资 源分配在开始执行任务之前,将最大数量的当前可用资源分配给每个任务。在用于执行任务的并行处理的这些技术以及几乎所有已知技术中,存在与并行处 理相关联的并行化开销(parallelism overhead),其至少与这些相关将特定任务划分成 多个执行线程以及随后在各个执行线程完成时将任务结合成单个结果。例如,如果利用单 个节点来执行任务108,那么就可以直接计算或者确定执行特定任务或子任务所必需的时 间“T”。分配第二个节点以用于处理任务108在理论上将使所用的处理功耗加倍,并因此将 处理时间减少到一半(因子2)。实际中,上面提到的例如与将任务108划分成两个执行线 程相关的成本以及与将这两个执行线程重新结合成单个结果相关的后续成本,将导致总处 理时间被减少的量少于一半(小于因子2)。更加一般的情况,任务或子任务可能是相互依赖的,因此例如必须判断将哪些任 务/子任务分配给哪个节点。一般必须跟踪和管理任务的划分和随后的合并,以便确保令 人满意的结果。而且,取决于相关系统架构(例如,节点速度、相关存储器的大小和带宽、输 入/输出速度、是否以如何使用高速缓存以及其它已知因素)和/或取决于任务的特性和 /或其处理,可能要有区别地进行这种并行操作的划分/跟踪/合并。图2A示出并行化的效果、包括相关的并行化开销成本的效果的图例。如图2A所 示,X轴示出将并行应用于特定任务(诸如任务108)的处理的不断增加的节点数量,而Y轴 示出与特定任务(或者其部分任务或子任务)的执行相关联的逝去时间。如图/曲线202 所示,最初节点的增加导致了用于任务的期望处理的总逝去时间的大幅下降。但是,正如刚 刚提到的那样,每次添加一个新节点,除了其它可能的并行化开销成本之外,都需要额外的 划分、处理以及结合对应的新的执行线程。因此,随着每个节点的添加,该并行化开销成本 增加,直到某个点,并行化开销成本淹没了所讨论任务的并行化带来的好处。在该点,进一 步添加节点来并行执行所讨论的任务只会导致逝去时间的增加,也即,将导致执行所讨论 的任务的性能(performance)下降。在图2A的例子中,图202的最小值被示为位于例如50 个节点处。也就是说,50个节点表示实现最大/最优并行化的点,之后与并行化开销成本相 关联的、所讨论的任务的性能将变差。因此,图2A的图202可以用捕捉并表示上述结果的衰减函数 (reductionfunction)来表示,在所述结果中,并行节点数量的增加带来逝去处理时间的相 应减少以及并行化开销成本的递增增长,这种情况随着每个新节点的添加而继续,直到递 增的并行化开销成本累积并最终淹没和消除了添加的节点的附加好处。下面在公式1中示 出了这样的衰减函数的例子
f(n) = 1/η+0(η)公式 1在公式1的衰减函数中,可以理解的是,衰减函数f (η)本身指代例如逝去时间或 所讨论任务的其它性能量度,诸如沿图2Α的Y轴所示的。在所述例子中,相对于上面提到 的时间T来表示/归一化所述衰减函数,所述时间T是由单个节点执行该任务所需的时间 (也即,对于 η = 1,f(l) = 1)。与此同时,第一项1/n从概念上表示反线性(reverse-linear)函数,通过该函数 使逝去的处理时间随着每个新的并行节点的添加而减少。函数O(n)表示并行化开销成本, 该并行化开销成本通常将导致与超过最优节点数量之后每个新节点的添加相关联的逝去 处理时间的相应增加。那么可以理解的是,开销函数O(n)可以有助于表征公式1的衰减函数的总体效 果。也就是说,如果开销函数O(n)随着每个新节点的添加而迅速增长,那么用于特定任务 的衰减函数就会相对快速地到达最优节点数量,也即,将表示利用相对较小数量的节点的 最优处理。相反,如果开销函数O(n)随着每个新节点的添加而缓慢增长,那么在到达最优 或最大节点数量之前,会有相对较大数量的节点被应用于所讨论的任务的并行处理中。虽然可以基于上面的描述简单理解公式1的衰减函数的一般特性和特征,但是还 应当理解,开销函数O(n)依赖于许多不同的因素,因此可能难以通过任何有意义或有用的 方式来表示或表征。例如,开销函数O(n)可能依赖于正在执行的任务的特性或类型,或者 可能依赖于节点池106的每个节点的特性或特征。而且,开销函数O(n)可能在特定任务的 执行期间动态变化。例如,在图1的例子中,任务110被示为包括第一子任务110A和第二 子任务110B。在这种情况下,第一子任务110A可能与第一开销函数相关联,而第二子任务 110B可能与第二开销函数相关联,其中第一和第二开销函数可能是彼此完全不同的。下面 将详细提供这样的不同子任务的例子,但是应当理解的是,各种任务或子任务的执行特征 中的这些差异会导致对每个子任务或者对整个任务的开销函数0 (η)的表征更加困难。在图1的系统100的例子中,自适应资源控制器102可以被配置为为任务108、110 分配最优数量的或其他期望数量的节点池106的节点,而无需对相关开销函数的先验知识 或表征,或者对并行化开销成本的其它知识。而且,自适应资源控制器102可以被配置为在 任务108、110中每一个的运行时或执行期间动态地进行这种资源分配,并且因此能够考虑 在任务108、110的执行期间(例如,在任务110执行期间在从第一子任务110Α变为第二子 任务110Β期间)每一个任务的不同资源需求。因此,自适应资源控制器102和系统100作为整体提供优于它们的相应传统组件 或应用的改进和优点,诸如在上面的例子中所描述的那样。例如,传统上使用诸如资源调度 器104的组件将逻辑资源106的节点分配给任务108会包括,如上所述,在开始执行任务 108之前,将固定数量或估计数量的节点分配给该任务。但是从上面的讨论中可以看到,可 能很难以任何精确程度确定这样的估计。而且,即使这样的估计最初是精确的,也可能或者 很可能无法在特定任务(及其子任务)的整体执行期间保持精确。而且,从上面的讨论中 将理解到,在任何特定任务的使用执行之前将确切数量的可用节点分配给该任务可能是次 优的,例如,依照上面公式1的衰减函数,可能使该任务过度并行化或低度并行化。相反,图1的自适应资源控制器102被配置为在任务108、110中的每一个任务的 执行期间,为每个任务动态地和集中地分配逻辑资源106的节点。更加具体来说,自适应资源控制器102可以包括抽样器112,抽样器112被配置为监控使用当前数量的所分配节点的 特定任务(诸如任务108)的性能,并且还被配置为更改或调整当前节点数量,并在之后继 续监控使用调整后数量的节点的任务108的性能。使用该性能信息,自适应资源控制器102可以实现校准器114,校准器114从抽样 器112接收性能信息的样本,并确定相关开销函数0(n)的当前特性的表征。然后,基于相 关或当前开销函数O(n)的表征,校准器114可以确定当前的最优节点数量(例如,当前最 优节点数量的近似)。因此,校准器114可以指令资源调度器104执行将所确定的最优数 量的节点分配给所讨论的任务,例如,任务108。以此方式,可以基于任务108的当前条件 (condition)以及逻辑资源106的节点来最优化或者接近最优化分配给任务108的节点数 量,而无需有关该任务的特定先验知识或其它系统信息,也即无需有关开销函数O(n)的先 验知识。之后,任务108可以通过所确定的逻辑资源106的最优数量的节点来继续其并行 执行。但是,正如从上面的讨论可以理解到的,随着时间的发展,可能出现先前所确定的节 点的最优数量实际上不再是最优的。例如,如所述的那样,任务108(或其子任务)的特性 可能随着时间而变化,因此对应的开销函数以及相关联的节点最优数量也可能变化。因此,自适应资源控制器102可以被配置为重复抽样器112和校准器114的上述 操作。也就是说,抽样器112可以再次测量使用先前所确定的最优数量节点的任务108的 当前性能,并且之后可以将当前节点数量调整为新的或第三节点数量,并且可以确定在这 些条件下任务108的性能。使用该信息,校准器114可以得到更近或更新的开销函数O(n) 的表征,并且基于该表征,可以确定新的或更新的节点最优数量。之后,校准器114可以再 次指令资源调度器104将新确定的最优数量的节点分配用于任务108的执行。从而,自适应资源控制器102可以被配置为周期性地或以其它时间间隔对执行 特定任务(诸如任务108)的当前所分配的节点数量进行主动的(proactive)或抢先的 (preemptive)调整。这些对所分配节点的主动或抢先调整提供了表征当前开销函数0(n) 的信息,该信息反过来使自适应资源控制器102能够在每次发生主动或抢先节点调整(以 及相关计算)时更新当前的节点最优数量。因此,自适应资源控制器102可以被认为是在 并行处理任务108、110期间校准相对于任务108、110的逻辑资源106的分配,并且周期性 地或者以其它时间间隔执行这种校准。可以理解的是,当每一次这种校准发生时,都可能造成相关的校准成本。在如下情 况下最容易观察到这样的校准成本任务108当前利用最优数量的节点执行,并且在校准 的时间间隔之间节点的最优数量不发生变化。在这样的情况中,虽然系统100的操作员不 知道,但是尝试的校准将是不必要的,因为正在使用的已经是最优数量的节点。在这样的情 况下,自适应资源控制器102将如上所述进行操作,以提供对节点的最优数量的抢先调整, 并且执行相关计算。这些调整和计算可能是不必要的,并且因此可能对任务108的总处理 时间有害,因此其代表了对用于执行任务108的节点池106的资源的分配进行校准的成本。 更一般地讲,应当理解,自适应资源控制器102的抽样器112和校准器114的几乎任何操作 都可能造成至少一些最小的处理(或其它)成本,这种处理成本会对任务108的总处理时 间有害。为了最小化这种校准成本的影响,自适应资源控制器102可以包括校准持续时间控制器116。如下面将更加详细描述的,校准持续时间控制器116可以被配置为调整自适应 资源控制器102执行与抽样器112和校准器114相关联的校准功能的时间间隔的长度。更加具体来说,校准持续时间控制器116可以将当前校准结果与一个或多个先前 校准结果的影响进行比较。如果这种比较的结果显示事实上节点的最优数量几乎或者完全 不需要变化,那么校准持续时间控制器116就可以增加直到自适应资源控制器102的下一 次校准操作的时间间隔。相反,如果校准持续时间控制器116确定在一个或多个先前校准 与当前校准之间节点最优数量出现了相对较大的变化,那么校准持续时间控制器116就可 以减小直到自适应资源控制器102的下一次校准操作发生的时间间隔。通过以这种方式动 态地调整校准之间的时间间隔,校准持续时间控制器116可以操作为将与自适应资源控制 器102相关联的校准成本最小化。图1提供了自适应资源控制器102的抽样器112和校准器114的较为详细的 特定实施方式的例子。具体来说,抽样器112被示为包括与确定正在执行的任务(诸如 任务108)的性能数据以及与更改或调整用于执行所述任务的节点数量相关的子组件 (subcomponent),以便在正在使用新的或调整后的数量的节点执行所述任务的同时收集性 能数据。因此,抽样器112被示为包括数据收集器112A、性能计算器112B、性能高速缓存 112D和调整管理器112C。于是,如从上面的讨论中可以基本上理解的是,数据收集器112A可以被配置为在 利用来自逻辑资源106内的节点池的当前数量的节点执行例如正在运行的任务108的同 时,收集与正在运行的任务108的运行情况或执行相关的性能数据。在图1的例子中,正在 运行的任务108被示为正被用3个节点来执行,这三个节点为来自逻辑资源106的节点池 106A. · · 106N的节点106A、节点106B和节点106C。从而,性能计算器112B可以被配置为接 收数据收集器112A收集的性能数据,以及确定表征在数据收集时间期间任务108的性能的 量度。在本上下文中,术语“性能”一般可以指与执行固定大小的数据处理过程相关联的 时间消耗的特性。有许多测量和表征执行硬件或软件任务的性能的已知技术,因此在这里 就不对这些例子进行详细讨论了。但是,举例来说,可以理解,这种性能的表征可以根据与 特定任务或其子任务相关联的逝去时间来进行,或者这种性能的表征可以与完成一项任务 所需要的CPU周期数量相关联,或者与预定义的时间量内的数据吞吐量相关联。应当理解, 也可以用其它的性能的表征来代替。在这点上,还可以理解的是,因为公式1的衰减函数表示相对于利用单个节点执 行任务(如上所定义的那样,被视为花费时间T)的、利用多个并行节点执行任务的性能特 征,所以公式1的衰减函数也可以使用上述性能度量(metrics)/技术中的任意一种来表 达。而且,由于性能数据用这些性能度量/技术来表示并且被用于表征公式1的衰减函数 的各方面,如下面针对公式2所描述的那样,所以可以理解的是,相同的度量/技术既可以 用来表达实际测得的性能数据,也可以用来表达由公式1的衰减函数所表示的性能特征的 理论表示。一旦收集并表征了相关性能数据,就可以在性能高速缓存112D内记录利用当前 数量节点的当前性能。然后,调整管理器112C可以被配置为将执行任务108的节点的数量 从当前数量调整为更大或更小的节点数量。下面将更加详细地描述用于进行这些调整的技术,但是一般来说,从上面的讨论可以理解,这些调整可以(例如,被校准器114)用于表征 与并行化任务108相关联的并行化开销成本,以便可以由此确定用于计算任务108的最优 节点数量。具体来说,一旦进行了从当前节点数量到新的节点数量或第二节点数量的校正, 那么数据收集器112A就可以重复对相关性能数据的收集,以便性能计算器112B也可以重 复其使用所收集的数据表征任务108的性能的计算。图2B是示出抽样器112及其子组件112A-112D的上述操作的例子的图。具体来 说,图2B示出了这样的图其中,X轴示出了抽样(也即,数据收集)时间,而Y轴表示当前 用于处理正在运行的任务(例如,正在运行的任务108)的节点数量。因此,抽样点S1-S5 表示抽样器112针对其组件112A-112D执行上述抽样操作的5个不同实例(instance)。具体来说,抽样点Sl表示数据收集器112A收集数据的第一操作以及由性能计算 器112B执行的后续性能计算。如图所示,在抽样时间Sl处的对应数量的节点为近似10个 节点。随后,可以由图1的调整管理器112C向上调整节点数量,数据收集器112A和性能计 算器112B的操作可以在抽样点S2再次重复,并且最终在每个抽样点并针对每个对应的调 整后的节点数量再次重复。出于示例和解释的目的,假定图2B的图对应于图2A的图。也就是说,如图所示, 图2B假定用于并行执行以执行所讨论任务的最优数量的节点为近似50个节点。因此,如图 2B的例子中所示,在抽样点S3和S4之间,在抽样器112A的抽样操作期间该最优节点数量 将被超过。在这样的一个例子中,系统100的操作员可以通过观察到与抽样点S4相关的性 能数据相对于针对抽样点S3计算的执行数据有所下降,而得知已经超过了最优节点数量。如上所述并且下面将更加详细描述的那样,抽样器112收集的抽样性能数据接着 可以被传递到校准器114。然后校准器114可以着手基于例如来自抽样器112的最近的抽 样数据,获得与并行化任务108相关联的并行化开销成本的表征。接着,校准器114可以使 用该并行化开销成本的表征来计算用于执行正在运行的任务的最优节点数量,并由此提供 这样的指令到资源调度器104,以便从逻辑资源106的节点池分配该最优数量的节点。更加详细来说,如上所述,校准器114可以使用来自抽样器112的抽样数据,来提 供上面公式1的衰减函数的开销函数O(n)的表征。例如,如下所述,开销函数O(n)可以 被表征为线性或单调增函数(例如,相对逝去时间而增加,或者换个方式,相对期望性能而 减少),该线性或单调增函数通过其相对于正在使用的节点数量的增加速率来表征。换句 话说,例如,开销函数O(n)可以用(α*η)项来表示,其中α就表示与并行使用以执行任务 108的节点的数量的相应增加或减少相关联的开销成本的线性变化速率。因此,校准器114可以包括开销因子计算器114Α,其被配置为计算刚才所描述的 开销因子a。于是,校准器114也可以包括节点优化器114B,该节点优化器114B可以输入 开销因子α并据此确定最优节点数量。如上所述,校准器114从抽样器112接收抽样数据,该抽样数据表示在相应的不同 节点数量的情况下执行时间的差,例如与图2Β的抽样点S2处的节点数量相较于抽样点Sl 处的节点数量相关联的执行时间(例如,逝去时间)差。换句话说,与抽样点S2处的节点 数量相关联的性能可以表示利用新的或调整后的数量的节点的性能,其被表示为Pnrat,同时 相应地,先前的性能(性能高速缓存112D中高速缓存的性能),例如在抽样点Sl处的性能, 可以表示为P。ld,表示与旧的或先前数量的节点相关联的在抽样点Sl处任务的性能。
如上面针对公式1所描述的那样,公式1的衰减函数部分地表示通过添加并行执 行的附加节点以用于执行特定任务而使该任务的性能降低或提高的量或程度。换句话说, 如上所述,衰减函数f (η)当η = 1时被视为等同于使用单个节点执行任务的时间“Τ”。换 句话说,衰减函数可以被视为相对于因子T进行了规一化。因此,为了使用执行时间Pnew和 Pold,也要相对因子T将所述2个计算的执行时间之间的差进行规一化。因此,可以用公式2 来表示与分配用于正在执行的任务的节点数量的变化相关的相应的性能的变化fn (Nnew) -fn (Nold) = (Pnew-Pold) /T公式 2其中,使用对应的不同节点数量的衰减函数的理论差等于抽样器112的操作期间 观察到的实际测得的性能差,例如,抽样点S2的性能与抽样点Sl的性能之间的差。于是, 通过输入已知的和/或观察到的公式2的各种参数的值,如上所述,当假定开销函数O(n) 用函数(an)表示或表征时,可以直接解出开销因子α。换句话说,开销因子计算器114Α可以被配置为执行上述计算,并由此确定开销因 子a。可以理解到,以上述方式使用在图2B的抽样点Sl和S2处收集到的数据得到开销因 子a,允许节点优化器114B随着针对相关正在执行的任务的并行执行添加或移除更多的 节点,来估计或推断并行化开销的影响。在上述的例子中,开销函数O(n)被表示为理想线性函数an,其中并行化开销成 本随着附加节点的添加以特定速率α线性增长,通过开销计算器114A确定的开销因子a 接着可以被插入到公式1的衰减函数中。然后,直接优化公式1的衰减函数以得到优化后 的节点数量n。p。一旦节点优化器114B计算出最优节点数量nop,自适应资源控制器102就 可以指令资源调度器104相应地从逻辑资源106的节点池分配最优数量n。p的节点给所讨 论的正在执行的任务,例如,任务108。例如,在图1的特定例子中,可以将自适应资源控制器102的上述操作应用于使用 3个并行节点106A、106B、106C的正在执行的任务108。例如,在自适应资源控制器102的 操作期间,可以根据所收集的与调整相关联的性能数据来更改或调整用于执行任务108的 节点数量,以便可以得到对应的开销因子a,并且最终可以确定对应的最优节点数量n。p。在该例中,结果可能是,自适应资源控制器102的这些操作可能指示最优节点数 量实际上是当前的节点数量,即3个节点。在这种情况下,任务108可以继续利用3个节点 106A、106B、106C执行,而校准持续时间控制器116可以监控自适应资源控制器102的这些 操作并且确定仅需要对任务108的资源分配进行极微小的优化(或不需要优化)。因而, 校准持续时间控制器116将确定与自适应资源控制器102的操作相关联的校准成本实际 上是不必要的,并且因此可以增加直到自适应资源控制器102的下一次重复操作的时间间 隔。相反,如果校准持续时间控制器116发现,自适应资源控制器102的操作结果是执行任 务108的节点数量发生较大变化,那么校准持续时间控制器116就可以被配置为减少直到 自适应资源控制器102的下一次迭代操作的时间间隔。通过这样的方式,如上所述以及如 下面将详细描述的那样,校准持续时间控制器116可以被配置为动态地并且精确地调整自 适应资源控制器102尝试优化执行特定任务的节点数量的频率,并且由此可以有助于实现 执行所讨论任务的最优化,同时使与这种最优化相关联的校准成本最小化。通过这样做,校准持续时间控制器116克服了在为正在执行的任务分配最优数量 节点中的一个难题。例如,如上所述以及如下面将要详细描述的那样,可能出现这样的情况特定任务包括大量子任务,每个子任务可能与用于执行任务的节点的不同最优数量相 关联。但是,可能难以预先知道在操作相应总任务期间实际上会需要执行哪个子任务,和/ 或可能难以精确估计与每个子任务的最优执行相关联的节点数量。例如,在图1中,任务110被示为包括子任务IlOA和第二子任务110B。如图所示, 子任务IlOA可以表示相对较易于(amenable)并行化的子任务,例如,其可以与较小或较慢 增长的开销函数O(n)相关联。相反,子任务IlOB可以与相对不那么易于并行化的任务,也 即,其具有快速或急剧增长的开销函数0 (η)。换句话说,在上面给出的开销函数0 (η)被表 示为理想线性函数an的例子中,可以发现,子任务IlOA具有相对较小的α值,而子任务 IlOB具有相对较大的α值。因此,在任务110的处理过程期间,从子任务IlOA到子任务 IlOB的转变(transition)将伴随有相关开销函数以及相关并行化开销成本的相应改变。有利的是,可以发现,自适应资源控制器102可以用于在任务110的整个执行过程 中进行节点分配,而无需对子任务110A、110B的特性或外延(extent)的先验知识。例如, 自适应资源控制器102既不需要有关子任务110A、110B特性的先验知识,也不需要与执行 子任务110A、110B相关联的相关并行化开销成本的先验知识。而且,自适应资源控制器102 可以在任务110的整个执行过程中简单地基于需要或基于所做的确定来操作,并且利用这 里所描述的操作,动态并且自适应地确定分配给每个子任务110A、110B的最优(或接近最 优)节点数量。例如,在子任务IlOA的执行期间,自适应资源控制器102可以执行一次或多次确 定当前最优节点数量。出于示例假定在子任务IlOA的执行期间与子任务IlOA相关联的最 优节点数量几乎没有变化,则校准持续时间控制器114A将发现出现了这种最优节点数量 的微小变化,并且将因此逐渐延长自适应资源控制器102确定当前最优节点数量的操作之 间的时间间隔。另一方面,一旦子任务IlOA结束并且子任务IlOB开始,自适应资源控制器102就 将检测到并确定需要新的最优节点数量n。p。在最优节点数量发生自适应资源控制器102的 某次迭代操作所确定的这种大的变化之后,校准持续时间控制器116将减少自适应资源控 制器102的后续操作之间的时间间隔,以便尽可能快速并且精确地确定新的最优节点数量 nop。通过这样的方式,自适应资源控制器102可以趋向于确定在特定时间所需要的、用于执 行当前正在运行的任务或子任务的最优节点数量。在图1的系统100的一些示例实施方式中,抽样器112和校准器114可以被配置 为尝试以尽可能准确或详细的方式表征开销函数O(n)所描述的并行化开销成本。例如,在 理想情况下,自适应资源控制器102可以被配置为精确表征开销函数O(n),在这种情况下 对校准器114来说应当可以仅在自适应资源控制器102的一次迭代或一次操作中就确定与 执行特定任务相关联的最优节点数量。但是,在更加典型或更加现实的场景中,可能太困难或者不值得付出必要的努力 去尝试将开销函数O(n)表征到如此精确的程度。例如,将开销函数确定到如此肯定的程度 可能会牵涉太多的因素,从而使这种示例实施方式在许多场景都不可行。相反,在上面描述 的例子中,校准器114和抽样器112可以被配置为假定开销函数O(n)的相对简化的表示, 具体来说,可以假定开销函数是理想线性的并且从而用函数αn来表示。虽然已知这样的 表示很可能在对特定开销函数的表征上不是高精确度的或者不具有代表性,但是如这里所描述的那样,自适应资源控制器102可以依靠抽样器112和校准器114以校准持续时间控 制器116所确定的时间间隔重复迭代或操作,来逼近必要的节点数量的精确优化。例如,如图2C的图示中所示,示出了开销函数O(n)的图,图2C的图中Y轴上的并 行化开销被表示为节点数量的函数,因此在图2C的X轴上示出了节点数量。在图2C中,曲 线202示出的是实际开销函数0(η)的概念化表示,如上所述,系统100的操作员可能不知 道或者无法发现该函数,或者不值得付出所需的相应努力来获得开销函数的这样精确的表 示。与此同时,直线204、206、208代表实际开销函数202的理想化表示,如使用上面的例子 用估计的或理想的线性函数α η所表示的那样。因此,如图2C所示,自适应资源控制器102 可以执行3次迭代或者操作,以尽可能接近地确定将分配给所讨论的正在执行的任务的最 优节点数量(出于与之前图2Α和图2Β的例子保持一致的目的,在图2C的例子中,假定最 优节点数量η。ρ = 50)。更加具体来说,可以理解的是,直线204表示自适应资源控制器102的第一次迭代 或操作,其中获得具有α的第一值的直线204,其将导致最优节点数量的第一次确定。然 后,在自适应资源控制器102的第二次迭代或操作中,可以确定具有开销因子α的第二值 的第二直线208。如图所示,可能发生存在过调节或过补偿或在所讨论的开销函数的实际 曲线202周围的振荡。但是,如所示的那样,在自适应资源控制器102的第三次迭代或操作 中,可以得到具有项α的第三值的第三直线206,其与开销函数的实际曲线202在近似最优 节点数量n。p = 50处相交,该最优节点数量是执行正在讨论的任务所需要的最优节点数量。通过这样的方式,通过自适应资源控制器102的多次迭代或操作,系统100可以 趋向最优节点数量,而无需确定详细程度或精确程度在直线204、206、208所表示的开销函 数之上的曲线202所表示的开销函数。也就是说,自适应资源控制器102允许系统100趋 向最优节点数量,和/或趋向于最优节点数量周围相对接近的范围或边界内。而且,如上所 述,校准持续时间控制器116可以被配置为确保最初在所确定的最优节点数量之间相对较 大或相对急剧的变化与自适应资源控制器102相对较频繁的操作或迭代相关联。相反,一 旦自适应资源控制器102开始在最优节点数量周围相对较小的范围内振荡时,校准持续时 间控制器116就可以降低自适应资源控制器102操作或迭代的频率,以便将与自适应资源 控制器102的每次操作相关联的任何校准开销成本最小化。虽然上面的描述提供了系统100的操作的各种例子,但是将理解的是,也可以实 施各种其它的示例实施方式,这里将更加详细地对其中一些进行描述。例如,上面描述了抽 样器112可以被配置为确定和提供与用于并行执行所讨论的正在运行的任务的至少2个不 同节点数量相关联的至少两个性能表征。然后,如所述的那样,校准器114,特别是开销因子 计算器114Α,可以使用这两个性能量度来确定已被提供给节点优化器114Β的开销因子α。在其它示例实施方式中,抽样器112可以在一段时间内执行多于两个的对这种性 能量度的确定,例如,可以确定与图2Β的例子中所示的5个抽样点S1-S5相关联的性能量 度。然后,开销因子计算器114Α可以使用多对相关性能量度来获得开销因子α的多个值。 然后,开销因子计算器可以确定与多个所确定的α值相关联的α的平均值,以便节点优化 器114可以基于均值α·来进行对最优节点数量 的确定。通过这样的方式,开销因子 计算器114Α可以提供更加稳定和/或更加精确的开销因子α的值,以供节点优化器114Β 使用。
在图1的例子中,自适应资源控制器102被示为在计算设备118上运行,如所知以 及这里更加详细地描述的那样,计算设备118可以包括或表示可以被配置为执行这里所描 述的自适应资源控制器102的功能的几乎任何计算设备,包括任何必须或期望的相关硬件 或软件,包括适合的处理器、存储器、显示器或其它相关计算资源。虽然在图1的例子中只 有自适应资源控制器102被示为由计算设备运行,但是应当理解,资源调度器104、节点池 和逻辑资源106、以及任务108、110全部都可以表示相同或不同的计算设备118和/或相关 计算设备,这应当是显而易见的。例如,图1的系统100的各个组件都可以在单个计算设备 上实施,或者可以在经由网络互相通信的多个计算设备上实施。对本领域技术人员来说,各 种其它实施方式应当是显而易见的。图3是示出图1的系统100的示例操作的流程图300。在图3的例子中,操作 302-308被示为按顺序执行。但是,应当理解,这样的图示只是出于示例和易于理解的目的, 而非对图1的系统100的操作进行限制。例如,应当理解,除非在这里有所要求,否则操作 302-308可以以不同的次序执行,或者可以被运行为使得操作302-308中的各个操作并行 发生或者以重叠方式发生,除非这里另作说明。在图3的例子中,可以在任务由并行操作的第一数量的节点执行时,确定该正在 执行的任务的第一性能量度(30 。例如,抽样器112的数据收集器112A可以在任务110 由第一数量的节点(例如,图1中被示为正在执行子任务IlOA的4个节点106D-106G)执 行时,确定该正在执行的任务110的第一性能量度。可以理解,数据收集器112A可以收集 与由并行操作的第一数量的节点执行任务110相关联的数据,基于此,性能计算器112B可 以确定任务110的相关性能量度,如上所述,例如,以将所述性能度量存储在性能高速缓存 112D内。例如,可以针对图2B的抽样点Sl确定这样的性能量度。然后,可以在任务正在由并行操作的第二数量的节点执行时,确定该正在执行的 任务的第二性能量度(304)。例如,图1的调整管理器112C可以被配置为将节点数量从第 一节点数量调整为第二节点数量以用于执行任务110。例如,调整管理器可以将节点数量从 四更改为其它更大或更小的节点数量(在图1的例子中未明确示出)。然后,可以重复数据 收集器112A收集适合的性能数据的操作,以便性能计算器112B可以确定利用第二数量的 节点的第二性能量度,如上面所提到的那样。可以理解,这样的性能量度可以与图2B的其 它抽样点中的一个(例如,抽样点S2)相关联。然后,可以基于第一性能量度和第二性能量度来计算开销因子,该开销因子表征 利用并行执行的节点执行任务的并行化开销相对于节点数量变化的变化(306)。例如,开销 因子计算器114A可以接收第一性能量度和第二性能量度,并且可以如上所述确定开销因 子α (例如使用公式幻。还是如上所述,在所提供的特定例子中,通过将使用来自逻辑资源 106的节点池的并行节点执行任务110的并行化开销的变化表示为具有有关于节点数量的 对应变化的特定变化速率的线性函数,使开销因子α表征并行化开销成本的变化。当然, 这只是一个例子,也可以选择线性函数之外的其它类型的函数,诸如像指数函数。因为例如 设计者可能希望以被认为是最接近地表示实际并行化开销成本的特定方式来表示开销函 数Ο(η),所以对特定类型函数的选择和使用可以取决于例如作为基础的实际并行化开销成 本的特性。然后,可以基于该开销因子来确定将并行操作以继续执行任务的节点的最优数量(308)。例如,节点优化器114B可以从开销因子计算器114A接收开销因子,并且可以使用 标准算术技术、利用公式1的衰减函数来确定最优节点数量n。p(例如将衰减函数的导数设 为等于零,或者通过对衰减函数进行足够的样本计算(example calculation)来确定n。p)。 随后,校准器114可以提供指令给资源调度器104,以将最优数量n。p的节点分配给所讨论 的任务或子任务,例如,任务110,或者更加具体来说,分配给子任务110A。图4是更加详细地示出图1的系统100的示例操作的框图。在图4的例子中,在 操作404,利用先前或当前校准的数量的节点来执行任务402。在特定时间点,触发器406 使得对与任务402相关联的性能数据的抽样(408)发生。例如如上所述,抽样(408)可以 包括数据收集器112A的数据收集和性能计算器112B的相关性能确定。然后,可以将所确定的性能量度,也即第一性能量度高速缓存010),例如将其高 速缓存在图ι的性能高速缓存112D内。随后,调整管理器112C可以调整(414)并行执行 以运行任务402的节点数量。在自适应资源控制器102的第一次或初始操作中,所述调整 可以是预先确定的,和/或可以对方向(也即,增大或减小)或幅度(也即,被添加或被移 除的节点数量)做随机调整。也就是说,既可以添加(418)节点也可以减少(416)节点,之 后等待操作420开始。更加具体来说,等待操作420可以被理解为表示所确定的或所指定 的、为了达到任务402的稳定状态操作所必须的时间量。换句话说,基于任务402的类型、 节点106的特性、所确定的性能量度的特性或者基于其它因素,为了在抽样器112的下一次 抽样迭代中获得后续的有意义的/有用的量度,等待操作420可能需要不同的时间量。然后,抽样操作408执行响应于第二触发406而得到的第二性能量度,并且该第二 性能量度可以被输出,以用于与被高速缓存的第一性能量度的值410进行比较操作412。基 于比较操作412,调整管理器112C可以确定后续再次发生的调整操作414的特性。例如,如 上所述,调整管理器112C可以确定添加(418)更多的节点用于执行任务402是否与相对于 第一性能量度而言第二性能量度的提高相关联(例如,所测量的逝去时间减少)。如果是的 话,那么调整管理器112C可以确定继续添加并行节点以用于执行任务402,也即可以执行 添加节点操作418。相反,如果调整管理器112C确定节点的添加导致第二性能量度相对于第一性能 量度实际有所下降,那么调整管理器112C就可以确定已经超过了最优节点数量,因此添加 更多节点只会使执行任务402的执行能力下降进一步恶化。因此,调整管理器112C将执行 减少节点操作416。类似地,如果先前调整包括相对于第一性能量度的节点数量减少了第二性能量度 的节点数量,那么调整管理器112C可以考虑这样的节点减少是否导致第二性能量度相对 于第一性能量度的相应提高。在节点数量的减少提高了性能量度的情况下(例如,使得逝 去时间变少),调整管理器112C就可以断定通过执行减少节点操作416继续减少节点数量 可能是有利的,可能使节点数量更加接近最优节点数量。另一方面,如果先前的节点减少与 变差的性能相关联,那么调整管理器112C就可以确定必须通过添加节点操作418来添加更 多的节点,以再次试图向更加接近最优节点数量的方向发展。当有至少两个性能量度可用于进行比较操作412时,也可以输出这些性能量度以 进行估计操作422,在估计操作422中,例如可以由开销因子计算器114A确定开销因子α。 然后,可以进行校准操作424,在校准操作4 中来自估计操作422的开销因子α被用于确定最优节点数量。然后,在操作426,可以将所确定的最优数量的节点实际分配给任务402, 以使得利用该校准后数量的节点的执行404可以继续。通过这样的方式,可以连续确定任务402的任务结果427,也即,实际执行任务402 的最初期望的结果或输出。而且,在自适应资源控制器102的特定迭代中,或者在自适应资 源控制器102的各个不同操作中,表示抽样器112的抽样操作的虚线框4 可以被理解为 被执行所需要的次数。例如,如上所述,在自适应资源控制器102的特定校准操作中,虚线 框428的抽样操作可能要发生多于两次,以便可以获得开销因子α的多个值,以用于确定 其平均值。此外,或者可替换地,自适应资源控制器102的后续操作可以按照图1的校准持续 时间控制器116所确定的时间间隔进行,校准持续时间控制器116确定所述时间间隔是为 了在最小化与图4的抽样操作和校准操作相关的校准开销成本的同时,将最优节点数量维 持在期望范围内或邻近范围内。图5是图1的系统100的示例实施方式的框图。图5示出了图1的组件102、104 和106的例子以及多任务控制器502。更加具体来说,多任务控制器502可以被理解为表示 这样的组件其被配置为当在并行操作的多个不同任务之间分配资源时,提供对图1的系 统100的附加的管理控制层,其中每一个任务都经历资源调度器104根据自适应资源控制 器102的指令分配逻辑资源106中的并行节点的操作。换句话说,可以理解的是,在理想场景下,系统100或系统500接收到的每个任务 都可以被配置为接收为其分配的最优数量的节点。但是实际中,可能发生这样的情况仅有 有限数量的节点可用于在系统500处接收到的多个任务T1. . . Tn的并行执行。在这种情况 下,可能发生的是,并非所有任务都可以接收到与其相关联的计算出的/期望的最优数量 的节点,因为例如当前可能不能在逻辑资源106的节点池中获得该最优数量的节点,或者 存在其它约束条件。在一个例子中,可能的情况是,逻辑资源池106中可用节点的总数量等于13个节 点。而且,可能的情况是,由于自适应资源控制器102的操作,可能确定,与多个任务或其子 任务相关联的最优节点数量可以被确定。更加具体来说,如图5中所示,任务T1的子任务 504可以与任务T2的子任务506协同执行,同时任务Tn的子任务508也可以与它们并行执 行。在这样的情况下,如图所示,自适应资源控制器102和并行执行调度器104的相应 实例可以做出响应,以便对当前正在执行的子任务504、506和508中的每一个的最优节点 数量进行相应的必要确定。在这样的情况下,可能发生的是,为子任务504确定的最优节点 数量为10个节点,而与子任务506相关联的最优节点数量为5个节点,与子任务508相关 联的最优节点数量被确定为3个节点。在这种情况下,很明显,子任务504、506、508总共需 要的节点多于在逻辑资源106的节点池内当前可用的13个节点。在这种情况下,多任务控制器502可以被配置为提供与每个任务或子任务相关联 的优先级,以使得并行执行调度器104和/或自适应资源控制器102可以对可用节点资源 进行最充分的利用或最期望的利用。在特定例子中,可能发生的是,虽然利用10个节点可 以使任务504达到最优化,但是子任务504的对应优先级可能指示仅将可用的13个节点中 的6个节点分配给子任务504。与此同时,虽然利用5个节点可以使子任务506达到最优化,但是如所示的那样,可用的13个节点中只有4个节点被分配给子任务506。最后,在特 定例子中,利用3个节点可以使子任务508达到最优化,如所示的那样,实际上也从13个可 用节点的节点池分配了 3个节点给子任务508。因此,以此方式分配可用节点的一条理由可能是子任务508是优先级最高的子 任务,因此接收到用于完成该子任务所需要的实际最优数量的节点。例如,子任务508可 能与关联到高级质量保证或者其它服务等级担保的客户正在执行的任务相关联。类似地, 子任务506可能具有相对较高的优先级,因此可以接收到其最优执行所需要的几乎全部节 点。另一方面,子任务504可能被给予较低的优先级,因此可能仅接收到所需要的被确定为 执行子任务504的最优节点数量的10个节点中的6个。在该例子或类似例子中,多任务控制器502可以执行其它准则来分配可用节点。 例如,即使子任务504、506或508优先级相似,也可能确定将最优数量节点分配给子任务 508,因为在本例中,该最优节点数量相对较小,并且可以将其分配给子任务508以使其迅 速执行和完成,从而使得本例中所分配的3个节点可以返回逻辑资源106的节点池,之后在 其余正在执行的子任务504、506内或在它们之间进行分配。因此,多任务控制器502可以被配置为在这些场景下协助自适应资源控制器102 和/或并行执行调度器104 逻辑资源106中节点池内的节点数量相对于执行各个任务 T1. . . Tn的需要或其它要求而言是有限的。虽然已经给出了特定例子,但是应当理解的是,对 于在可用资源相对有限时多任务控制器502协助可用资源的分配,也可以实施许多其它例 子。例如,多任务控制器502可以完全延迟或阻制特定任务或子任务的执行,以使得其它任 务可以接收到接近于它的所确定的最优节点数量的多个的节点。对本领域技术人员来说, 其它例子应当是明显的。而且,虽然多任务控制器502被示为与资源调度器104通信的独立单元,但是可以 理解的是,这样的图示仅仅是出于示例的目的。在其它示例实施方式中,多任务控制器502 可以被实施为自适应资源控制器102的一部分或者与自适应资源控制器102结合在一起。 而且,对于本领域技术人员来说,其它示例实施方式应当是明显的。图6是分别示出图1的系统100和图5的系统500的附加示例操作的流程图600。 在图6中的例子中,正在运行的任务T被接收(60 。可以确定抽样迭代次数/轮数S (604)。 例如,可以由系统100的操作员预先指定或预先定义这样的抽样轮数,并且该轮数可以与 被认为是精确计算开销因子α的精确平均值所必须的抽样次数相关联。然后,可以确定用于在每次抽样处理过程期间进行调整的节点数量,表示为 δ (606)。换句话说,如上所述,调整管理器112C可以被配置为在特定抽样操作期间调整节 点数量,如在图4的操作414、416、418中更加详细地图示的那样。在图6的示例中,节点数 量δ表明调整管理器112C将在抽样处理过程期间将当前正在执行的节点数量增加或减少 的节点数,下面将更加详细地描述。类似地,可以确定在每轮抽样期间添加或是减少刚刚确定数量的节点的方向 D(608)。也就是说,如上所述,在给定轮次的抽样期间要么添加节点,要么减少节点,这例如 取决于先前一轮抽样的先前方向导致进行中的抽样轮性能改善还是恶化。在操作600的第 一实例或迭代中,可以随机分配方向D,和/或可以由系统100或系统500的操作员确定方 向D。19
然后,可以记录利用当前数量节点的正在运行的任务的性能(610)。例如,如上所 述,数据收集器112A和性能计算器112B可以一起操作来确定与第一或当前节点数量相关 联的第一性能量度。然后,调整管理器112C可以用D和δ来调整第一或当前节点数量,也 即,可以根据D和δ增加或减少当前节点数量。然后,系统100或500可以等待记录新性能量度所需要的时间长度(614)。也就是 说,如上所述,这样的等待时间长度可以取决于各个节点因子和/或可以取决于性能量度 的类型、执行中的任务、或待分配的节点,或者它们的组合或其它因素,如应当清楚的那样。如果先前性能优于使用当前数量或新数量的节点所测得的当前性能/新的性能 (616),那么可以将方向D逆转(reverse) (618)。也就是说,如上所述,如果先前性能或第一 性能优于新的或第二性能,那么调整管理器112C就推断当前添加或移除节点的方向说明 了使性能变差的趋势,因此将该方向逆转。相反,如果旧的或第一性能不优于新的或第二性 能,那么调整管理器112C就可以推断性能量度的比较说明了提高性能的趋势,那么就可以 继续保持调整的方向D。然后可以记录旧的或第一性能与新的性能之间的差(620),并且然后,可以基于此 计算开销因子(622)。例如,如上所述,开销因子计算器114A可以接收性能量度Pnew和P。ld, 并且可以相对于与仅使用单个节点执行任务相关联的执行时间T,将这些性能量度进行比 较,如公式2所示。然后,可以将该比较的结果设为等于使用相应的第一和第二(也即,旧 的和新的)节点数量所求值的公式1的衰减函数的相应的差,如上面公式2中所示的那样。 通过这样的方式,可以由开销因子计算器114A提取并确定因子α。如果尚未达到抽样轮数,那么操作继续记录利用当前(调整后的)数量的节点的 任务的性能(610),之后继续执行操作612-622,由此确定更多的开销因子α的值。一旦达 到了数量S个α值(6Μ),就可以确定平均开销因子aav(6^)。使用开销因子的平均值aav,可以例如由节点优化器114B确定最优节点数量 (628)。例如,如上所述,可以将所确定的开销因子α av代入到公式1的衰减函数中,然后可 以优化衰减函数来确定n。p。从而,校准器114可以提供指令到资源调度器104,以将当前节 点数量设为由此确定的最优节点数量(630)。随后,如上所述,校准持续时间控制器116可以操作为确定直到应当进行另外的 抽样校准操作时的时间间隔的长度。具体来说,校准持续时间控制器116可以确定从最新 近的校准开始的时间间隔的持续时间(632)。而且,校准持续时间控制器116可以确定在对 应的最新近校准操作期间最新近的优化后的节点的值的数量M(634)。使用最新近的持续时间的量度以及最新近的优化后的节点的值的值M,校准持续 时间控制器116可以计算新的校准持续时间,其表示直到应当进行后续抽样校准操作时的 时间间隔(636)。随后,自适应资源控制器102可以在继续(也即,继续开始记录利用当前 数量节点的任务的性能(610))之前等待由此确定的新的校准持续时间的长度(638)。也就是说,如上所述,当最新近的优化后的节点的值相对接近时,校准持续时间控 制器116可以维持或增加新的校准持续时间的时间间隔的长度,因为可以推知正在执行的 任务处于或接近其最优节点数量。相反,如果M个最新近的优化后的节点的值彼此之间表 现出相对较大的变化,那么校准持续时间控制器116可以将新的校准时间间隔相对于最新 近的前一时间间隔的持续时间减小。通过这样的方式,可以有效达到或逼近最优节点数量,同时将与这里所描述的抽样校准操作相关联的校准开销成本最小化。形式上,如果Dn是待计算的校准持续时间CD的长度,M(如上所述)表示影响Dn 的计算的先前⑶的恒定数量,那么向量<DN_M,Dm,. . .,DN_i>就表示过去每个⑶的值。然 后,权重向量<%,W1, ... , 预定义分配给每个过去值的权重,其约束条件是该权重向量 内的权重之和等于1。为了使最近的CD的影响大于过去的CD,可以将权重向量中的值规定 为从W1到%单调增长。利用上面的定义,可以使用权重向量的权重,根据过去CD值的累积 来计算不考虑最优并行程度的原始CD即Dtog。如上所述,在确定校准持续时间时还可以考虑最新近的校准结果的影响。例如,如 果在最近一次和当前的校准处理过程中估计的最优节点数量是CV1和On,那么这两个值之 间的比值就显示出进行多大的调整。如果比值较接近于100%,那么暗示着当前估计的并行 化程度几乎等于最近一次的估计,而较接近于0%的比值则暗示最优节点数量的变化较大。 使用该比值,可以将原始⑶Dtog放大一因子Δ乘以该比值的倍数,其中Δ可以通过实验 和/或用户偏好来确定。从而,可以通过公式3计算当前校准持续时间⑶
权利要求
1.一种包括记录于计算机可读介质上的指令的系统,该系统包括抽样器,其被配置为在任务由并行操作的第一数量的节点执行的同时确定该正在执行 的任务的第一性能量度,并且被配置为在该任务由并行操作的第二数量的节点执行的同时 确定该正在执行的任务的第二性能量度;以及校准器,其被配置为基于第一性能量度和第二性能量度、相对于节点数量的变化来计 算开销因子,该开销因子表征利用并行执行的节点执行所述任务的并行化开销的变化,并 且该校准器被配置为基于该开销因子来确定并行操作以继续执行所述任务的节点的最优 数量。
2.如权利要求1所述的系统,其中,所述任务包括软件应用的任务,并且其中,所述第 一性能量度和第二性能量度分别包括使用第一数量的节点和第二数量的节点处理该软件 应用的固定数据量所用的逝去时间的量度。
3.如权利要求1所述的系统,其中,所述抽样器包括调整管理器,其被配置为在确定了 第一性能量度之后确定并执行从第一节点数量调整为第二节点数量,包括确定固定节点数 量以及确定将第一节点数量增加还是减少该固定节点数量以得到第二节点数量。
4.如权利要求3所述的系统,其中,所述调整管理器被配置为基于第一性能量度与先 前的性能量度之间的差来确定增加还是减少第一节点数量。
5.如权利要求1所述的系统,其中,所述校准器被配置为基于第一性能量度和第二性能量度确定第一开销因子;在任务正在由并行操作的第三数量的节点执行的同时,接收至少该正在执行的任务的第三性能量度;使用第三性能量度和至少一个其它的性能量度,确定第二开销因子;以及确定第一开销因子和第二开销因子的平均值作为所述开销因子。
6.如权利要求1所述的系统,其中,所述校准器被配置为计算所述开销因子,使其表征 衰减函数f (η) = (1/η)+0(η)中的开销函数0 (η),其中,η表示节点数量,并且其中,该衰减 函数表征了利用并行执行的节点执行所述任务的并行化开销的变化。
7.如权利要求6所述的系统,其中,将所述开销函数0(η)表示为α η,并且所述校准器 被配置为计算开销因子,该开销因子包括α项,以表示利用并行执行的节点执行所述任务 的并行化开销的线性变化速率。
8.如权利要求7所述的系统,其中,所述校准器被配置为根据公式f(Nse。。nd)_f (Nfiret) =(P_。nd-Pfi t)/T,通过将利用第一节点数量和第二节点数量求值的衰减函数与第一性 能和第二性能之间的性能变化进行比较,来确定包括α项的开销因子,在公式中Pfiret* Psecond分别表示第一性能量度和第二性能量度,T表示使用单个节点执行的时间。
9.如权利要求1所述的系统,其中,最优节点数量的确定表示当前抽样然后校准操作 的结束,所述系统还包括校准持续时间控制器,其被配置为控制当前抽样然后校准操作与后续抽样然后校准操 作之间的时间间隔。
10.如权利要求9所述的系统,其中,所述校准持续时间控制器被配置为,基于当前抽 样然后校准操作的最优节点数量和至少一个先前抽样然后校准操作的至少一个先前确定 的最优节点数量中的变化,来确定所述时间间隔。
11.如权利要求9所述的系统,其中,所述校准持续时间控制器被配置为,基于当前抽 样然后校准操作与先前抽样然后校准操作之间的先前时间间隔来确定所述时间间隔。
12.如权利要求1所述的系统,其中,所述校准器被配置为指令资源调度器分配所述最 优数量的节点以供利用其执行所述任务。
13.一种计算机实现的方法,包括在任务由并行操作的第一数量的节点执行的同时确定该正在执行的任务的第一性能量度;在该任务由并行操作的第二数量的节点执行的同时确定该正在执行的任务的第二性 能量度;基于第一性能量度和第二性能量度、相对于节点数量的变化来计算开销因子,该开销 因子表征利用并行执行的节点执行该任务的并行化开销的变化;以及基于该开销因子来确定将并行操作以继续执行该任务的节点的最优数量。
14.如权利要求13所述的方法,其中,确定第一性能量度包括在确定了第一性能量度之后执行从第一节点数量调整为第二节点数量,包括确定固定 节点数量以及确定将第一节点数量增加还是减少该固定节点数量以得到第二节点数量。
15.如权利要求13所述的方法,其中,计算所述开销因子包括将所述开销因子计算为表征衰减函数f (η) = (1/η)+0(η)中的开销函数0(η),其中, η表示节点数量,并且其中,该衰减函数表征利用并行执行的节点执行所述任务的并行化开 销的变化。
16.如权利要求13所述的方法,其中,所述最优节点数量的确定与当前抽样然后校准 操作的结束相关联,所述方法还包括基于当前抽样然后校准操作的最优节点数量和至少一个先前抽样然后校准操作的至 少一个先前确定的最优节点数量中的变化,并且还基于当前抽样然后校准操作与最新近的 先前抽样然后校准操作之间的先前时间间隔,来控制当前抽样然后校准操作与后续抽样然 后校准操作之间的时间间隔。
全文摘要
本发明提供一种并行处理期间资源分配的校准方法和系统。可以在任务由并行操作的第一数量的节点执行的同时确定该正在执行的任务的第一性能量度。可以在任务由并行操作的第二数量的节点执行的同时确定该正在执行的任务的第二性能量度。然后,可以基于第一性能量度和第二性能量度,相对于节点数量的变化,计算开销因子,该开销因子表征利用并行执行的节点执行所述任务的并行化开销的变化。然后,可以基于该开销因子来确定并行操作以继续执行该任务的节点的最优数量。
文档编号G06F9/50GK102043673SQ200910180738
公开日2011年5月4日 申请日期2009年10月21日 优先权日2009年10月21日
发明者闫剑锋, 黎文宪 申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1