CN108701062A - 通过分层性能平衡来减轻负载不平衡 - Google Patents
通过分层性能平衡来减轻负载不平衡 Download PDFInfo
- Publication number
- CN108701062A CN108701062A CN201780013348.6A CN201780013348A CN108701062A CN 108701062 A CN108701062 A CN 108701062A CN 201780013348 A CN201780013348 A CN 201780013348A CN 108701062 A CN108701062 A CN 108701062A
- Authority
- CN
- China
- Prior art keywords
- reassignment
- subtree
- distributor
- resource
- information
- 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
- 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/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Supply And Distribution Of Alternating Current (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
系统、装置和方法可提供通过布置在分层树中的多个重分配器中的系统级重分配器来获得资源预算信息。另外,可由多个重分配器中的至少一个重分配器来获得应用性能信息。此外,可由多个重分配器中的至少一个重分配器并至少部分地基于资源预算信息和应用性能信息来降低与应用性能信息相关联的多个计算子树之间的性能不平衡。
Description
相关申请的交叉引用
本申请要求2016年3月25日提交的美国非临时专利申请号15/081,424的优先权权益。
政府利益声明
本发明是在由国防部授予的合同号H98230-13-D-0124的政府支持下进行的。政府具有本发明的某些权利。
技术领域
实施例一般涉及计算负载不平衡。更具体地,实施例涉及通过分层性能平衡来减轻计算负载不平衡。
背景技术
高性能计算(HPC)解决方案可将整体同步计算模型应用于大量计算元件(例如,处理器核),其中每个计算元件被指派与一个或多个应用相关联的大致相等的工作量。在计算期间的周期性且频繁的里程碑中,每个计算元件可与其他计算元件全局同步,以便确保正确性以及交换在计算的下一阶段中使用的数据。然而,许多因素可能导致计算元件之间的负载不平衡,其中负载不平衡可进而呈现关于全局同步的挑战。例如,制造变化、系统规模的增加、将应用工作划分成相等大小部分的复杂性、操作系统(OS)守护进程或服务引起的抖动、非统一存储器访问(NUMA)等待时间、以及管芯上互连路由协议之间的不公平性都可能导致负载不平衡,该负载不平衡导致计算元件在不同时刻到达特定的全局同步点。此外,整体应用性能可由最后到达同步点的计算元件确定(和限制)。实际上,早先到达的计算元件可能浪费可观的时间量和能量来在同步点进行等待。
附图说明
通过阅读以下说明书和所附权利要求并通过参考以下附图,各实施例的各种优点对于本领域技术人员将变得显而易见,其中:
图1是根据实施例的布置在分层树中的多个重分配器的示例的框图;
图2是根据实施例的减轻性能不平衡的方法的示例的流程图;
图3是根据实施例的重分配器的示例的框图;
图4是根据实施例的操作重分配器的方法的示例的流程图;
图5是根据实施例的控制电压和频率设置的重分配器的示例的框图;以及
图6是根据实施例的计算系统的示例的示图。
具体实施方式
现转向图1,示出了重分配装置10,其中多个重分配器被布置在分层树中。在所例示的示例中,系统级重分配器12被通信地耦合至一个或多个中间级的重分配器14,该中间级的重分配器14进而可被通信地耦合至一个或多个节点级重分配器16(16a-16c)。另外,所例示的节点级重分配器16被通信地耦合至一个或多个处理器级重分配器18(18a-18c)。一般来说,每个处理器级重分配器18可与多个应用线程相关联(例如,在一个或多个处理器核上执行,未示出),这些应用线程形成、构成和/或定义所讨论的处理器级重分配器18的计算子树。例如,第一处理器级重分配器18a可与在一个或多个处理器核上执行的第一多个应用线程相关联,其中第一多个应用线程形成第一处理器级重分配器18a的第一计算子树。类似地,第二处理器级重分配器18b可与形成第二计算子树的第二多个线程相关联,第三处理器级重分配器18c可与形成第三计算子树的第三多个线程相关联,等等。
此外,每个节点级重分配器16可与形成、构成和/或定义计算子树的多个处理器级重分配器相关联。例如,第一处理器级重分配器18a、第二处理器级重分配器18b和第三处理器级重分配器18c可形成第一节点级重分配器16a的计算子树。节点级重分配器16可形成中间级的重分配器14的一个或多个计算子树,并且中间级的重分配器14可形成系统级重分配器12的计算子树。
在所例示的示例中,系统级重分配器12接收资源预算信息20,该资源预算信息20指示例如可用于跨重分配装置10分布的功率量、电压和/或频率信用。资源预算信息20能以各种不同方式来获得。例如,资源预算信息20可在作业启动时被供应,并且在作业运行时被系统资源管理器潜在地改变。在另一示例中,资源预算信息20是由管理员配置的静态默认值,并且在新作业启动的任何时间被供应。此外,资源预算信息20可在作业启动时由用户供应(例如,直接地或间接地通过定性设置,诸如例如“低”、“中等”或“高”),等等。
利用系统级重分配器12处的资源预算信息20可增强重分配装置10的可缩放性。例如,可通过向第一节点级重分配器16a分配与第二节点级重分配器16b不同量的资源预算(例如,而并非不管性能不平衡而不加区别地分配相等的量)来减轻同第一节点级重分配器16a相关联的计算子树与同第二节点级重分配器16a相关联的计算子树之间的性能不平衡。此外,不平衡减轻可在分层树的任何或所有层级处发生。因此,随着处理器级重分配器18的数量增加(例如,由于系统规模的增加),可在分层树的不同层级并且通过若干重分配器而不是针对整个重分配装置10的单个集中式重分配器来做出重分配决策。
图2示出了减轻性能不平衡的方法22。方法22一般可被实现于重分配装置中,诸如例如已讨论的重分配装置10(图12)。更具体地,方法22可在一个或多个模块中被实现为一组逻辑指令,这组逻辑指令被存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存之类的机器或计算机可读存储介质中,存储在诸如例如可编程逻辑阵列(PLA)、场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)之类的可配置逻辑中,存储在使用诸如例如专用集成电路(ASIC)、互补式金属氧化物半导体(CMOS)之类的电路技术或晶体管-晶体管逻辑(TTL)技术的固定功能逻辑硬件或其任意组合中。例如,可以用一种或多种编程语言的任意组合来编写用于实施在方法22中所示的操作的计算机程序代码,这些编程语言包括诸如JAVA、SMALLTALK、C++等面向对象的编程语言以及诸如“C”编程语言或类似编程语言的传统的程序编程语言。
所例示的处理框24提供通过布置在分层树中的多个重分配器中的系统级重分配器来获得资源预算信息。如已指出的,资源预算信息例如可在作业启动时被供应并且在作业运行时被系统资源管理器潜在地改变,可以是由管理员配置并且在新作业启动的任何时间被供应的静态默认值,可在作业启动时由用户通过定性设置供应等等。另外,框26可通过多个重分配器中的至少一个来获得应用性能信息。如将更详细地讨论的,应用性能信息可基于每个计算子树而与以下各项相关联:朝向工作负荷阶段的末尾的进度、浮点运算(FLOPS)速率、所完成存储器操作的数量等。因此,如果重分配器是系统级重分配器,诸如例如系统级重分配器12(图1),则可基于每个中间级重分配器来接收应用性能信息。另一方面,如果重分配器是中间级重分配器,则可基于每个节点级重分配器来接收应用性能信息。类似地,如果重分配器是节点级重分配器,则可基于每个处理器级重分配器来接收应用性能信息,并且如果重分配器是处理器级重分配器,则可基于每个线程来接收应用性能信息。此外,取决于具体情形,应用性能信息可与最小值和/或平均值相关联。
所例示的框28通过多个重分配器中的至少一个并至少部分地基于资源预算信息和应用性能信息来降低与应用性能信息相关联的多个计算子树之间的性能不平衡。例如,在框28,如果重分配器是节点级重分配器,则可降低、减轻或以其他方式校正通信地耦合值节点级重分配器的多个处理器级重分配器之间的性能不平衡。
图3示出重分配器30,该重分配器30一般可包括逻辑指令、可配置逻辑、固定功能逻辑硬件等,或其任何组合。重分配器30可在重分配装置(诸如例如,已讨论过的重分配装置10(图1))中代替多个重分配器中的一个或多个。在所例示的示例中,重分配器30包括统计和/或性能聚合器32,用于基于应用性能信息38(38a-38c)来针对多个计算子树34(34a-34c,“C-子树”)中的每一个生成性能值36(36a-36c,“RPi”)。性能值36可表示基于每个计算子树的以下各项:朝向工作负荷阶段的末尾的进度、FLOPS速率、所完成存储器操作的数量等,或其任何组合。另外,性能值36可包括最小值、平均值、最大值、标准偏差和/或加权平均。
所例示的重分配器30还包括多个分配请求器40(40a-40c),用于基于性能值36来生成请求集合42(“RPolicyi(R策略i)”)。在一个示例中,分配请求器40是分布式的且使用比例-积分-微分(PID)控制器来生成请求集合42。一般来说,PID控制器可以是控制回路反馈机构,其连续地计算误差值作为所测量的进程变量与特定设置点之间的差异。此外,请求集合42可标识频率信用、功率信用、抽象优先级(例如,待解释)等。另外,分配器44可基于请求集合42与从父重分配器48获得的资源预算来将一个或多个资源(例如,频率和/或功率信用)指派给多个计算子树34。可在指派集合50(“APolicyi(A策略i)”)中指定和/或反映对资源的指派并将其发送至计算子树34。指派集合50还可被用于生成所使用总资源的报告52,该报告52可作为反馈被发送至请求器40和聚合器32。请求器40和聚合器32由此可分别在生成未来的请求集合42和性能值集合36时使用报告52。
因此,在每个计算子树34的执行期间,聚合器32可有规律地重新计算统计和性能度量,以便标识计算中更前方的计算子树34以及落后的那些计算子树34。在一个实施例中,性能度量是基于在下一工作负荷阶段开始之前相对于要完成的总工作量,每个计算子树34已完成的工作量。
由于可为不同计算子树34指派不同的总工作量(例如,当应用工作不在处理器之间均匀划分时),可用相对项来计算每个计算子树34的性能:
分布式请求器40(例如,PID控制器)可使用RPi和应用性能信息(例如,Agg/Stats(聚合/统计)性能)来为每个计算子树34请求资源分配(RPolicyi),其中所请求的资源分配最小化RPi与整体应用性能之间的误差(例如,跨所有子树的全局性能信息)。所请求的资源分配可与跨计算子树34的不平衡相关。换言之,请求器40可为具有低性能的计算子树34请求较大分配,而为具有高性能的计算子树34请求较小分配。
由分布式请求器40产生的输出可按某一偏移量来修改,该偏移量等于计算子树34的目标功率或性能使用。为了实现跨分布式请求器40的协调,可将指派集合50的聚合设置为收敛至某一目标值,诸如例如,从父分配器48获得的资源预算46。在此类情形中,指派给一个子树34的较大分配导致对另一子树34的较小分配,以便系统保持平衡。可通过定义误差函数来解决协调问题,以便该误差函数使用计算子树34的相对性能将计算子树34绑定在一起。对于每个请求者,i,误差可被计算如下:
作为示例,误差函数可被定义成使得跨所有计算子树34的总数相加得零,这使得给定子树的RPolicy被偏移量约束。换言之,如果存在n个计算子树,则聚合误差被定义为:
通过应用求和规则可证明上述表达式是成立的:
因为跨所有子树34的误差的总和为零,所以在给定时间来自分布式请求器40的输出的聚合将等于偏移量的和。该特定误差功能可使分布式请求器40能够重分配父重分配器的预算内的功率和性能资源,并且更重要的是,将导致对应用的最大性能益处。
如已指出的,分配器44可负责基于请求集合42向计算子树34指派资源,但确保总分配不超过总资源预算。在一些实施例中,分配器44可具有附加职责。例如,分配器44可将连续资源分配请求映射到处理器支持的离散值集合。另外,分配器44可实现一个或多个附加PID控制器,用于通过管理另一种类型资源的分配来强制执行对一种类型的资源分配的请求。例如,可通过使用PID管理频率信用的分配来强制执行对功率分配的请求。
图4示出操作重分配器的方法54。方法54一般可被实现于重分配器中,诸如例如已讨论的重分配器30(图3)。更具体地,方法54可作为一组逻辑指令被实现在一个或多个模块中,这组指令被存储在诸如RAM、ROM、PROM、固件、闪存之类的机器或计算机可读存储介质中,被存储在诸如例如PLA、FPGA、CPLD之类的可配置逻辑中,存储在使用诸如例如ASIC、CMOS或TTL技术之类的电路技术的固定功能逻辑硬件中,或其任何组合中。
所例示的处理框56提供通过聚合器且针对多个计算子树中的每一个来基于应用性能信息生成性能值。另外,框58可通过多个应用请求器、基于性能值来生成请求集合。在一个示例中,每个性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、FLOP速率或所完成存储器操作的数量。框60提供由分配器基于请求集合以及从分层树中的父重分配器获得的资源预算来将一个或多个资源指派给多个计算子树。
框60还可包括由分配器来控制所指派的一个或多个资源朝向资源预算的收敛。另外,框60可提供由分配器来将请求集合的连续属性映射到所指派的一个或多个资源的离散属性。例如,可将对以落在两个离散频率值之间的特定频率来操作的请求映射到两个离散频率值中的较靠近的值。类似地,可将对以落在两个离散电压值之间的特定电压来操作的请求映射到两个离散电压值中的较靠近的值。此外,框60可包括由分配器来将与请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。例如,可将对功率分配的请求转变为频率信用。
图5示出重分配器62,该重分配器62控制用于多个核64(64a-64c)的电压和频率设置,这多个核64形成重分配器62的计算子树。一般可包括逻辑指令、可配置逻辑和/或固定功能逻辑硬件的重分配器62可实现已讨论方法54(图4)的一个或多个方面。另外,重分配器62可代替已讨论的处理器级重分配器18(图1)中的一个或多个。在所例示的示例中,重分配器62包括核和/或性能聚合器66,该性能聚合器66用于基于来自应用72的性能信息70来针对在核64上执行的多个线程中的每一个生成性能值68(68a-68c)。应用72可调用或以其他方式与在核64上执行的多个线程相关联。性能值68可由此表示基于每个线程(例如,计算子树)的以下各项:朝向工作负荷阶段的末尾的进度、FLOPS速率、所完成存储器操作的数量等,或其任何组合。另外,性能值68可包括最小值和/或平均值。
所例示的重分配器62还包括多个分配请求器74(74a-74c),用于基于性能值68来生成请求集合76(“RPolicyi”)。在一个示例中,分配请求器40使用PID来生成请求集合76。请求集合76可标识频率信用、功率信用、抽象优先级(例如,待解释)等。另外,分配器78可基于请求集合42以及资源预算80(例如,从分层树中的父重分配器获得)来将一个或多个资源(例如,频率和/或功率信用)指派给运行在核64上的多个线程。可在阶(step)指派集合82(“VFstepi(VF阶i)”)中指定和/或反映对资源的指派并将其发送至核64。每个阶指派82可指定离散的电压-频率操作水平。指派集合82还可被用于生成所使用总资源的报告84,该报告84可作为反馈被发送至请求器74和聚合器66。请求器74和聚合器66由此可分别在生成未来的请求集合76和性能值68时使用报告84。
图6示出计算系统86。计算系统86一般可以是具有计算功能(例如,个人数字助理/PDA、笔记本计算机、平板计算机、可转换平板、服务器、HPC系统)、通信功能(例如,无线智能电话)、成像功能、媒体播放功能(例如,智能电视/TV)、可穿戴功能(例如,手表、眼镜、头部设备、鞋、首饰)、车载功能(例如,汽车、卡车、摩托车)等或其任何组合的电子设备/平台的一部分。在所例示的示例中,系统86包括处理器88,该处理器88具有用于执行用于的多个核90,以及可与系统存储器94通信的集成存储器控制器(IMC)92。系统存储器94可包括,例如被配置为诸如例如双列直插存储器模块(DIMM)、小型双列直插存储器模块(SODIMM)等一个或多个存储器模块的动态随机存取存储器(DRAM)。
所例示的系统86还包括输入输出(IO)模块96,该IO模块96与处理器88在半导体管芯(未示出)上一起被实现为片上系统(SoC),其中IO模块90充当主机设备并且可与例如显示器98(例如,触摸屏、液晶显示器/LCD、发光二极管/LED显示器)、网络控制器100、和大容量存储102(例如,硬盘驱动器/HDD、光盘、闪存等)通信。所例示的处理器88可执行逻辑104,该逻辑104通过布置在分层树中的多个重分配器中的系统级重分配器来获得资源预算信息。逻辑104还可通过多个重分配器中的至少一个来获得应用性能信息。另外,逻辑104可通过多个重分配器中的至少一个并至少部分地基于资源预算信息和应用性能信息来降低与应用性能信息相关联的多个计算子树之间的性能不平衡。因此,逻辑104可实现方法22(图2)和/或方法54(图4)的一个或多个方面,并且可与重配置装置10(图1)类似地起作用。逻辑104可替代地被实现在系统86中的别处。另外,显示器98可在视觉上呈现与应用的执行相关联的结果信息。
附加注解与示例:
示例1可包括高性能计算系统,包括:多个重分配器,该多个重分配器被布置在分层树中,该多个重分配器包括用于获得资源预算信息的系统级重分配器,其中多个重分配器中的至少一个用于获得应用性能信息,以及至少部分地基于资源预算信息和应用性能信息来降低与应用性能信息相关联的多个计算子树之间的性能不平衡;以及显示器,该显示器用于在视觉上呈现与应用的执行相关联的结果信息。
示例2可包括示例1的系统,其中多个重分配器中的至少一个重分配器包括:聚合器,该聚合器用于基于应用性能信息来针对多个计算子树中的每个计算子树生成性能值;多个分配请求器,该多个分配请求器用于基于性能值来生成请求集合;以及分配器,该分配器用于基于请求集合与从分层树中的父重分配器获得的资源预算来将一个或多个资源指派给多个计算子树。
示例3可包括示例2的系统,其中性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
示例4可包括示例2的系统,其中分配器用于控制所指派的一个或多个资源朝向资源预算的收敛。
示例5可包括示例2的系统,其中分配器用于将请求集合的连续属性映射到所指派的一个或多个资源的离散属性。
示例6可包括示例2的系统,其中分配器用于将与请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。
示例7可包括示例1至6中任一项的系统,其中多个重分配器包括:一个或多个处理器级重分配器,其中每个处理器级重分配器与形成计算子树的多个应用线程相关联;以及一个或多个节点级重分配器,其中每个节点级重分配器与形成计算子树的多个处理器级重分配器相关联。
示例8可包括重分配装置,包括:多个重分配器,该多个重分配器被布置在分层树中,该多个重分配器包括用于获得资源预算信息的系统级重分配器,其中多个重分配器中的至少一个用于获得应用性能信息,以及至少部分地基于资源预算信息和应用性能信息来降低与应用性能信息相关联的多个计算子树之间的性能不平衡。
示例9可包括示例8的装置,其中多个重分配器中的至少一个重分配器包括:聚合器,该聚合器用于基于应用性能信息来针对多个计算子树中的每个计算子树生成性能值;多个分配请求器,该多个分配请求器用于基于性能值来生成请求集合;以及分配器,该分配器用于基于请求集合与从分层树中的父重分配器获得的资源预算来将一个或多个资源指派给多个计算子树。
示例10可包括示例9的装置,其中性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
示例11可包括示例9的装置,其中分配器用于控制所指派的一个或多个资源朝向资源预算的收敛。
示例12可包括示例9的装置,其中分配器用于将请求集合的连续属性映射到所指派的一个或多个资源的离散属性。
示例13可包括示例9的装置,其中分配器用于将与请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。
示例14可包括示例8至13中任一项的装置,其中多个重分配器包括:一个或多个处理器级重分配器,其中每个处理器级重分配器与形成计算子树的多个应用线程相关联;以及一个或多个节点级重分配器,其中每个节点级重分配器与形成计算子树的多个处理器级重分配器相关联。
示例15可包括操作重分配装置的方法,包括:由布置在分层树中的多个重分配器中的系统级重分配器获得资源预算信息;由多个重分配器中的至少一个重分配器获得应用性能信息;以及由多个重分配器中的至少一个重分配器并至少部分地基于资源预算信息和应用性能信息来降低与应用性能信息相关联的多个计算子树之间的性能不平衡。
示例16可包括示例15的方法,进一步包括:由聚合器且针对多个计算子树中的每个计算子树来基于应用性能信息生成性能值;由多个分配请求器基于性能值生成请求集合;以及由分配器基于请求集合与从分层树中的父重分配器获得的资源预算将一个或多个资源指派给多个计算子树。
示例17可包括示例16的方法,其中性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
示例18可包括示例16的方法,进一步包括由分配器控制所指派的一个或多个资源朝向资源预算的收敛。
示例19可包括示例15至18中任一项的方法,进一步包括:由分配器将请求集合的连续属性映射到所指派的一个或多个资源的离散属性;以及由分配器将与请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。
示例20可包括至少一种计算机可读存储介质,包括指令集,该指令集在被计算设备执行时,使计算设备用于:由布置在分层树中的多个重分配器中的系统级重分配器获得资源预算信息;由多个重分配器中的至少一个重分配器获得应用性能信息;以及由多个重分配器中的至少一个重分配器并至少部分地基于资源预算信息和应用性能信息来降低与应用性能信息相关联的多个计算子树之间的性能不平衡。
示例21可包括示例20的至少一种计算机可读存储介质,其中指令集在被计算设备执行时,导致计算设备来:由聚合器且针对多个计算子树中的每个计算子树来基于应用性能信息生成性能值;由多个分配请求器基于性能值生成请求集合;以及由分配器基于请求集合以及从分层树中的父重分配器获得的资源预算来将一个或多个资源指派给多个计算子树。
示例22可包括示例21的至少一种计算机可读存储介质,其中性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
示例23可包括示例21的至少一种计算机可读存储介质,其中指令集在被计算设备执行时,导致计算设备来:由分配器控制所指派的一个或多个资源朝向资源预算的收敛。
示例24可包括示例20至23中任一项的至少一种计算机可读存储介质,其中指令集在被计算设备执行时,导致计算设备来:由分配器将请求集合的连续属性映射到所指派的一个或多个资源的离散属性;以及由分配器将与请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。
示例25可包括重分配设备,包括:用于由布置在分层树中的多个重分配器中的系统级重分配器获得资源预算信息的装置;用于由多个重分配器中的至少一个重分配器获得应用性能信息的装置;以及用于由多个重分配器中的至少一个重分配器并至少部分地基于资源预算信息和应用性能信息来降低与应用性能信息相关联的多个计算子树之间的性能不平衡的装置。
示例26可包括示例25的设备,进一步包括:用于由聚合器且针对多个计算子树中的每个计算子树来基于应用性能信息生成性能值的装置;用于由多个分配请求器来基于性能值生成请求集合的装置;以及用于由分配器来基于请求集合与从分层树中的父重分配器获得的资源预算来将一个或多个资源指派给多个计算子树的装置。
示例27可包括示例26的设备,其中性能值用于表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
示例28可包括示例26的设备,进一步包括用于由分配器来控制所指派的一个或多个资源朝向资源预算的收敛的装置。
示例29可包括示例25至28中任一项的设备,进一步包括:用于由分配器将请求集合的连续属性映射到所指派的一个或多个资源的离散属性的装置;以及用于由分配器将与请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型的装置。
本文描述的技术由此可采用聚合器,该聚合器不仅从核收集信息,而且还从应用收集性能信息。此类方法可使解决方案能够通过更有根据的重分配决策来理解和校正负载不平衡。此外,技术可在每个重分配装置/代理中使用许多并行分配请求器而不是单个集中式分配请求器。因此,对于具有例如数百个核的未来处理器,可大大改进可缩放性。另外,本文描述的技术可协调每个重分配代理中的并行/分布式请求器,以便设计更快地收敛于最佳资源分配。
此外,常规功率性能管理系统可能缺乏对应用全局同步模式以及由负载不平衡引起的性能下降的感知。此外,他们采用的试探法可能往往加剧而非减轻负载不平衡。通过应用感知,本文描述的技术可产生实质上更好的结果。
另外,常规负载不平衡减轻解决方案可采用资源重分配策略,该资源重分配策略具有缩放瓶颈,该缩放瓶颈在系统规模增加时——尤其在每处理器的核数量方面——会限制其可行性。通过高度可缩放的设计,本文描述的技术在其他设计失败的大型系统中可能是可行的。
实际上,即使对于中等规模的系统,已尝试减轻负载不平衡的常规功率性能管理系统也可能已采用下述资源重分配策略,该资源重分配策略经受缓慢的不平衡校正时间,或者用有效性来换得较快的校正时间。通过基于协调并行PID控制器的新颖的重分配算法,本文描述的技术可更快地且更有效地减轻负载不平衡,以获得最大的应用益处。
此外,在处理器级,常规功率性能管理设计可采用功率控制单元(PCU)或等同物。PCU可以是处理器中的硬件单元,其职责包括但不限于:管理处理器子组件之间有限处理器功率资源的分配,以及选择每个核将运行的电压/频率设置(即,VFstep)。PCU的一个主要限制是其可能缺乏对应用全局同步模式以及来自应用的关于负载不平衡的反馈的感知。相反,PCU可能依靠简单的信息来确定用于操作核的电压/频率。由于PCU采用集中式设计,该集中式设计在增加核数量的情况下无法很好地缩放——PCU的另一主要限制——其会牺牲其功率管理决策的质量,以便降低决策的复杂度。例如,PCU可对所有核应用同一电压/频率,即使现代处理器在原则上包含实现更细粒度的电压/频率配置的机制。本文描述的技术可用应用感知的、可扩缩的以及快速收敛的设计来代替基于PCU的设计。
各实施例适用于与各种类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、芯片上系统(SoC)、SSD/NAND控制器ASIC等等。另外,在一些附图中,信号导线是用线表示的。一些线可以是不同的,以表示更具构成性的信号路径,具有数字标号以表示构成性信号路径的数目,和/或在一端或多端具有箭头以表示主要信息流向。但是,这不应以限制性方式来解释。相反,这种增加的细节可与一个或多个示例性实施例结合使用以便更容易地理解电路。任何所表示的信号线,不管是否具有附加信息,实际上都可包括一个或多个信号,这一个或多个信号可在多个方向上行进,并且可用任何适合类型的信号方案来实现,例如利用差分对来实现的数字或模拟线路、光纤线路,和/或单端线路。
示例尺寸/模型/值/范围可能已经被给出,但是各实施例不限于此。随着制造技术(例如,光刻法)随时间的成熟,可望能制造出更小尺寸的设备。另外,为了例示和说明的简单,与IC芯片公知的功率/接地连接和其它组件可在附图中示出也可不示出,并且这样做也是为了不使所述实施例的某些方面变得晦涩。此外,各种配置可以方框图形式示出以避免使各实施例变得晦涩,并鉴于相对于这些方框图配置的实现的具体细节很大程度地依赖于所述实施例实现的平台这一事实,即这些具体细节应当落在本领域内技术人员的眼界内。在阐述具体细节(例如电路)以描述示例性实施例的情形下,显然本领域内技术人员能不经过这些具体细节或对这些具体细节作出变化地实现各实施例。说明书因此被视为是示例性的而不是限制性的。
术语“耦合”在本文中被用于表示所讨论的组件之间的任何类型的直接或间接关系,且可应用于电气的、机械的、流体的、光学的、电磁的、机电的或其他连接。另外,术语“第一”、“第二”等等本文只用于便于讨论,没有特定时间的或按时间顺序的意义,除非另有陈述。
本领域内技术人员从前面的描述将可以理解,所述实施例的广泛技术可以用多种形式来实现。因此,尽管已结合其特定示例描述了所述实施例,然而所述实施例的真实范围不受此限,因为本领域内技术人员在研究附图、说明书和下面的权利要求书之后很容易理解其它的修正形式。
Claims (25)
1.一种高性能计算系统,包括:
多个核,所述多个核用于执行应用;
多个重分配器,所述多个重分配器被布置在分层树中,所述多个重分配器包括用于获得资源预算信息的系统级重分配器,其中所述多个重分配器中的至少一个重分配器用于获得应用性能信息,以及至少部分地基于所述资源预算信息和所述应用性能信息来降低与所述应用性能信息相关联的多个计算子树之间的性能不平衡;以及
显示器,所述显示器用于在视觉上呈现与所述应用的执行相关联的结果信息。
2.如权利要求1所述的系统,其特征在于,所述多个重分配器中的所述至少一个重分配器包括:
聚合器,所述聚合器用于基于所述应用性能信息来针对所述多个计算子树中的每个计算子树生成性能值;
多个分配请求器,所述多个分配请求器用于基于所述性能值来生成请求集合;以及
分配器,所述分配器用于基于所述请求集合以及从所述分层树中的父重分配器获得的资源预算来将一个或多个资源指派给所述多个计算子树。
3.如权利要求2所述的系统,其特征在于,所述性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
4.如权利要求2所述的系统,其特征在于,所述分配器用于控制所指派的一个或多个资源朝向所述资源预算的收敛。
5.如权利要求2所述的系统,其特征在于,所述分配器用于将所述请求集合的连续属性映射到所指派的一个或多个资源的离散属性。
6.如权利要求2所述的系统,其特征在于,所述分配器用于将与所述请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。
7.如权利要求1至6中任一项所述的系统,其特征在于,所述多个重分配器包括:
一个或多个处理器级重分配器,其中每个处理器级重分配器与形成计算子树的多个应用线程相关联;以及
一个或多个节点级重分配器,其中每个节点级重分配器与形成计算子树的多个处理器级重分配器相关联。
8.一种重分配装置,包括:
多个重分配器,所述多个重分配器被布置在分层树中,所述多个重分配器包括用于获得资源预算信息的系统级重分配器,其中所述多个重分配器中的至少一个用于获得应用性能信息,以及至少部分地基于所述资源预算信息和所述应用性能信息来降低与所述应用性能信息相关联的多个计算子树之间的性能不平衡。
9.如权利要求8所述的装置,其特征在于,所述多个重分配器中的所述至少一个重分配器包括:
聚合器,所述聚合器用于基于所述应用性能信息来针对所述多个计算子树中的每个计算子树生成性能值;
多个分配请求器,所述多个分配请求器用于基于所述性能值来生成请求集合;以及
分配器,所述分配器用于基于所述请求集合以及从所述分层树中的父重分配器获得的资源预算来将一个或多个资源指派给所述多个计算子树。
10.如权利要求9所述的装置,其特征在于,所述性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
11.如权利要求9所述的装置,其特征在于,所述分配器用于控制所指派的一个或多个资源朝向所述资源预算的收敛。
12.如权利要求9所述的装置,其特征在于,所述分配器用于将所述请求集合的连续属性映射到所指派的一个或多个资源的离散属性。
13.如权利要求9所述的装置,其特征在于,所述分配器用于将与所述请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。
14.如权利要求8至13中任一项所述的装置,其特征在于,所述多个重分配器包括:
一个或多个处理器级重分配器,其中每个处理器级重分配器与形成计算子树的多个应用线程相关联;以及
一个或多个节点级重分配器,其中每个节点级重分配器与形成计算子树的多个处理器级重分配器相关联。
15.一种操作重分配装置的方法,包括:
由布置在分层树中的多个重分配器中的系统级重分配器获得资源预算信息;
由所述多个重分配器中的至少一个重分配器获得应用性能信息;以及
由所述多个重分配器中的所述至少一个重分配器并至少部分地基于所述资源预算信息和所述应用性能信息来降低与所述应用性能信息相关联的多个计算子树之间的性能不平衡。
16.如权利要求15所述的方法,其特征在于,进一步包括:
由聚合器且针对所述多个计算子树中的每个计算子树来基于所述应用性能信息生成性能值;
由多个分配请求器基于所述性能值生成请求集合;以及
由分配器基于所述请求集合以及从所述分层树中的父重分配器获得的资源预算将一个或多个资源指派给所述多个计算子树。
17.如权利要求16所述的方法,其特征在于,所述性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
18.如权利要求16所述的方法,其特征在于,进一步包括由分配器控制所指派的一个或多个资源朝向所述资源预算的收敛。
19.如权利要求15至18中的任一项所述的方法,其特征在于,进一步包括:
由分配器将所述请求集合的连续属性映射到所指派的一个或多个资源的离散属性;以及
由分配器将与所述请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。
20.至少一种计算机可读存储介质,包括指令集,所述指令集在由计算设备执行时导致所述计算设备来:
由布置在分层树中的多个重分配器中的系统级重分配器获得资源预算信息;
由所述多个重分配器中的至少一个重分配器获得应用性能信息;以及
由所述多个重分配器中的所述至少一个重分配器并至少部分地基于所述资源预算信息和所述应用性能信息来降低与所述应用性能信息相关联的多个计算子树之间的性能不平衡。
21.如权利要求20所述的至少一种计算机可读存储介质,其特征在于,所述指令在被执行时,导致计算设备来:
由聚合器且针对所述多个计算子树中的每个计算子树来基于所述应用性能信息生成性能值;
由多个分配请求器基于所述性能值生成请求集合;以及
由分配器基于所述请求集合以及从所述分层树中的父重分配器获得的资源预算来将一个或多个资源指派给所述多个计算子树。
22.如权利要求21所述的至少一种计算机可读存储介质,其特征在于,所述性能值表示以下各项中的一个或多个:朝向工作负荷阶段的末尾的进度、浮点运算速率、或所完成存储器操作的数量。
23.如权利要求21所述的至少一种计算机可读存储介质,其特征在于,所述指令在被执行时,使计算设备用于由所述分配器控制所指派的一个或多个资源朝向所述资源预算的收敛。
24.如权利要求20至23中任一项所述的至少一种计算机可读存储介质,其特征在于,所述指令在被执行时,导致计算设备来:
由所述分配器将所述请求集合的连续属性映射到所指派的一个或多个资源的离散属性;以及
由所述分配器将与所述请求集合相关联的请求类型转变为与所指派的一个或多个资源相关联的资源类型。
25.一种重分配设备,包括用于执行权利要求15至18中任一项所述的方法的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/081,424 US10223171B2 (en) | 2016-03-25 | 2016-03-25 | Mitigating load imbalances through hierarchical performance balancing |
US15/081,424 | 2016-03-25 | ||
PCT/US2017/018705 WO2017200615A2 (en) | 2016-03-25 | 2017-02-21 | Mitigating load imbalances through hierarchical performance balancing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108701062A true CN108701062A (zh) | 2018-10-23 |
CN108701062B CN108701062B (zh) | 2022-07-29 |
Family
ID=59898014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780013348.6A Active CN108701062B (zh) | 2016-03-25 | 2017-02-21 | 通过分层性能平衡来减轻负载不平衡 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10223171B2 (zh) |
EP (1) | EP3433738A4 (zh) |
CN (1) | CN108701062B (zh) |
WO (1) | WO2017200615A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239655A (zh) * | 2020-05-21 | 2021-08-10 | 台湾积体电路制造股份有限公司 | 半导体电路的约束确定系统和方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10452117B1 (en) * | 2016-09-22 | 2019-10-22 | Apple Inc. | Processor energy management system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478499A (zh) * | 2009-01-08 | 2009-07-08 | 清华大学深圳研究生院 | 一种多协议标签交换网络中的流量分配方法及装置 |
CN103713956A (zh) * | 2014-01-06 | 2014-04-09 | 山东大学 | 应用于云计算虚拟化管理环境中的智能加权负载均衡方法 |
US20150067356A1 (en) * | 2013-08-30 | 2015-03-05 | Advanced Micro Devices, Inc. | Power manager for multi-threaded data processor |
CN105143710A (zh) * | 2013-04-19 | 2015-12-09 | 威格曼汽车有限两合公司 | 用于平衡重的自动分配器 |
CN105389211A (zh) * | 2015-10-22 | 2016-03-09 | 北京航空航天大学 | 一种适用于numa架构内多节点间访存延时平衡的内存分配方法及延时感知-内存分配装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6333936B1 (en) * | 1998-04-29 | 2001-12-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for allocating processing resources |
US6952828B2 (en) * | 2001-09-26 | 2005-10-04 | The Boeing Company | System, method and computer program product for dynamic resource management |
US7810098B2 (en) * | 2004-03-31 | 2010-10-05 | International Business Machines Corporation | Allocating resources across multiple nodes in a hierarchical data processing system according to a decentralized policy |
US8091088B2 (en) * | 2005-02-22 | 2012-01-03 | Microsoft Corporation | Method and system for hierarchical resource management involving hard and soft resource limits |
JP5110313B2 (ja) | 2006-03-14 | 2012-12-26 | 日本電気株式会社 | 階層化システム及びその管理方法と、プログラム |
US20070250837A1 (en) | 2006-04-24 | 2007-10-25 | Herington Daniel E | System and method for adjusting multiple resources across multiple workloads |
US7702931B2 (en) * | 2006-06-27 | 2010-04-20 | Hewlett-Packard Development Company, L.P. | Adjusting power budgets of multiple servers |
US8060883B1 (en) * | 2007-02-16 | 2011-11-15 | Vmware, Inc. | System for managing and providing expandable resource reservations in a tree hierarchy |
US8881157B2 (en) * | 2009-09-11 | 2014-11-04 | Empire Technology Development Llc | Allocating threads to cores based on threads falling behind thread completion target deadline |
US8621481B2 (en) * | 2011-06-13 | 2013-12-31 | Oracle International Corporation | Apparatus and method for performing a rebalance of resources for one or more devices at boot time |
US8863140B2 (en) | 2011-08-29 | 2014-10-14 | Oracle International Corporation | Method for resource management allocating and freeing credits from and to a resource credit tree |
US9292403B2 (en) * | 2011-12-14 | 2016-03-22 | International Business Machines Corporation | System-wide topology and performance monitoring GUI tool with per-partition views |
US9396030B2 (en) | 2013-03-13 | 2016-07-19 | Samsung Electronics Co., Ltd. | Quota-based adaptive resource balancing in a scalable heap allocator for multithreaded applications |
US9329910B2 (en) * | 2013-06-20 | 2016-05-03 | Seagate Technology Llc | Distributed power delivery |
US9292362B2 (en) * | 2013-06-25 | 2016-03-22 | Intel Corporation | Method and apparatus to protect a processor against excessive power usage |
US9584435B2 (en) | 2013-08-05 | 2017-02-28 | Verizon Patent And Licensing Inc. | Global cloud computing environment resource allocation with local optimization |
US9626210B2 (en) * | 2014-09-11 | 2017-04-18 | Amazon Technologies, Inc. | Resource credit pools for replenishing instance resource credit balances of virtual compute instances |
-
2016
- 2016-03-25 US US15/081,424 patent/US10223171B2/en active Active
-
2017
- 2017-02-21 CN CN201780013348.6A patent/CN108701062B/zh active Active
- 2017-02-21 WO PCT/US2017/018705 patent/WO2017200615A2/en active Application Filing
- 2017-02-21 EP EP17799803.6A patent/EP3433738A4/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478499A (zh) * | 2009-01-08 | 2009-07-08 | 清华大学深圳研究生院 | 一种多协议标签交换网络中的流量分配方法及装置 |
CN105143710A (zh) * | 2013-04-19 | 2015-12-09 | 威格曼汽车有限两合公司 | 用于平衡重的自动分配器 |
US20150067356A1 (en) * | 2013-08-30 | 2015-03-05 | Advanced Micro Devices, Inc. | Power manager for multi-threaded data processor |
CN103713956A (zh) * | 2014-01-06 | 2014-04-09 | 山东大学 | 应用于云计算虚拟化管理环境中的智能加权负载均衡方法 |
CN105389211A (zh) * | 2015-10-22 | 2016-03-09 | 北京航空航天大学 | 一种适用于numa架构内多节点间访存延时平衡的内存分配方法及延时感知-内存分配装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239655A (zh) * | 2020-05-21 | 2021-08-10 | 台湾积体电路制造股份有限公司 | 半导体电路的约束确定系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3433738A2 (en) | 2019-01-30 |
WO2017200615A2 (en) | 2017-11-23 |
US10223171B2 (en) | 2019-03-05 |
EP3433738A4 (en) | 2019-11-20 |
US20170277576A1 (en) | 2017-09-28 |
CN108701062B (zh) | 2022-07-29 |
WO2017200615A3 (en) | 2017-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7222029B2 (ja) | ホリスティックグローバルなパフォーマンス及び電力管理 | |
US11656911B2 (en) | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items | |
US11082357B2 (en) | Facilitating dynamic hierarchical management of queue resources in an on-demand services environment | |
US10733026B2 (en) | Automated workflow selection | |
US10514951B2 (en) | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery | |
US11294726B2 (en) | Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using QoS | |
US20180139271A1 (en) | Automated server workload management using machine learning | |
US20140320497A1 (en) | Graph partitioning for massive scale graphs | |
KR102647629B1 (ko) | 블록 체인에서의 업무 청구 처리 방법, 장치, 기기, 매체 및 프로그램 | |
US11029971B2 (en) | Automated resource usage configurations for deep learning neural network workloads on multi-generational computing architectures | |
JP7158522B2 (ja) | ブロックチェーン内のトランザクション要求処理方法、装置、デバイス、媒体、及びプログラム | |
CN111177984B (zh) | 电子设计自动化中异构计算单元的资源利用 | |
CN110489238A (zh) | 节点检测方法、装置、电子设备及存储介质 | |
CN111160706A (zh) | 模拟供应链风险响应的方法、装置和系统 | |
CN107025137A (zh) | 一种资源查询方法及装置 | |
Mahmoud et al. | CloudOptimizer: Multi-tenancy for I/O-bound OLAP workloads | |
CN108701062A (zh) | 通过分层性能平衡来减轻负载不平衡 | |
US11770264B2 (en) | Method and apparatus for processing resource of block chain, device and medium | |
CN109710484A (zh) | 设备能耗的调整方法、装置以及计算机可读存储介质 | |
US20210012844A1 (en) | Endurance and serviceability in solid state drives | |
EP3599547B1 (en) | Elastic storage volume type selection and optimization engine for public cloud environments | |
Cavallo et al. | Fragmenting Big Data to boost the performance of MapReduce in geographical computing contexts | |
CN110008000A (zh) | 应用集群缩容方法及装置 | |
US20230229573A1 (en) | Dynamic hierarchical placement of consolidated and pluggable databases in autonomous environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |