CN102043673A - 并行处理期间资源分配的校准 - Google Patents
并行处理期间资源分配的校准 Download PDFInfo
- Publication number
- CN102043673A CN102043673A CN200910180738XA CN200910180738A CN102043673A CN 102043673 A CN102043673 A CN 102043673A CN 200910180738X A CN200910180738X A CN 200910180738XA CN 200910180738 A CN200910180738 A CN 200910180738A CN 102043673 A CN102043673 A CN 102043673A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- nodes
- expense
- performance metric
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 56
- 238000013468 resource allocation Methods 0.000 title abstract 2
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000008859 change Effects 0.000 claims abstract description 27
- 238000005070 sampling Methods 0.000 claims description 56
- 238000011156 evaluation Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 106
- 230000003044 adaptive effect Effects 0.000 description 70
- 238000005457 optimization Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 24
- 230000000875 corresponding effect Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000002596 correlated effect Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000012886 linear function Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- RVRCFVVLDHTFFA-UHFFFAOYSA-N heptasodium;tungsten;nonatriacontahydrate Chemical compound O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[Na+].[W].[W].[W].[W].[W].[W].[W].[W].[W].[W].[W] RVRCFVVLDHTFFA-UHFFFAOYSA-N 0.000 description 2
- 239000000155 melt Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000006424 Flood reaction Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3404—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供一种并行处理期间资源分配的校准方法和系统。可以在任务由并行操作的第一数量的节点执行的同时确定该正在执行的任务的第一性能量度。可以在任务由并行操作的第二数量的节点执行的同时确定该正在执行的任务的第二性能量度。然后,可以基于第一性能量度和第二性能量度,相对于节点数量的变化,计算开销因子,该开销因子表征利用并行执行的节点执行所述任务的并行化开销的变化。然后,可以基于该开销因子来确定并行操作以继续执行该任务的节点的最优数量。
Description
技术领域
本说明书涉及并行处理期间的资源分配。
背景技术
已知计算领域中的许多场景(scenarios)受益于并行处理。一般说来,这样的并行处理可以指代使用两个或更多个在其它方面分立的(otherwise-separate)计算资源以同时或重叠的方式执行单个任务或计算。这样的并行处理的一个例子可能发生在数据库搜索/访问领域,在该领域中使用两个或更多个计算资源(例如,两个服务器、处理器或核)来执行大型数据库的单个查询,以便比仅用单个计算资源所能够达到的速度更快地提供查询结果。
可能受益于并行处理的领域的许多例子中另一个是云计算(cloudcomputing)。云计算一般指的是将计算/处理能力作为公用设施来提供,并且按需满足用户(多个用户)的计算需求,包括依照用户的需要增加、减少或者以其他方式改变用户的计算能力(从而增加、减少或者以其他方式改变提供这些计算能力的相关成本)。例如,用户可以使用一般的通用计算设备来通过网络访问提供商的计算资源,从而使提供商可以对所提供的计算资源进行控制。
为了实现这些场景,提供商可以部署必要的硬件和软件,这些硬件和软件被认为是向提供商的消费者群体(customer base)提供服务必不可少的。也就是说,这样的提供商会对将访问提供商的硬件/软件资源的用户数量具有某种期望或预测,并且对这些用户将消费资源的规模也有所期望/预测(例如,可能有些用户要求的任务的数据密集性远高于其它用户)。于是,为了提高成本效率,提供商一般会试图优化可用资源,包括使用最少的必要资源来满足提供商的消费者群体的当前计算需求。
并行处理允许这种场景下的提供商通过例如将并行执行的资源分配给特定用户和/或用于特定计算任务来进行这样的优化。通过这样的方式,特定用户可以在期望时间段内得到访问大量计算资源的效果(例如,快速的处理速度),而不会产生与实际购买、安装以及管理相关硬件和软件关联的所有成本。
但是,这样的并行处理的实施难以以有效或最优的方式实现。例如,可能存在与将(多个用户的)多个任务划分/分配给多个可用处理资源相关联的开销成本、以及与重新结合或合并任务处理结果相关联的成本。例如,取决于所讨论的任务的特性以及并行化的程度,可能使添加的处理资源的利用率降低,并且这些开销成本可能限制、并可能最终支配或者淹没并行化的好处。这种使用超出最优数目或数量的处理资源的场景可以被称为过度并行化(over-parallelization)。相反,为给定任务/用户分配过少的处理资源的情况也可能发生,这可以被称为低度并行化(under-parallelization),低度并行化可能导致无谓的较慢的总处理时间以及相应的用户满意度下降。
而且,一个或多个正在运行的任务的运行时环境的复杂度和不可预测性可能使多核并行查询处理的难度加剧。例如,即使在运行时之前制定了用于并行处理的可接受的计划,也可能出现使所计划的并行化的有效性或合意性降低的运行时事件。因此,并行处理的有效实施是一项艰巨的挑战,次优的实施方式可能限制计算资源的有效性以及用户的生产率/满意度。
发明内容
根据一个一般方面,一种系统包括记录于计算机可读介质上的指令。该系统可以包括:抽样器,其被配置为在任务由并行操作的第一数量的节点执行的同时确定该正在执行的任务的第一性能量度,并且被配置为在该任务由并行操作的第二数量的节点执行的同时确定该正在执行的任务的第二性能量度;以及校准器,其被配置为基于第一性能量度和第二性能量度,相对于节点数量的变化,计算开销因子,该开销因子表征利用并行执行的节点执行所述任务的并行化开销的变化,并且该校准器被配置为基于该开销因子来确定并行操作以继续执行所述任务的节点的最优数量。
实施方式可以包括一个或多个下列特征。例如,所述任务可以包括软件应用的任务,并且第一性能量度和第二性能量度可以分别包括使用第一数量的节点和第二数量的节点处理该软件应用的固定数据量所用的逝去时间的量度。
所述抽样器可以包括调整管理器,其被配置为在确定了第一性能量度之后确定并执行从第一节点数量调整为第二节点数量,包括确定固定节点数量以及确定将第一节点数量增加还是减少该固定节点数量以得到第二节点数量。所述调整管理器可以被配置为基于第一性能量度与前一性能量度之间的差来确定增加还是减少第一节点数量。
所述校准器可以被配置为:基于第一性能量度和第二性能量度确定第一开销因子;在任务正在由并行操作的第三数量的节点执行的同时,接收至少该正在执行的任务的第三性能量度;使用第三性能量度和至少一个其它的性能量度确定第二开销因子;以及确定第一开销因子和第二开销因子的平均值作为所述开销因子。
所述校准器可以被配置为计算所述开销因子,使其表征衰减函数f(n)=(1/n)+O(n)中的开销函数O(n),其中,n表示节点数量,并且其中,该衰减函数表征了利用并行执行的节点执行所述任务的并行化开销的变化。所述开销函数O(n)可以被表示为αn,并且所述校准器可以被配置为计算开销因子,该开销因子包括α项,以表示利用并行执行的节点执行所述任务的并行化开销的线性变化速率。所述校准器可以被配置为根据公式f(Nsecond)-f(Nfirst)=(Psecond-Pfirst)/T,通过将利用第一节点数量和第二节点数量求值的衰减函数与第一性能和第二性能之间的性能变化进行比较,来确定包括α项的开销因子,在公式中Pfirst和Psecond分别表示第一性能量度和第二性能量度,T表示使用单个节点执行的时间。
最优节点数量的确定可以表示当前抽样然后校准操作的结束,并且所述系统还可以包括校准持续时间控制器,其被配置为控制当前抽样然后校准操作与后续抽样然后校准操作之间的时间间隔。所述校准持续时间控制器可以被配置为,基于当前抽样然后校准操作的最优节点数量和至少一个先前抽样然后校准操作的至少一个先前确定的最优节点数量中的变化,来确定所述时间间隔。所述校准持续时间控制器可以被配置为,基于当前抽样然后校准操作与前一抽样然后校准操作之间的前一时间间隔来确定所述时间间隔。
所述校准器可以被配置为指令资源调度器分配所述最优数量的节点以供利用其执行所述任务。
根据另一个一般方面,提供一种计算机实现的方法。可以在任务由并行操作的第一数量的节点执行的同时确定该正在执行的任务的第一性能量度。可以在该任务由并行操作的第二数量的节点执行的同时确定该正在执行的任务的第二性能量度。可以基于第一性能量度和第二性能量度、相对于节点数量的变化来计算开销因子,该开销因子表征利用并行执行的节点来执行该任务的并行化开销的变化。然后,可以基于该开销因子来确定将并行操作以继续执行该任务的节点的最优数量。
实施方式可以包括一个或多个下列特征。例如确定第一性能量度可以包括:在确定了第一性能量度之后执行从第一节点数量调整为第二节点数量,包括确定固定节点数量以及确定将第一节点数量增加还是减少该固定节点数量以得到第二节点数量。计算开销因子可以包括:将所述开销因子计算为表征衰减函数f(n)=(1/n)+O(n)中的开销函数O(n),其中,n表示节点数量,并且其中,该衰减函数表征利用并行执行的节点执行所述任务的并行化开销的变化。
所述最优节点数量的确定可以与当前抽样然后校准操作的结束相关联。然后,可以基于当前抽样然后校准操作的最优节点数量和至少一个先前抽样然后校准操作的至少一个先前确定的最优节点数量中的变化,并且基于当前抽样然后校准操作与最新近的先前抽样然后校准操作之间的先前时间间隔,来控制当前抽样然后校准操作与后续抽样然后校准操作之间的时间间隔。
根据另一个一般方面,一种计算机程序产品可以被有形地具体实施在计算机可读介质上,并且可以包括指令,所述指令在被执行时被配置为:在任务由并行操作的第一数量的节点执行的同时确定该正在执行的任务的第一性能量度;在任务由并行操作的第二数量的节点执行的同时确定该正在执行的任务的第二性能量度;基于第一性能量度和第二性能量度、相对于节点数量的变化来计算开销因子,该开销因子表征利用并行执行的节点来执行任务的并行化开销的变化;以及基于该开销因子确定将并行操作以继续执行该任务的节点的最优数量。
实施方式可以包括一个或多个下列特征。例如,所述开销因子可以表征衰减函数f(n)=(1/n)+O(n)中的开销函数O(n),其中,n表示节点数量,并且其中,该衰减函数表征了利用并行执行的节点执行所述任务的并行化开销的变化。所述开销函数O(n)可以表示为αn,并且所述开销因子可以被计算为包括项α,以表示利用并行执行的节点执行所述任务的并行化开销的线性变化速率。
所述最优节点数量的确定可以与当前抽样然后校准操作的结束相关联,并且可以基于当前抽样然后校准操作的最优节点数量不同于先前抽样然后校准操作的先前确定的最优节点数量的程度,来确定当前抽样然后校准操作与后续抽样然后校准操作之间的时间间隔。
一个或多个实施方式的细节将在附图和下面的描述中进行阐述。从说明书和附图以及权利要求书中其它特征将变得清楚。
附图说明
图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/n+O(n) 公式1
在公式1的衰减函数中,可以理解的是,衰减函数f(n)本身指代例如逝去时间或所讨论任务的其它性能量度,诸如沿图2A的Y轴所示的。在所述例子中,相对于上面提到的时间T来表示/归一化所述衰减函数,所述时间T是由单个节点执行该任务所需的时间(也即,对于n=1,f(1)=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可能与第二开销函数相关联,其中第一和第二开销函数可能是彼此完全不同的。下面将详细提供这样的不同子任务的例子,但是应当理解的是,各种任务或子任务的执行特征中的这些差异会导致对每个子任务或者对整个任务的开销函数O(n)的表征更加困难。
在图1的系统100的例子中,自适应资源控制器102可以被配置为为任务108、110分配最优数量的或其他期望数量的节点池106的节点,而无需对相关开销函数的先验知识或表征,或者对并行化开销成本的其它知识。而且,自适应资源控制器102可以被配置为在任务108、110中每一个的运行时或执行期间动态地进行这种资源分配,并且因此能够考虑在任务108、110的执行期间(例如,在任务110执行期间在从第一子任务110A变为第二子任务110B期间)每一个任务的不同资源需求。
因此,自适应资源控制器102和系统100作为整体提供优于它们的相应传统组件或应用的改进和优点,诸如在上面的例子中所描述的那样。例如,传统上使用诸如资源调度器104的组件将逻辑资源106的节点分配给任务108会包括,如上所述,在开始执行任务108之前,将固定数量或估计数量的节点分配给该任务。但是从上面的讨论中可以看到,可能很难以任何精确程度确定这样的估计。而且,即使这样的估计最初是精确的,也可能或者很可能无法在特定任务(及其子任务)的整体执行期间保持精确。而且,从上面的讨论中将理解到,在任何特定任务的使用执行之前将确切数量的可用节点分配给该任务可能是次优的,例如,依照上面公式1的衰减函数,可能使该任务过度并行化或低度并行化。
相反,图1的自适应资源控制器102被配置为在任务108、110中的每一个任务的执行期间,为每个任务动态地和集中地分配逻辑资源106的节点。更加具体来说,自适应资源控制器102可以包括抽样器112,抽样器112被配置为监控使用当前数量的所分配节点的特定任务(诸如任务108)的性能,并且还被配置为更改或调整当前节点数量,并在之后继续监控使用调整后数量的节点的任务108的性能。
使用该性能信息,自适应资源控制器102可以实现校准器114,校准器114从抽样器112接收性能信息的样本,并确定相关开销函数O(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)调整。这些对所分配节点的主动或抢先调整提供了表征当前开销函数O(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)。
具体来说,抽样点S1表示数据收集器112A收集数据的第一操作以及由性能计算器112B执行的后续性能计算。如图所示,在抽样时间S1处的对应数量的节点为近似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)可以用(α*n)项来表示,其中α就表示与并行使用以执行任务108的节点的数量的相应增加或减少相关联的开销成本的线性变化速率。
因此,校准器114可以包括开销因子计算器114A,其被配置为计算刚才所描述的开销因子α。于是,校准器114也可以包括节点优化器114B,该节点优化器114B可以输入开销因子α并据此确定最优节点数量。
如上所述,校准器114从抽样器112接收抽样数据,该抽样数据表示在相应的不同节点数量的情况下执行时间的差,例如与图2B的抽样点S2处的节点数量相较于抽样点S1处的节点数量相关联的执行时间(例如,逝去时间)差。换句话说,与抽样点S2处的节点数量相关联的性能可以表示利用新的或调整后的数量的节点的性能,其被表示为Pnew,同时相应地,先前的性能(性能高速缓存112D中高速缓存的性能),例如在抽样点S1处的性能,可以表示为Pold,表示与旧的或先前数量的节点相关联的在抽样点S1处任务的性能。
如上面针对公式1所描述的那样,公式1的衰减函数部分地表示通过添加并行执行的附加节点以用于执行特定任务而使该任务的性能降低或提高的量或程度。换句话说,如上所述,衰减函数f(n)当n=1时被视为等同于使用单个节点执行任务的时间“T”。换句话说,衰减函数可以被视为相对于因子T进行了规一化。因此,为了使用执行时间Pnew和Pold,也要相对因子T将所述2个计算的执行时间之间的差进行规一化。因此,可以用公式2来表示与分配用于正在执行的任务的节点数量的变化相关的相应的性能的变化:
fn(Nnew)-fn(Nold)=(Pnew-Pold)/T 公式2
其中,使用对应的不同节点数量的衰减函数的理论差等于抽样器112的操作期间观察到的实际测得的性能差,例如,抽样点S2的性能与抽样点S1的性能之间的差。于是,通过输入已知的和/或观察到的公式2的各种参数的值,如上所述,当假定开销函数O(n)用函数(αn)表示或表征时,可以直接解出开销因子α。
换句话说,开销因子计算器114A可以被配置为执行上述计算,并由此确定开销因子α。可以理解到,以上述方式使用在图2B的抽样点S1和S2处收集到的数据得到开销因子α,允许节点优化器114B随着针对相关正在执行的任务的并行执行添加或移除更多的节点,来估计或推断并行化开销的影响。
在上述的例子中,开销函数O(n)被表示为理想线性函数αn,其中并行化开销成本随着附加节点的添加以特定速率α线性增长,通过开销计算器114A确定的开销因子α接着可以被插入到公式1的衰减函数中。然后,直接优化公式1的衰减函数以得到优化后的节点数量nop。一旦节点优化器114B计算出最优节点数量nop,自适应资源控制器102就可以指令资源调度器104相应地从逻辑资源106的节点池分配最优数量nop的节点给所讨论的正在执行的任务,例如,任务108。
例如,在图1的特定例子中,可以将自适应资源控制器102的上述操作应用于使用3个并行节点106A、106B、106C的正在执行的任务108。例如,在自适应资源控制器102的操作期间,可以根据所收集的与调整相关联的性能数据来更改或调整用于执行任务108的节点数量,以便可以得到对应的开销因子α,并且最终可以确定对应的最优节点数量nop。
在该例中,结果可能是,自适应资源控制器102的这些操作可能指示最优节点数量实际上是当前的节点数量,即3个节点。在这种情况下,任务108可以继续利用3个节点106A、106B、106C执行,而校准持续时间控制器116可以监控自适应资源控制器102的这些操作并且确定仅需要对任务108的资源分配进行极微小的优化(或不需要优化)。因而,校准持续时间控制器116将确定与自适应资源控制器102的操作相关联的校准成本实际上是不必要的,并且因此可以增加直到自适应资源控制器102的下一次重复操作的时间间隔。相反,如果校准持续时间控制器116发现,自适应资源控制器102的操作结果是执行任务108的节点数量发生较大变化,那么校准持续时间控制器116就可以被配置为减少直到自适应资源控制器102的下一次迭代操作的时间间隔。通过这样的方式,如上所述以及如下面将详细描述的那样,校准持续时间控制器116可以被配置为动态地并且精确地调整自适应资源控制器102尝试优化执行特定任务的节点数量的频率,并且由此可以有助于实现执行所讨论任务的最优化,同时使与这种最优化相关联的校准成本最小化。
通过这样做,校准持续时间控制器116克服了在为正在执行的任务分配最优数量节点中的一个难题。例如,如上所述以及如下面将要详细描述的那样,可能出现这样的情况:特定任务包括大量子任务,每个子任务可能与用于执行任务的节点的不同最优数量相关联。但是,可能难以预先知道在操作相应总任务期间实际上会需要执行哪个子任务,和/或可能难以精确估计与每个子任务的最优执行相关联的节点数量。
例如,在图1中,任务110被示为包括子任务110A和第二子任务110B。如图所示,子任务110A可以表示相对较易于(amenable)并行化的子任务,例如,其可以与较小或较慢增长的开销函数O(n)相关联。相反,子任务110B可以与相对不那么易于并行化的任务,也即,其具有快速或急剧增长的开销函数O(n)。换句话说,在上面给出的开销函数O(n)被表示为理想线性函数αn的例子中,可以发现,子任务110A具有相对较小的α值,而子任务110B具有相对较大的α值。因此,在任务110的处理过程期间,从子任务110A到子任务110B的转变(transition)将伴随有相关开销函数以及相关并行化开销成本的相应改变。
有利的是,可以发现,自适应资源控制器102可以用于在任务110的整个执行过程中进行节点分配,而无需对子任务110A、110B的特性或外延(extent)的先验知识。例如,自适应资源控制器102既不需要有关子任务110A、110B特性的先验知识,也不需要与执行子任务110A、110B相关联的相关并行化开销成本的先验知识。而且,自适应资源控制器102可以在任务110的整个执行过程中简单地基于需要或基于所做的确定来操作,并且利用这里所描述的操作,动态并且自适应地确定分配给每个子任务110A、110B的最优(或接近最优)节点数量。
例如,在子任务110A的执行期间,自适应资源控制器102可以执行一次或多次确定当前最优节点数量。出于示例假定在子任务110A的执行期间与子任务110A相关联的最优节点数量几乎没有变化,则校准持续时间控制器114A将发现出现了这种最优节点数量的微小变化,并且将因此逐渐延长自适应资源控制器102确定当前最优节点数量的操作之间的时间间隔。
另一方面,一旦子任务110A结束并且子任务110B开始,自适应资源控制器102就将检测到并确定需要新的最优节点数量nop。在最优节点数量发生自适应资源控制器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示出的是实际开销函数O(n)的概念化表示,如上所述,系统100的操作员可能不知道或者无法发现该函数,或者不值得付出所需的相应努力来获得开销函数的这样精确的表示。与此同时,直线204、206、208代表实际开销函数202的理想化表示,如使用上面的例子用估计的或理想的线性函数αn所表示的那样。因此,如图2C所示,自适应资源控制器102可以执行3次迭代或者操作,以尽可能接近地确定将分配给所讨论的正在执行的任务的最优节点数量(出于与之前图2A和图2B的例子保持一致的目的,在图2C的例子中,假定最优节点数量nop=50)。
更加具体来说,可以理解的是,直线204表示自适应资源控制器102的第一次迭代或操作,其中获得具有α的第一值的直线204,其将导致最优节点数量的第一次确定。然后,在自适应资源控制器102的第二次迭代或操作中,可以确定具有开销因子α的第二值的第二直线208。如图所示,可能发生存在过调节或过补偿或在所讨论的开销函数的实际曲线202周围的振荡。但是,如所示的那样,在自适应资源控制器102的第三次迭代或操作中,可以得到具有项α的第三值的第三直线206,其与开销函数的实际曲线202在近似最优节点数量nop=50处相交,该最优节点数量是执行正在讨论的任务所需要的最优节点数量。
通过这样的方式,通过自适应资源控制器102的多次迭代或操作,系统100可以趋向最优节点数量,而无需确定详细程度或精确程度在直线204、206、208所表示的开销函数之上的曲线202所表示的开销函数。也就是说,自适应资源控制器102允许系统100趋向最优节点数量,和/或趋向于最优节点数量周围相对接近的范围或边界内。而且,如上所述,校准持续时间控制器116可以被配置为确保最初在所确定的最优节点数量之间相对较大或相对急剧的变化与自适应资源控制器102相对较频繁的操作或迭代相关联。相反,一旦自适应资源控制器102开始在最优节点数量周围相对较小的范围内振荡时,校准持续时间控制器116就可以降低自适应资源控制器102操作或迭代的频率,以便将与自适应资源控制器102的每次操作相关联的任何校准开销成本最小化。
虽然上面的描述提供了系统100的操作的各种例子,但是将理解的是,也可以实施各种其它的示例实施方式,这里将更加详细地对其中一些进行描述。例如,上面描述了抽样器112可以被配置为确定和提供与用于并行执行所讨论的正在运行的任务的至少2个不同节点数量相关联的至少两个性能表征。然后,如所述的那样,校准器114,特别是开销因子计算器114A,可以使用这两个性能量度来确定已被提供给节点优化器114B的开销因子α。
在其它示例实施方式中,抽样器112可以在一段时间内执行多于两个的对这种性能量度的确定,例如,可以确定与图2B的例子中所示的5个抽样点S1-S5相关联的性能量度。然后,开销因子计算器114A可以使用多对相关性能量度来获得开销因子α的多个值。然后,开销因子计算器可以确定与多个所确定的α值相关联的α的平均值,以便节点优化器114可以基于均值αave来进行对最优节点数量nop的确定。通过这样的方式,开销因子计算器114A可以提供更加稳定和/或更加精确的开销因子α的值,以供节点优化器114B使用。
在图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的例子中,可以在任务由并行操作的第一数量的节点执行时,确定该正在执行的任务的第一性能量度(302)。例如,抽样器112的数据收集器112A可以在任务110由第一数量的节点(例如,图1中被示为正在执行子任务110A的4个节点106D-106G)执行时,确定该正在执行的任务110的第一性能量度。可以理解,数据收集器112A可以收集与由并行操作的第一数量的节点执行任务110相关联的数据,基于此,性能计算器112B可以确定任务110的相关性能量度,如上所述,例如,以将所述性能度量存储在性能高速缓存112D内。例如,可以针对图2B的抽样点S1确定这样的性能量度。
然后,可以在任务正在由并行操作的第二数量的节点执行时,确定该正在执行的任务的第二性能量度(304)。例如,图1的调整管理器112C可以被配置为将节点数量从第一节点数量调整为第二节点数量以用于执行任务110。例如,调整管理器可以将节点数量从四更改为其它更大或更小的节点数量(在图1的例子中未明确示出)。然后,可以重复数据收集器112A收集适合的性能数据的操作,以便性能计算器112B可以确定利用第二数量的节点的第二性能量度,如上面所提到的那样。可以理解,这样的性能量度可以与图2B的其它抽样点中的一个(例如,抽样点S2)相关联。
然后,可以基于第一性能量度和第二性能量度来计算开销因子,该开销因子表征利用并行执行的节点执行任务的并行化开销相对于节点数量变化的变化(306)。例如,开销因子计算器114A可以接收第一性能量度和第二性能量度,并且可以如上所述确定开销因子α(例如使用公式2)。还是如上所述,在所提供的特定例子中,通过将使用来自逻辑资源106的节点池的并行节点执行任务110的并行化开销的变化表示为具有有关于节点数量的对应变化的特定变化速率的线性函数,使开销因子α表征并行化开销成本的变化。当然,这只是一个例子,也可以选择线性函数之外的其它类型的函数,诸如像指数函数。因为例如设计者可能希望以被认为是最接近地表示实际并行化开销成本的特定方式来表示开销函数O(n),所以对特定类型函数的选择和使用可以取决于例如作为基础的实际并行化开销成本的特性。
然后,可以基于该开销因子来确定将并行操作以继续执行任务的节点的最优数量(308)。例如,节点优化器114B可以从开销因子计算器114A接收开销因子,并且可以使用标准算术技术、利用公式1的衰减函数来确定最优节点数量nop(例如将衰减函数的导数设为等于零,或者通过对衰减函数进行足够的样本计算(example calculation)来确定nop)。随后,校准器114可以提供指令给资源调度器104,以将最优数量nop的节点分配给所讨论的任务或子任务,例如,任务110,或者更加具体来说,分配给子任务110A。
图4是更加详细地示出图1的系统100的示例操作的框图。在图4的例子中,在操作404,利用先前或当前校准的数量的节点来执行任务402。在特定时间点,触发器406使得对与任务402相关联的性能数据的抽样(408)发生。例如如上所述,抽样(408)可以包括数据收集器112A的数据收集和性能计算器112B的相关性能确定。
然后,可以将所确定的性能量度,也即第一性能量度高速缓存(410),例如将其高速缓存在图1的性能高速缓存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,在校准操作424中来自估计操作422的开销因子α被用于确定最优节点数量。然后,在操作426,可以将所确定的最优数量的节点实际分配给任务402,以使得利用该校准后数量的节点的执行404可以继续。
通过这样的方式,可以连续确定任务402的任务结果427,也即,实际执行任务402的最初期望的结果或输出。而且,在自适应资源控制器102的特定迭代中,或者在自适应资源控制器102的各个不同操作中,表示抽样器112的抽样操作的虚线框428可以被理解为被执行所需要的次数。例如,如上所述,在自适应资源控制器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被接收(602)。可以确定抽样迭代次数/轮数S(604)。例如,可以由系统100的操作员预先指定或预先定义这样的抽样轮数,并且该轮数可以与被认为是精确计算开销因子α的精确平均值所必须的抽样次数相关联。
然后,可以确定用于在每次抽样处理过程期间进行调整的节点数量,表示为δ(606)。换句话说,如上所述,调整管理器112C可以被配置为在特定抽样操作期间调整节点数量,如在图4的操作414、416、418中更加详细地图示的那样。在图6的示例中,节点数量δ表明调整管理器112C将在抽样处理过程期间将当前正在执行的节点数量增加或减少的节点数,下面将更加详细地描述。
类似地,可以确定在每轮抽样期间添加或是减少刚刚确定数量的节点的方向D(608)。也就是说,如上所述,在给定轮次的抽样期间要么添加节点,要么减少节点,这例如取决于先前一轮抽样的先前方向导致进行中的抽样轮性能改善还是恶化。在操作600的第一实例或迭代中,可以随机分配方向D,和/或可以由系统100或系统500的操作员确定方向D。
然后,可以记录利用当前数量节点的正在运行的任务的性能(610)。例如,如上所述,数据收集器112A和性能计算器112B可以一起操作来确定与第一或当前节点数量相关联的第一性能量度。然后,调整管理器112C可以用D和δ来调整第一或当前节点数量,也即,可以根据D和δ增加或减少当前节点数量。
然后,系统100或500可以等待记录新性能量度所需要的时间长度(614)。也就是说,如上所述,这样的等待时间长度可以取决于各个节点因子和/或可以取决于性能量度的类型、执行中的任务、或待分配的节点,或者它们的组合或其它因素,如应当清楚的那样。
如果先前性能优于使用当前数量或新数量的节点所测得的当前性能/新的性能(616),那么可以将方向D逆转(reverse)(618)。也就是说,如上所述,如果先前性能或第一性能优于新的或第二性能,那么调整管理器112C就推断当前添加或移除节点的方向说明了使性能变差的趋势,因此将该方向逆转。相反,如果旧的或第一性能不优于新的或第二性能,那么调整管理器112C就可以推断性能量度的比较说明了提高性能的趋势,那么就可以继续保持调整的方向D。
然后可以记录旧的或第一性能与新的性能之间的差(620),并且然后,可以基于此计算开销因子(622)。例如,如上所述,开销因子计算器114A可以接收性能量度Pnew和Pold,并且可以相对于与仅使用单个节点执行任务相关联的执行时间T,将这些性能量度进行比较,如公式2所示。然后,可以将该比较的结果设为等于使用相应的第一和第二(也即,旧的和新的)节点数量所求值的公式1的衰减函数的相应的差,如上面公式2中所示的那样。通过这样的方式,可以由开销因子计算器114A提取并确定因子α。
如果尚未达到抽样轮数,那么操作继续记录利用当前(调整后的)数量的节点的任务的性能(610),之后继续执行操作612-622,由此确定更多的开销因子α的值。一旦达到了数量S个α值(624),就可以确定平均开销因子αav(626)。
使用开销因子的平均值αav,可以例如由节点优化器114B确定最优节点数量(628)。例如,如上所述,可以将所确定的开销因子αav代入到公式1的衰减函数中,然后可以优化衰减函数来确定nop。从而,校准器114可以提供指令到资源调度器104,以将当前节点数量设为由此确定的最优节点数量(630)。
随后,如上所述,校准持续时间控制器116可以操作为确定直到应当进行另外的抽样校准操作时的时间间隔的长度。具体来说,校准持续时间控制器116可以确定从最新近的校准开始的时间间隔的持续时间(632)。而且,校准持续时间控制器116可以确定在对应的最新近校准操作期间最新近的优化后的节点的值的数量M(634)。
使用最新近的持续时间的量度以及最新近的优化后的节点的值的值M,校准持续时间控制器116可以计算新的校准持续时间,其表示直到应当进行后续抽样校准操作时的时间间隔(636)。随后,自适应资源控制器102可以在继续(也即,继续开始记录利用当前数量节点的任务的性能(610))之前等待由此确定的新的校准持续时间的长度(638)。
也就是说,如上所述,当最新近的优化后的节点的值相对接近时,校准持续时间控制器116可以维持或增加新的校准持续时间的时间间隔的长度,因为可以推知正在执行的任务处于或接近其最优节点数量。相反,如果M个最新近的优化后的节点的值彼此之间表现出相对较大的变化,那么校准持续时间控制器116可以将新的校准时间间隔相对于最新近的前一时间间隔的持续时间减小。通过这样的方式,可以有效达到或逼近最优节点数量,同时将与这里所描述的抽样校准操作相关联的校准开销成本最小化。
形式上,如果DN是待计算的校准持续时间CD的长度,M(如上所述)表示影响DN的计算的先前CD的恒定数量,那么向量<DN-M,DN-M+1,...,DN-1>就表示过去每个CD的值。然后,权重向量<w0,w1,...,wM-1>预定义分配给每个过去值的权重,其约束条件是该权重向量内的权重之和等于1。为了使最近的CD的影响大于过去的CD,可以将权重向量中的值规定为从w1到wM单调增长。利用上面的定义,可以使用权重向量的权重,根据过去CD值的累积来计算不考虑最优并行程度的原始CD即DOrg。
如上所述,在确定校准持续时间时还可以考虑最新近的校准结果的影响。例如,如果在最近一次和当前的校准处理过程中估计的最优节点数量是ON-1和ON,那么这两个值之间的比值就显示出进行多大的调整。如果比值较接近于100%,那么暗示着当前估计的并行化程度几乎等于最近一次的估计,而较接近于0%的比值则暗示最优节点数量的变化较大。使用该比值,可以将原始CD DOrg放大一因子Δ乘以该比值的倍数,其中Δ可以通过实验和/或用户偏好来确定。
从而,可以通过公式3计算当前校准持续时间CD:
下面的算法1示出可以分别由图1的系统100和图5的系统500实施的抽样然后校准(Sampling-then-calibrating)算法的一个具体的例子,如大致由图6的操作602-630所表示的那样。可以发现,算法1紧密结合了如上所述图6的操作602-630的操作和术语。
算法1
从而,在算法1中描述了资源校准的示例伪码。如所示以及所描述的那样,输入包含一个正在运行的任务和两个参数,也即,抽样次数和添加/减少并行节点的步长。第6行和第7行设置初始化值,包括抽样处理过程的计数以及初始调整方向。在该例中,初始方向是减少或添加节点中随机的一个,因为抽样处理过程试图找出不太影响总体性能的性能变化。从第8行到第20行,实现抽样处理过程并且计算一个开销因子α。可以根据输入的抽样次数S来循环该处理过程。第9行和第10行记录性能数据和当前并行节点数量,第11行调整并行化程度。第12行在一个短时间间隔内保持任务执行,以便使减少/添加的节点以稳定方式运行。第13行记录新的性能数据。从第14行到第16行,如果需要的话可以将抽样的调整逆转。在第17行记录性能的差别。基于此,计算并行开销的线性模拟中开销因子的一个实例。在抽样处理过程之后,在第21行计算平均因子αav,第22行估计当前正在运行的任务T的最优点。在最后的阶段,第23行通过将最优数量的节点分配给正在运行的任务来应用最优节点数量。
下面是使用算法1的图1的系统100和图5的系统500的操作的特定例子。如上所述,不同类型的任务或子任务可能与不同的并行化技术以及对应的不同的开销函数O(n)相关联。例如,对于并行DBMS的查询,并行化可能依赖于这样的事实:表格可以被水平划分并且可以对每个划分部分局部计算聚集函数(aggregation function)。然后,来自每个划分部分的结果被整合以计算最终结果。对于COUNT(计数)和SUM(求和)运算来说,最终结果只是来自所有划分部分的结果的加和。可以通过选择来自所有划分部分的结果中的最大值和最小值来获得MAX(求最大值)和MIN(求最小值)运算。可以利用SUM和COUNT的结果计算AVG(求平均)算子。
相反,对于Map-Reduce(映射-简化)操作来说,在第一阶段中,映射函数从输入文件中读取一组“记录”,并进行Max/Min过滤或COUNT/SUM变换。通过“分割(split)”函数将这些输出划分为一组新的关键字/值对形式的中间记录。在第二阶段中,简化函数通过网络从映射节点的本地盘中读取这些记录,然后处理Max/Min或将分配给它的记录的COUNT/SUM进行组合,然后将结果写入输出文件。
上述方法的主要差别在于决定并行节点数量的方式或者并行化的程度。在并行DBMS中,表格通常被按照分组的列值划分,这导致在不均衡的数据倾斜(skew)场景中的空闲或过度利用处理。与此同时,在MapReduce规划中,调度器通常基于哈希分割函数来决定应当应用多少映射和简化实例。一个明显缺点是中间记录的大小较大以及作为响应的(responding)网络变换。而且,较多的并行处理会导致较严重的资源竞争,这使得并行性能变差。
如所述的那样,不同种类的算子在被并行化时会有不同的表现。这是由于这样的事实,例如,对算子进行并行化的开销与算子的特性紧密相关。例如,并行AVG既需要划分处理过程的SUM和COUNT,也需要平衡处理过程的不同划分,以得到正确的最终结果,这就引入了比并行SUM/COUNT更多的开销。
通过一轮抽样处理过程和资源校准,任务的并行执行将利用所估计的数量的节点继续进行。在执行一段时间之后,数据处理的原始算子可能变为另一个,诸如从子任务110A变为子任务110B。相应地,所估计的最优并行化程度可能精确度变低。例如,假定典型查询“找出工作已超过5年的雇员的平均薪水”,而不考虑并行DBMS中的最优化和流水线技术和Map/Reduce系统中的数据倾斜,两个操作都会将该请求划分为两个步骤。在第一步中,可以对具有薪水数据的雇员列表进行过滤。然后,在第二步中,可以基于第一步中的临时结果计算平均薪水。
然后,可以发现的是,在过滤步骤中的最优并行化程度与在计算步骤中的最优并行化程度有很大区别。如果在第一步中估计并校准了最优并行化程度,并且在第二步中仍然使用这些结果运行该任务,那么该任务的执行可能会变得要么过度并行化要么低度并行化,如所述的那样,这可能使得使用校准持续时间控制器116成为必要。
这里描述的各种技术的实现方式可以被实施在数字电子电路中,或者实施在计算机硬件、固件、软件,或者它们的组合中。实现方式可以实施为计算机程序产品,即有形地具体实施在信息载体中的计算机程序,信息载体例如机器可读存储设备或者传播的信号,以供数据处理装置执行或者控制数据处理装置的操作,所述数据处理装置例如可编程处理器、计算机或多个计算机。计算机程序,诸如上面描述的计算机程序,可以用任何形式的编程语言编写,包括汇编语言或解释语言,并且,它可以被以任何形式部署,包括作为独立的程序或者作为模块、组件、子程序或其他适于在计算环境中使用的单元。计算机程序可以被部署为在一个计算机上执行或在位于一个地点或跨过多个地点分布并被通信网络互连起来的多个计算机上执行。
方法步骤可以被一个或多个可编程处理器执行,所述可编程处理器执行计算机程序,以便通过对输入数据操作和产生输出来执行功能。方法步骤还可以被专用逻辑电路执行,或者装置可以被实施为专用逻辑电路,所述专用逻辑电路例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为例子,适于执行计算机程序的处理器既包括通用微处理器也包括专用微处理器,以及任何类型的数字计算机的任意一个或多个处理器。一般来说,处理器将从只读存储器或随机存取存储器接收指令和数据,或者从两者都接收指令和数据。计算机的元件可以包括至少一个用于执行指令的处理器,和用于存储指令和数据的一个或多个存储器设备。一般来说,计算机还可以包括一个或多个用于存储数据的含量存储设备,或者被可操作地连接到一个或多个海量储存设备,以从其接收数据或向其传送数据,或者二者皆有,所述海量储存设备例如:磁盘、磁光盘或光盘。适于具体实施计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,作为例子,包括半导体存储器器件,例如:EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动磁盘;磁光盘;和CD-ROM以及DVD-ROM盘。处理器和存储器可以以专用逻辑电路补充,或者被包含在专用逻辑电路中。
为了提供和用户的交互,实现方式可以在具有显示设备和键盘以及定点设备的计算机上实施,显示设备例如阴极射线管(CRT)或液晶显示器(LCD)监视器,用于向用户显示信息,指示设备例如鼠标或轨迹球,用户利用它们可以向计算机提供输入。其他种类的设备也可以被用来提供和用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且,来自用户的输入可以被以任何形式接收,包括声音、语音或触觉输入。
实现方式可以被在包括后端组件或包括中间件组件或包括前端组件的计算系统中实施,或者在这些后端、中间件、前端组件的任意组合中实施,后端组件例如数据服务器,中间件组件例如应用服务器,前端组件例如具有图形用户界面,或Web浏览器的客户端计算机,通过图形用户界面或Web浏览器,用户可以和实现方式进行交互。可以利用数字数据通信的任何形式或介质互连组件,数字数据通信介质例如通信网络。通信网络的例子包括局域网(LAN)和广域网(WAN),例如因特网。
虽然如这里所描述的那样已经示出了所描述的实现方式的某些特征,但是本领域普通技术人员现在应当想到很多修改、替换,变化或等同物。因此应当理解,所附权利要求旨在覆盖落入实施例范围内的所有这些修改和变化。
Claims (16)
1.一种包括记录于计算机可读介质上的指令的系统,该系统包括:
抽样器,其被配置为在任务由并行操作的第一数量的节点执行的同时确定该正在执行的任务的第一性能量度,并且被配置为在该任务由并行操作的第二数量的节点执行的同时确定该正在执行的任务的第二性能量度;以及
校准器,其被配置为基于第一性能量度和第二性能量度、相对于节点数量的变化来计算开销因子,该开销因子表征利用并行执行的节点执行所述任务的并行化开销的变化,并且该校准器被配置为基于该开销因子来确定并行操作以继续执行所述任务的节点的最优数量。
2.如权利要求1所述的系统,其中,所述任务包括软件应用的任务,并且其中,所述第一性能量度和第二性能量度分别包括使用第一数量的节点和第二数量的节点处理该软件应用的固定数据量所用的逝去时间的量度。
3.如权利要求1所述的系统,其中,所述抽样器包括调整管理器,其被配置为在确定了第一性能量度之后确定并执行从第一节点数量调整为第二节点数量,包括确定固定节点数量以及确定将第一节点数量增加还是减少该固定节点数量以得到第二节点数量。
4.如权利要求3所述的系统,其中,所述调整管理器被配置为基于第一性能量度与先前的性能量度之间的差来确定增加还是减少第一节点数量。
5.如权利要求1所述的系统,其中,所述校准器被配置为:
基于第一性能量度和第二性能量度确定第一开销因子;
在任务正在由并行操作的第三数量的节点执行的同时,接收至少该正在执行的任务的第三性能量度;
使用第三性能量度和至少一个其它的性能量度,确定第二开销因子;以及
确定第一开销因子和第二开销因子的平均值作为所述开销因子。
6.如权利要求1所述的系统,其中,所述校准器被配置为计算所述开销因子,使其表征衰减函数f(n)=(1/n)+O(n)中的开销函数O(n),其中,n表示节点数量,并且其中,该衰减函数表征了利用并行执行的节点执行所述任务的并行化开销的变化。
7.如权利要求6所述的系统,其中,将所述开销函数O(n)表示为αn,并且所述校准器被配置为计算开销因子,该开销因子包括α项,以表示利用并行执行的节点执行所述任务的并行化开销的线性变化速率。
8.如权利要求7所述的系统,其中,所述校准器被配置为根据公式f(Nsecond)-f(Nfirst)=(Psecond-Pfirst)/T,通过将利用第一节点数量和第二节点数量求值的衰减函数与第一性能和第二性能之间的性能变化进行比较,来确定包括α项的开销因子,在公式中Pfirst和Psecond分别表示第一性能量度和第二性能量度,T表示使用单个节点执行的时间。
9.如权利要求1所述的系统,其中,最优节点数量的确定表示当前抽样然后校准操作的结束,所述系统还包括:
校准持续时间控制器,其被配置为控制当前抽样然后校准操作与后续抽样然后校准操作之间的时间间隔。
10.如权利要求9所述的系统,其中,所述校准持续时间控制器被配置为,基于当前抽样然后校准操作的最优节点数量和至少一个先前抽样然后校准操作的至少一个先前确定的最优节点数量中的变化,来确定所述时间间隔。
11.如权利要求9所述的系统,其中,所述校准持续时间控制器被配置为,基于当前抽样然后校准操作与先前抽样然后校准操作之间的先前时间间隔来确定所述时间间隔。
12.如权利要求1所述的系统,其中,所述校准器被配置为指令资源调度器分配所述最优数量的节点以供利用其执行所述任务。
13.一种计算机实现的方法,包括:
在任务由并行操作的第一数量的节点执行的同时确定该正在执行的任务的第一性能量度;
在该任务由并行操作的第二数量的节点执行的同时确定该正在执行的任务的第二性能量度;
基于第一性能量度和第二性能量度、相对于节点数量的变化来计算开销因子,该开销因子表征利用并行执行的节点执行该任务的并行化开销的变化;以及
基于该开销因子来确定将并行操作以继续执行该任务的节点的最优数量。
14.如权利要求13所述的方法,其中,确定第一性能量度包括:
在确定了第一性能量度之后执行从第一节点数量调整为第二节点数量,包括确定固定节点数量以及确定将第一节点数量增加还是减少该固定节点数量以得到第二节点数量。
15.如权利要求13所述的方法,其中,计算所述开销因子包括:
将所述开销因子计算为表征衰减函数f(n)=(1/n)+O(n)中的开销函数O(n),其中,n表示节点数量,并且其中,该衰减函数表征利用并行执行的节点执行所述任务的并行化开销的变化。
16.如权利要求13所述的方法,其中,所述最优节点数量的确定与当前抽样然后校准操作的结束相关联,所述方法还包括:
基于当前抽样然后校准操作的最优节点数量和至少一个先前抽样然后校准操作的至少一个先前确定的最优节点数量中的变化,并且还基于当前抽样然后校准操作与最新近的先前抽样然后校准操作之间的先前时间间隔,来控制当前抽样然后校准操作与后续抽样然后校准操作之间的时间间隔。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910180738.XA CN102043673B (zh) | 2009-10-21 | 2009-10-21 | 并行处理中执行任务的节点数量的优化选择系统及方法 |
US12/717,694 US8612180B2 (en) | 2009-10-21 | 2010-03-04 | Calibration of resource allocation during parallel processing |
EP10013820.5A EP2315120B1 (en) | 2009-10-21 | 2010-10-20 | Calibration of resource allocation during parallel processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910180738.XA CN102043673B (zh) | 2009-10-21 | 2009-10-21 | 并行处理中执行任务的节点数量的优化选择系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043673A true CN102043673A (zh) | 2011-05-04 |
CN102043673B CN102043673B (zh) | 2015-06-03 |
Family
ID=43447784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910180738.XA Active CN102043673B (zh) | 2009-10-21 | 2009-10-21 | 并行处理中执行任务的节点数量的优化选择系统及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8612180B2 (zh) |
EP (1) | EP2315120B1 (zh) |
CN (1) | CN102043673B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164189A (zh) * | 2011-12-16 | 2013-06-19 | 伊姆西公司 | 用于实时数据处理的方法和设备 |
CN103365714A (zh) * | 2012-04-09 | 2013-10-23 | 三星电子株式会社 | 分布式处理系统、调度器节点、调度方法及程序产生设备 |
CN103890714A (zh) * | 2011-08-25 | 2014-06-25 | 维图斯瑞姆有限公司 | 涉及基于集群的资源池的主机感知资源管理的系统和方法 |
CN105224510A (zh) * | 2015-09-21 | 2016-01-06 | 杭州施强网络科技有限公司 | 一种文档格式文件的转换方法 |
CN105580001A (zh) * | 2013-09-27 | 2016-05-11 | 慧与发展有限责任合伙企业 | 对与服务类别相关联的混合流进行处理 |
CN106575240A (zh) * | 2014-08-15 | 2017-04-19 | 英特尔公司 | 促进用于计算装置上可变位长事务的动态线程安全操作 |
CN108132840A (zh) * | 2017-11-16 | 2018-06-08 | 浙江工商大学 | 一种分布式系统中的资源调度方法及装置 |
CN109542586A (zh) * | 2018-11-19 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种节点资源状态更新方法及系统 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11048765B1 (en) | 2008-06-25 | 2021-06-29 | Richard Paiz | Search engine optimizer |
US8473959B2 (en) * | 2010-02-22 | 2013-06-25 | Virtustream, Inc. | Methods and apparatus related to migration of customer resources to virtual resources within a data center environment |
US9122538B2 (en) | 2010-02-22 | 2015-09-01 | Virtustream, Inc. | Methods and apparatus related to management of unit-based virtual resources within a data center environment |
US9027017B2 (en) * | 2010-02-22 | 2015-05-05 | Virtustream, Inc. | Methods and apparatus for movement of virtual resources within a data center environment |
US9246914B2 (en) * | 2010-07-16 | 2016-01-26 | Nokia Technologies Oy | Method and apparatus for processing biometric information using distributed computation |
EP2610758A4 (en) * | 2010-08-25 | 2017-04-26 | Fujitsu Limited | Network evaluation device, method of evaluating network and network evaluation program |
US9223631B2 (en) * | 2011-03-17 | 2015-12-29 | Apple Inc. | Performing an operation using multiple services |
US9244751B2 (en) | 2011-05-31 | 2016-01-26 | Hewlett Packard Enterprise Development Lp | Estimating a performance parameter of a job having map and reduce tasks after a failure |
US9875174B1 (en) * | 2011-09-21 | 2018-01-23 | Amazon Technologies, Inc. | Optimizing the execution of an application executing on a programmable execution service |
US9152461B1 (en) * | 2011-12-20 | 2015-10-06 | Amazon Technologies, Inc. | Management of computing devices processing workflow stages of a resource dependent workflow |
US8856193B2 (en) * | 2011-12-20 | 2014-10-07 | Sap Se | Merge monitor for table delta partitions |
US9128761B1 (en) | 2011-12-20 | 2015-09-08 | Amazon Technologies, Inc. | Management of computing devices processing workflow stages of resource dependent workflow |
US9158583B1 (en) | 2011-12-20 | 2015-10-13 | Amazon Technologies, Inc. | Management of computing devices processing workflow stages of a resource dependent workflow |
US8738775B1 (en) | 2011-12-20 | 2014-05-27 | Amazon Technologies, Inc. | Managing resource dependent workflows |
US8656002B1 (en) | 2011-12-20 | 2014-02-18 | Amazon Technologies, Inc. | Managing resource dependent workflows |
US9152460B1 (en) | 2011-12-20 | 2015-10-06 | Amazon Technologies, Inc. | Management of computing devices processing workflow stages of a resource dependent workflow |
US8788663B1 (en) | 2011-12-20 | 2014-07-22 | Amazon Technologies, Inc. | Managing resource dependent workflows |
CN102609303B (zh) * | 2012-01-18 | 2014-12-17 | 华为技术有限公司 | MapReduce系统的慢任务调度方法和装置 |
US8990294B2 (en) | 2012-04-18 | 2015-03-24 | International Business Machines Corporation | File system optimization by log/metadata analysis |
US9166895B1 (en) * | 2012-12-13 | 2015-10-20 | Vmware, Inc. | Detecting process execution state change using measurement of resource consumption |
US11741090B1 (en) | 2013-02-26 | 2023-08-29 | Richard Paiz | Site rank codex search patterns |
US11809506B1 (en) | 2013-02-26 | 2023-11-07 | Richard Paiz | Multivariant analyzing replicating intelligent ambience evolving system |
US9811938B2 (en) | 2013-03-14 | 2017-11-07 | Business Objects Software Ltd. | Methods, apparatus and system for analytics replay utilizing random sampling |
US20140297833A1 (en) * | 2013-03-29 | 2014-10-02 | Alcatel Lucent | Systems And Methods For Self-Adaptive Distributed Systems |
CN105190537B (zh) * | 2013-04-03 | 2019-11-05 | 慧与发展有限责任合伙企业 | 修改将在多个执行环境中执行的操作流的方法和产品 |
CN104243531A (zh) * | 2013-06-21 | 2014-12-24 | 华为技术有限公司 | 一种数据处理的方法、装置及系统 |
US9606840B2 (en) | 2013-06-27 | 2017-03-28 | Sap Se | Enterprise data-driven system for predictive resource provisioning in cloud environments |
US9621636B1 (en) | 2013-09-10 | 2017-04-11 | Google Inc. | Distributed processing system throttling |
CN104516910B (zh) | 2013-09-26 | 2018-01-12 | Sap欧洲公司 | 在客户端服务器环境中推荐内容 |
CN104516635B (zh) | 2013-09-26 | 2022-03-08 | Sap欧洲公司 | 一种管理内容显示的方法、系统及存储介质 |
JP2015075830A (ja) * | 2013-10-07 | 2015-04-20 | 富士通株式会社 | 並列処理管理プログラム、並列処理管理方法、及び、並列処理管理装置 |
IN2013MU03836A (zh) * | 2013-12-06 | 2015-07-31 | Tata Consultancy Services Ltd | |
CA2952034A1 (en) * | 2014-06-12 | 2015-12-17 | Arie SHPANYA | Real-time dynamic pricing system |
US9548941B2 (en) * | 2014-06-18 | 2017-01-17 | Adobe Systems Incorporated | Data flow node provisioning |
US10313248B2 (en) | 2014-06-18 | 2019-06-04 | Adobe Inc. | Data flow node validation |
US10318896B1 (en) * | 2014-09-19 | 2019-06-11 | Amazon Technologies, Inc. | Computing resource forecasting and optimization |
US10410150B2 (en) | 2014-11-04 | 2019-09-10 | Sap Se | Efficient computerized calculation of resource reallocation scheduling schemes |
JP6345627B2 (ja) * | 2015-05-20 | 2018-06-20 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および情報処理方法 |
US10637964B2 (en) | 2016-11-23 | 2020-04-28 | Sap Se | Mutual reinforcement of edge devices with dynamic triggering conditions |
US20180255122A1 (en) * | 2017-03-02 | 2018-09-06 | Futurewei Technologies, Inc. | Learning-based resource management in a data center cloud architecture |
CN107528914B (zh) * | 2017-09-12 | 2020-05-12 | 电子科技大学 | 数据分片的资源征用调度方法 |
US10841020B2 (en) | 2018-01-31 | 2020-11-17 | Sap Se | Online self-correction on multiple data streams in sensor networks |
US10789247B2 (en) * | 2018-05-22 | 2020-09-29 | Microsoft Technology Licensing, Llc | Tune resource setting levels for query execution |
WO2019237226A1 (en) * | 2018-06-11 | 2019-12-19 | Entit Software Llc | Project visualizations |
US10924410B1 (en) | 2018-09-24 | 2021-02-16 | Amazon Technologies, Inc. | Traffic distribution mapping in a service-oriented system |
US11112514B2 (en) * | 2019-02-27 | 2021-09-07 | Saudi Arabian Oil Company | Systems and methods for computed resource hydrocarbon reservoir simulation and development |
US11128701B1 (en) * | 2019-03-28 | 2021-09-21 | Amazon Technologies, Inc. | Cooperative preemption in a distributed multi-tenant resource pool |
CN110888745A (zh) * | 2019-11-29 | 2020-03-17 | 中国石油大学(华东) | 一种考虑任务传输到达时间的mec节点选择方法 |
CN111309479B (zh) * | 2020-02-14 | 2023-06-06 | 北京百度网讯科技有限公司 | 一种任务并行处理的实现方法、装置、设备和介质 |
US11184269B1 (en) | 2020-04-13 | 2021-11-23 | Amazon Technologies, Inc. | Collecting route-based traffic metrics in a service-oriented system |
JP2022088762A (ja) * | 2020-12-03 | 2022-06-15 | 富士通株式会社 | 情報処理装置およびジョブスケジューリング方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341371B1 (en) * | 1999-02-23 | 2002-01-22 | International Business Machines Corporation | System and method for optimizing program execution in a computer system |
US20040015978A1 (en) * | 2002-07-22 | 2004-01-22 | Fujitsu Limited | Parallel efficiency calculation method and apparatus |
US20090125705A1 (en) * | 2006-07-21 | 2009-05-14 | Fujitsu Limited | Data processing method and apparatus with respect to scalability of parallel computer systems |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599910B1 (en) | 1993-11-16 | 2009-10-06 | Hitachi, Ltd. | Method and system of database divisional management for parallel database system |
US7730119B2 (en) * | 2006-07-21 | 2010-06-01 | Sony Computer Entertainment Inc. | Sub-task processor distribution scheduling |
CN101908003B (zh) * | 2009-06-05 | 2014-10-22 | Sap股份公司 | 并行化查询的多核调度 |
-
2009
- 2009-10-21 CN CN200910180738.XA patent/CN102043673B/zh active Active
-
2010
- 2010-03-04 US US12/717,694 patent/US8612180B2/en active Active
- 2010-10-20 EP EP10013820.5A patent/EP2315120B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341371B1 (en) * | 1999-02-23 | 2002-01-22 | International Business Machines Corporation | System and method for optimizing program execution in a computer system |
US20040015978A1 (en) * | 2002-07-22 | 2004-01-22 | Fujitsu Limited | Parallel efficiency calculation method and apparatus |
US20090125705A1 (en) * | 2006-07-21 | 2009-05-14 | Fujitsu Limited | Data processing method and apparatus with respect to scalability of parallel computer systems |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103890714A (zh) * | 2011-08-25 | 2014-06-25 | 维图斯瑞姆有限公司 | 涉及基于集群的资源池的主机感知资源管理的系统和方法 |
CN103890714B (zh) * | 2011-08-25 | 2017-10-24 | 维图斯瑞姆Ip控股公司 | 涉及基于集群的资源池的主机感知资源管理的系统和方法 |
CN103164189A (zh) * | 2011-12-16 | 2013-06-19 | 伊姆西公司 | 用于实时数据处理的方法和设备 |
CN103365714A (zh) * | 2012-04-09 | 2013-10-23 | 三星电子株式会社 | 分布式处理系统、调度器节点、调度方法及程序产生设备 |
US9965322B2 (en) | 2012-04-09 | 2018-05-08 | Samsung Electronics Co., Ltd. | Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors |
CN103365714B (zh) * | 2012-04-09 | 2018-10-02 | 三星电子株式会社 | 分布式处理系统、调度器节点、调度方法及程序产生设备 |
CN105580001A (zh) * | 2013-09-27 | 2016-05-11 | 慧与发展有限责任合伙企业 | 对与服务类别相关联的混合流进行处理 |
CN106575240A (zh) * | 2014-08-15 | 2017-04-19 | 英特尔公司 | 促进用于计算装置上可变位长事务的动态线程安全操作 |
CN105224510A (zh) * | 2015-09-21 | 2016-01-06 | 杭州施强网络科技有限公司 | 一种文档格式文件的转换方法 |
CN105224510B (zh) * | 2015-09-21 | 2021-07-09 | 杭州施强教育科技有限公司 | 一种文档格式文件的转换方法 |
CN108132840A (zh) * | 2017-11-16 | 2018-06-08 | 浙江工商大学 | 一种分布式系统中的资源调度方法及装置 |
CN109542586A (zh) * | 2018-11-19 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种节点资源状态更新方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2315120A2 (en) | 2011-04-27 |
EP2315120B1 (en) | 2015-02-25 |
US8612180B2 (en) | 2013-12-17 |
US20110093852A1 (en) | 2011-04-21 |
CN102043673B (zh) | 2015-06-03 |
EP2315120A3 (en) | 2011-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043673A (zh) | 并行处理期间资源分配的校准 | |
EP3089034B1 (en) | System and method for optimizing energy consumption by processors | |
US10523519B2 (en) | Comparative multi-forecasting analytics service stack for cloud computing resource allocation | |
Lastovetsky et al. | New model-based methods and algorithms for performance and energy optimization of data parallel applications on homogeneous multicore clusters | |
Li et al. | Performance analysis and optimization for SpMV on GPU using probabilistic modeling | |
Popescu et al. | Same queries, different data: Can we predict runtime performance? | |
Gibilisco et al. | Stage aware performance modeling of dag based in memory analytic platforms | |
Su et al. | Implementing a leading loads performance predictor on commodity processors | |
Kantere et al. | Predicting cost amortization for query services | |
Pérez et al. | An offline demand estimation method for multi-threaded applications | |
CN104010029B (zh) | 基于横向纵向信息集成的分布式计算环境性能预测方法 | |
Banerjee et al. | Efficient resource utilization using multi-step-ahead workload prediction technique in cloud | |
Zahedi et al. | Amdahl's Law in the datacenter era: A market for fair processor allocation | |
Yang et al. | A pattern fusion model for multi-step-ahead CPU load prediction | |
Sundriyal et al. | Modeling of the CPU frequency to minimize energy consumption in parallel applications | |
Moradi et al. | Adaptive performance modeling and prediction of applications in multi-tenant clouds | |
Zhang et al. | Autrascale: an automated and transfer learning solution for streaming system auto-scaling | |
Zhu et al. | A priority-aware scheduling framework for heterogeneous workloads in container-based cloud | |
US20090217282A1 (en) | Predicting cpu availability for short to medium time frames on time shared systems | |
Nikravesh et al. | Evaluating sensitivity of auto-scaling decisions in an environment with different workload patterns | |
Vashistha et al. | [Retracted] Sustainable Technical Debt‐Aware Computing Model for Virtual Machine Migration (TD4VM) in IaaS Cloud | |
Xiong et al. | Improving NoSQL's Performance Metrics via Machine Learning | |
Wang et al. | Performance prediction under power capping | |
Petrovska et al. | Sequential Series-Based Prediction Model in Adaptive Cloud Resource Allocation for Data Processing and Security | |
KR102165987B1 (ko) | Dvfs 기법이 적용된 디바이스 및 주파수 설정 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: German Waldo Applicant after: SAP AG Address before: German Waldo Applicant before: SAP AG |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |