CN117931386A - 服务器以及用于服务器中的资源调度方法 - Google Patents
服务器以及用于服务器中的资源调度方法 Download PDFInfo
- Publication number
- CN117931386A CN117931386A CN202211679631.1A CN202211679631A CN117931386A CN 117931386 A CN117931386 A CN 117931386A CN 202211679631 A CN202211679631 A CN 202211679631A CN 117931386 A CN117931386 A CN 117931386A
- Authority
- CN
- China
- Prior art keywords
- resource
- processing
- resource allocation
- request
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000012545 processing Methods 0.000 claims abstract description 116
- 238000013468 resource allocation Methods 0.000 claims abstract description 68
- 238000004891 communication Methods 0.000 claims abstract description 19
- 238000004458 analytical method Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 41
- 230000003068 static effect Effects 0.000 claims description 25
- 230000008439 repair process Effects 0.000 claims description 10
- 230000007704 transition Effects 0.000 claims description 4
- 238000000354 decomposition reaction Methods 0.000 description 24
- 230000008901 benefit Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013508 migration Methods 0.000 description 5
- 230000005012 migration Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000009472 formulation Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 206010062519 Poor quality sleep Diseases 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 101100001674 Emericella variicolor andI gene Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
一种服务器以及一种用于服务器中的资源调度方法。所述服务器包括多个处理模块,每个处理模块具有用于处理由所述服务器处理的任务的预定资源,其中所述多个处理模块通过通信链路互连,所述通信链路形成具有分解式数据中心(DCC)架构的处理模块网络;DCC硬件监测器,其被布置成在所述服务器的操作期间检测与所述处理模块网络相关联的硬件信息;以及任务调度器模块,其被布置成分析与每个相应任务相关联的资源分配请求和所述硬件信息,并且促进基于所述分析选择的一个或多个所述处理模块对所述任务的处理。
Description
技术领域
本发明大体上涉及一种服务器以及一种用于服务器中的资源调度方法。更具体来说,本发明涉及一种用于可组合/分解式数据中心的可靠资源调度方法。
背景技术
随着大数据和云/雾/边缘计算等互联网技术的快速发展,大量数据涌入数据中心(DC),给数据中心带来巨大的负担。然而,这种架构在某些应用场景中会造成严重的资源搁浅,从而阻碍效率的提高。为了减轻这种负担,基于服务器的架构的各个方面已经做出相当大的努力。
硬件分解技术将资源(例如,处理器和存储器)与单片服务器分离,从而有机会提高服务可靠性。例如,DC可以构建为采用硬件分解来表示DC的分解式DC(DDC)。在DDC中,将来自集成服务器的硬件组件分解并重新组装到通过直接互连网络结构互连的资源池。
发明内容
根据本发明的第一方面,提供一种服务器,所述服务器包括多个处理模块,每个处理模块具有用于处理由服务器处理的任务的预定资源,其中多个处理模块通过通信链路互连,所述通信链路形成具有分解式数据中心(DCC)架构的处理模块网络;DCC硬件监测器,其被布置成在服务器的操作期间检测与处理模块网络相关联的硬件信息;以及任务调度器模块,其被布置成分析与每个相应任务相关联的资源分配请求和硬件信息,并且促进基于分析选择的一个或多个处理模块对任务的处理。
根据第一方面,硬件信息包含DCC架构的拓扑、多个处理模块中的每一个的负载,以及与处理模块网络的故障和/或修复相关的信息。
根据第一方面,任务调度器模块被布置成向处理模块网络提供调度器决策以促进任务的处理,其中所述调度器决策包含基于参与处理任务的不同处理模块的资源可用性和其间的资源间流量需求而分配网络中的多于一个处理模块以处理任务的决策。
根据第一方面,任务调度器模块被布置成在静态情形中分析多个资源分配请求,其中资源分配请求一次性成批到达和离开。
根据第一方面,任务调度器模块被布置成基于混合整数线性规划(MILP)方法分析多个资源分配请求。
根据第一方面,混合整数线性规划(MILP)方法包含用目标函数中的变化权重求解MILP问题,所述目标函数与具有加权和的单目标问题相关联,其中单目标问题从与静态情形中的多个资源分配请求相关联的多目标问题转换。
根据第一方面,任务调度器模块被布置成在动态情形中分析多个资源分配请求,其中资源分配请求在预定时间段内随机地且依序地到达和离开。
根据第一方面,任务调度器模块包括第一子模块,所述第一子模块被布置成基于以下条件调度在动态情形中到达的资源分配请求:如果在请求到达后有足够的资源可用,则接受资源分配请求;或拒绝资源分配请求,使得请求离开系统而不重新尝试;其中资源由单个处理模块或涉及资源间流量的两个或更多个处理模块的群组提供。
根据第一方面,任务调度器模块包括第二子模块,所述第二子模块被布置成通过从DCC架构的拓扑中排除具有硬件故障的处理模块并且重新分配用于处理所接受请求的资源,恢复由与分配用于处理任务的资源相关联的硬件故障中断的所接受请求。
根据第一方面,多个处理模块中的每一个包含不同类型的资源的多个组件,并且其中包含多于一个资源类型的请求的单个任务被布置成由多个处理模块中的不同类型的资源的组件以分解方式处理。
根据本发明的第二方面,提供一种用于服务器中的资源调度方法,包括以下步骤:在服务器的操作期间检测与处理模块网络相关联的硬件信息,其中具有分解式数据中心(DCC)架构的处理模块网络由通过通信链路互连的多个处理模块形成,并且多个处理模块中的每一个具有预定资源以用于处理由服务器处理的任务;分析与每个相应任务相关联的资源分配请求和硬件信息;以及促进基于分析选择的一个或多个处理模块对任务的处理。
根据第二方面,硬件信息包含DCC架构的拓扑、多个处理模块中的每一个的负载,以及与处理模块网络的故障和/或修复相关的信息。
根据第二方面,促进基于分析选择的一个或多个处理模块对任务的处理的步骤包括向处理的网络提供调度器决策的步骤,其中所述调度器决策包含基于参与处理任务的不同处理模块的资源可用性和其间的资源间流量需求而分配网络中的多于一个处理模块以处理任务的决策。
根据第二方面,分析与每个相应任务相关联的资源分配请求和硬件信息的步骤包括在静态情形中分析多个资源分配请求的步骤,其中资源分配请求一次性成批到达和离开。
根据第二方面,基于混合整体线性规划(MILP)方法分析多个资源分配请求。
根据第二方面,混合整数线性规划(MILP)方法包含用目标函数中的变化权重求解MILP问题,所述目标函数与具有加权和的单目标问题相关联,其中单目标问题从与静态情形中的多个资源分配请求相关联的多目标问题转换。
根据第二方面,分析与每个相应任务相关联的资源分配请求和硬件信息的步骤包括在动态情形中分析多个资源分配请求的步骤,其中资源分配请求在预定时间段内随机地且依序地到达和离开。
根据第二方面,分析与每个相应任务相关联的资源分配请求和硬件信息的步骤包括基于以下条件调度在动态情形中到达的资源分配请求的步骤:如果在请求到达后有足够的资源可用,则接受资源分配请求;或拒绝资源分配请求,使得请求离开系统而不重新尝试;其中资源由单个处理模块或涉及资源间流量的两个或更多个处理模块的群组提供。
根据第二方面,分析与每个相应任务相关联的资源分配请求和硬件信息的步骤包括以下步骤:通过从DCC架构的拓扑中排除具有硬件故障的处理模块并且重新分配用于处理所接受请求的资源,恢复由与分配用于处理任务的资源相关联的硬件故障中断的所接受请求。
根据第二方面,多个处理模块中的每一个包含不同类型的资源的多个组件,并且其中包含多于一个资源类型的请求的单个任务被布置成由多个处理模块中的不同类型的资源的组件以分解方式处理。
附图说明
下文中参考图式更详细描述本发明的实施例,其中:
图1是示出根据本发明的实施例的服务器的配置和操作的图示;
图2A是示出示例性基于服务器的分解式DC架构的图示;
图2B是示出示例性机架规模分解式DC架构的图示;
图3是示出SDC与DDC中的四个工作负载的位置的图示;
图4是示出具有三个存储器组件的刀片上的三个请求的图示,其中三个请求按请求1、2和3的次序到达;
图5是示出示例性刀片选择过程的流程图;
图6是示出关于最小请求可靠性与接受率(由MILP获得)的帕累托前沿的曲线图;
图7是示出Radar在S1 BS和S3 RS中获得的最小请求可靠性与接受率的曲线图;
图8是示出当备份应用于每个硬件元件时的帕累托前沿比较的曲线图;以及
图9是示出拒绝率和未能完成服务的请求数的曲线图。
具体实施方式
在以下描述中,将服务器、用于服务器中的资源调度方法等阐述为优选实例。所属领域的技术人员将清楚,可以在不脱离本发明的范围和精神的情况下作出包含添加和/或替代在内的修改。可以省略特定细节以免使本发明模糊不清;然而,编写本公开是为了使所属领域的技术人员能够在不进行不当实验的情况下实践本文中的教示。
本发明设计者设计“使用API从共享资源池创建物理系统”的可组合/分解式基础架构(CDI)是未来数据中心(DC)突破传统服务器的边界限制的新兴计算基础架构。在目前的早期阶段,CDI由于其高效益而增长迅速,预计到2027年将增长到135亿美元,年增长率为21%。
本公开将基于CDI的DC称为分解式DC(DDC),其表示采用硬件分解的DC。非易失性存储器标准(non-volatile memory express)、计算快速链接(compute express link)、计算存储装置(computational storage)和光学互连的进步等新技术为硬件分解的通信解决方案提供多样化支持。DDC通过减少基于服务器的DC(SDC)中的资源搁浅来实现资源效率和灵活性。硬件升级和资源扩展变得经济高效,因为它们可以在组件级别,而不是服务器级别操作。
在本公开中,描述DDC中的服务可靠性。提供高服务可靠性对于DC提供连续操作,确保高服务质量至关重要,而不可靠的服务可能会导致严重的经济损失。与SDC相比,出于两个主要原因,DDC中的资源可用性和可靠性可被提高。首先,改进的灵活性可扩展优化区域,其次,资源解耦导致危害较小的故障模式,其中不同资源之间的故障可能不会像SDC中那样相互牵连。然而,分解也可能对服务可靠性产生不利影响,因为资源模块现在直接暴露于共享网络。共享网络的故障可能导致许多资源模块不可用。
另外,由于资源间通信(例如,CPU-存储器通信)中严格的时延和带宽要求,分解的规模受到限制。关于资源分解的大部分工作都考虑了机架规模,其中例如CPU的资源可以使用来自同一机架,而不是来自不同机架的不同资源(例如存储器)。尽管一些公开案考虑了分发点(point of delay(POD))/DC规模分解,但它们的实际应用仅限于少数情况。
根据本发明的第一方面,提供一种服务器,所述服务器包括多个处理模块,每个处理模块具有用于处理由服务器处理的任务的预定资源,其中多个处理模块通过通信链路互连,所述通信链路形成具有分解式数据中心(DCC)架构的处理模块网络;DCC硬件监测器,其被布置成在服务器的操作期间检测与处理模块网络相关联的硬件信息;以及任务调度器模块,其被布置成分析与每个相应任务相关联的资源分配请求和硬件信息,并且促进基于分析选择的一个或多个处理模块对任务的处理。
参考图1,示出服务器100的实施例,所述服务器包括DCC 102、任务调度器模块104和DCC硬件监测器106。在本公开中,此配置还可以称为“Radar”框架。术语“Radar”表示分解式数据中心中的可靠资源分配。
在此实例中,服务器或Radar框架100由调度器104、监测器106和物理资源模块(例如,在DCC 102中)组成。监测器模块106检测DCC 102中的拓扑和负载变化以及硬件故障和修复,并且周期性地向调度器模块104报告信息以帮助作出决策。调度器模块104基于DCC102的请求和硬件信息执行合适算法以作出决策,并且最后将决策信息发送到物理DDC 102以用于进一步操作。
如图1中所提及,框架100寻址静态情形和动态情形两者。由于动态情形由随时间到达的各个请求表征,因此如果第一到达批次包括单个请求,则调度器假设这是动态情形。如果第一批次(且唯一批次)包括多个到达,则调度器假设它是静态情形。分类为动态情形或静态情形的资源分配请求的细节以及相关联的分配策略将在本公开中稍后详细讨论。
在此实例中,任务调度器104基于处理模块102的硬件负载而分配用于处理一个或多个任务的资源,参考硬件信息包含DCC架构的拓扑、多个处理模块中的每一个的负载以及与处理模块网络的故障和/或修复相关的信息,其由DCC硬件监测模块106监测。
根据本文所公开的实施例的服务器100的功能单元和模块可以使用计算装置、计算机处理器或电子电路系统实施,包含但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、微控制器和根据本公开的教示配置或编程的其它可编程逻辑装置。在计算装置、计算机处理器或可编程逻辑装置中运行的计算机指令或软件代码可以由软件或电子技术领域的从业人员基于本公开的教示容易地制备。
根据实施例的方法的全部或部分可以在包含服务器计算机、个人计算机、膝上型计算机、移动计算装置(例如智能手机)和平板计算机的一个或多个计算装置中执行。
实施例可以包含计算机储存媒体、具有存储在其中的计算机指令或软件代码的暂时性和非暂时性存储器装置,所述计算机指令或软件代码可以用于编程或配置计算装置、计算机处理器或电子电路系统以执行本发明的过程中的任一个。存储媒体、暂时性和非暂时性存储器装置可以包含但不限于软盘、光盘、蓝光光盘、DVD、CD-ROM和磁光盘、ROM、RAM、快闪存储器装置,或适合于存储指令、代码和/或数据的任何类型的媒体或装置。
根据各种实施例的功能单元和模块中的每一个还可以在分布式计算环境和/或云计算环境中实施,其中机器指令的全部或部分由通过通信网络互连的一个或多个处理装置以分布方式执行,所述通信网络例如内联网、广域网(WAN)、局域网(LAN)、因特网和其它形式的数据传输媒体。
在本公开中,考虑DDC中的可靠性性能,所述可靠性性能考虑到网络影响和不同分解规模。因此,在一些实施例中,本发明可以有助于,但不限于:
分析和评估考虑网络效应和不同分解规模的DDC的可靠资源分配问题。在解决此问题时,本发明旨在实现高资源效率和高可靠性。本发明人考虑静态情形和动态情形两者。对于静态情形,将资源分配到一批已知请求。发明人旨在最大化每个所接受请求的可靠性和接受率,所述接受率定义为所接受请求的数目与请求总数的比率。对于其中请求随机地到达和离开的动态情形,资源在每个请求到达后分配给每个请求并且在请求离开时释放。另外,硬件故障会随时间发生,并且每次故障在特定修复时间之后修复。硬件故障会中断其托管的请求,从而导致请求无法完成其服务。动态情形中的目标是最小化拒绝率(1减去接受率)和未能完成其服务的接受请求的数目。
本发明可以提供混合整数线性规划(MILP)公式以解决静态情形中的多目标问题,方法是通过加权和方法将多目标问题转换为单目标问题。本发明人首先提供用于DC规模DDC的MILP公式,然后将其扩展到用于SDC和机架/POD规模DDC的MILP公式。本发明通过用目标函数中的变化权重求解MILP来提供近似的帕累托波前沿。
提供Radar,即用于分解式数据中心中的可靠资源分配的框架,其考虑静态情形和动态情形两者。本发明人提供一种用于静态情形的启发式算法,所述启发式算法可以以比MILP显著更低的复杂度解决问题。对于动态情形,提供两个启发式算法,其中一个应用于调度到达请求且当发生故障时应用另一个,以通过将中断的请求迁移到其它位置来恢复中断的请求。
本发明人还对性能分析进行广泛的仿真研究。数值结果表明,在理想弹性假设下,实际不完美的网络可能显著抵消由硬件分解带来的可靠性改进。然后,发明人还展现可以克服这种分解弱点的备份和/或基于迁移的恢复方法。
优选地,本发明可以允许多个请求使用一个组件,并且每个请求具有给定的资源需求,例如10GB的存储器需求,这与一些示例性实施例不同,其中用户需要特定数目的每个类型的资源组件,例如三个CPU芯片和两个存储器模块的要求。
另外,本发明人还考虑不同的分解规模,并且研究非弹性网络的影响。他们还考虑资源间通信的时延和带宽要求。这与假设弹性网络和应用中的DC规模分解的可能不现实的一些其它实例不同,在一些实例中,由于资源间通信的时延和带宽要求,DC规模DDC可能无法支持一些应用。
图2A说明SDC架构,其中计算和存储资源封装在服务器刀片中,每个服务器刀片包含不同的资源,并且板载电路提供不同资源之间的通信。这些服务器通过DC网络(DCN)互连。传统DCN通过有线链路互连并且以类似于图2A中所示的树状拓扑(例如,叶脊拓扑)组织。最近,还引入无线通信技术来降低重新配置的复杂性。
图2B示出机架规模DDC架构,其中每一刀片包含同质资源,而机架也包含异质资源。例如CPU的资源可以使用来自同一机架,而不是来自不同机架的不同资源,例如存储器。在DDC中,通过网络完成不同资源之间的通信。对于具有更大分解规模(例如POD或DC规模)的DDC,机架包含同质资源,并且不同类型的资源之间的使用不再限制在机架内,而是可以跨机架并限制在POD或DC内。
硬件分解具有可靠性优势,但也具有挑战。在SDC中,服务器刀片中的资源通过主板互连,主板的故障会影响刀片本身,但不会影响其它刀片。当在DDC中时,共享网络的故障直接影响所有连接的组件。而且,资源池化可能会成为一个挑战。图3示出四个工作负载W1-W4如何放置在两个服务器刀片(图3中的上部行)或两个分解式资源刀片(图3中的下部行)中。每个工作负载的CPU和存储器需求可以通过一个服务器刀片或两个分解式资源刀片来满足。因此,SDC中的每个刀片托管两个工作负载,但在DDC中托管四个工作负载。当一个刀片发生故障时,DDC中的所有工作负载中断,但SDC中仅两个工作负载中断。
为了解决由资源池化引起的问题,发明人可以彻底分解资源并且使每个硬件组件成为不同的节点。然而,这种方法将可靠性问题转移到网络并且增加节点数目和网络规模。需要一种通过硬件组织或软件调度的更实用方法。接下来,发明人通过新颖的资源分配方法提供详细的分析和可能的解决方案。
本发明人如下定义DDC中的资源分配问题。向发明人提供DDC作为由节点和链路组成的无向图,并且节点包含交换机和刀片(参见图2A和2B)。本发明人假设DDC采用光电路交换机,因为它们提供超低的和确定性的时延以及有保证的网络带宽。每个交换机由交换机延迟和可靠性表征。每一刀片包含一组组件,例如CPU组件(参见图2A和2B),并且每个组件由其资源类型、可用容量和可靠性表征。本发明人假设刀片中的不同组件独立地发生故障。每个刀片还与延迟和可靠性相关联,所述延迟和可靠性是接收数据与传输数据之间的延迟以及外围元件(例如接口和控制电路)的可靠性。每个链路由可用带宽、传播延迟和可靠性表征。
本发明人使用术语“请求”来表示可能形式的资源分配请求,包含对作业/任务、虚拟机和虚拟容器的请求。本发明人考虑关于请求一次性到达还是随机地到达的问题的静态情形和动态情形。每个请求以给定的服务时间和每种资源类型的资源需求到达。还提供请求的资源间流量需求和时延要求。
另外,本发明人假设请求对于一个资源可能仅使用一个刀片,并且分解规模确定它是否可以从不同刀片获得不同资源。以机架规模DDC为例,其中请求可以仅使用来自一个刀片的存储器,但是从一个机架内的多个刀片获得不同的资源。一些实例将DDC中的刀片视为单个节点,但不考虑刀片中的组件。发明人还考虑如何分配来自这些组件的资源,因为发明人需要考虑不同组件之间的故障独立性。然而,请求可以从DDC中的刀片中的多个组件获得一个资源。
优选地,调度器决策包含基于参与处理任务的不同处理模块102的资源可用性和其间的资源间流量需求而分配网络中的多于一个处理模块102以处理任务的决策。在静态情形和动态情形中,问题目标和方法是不同的。
优选地,任务调度器模块104被布置成在静态情形中分析多个资源分配请求,其中资源分配请求一次性成批到达和离开。例如,任务调度器模块104可以基于混合整数线性规划(MILP)方法分析多个资源分配请求。
在静态情形中,所有请求一次性到达。为了最大化接受率和每个请求的可靠性,本发明人提供MILP公式和可扩展启发式算法来解决问题。MILP公式将问题转化为精确的数学语言,并且可以使用商业求解器来求解以提供最优解。最优解可以进一步用于验证处理的效率。
另外,任务调度器模块104被布置成在动态情形中分析多个资源分配请求,其中资源分配请求在预定时间段内随机地且依序地到达和离开。
在动态情形中,请求随机地且依序地到达和离开。优选地,任务调度器模块104可以包括第一子模块,所述第一子模块被布置成基于不同条件调度在动态情形中到达的资源分配请求:如果在请求到达后有足够的资源可用,则接受资源分配请求;或拒绝资源分配请求,使得请求离开系统而不重新尝试。
例如,如果在到达后DCC 102中的可用资源足够,则接受请求,否则拒绝请求。本发明人假设没有等待空间,并且拒绝的请求被拒绝并离开系统而不重新尝试。一个目标是最小化拒绝率(或最大化接受率),所述拒绝率定义为在指定时间段期间拒绝的请求数目与总到达数的比率。
另外,任务调度器模块104包括第二子模块,所述第二子模块被布置成通过从DCC架构的拓扑中排除具有硬件故障的处理模块102并且重新分配用于处理所接受请求的资源,恢复由与分配用于处理任务的资源相关联的硬件故障中断的所接受请求。
例如,所接受请求可能由DCC 102中的硬件故障中断,从而未能完成其服务。因此,可能优选的是将未能完成服务的所接受请求的数目最小化。拒绝率不包含由硬件故障中断的所接受请求。本发明人提供一种Radar框架以实现两个目标。
假设请求(表示为i)到达,并且分别将请求i的到达和离开时间表示为和/>而且,假设在时间/>最后一次修某个复元件(表示为e)。假设随机变量Δt是元件e的故障间隔时间(TBF)。如通常使用,TBF是从元件修复元件到元件再次发生故障的时间。e在请求i的服务时间内不发生故障的概率(表示为/>)可以通过下式获得:
其中是元件e的可靠性,即e的TBF不短于t的概率。
本发明人将由表示的请求i的可靠性视为请求i在其服务时间期间没有遇到硬件故障的概率。这等于在其服务时间期间没有为其服务的元件发生故障的概率。假设不同元件之间的故障独立:
其中εi表示由请求i使用的元件集合。
本发明人首先介绍用于DC规模的DDC的MILP,稍后将其扩展到其它规模。表I提供正在使用的符号。
表I
符号列表
目标是最大化最小请求可靠性和接受率的加权和,公式为:
最大化:
表I中定义(3)中的决策变量。应注意,表中的一些决策变量不包含在目标函数中,而是包含在约束中。
刀片和组件分配约束
流量调度约束
可靠性相关的约束
/>
解释:
刀片和组件分配约束:约束(4)确保服务于请求的每个资源仅来自一个刀片。约束(5)和(6)确保请求i使用刀片,只要请求i使用由此刀片托管的组件。约束(7)确保所接受请求所需的资源量等于分配到所接受请求的资源量。约束(8)确保不违反组件容量限制。
流量调度约束:约束(9)确保不违反链路容量限制。约束(10)是用于在每个请求的每个资源对之间路由流量的流守恒约束。约束(11)确保流量无法穿过未经许可的链路。此约束用于一些链路用于如一些架构要求的专用通信的情况。约束(12)确保链路是双向的。约束(13)确保每个流量流可以仅使用一个方向,但是无法使用链路的两个方向,以避免浪费通信资源(例如,创建不必要的循环)。约束(14)-(16)确保如果连接到此交换机的任何链路承载流量,则资源对使用所述交换机。约束(17)确保不违反流量时延要求,其中左侧是流量时延,所述流量时延是传播、交换机和刀片延迟的总和。刀片延迟是应注意,如果源和目标共享同一刀片,则刀片时延等于零。约束(18)确保当刀片将r1和r2分配到请求时,请求中的两个资源共享刀片。
可靠性相关约束:约束(19)确保正确地计算每个所接受请求的可靠性。(19)右手侧上的最后一项是为了避免所拒绝请求的可靠性为1,这可能会扭曲输出信息。约束(20)确保最小可靠性(日志形式)不大于每个所接受请求的可靠性。约束(21)-(22)确保链路在承载请求的流量时由请求使用链路。约束(23)-(24)确保在交换机节点交换机所请求流量时由请求使用交换机节点。约束(25)-(26)确保在刀片向此请求提供资源时由请求使用刀片。约束(27)-(28)确保在组件将资源提供到此请求时由请求使用组件。
主要变量的数目和约束(11)的主要数目两者的复杂度通过O(|I|·|R|2·|N∪X|2)给出。
添加以下约束以将DC规模DDC扩展到刀片规模DDC。
/>
约束(29)确保每个所接受请求可以仅使用来自单个刀片的资源,并且约束(30)确保请求需要的所有资源共享一个刀片。约束(31)确保在SDC中,每个流量流不使用网络链路,因为它是在本地完成的。约束(32)-(33)确保整个请求不使用SDC中的链路或交换机。
此处,请求可能仅使用机架规模DDC中的单个机架(或POD,下同)的资源,但无法使用不同机架的资源。假设Γ是机架集合并且是指示刀片n是否在机架k中的二进制参数。如果请求i使用机架k中的刀片,则定义等于1的二进制变量/>否则为零。应添加以下约束以将DC规模DDC的MILP扩展到机架规模DDC。
约束(34)确保每个所接受请求可能仅使用来自单个机架的资源。约束(35)-(36)确保请求i使用机架,只要请求i使用机架中的刀片。
发明人设计指标来定量评估资源分配策略的性能,表示在选择硬件时的偏好。本发明人考虑不同的分解规模,其中SDC被视为DDC的特殊情况,即刀片规模DDC。
此处的策略是选择可行刀片,其中刀片索引的最高值定义为:
其中和/>是分别与刀片n相关联的可靠性和效率索引,并且ε∈[0,1]是加权系数。可靠性索引/>是刀片n在请求的服务时间期间不发生故障的概率,并且效率索引 其中/>是刀片n中的资源r的利用率。效率索引根据众所周知的最佳拟合(BF)装箱方案设置,所述BF装箱方案选择剩余容量最小的可用箱子。
由于机架规模DDC和POD规模DDC类似,因此本发明人接下来仅考虑机架规模DDC。机架规模DDC中的分配是选择机架,然后为每种类型的资源选择刀片,这涉及机架和刀片索引。
类似于(37),刀片索引也是效率索引和可靠性索引的加权和。效率索引是刀片的利用率。由于DDC刀片具有相同资源类型的多个组件,因此刀片的利用率由计算出,其中Lnc和Anc分别是在刀片n中的组件c的负载和可用容量。刀片的可靠性索引是/>其中/>是请求i使用的刀片n中的组件的集合。应注意,此处的可靠性索引仅考虑请求使用的组件,因为组件是独立的且不会相互干扰。总的来说,刀片索引/>是:
机架索引也是可靠性索引和效率索引的加权和。机架的可靠性索引是当与机架中的所选择刀片以及所需的交换机和链路一起分配时请求的可靠性。效率索引定义为机架中的|R|个所选择刀片的平均利用率。最后,选择具有最高机架索引的机架(或POD)。
如下描述用于将资源分配到请求的名为ARRIVAL-ALLOC的算法伪代码。它采用两个输入,即请求i和机架规模DDC图G。算法首先将R中的资源类型按竞争比降序排序,所述竞争比定义为所请求的资源量与每个资源类型r∈R的每组件容量的比率。此操作优先考虑密集型资源,例如,对于r=CPU,CPU密集型请求具有最大竞争比。如果组件具有不同容量,则竞争比的分母是平均组件容量。
随后,所述算法扫描机架以找到最佳,即具有最大机架索引的机架。第3行中的变量φbest是记录最佳解的全局变量。此变量具有自定义的数据结构,所述自定义的数据结构记录关于哪些组件、刀片、链路和交换机用于将资源提供到请求i的信息。当找到具有更高机架索引的新的解时,所述算法更新当前的最优解(第16-19行)。所述算法迭代直到检查所有机架,最后选择具有最高机架索引的机架(第21行)。
在候选机架中并且对于每个资源类型,算法通过调用名为FRAGMENTABLE-BIN-PAC(第8行)的过程过滤具有足够剩余容量的刀片。此过程解决从给定刀片中的组件分配资源的问题,并且在刀片对于主机请求可行时输出TRUE。然后,可行刀片按刀片索引(第12行)的降序排序,以优先考虑刀片索引高的那些刀片。接下来,算法调用过程BLADE-SELEC-TRAFFIC-SCHED以在此机架中找到解(第16行),即选择刀片并调度流量。
这对应于ARRIVAL-ALLOC中的过程FRAGMENTABLE-BIN-PAC。此过程基于解决物品可拆分的装箱问题的算法。此处,要打包的物品是资源需求Dir,并且箱子是刀片n中的组件。此过程如下操作。第一,将给定刀片中的组件按(在表I中定义的概率项)的降序排序,从而优先考虑高可靠组件。第二,尝试找出完美组件,即剩余容量恰好等于Dir的组件。如果存在完美组件(例如,图4中的请求3),则将其分配到请求并且终止过程。否则,逐个地检查组件。当候选组件的剩余容量大于需求(例如,图4中的请求1)时,分配来自此组件的资源。否则,将所有其剩余容量分配到请求并且使用后续组件实现剩余需求(例如,图4中的请求2)。
此部分对应于ARRIVAL-ALLOC中的过程BLADE-SELEC-TRAFFIC-SCHED,并且此处还描述名为“BLADE-SELEC-TRAFFIC-SCHED”的过程的伪代码。此过程的总体想法如下。在开始时,本发明人选择用于第一资源类型(r1st)的刀片。当选择用于第二资源类型(r2nd)的刀片时,本发明人还尝试调度流量(r1st,r2nd)。如果流量调度失败,则意味着此刀片不适合于r2nd,本发明人尝试下一刀片。类似地,当选择用于第三资源类型(r3rd)的刀片时,本发明人还需要调度流量(r1st,r3rd)和(r2nd,r3rd)。针对剩余资源类型中的每一个重复此过程。
过程采用输入p=|1,...,|R|来将当前资源类型r索引化,即R[p]是R中的第p个元素。应注意,输入R是先前已经排序的有序集合(参见ARRIVAL-ALLOC中的第12行)。所述过程从第一个资源类型开始以递归方式执行,即p=1。每当资源类型临时确定其主机时,过程通过递增p进入下一个资源类型(第10行)。终止条件是所述过程为最后一个资源类型找到可行刀片(第7到8行)。
对于由p索引化的当前资源类型r,所述过程扫描中的刀片以查找满足流量要求的第一个刀片(第4行)。此处,调用名为TRAFFIC-SCHED的另一过程来调度当前资源类型r与先前资源类型rpri=R[ppri],ppri=1,...,p-1之间的流量。如果流量调度成功,则过程将当前刀片ncur临时记录为r的主机(第6行),并且进入下一资源类型rnext=R[p+1](第10行)。随后,所述过程以递归方式调用算法本身(第11行)以找到rnext的可行刀片。如果下一资源类型无法找到满足流量要求的可行刀片,则它会放弃刀片ncur(第13行),然后尝试用于资源类型r的下一个刀片。
流量调度过程TRAFFIC-SCHED搜索用于每个资源对的路径,其操作如下。首先,它排除容量不足的链路。随后,它运行最短路径算法,每个链路的权重设置为 其中/>τm和τn分别是链路(m,n)的传播延迟以及端点m和n处的延迟。如果路径存在,则进一步检查时延是否满足要求,并且如果满足,则沿着此路径调度流量。
参考图5,通过实例示出过程,所述实例包含按CPU、存储器和GPU的顺序排序三种资源类型。如先前所描述,多个处理模块包含不同类型的资源的多个组件,并且包含多于一个资源类型的请求的单个任务可以由多个处理模块中的不同类型的资源的组件以分解方式处理。
所述过程从第一资源类型,即CPU开始,并且检查第一CPU刀片(C1)是否可行。由于它是第一资源类型,没有先前资源类型,所以不需要调度流量并且直接将C1记录为候选刀片(记录在φk中)。然后,它去往第二资源类型,即存储器,并且需要调度存储器与CPU之间的流量。然而,选择M1作为候选会导致流量调度失败,所以M1不可行,并且将M2记录为存储器的临时主机。当过程达到最后一个资源类型,即GPU时,过程在调度存储器与GPU之间的流量时无法找到可行的刀片。它返回到存储器刀片选择步骤并且丢弃M2,但尝试M3和M4。最后,选择C1、M4和G2,并且流量调度也完成。
本发明人首先分析ARRIVAL-ALLOC中提供的算法的算法时间复杂度。本发明人认为需要O(nlog n)对具有n个元素的列表进行排序,因为许多排序算法都具有这种复杂度。另外,本发明人假设每个刀片中的资源类型的数目和组件的数目恒定。因此,第4、8和12行分别花费时间O(1)、O(|Γ|·|Nkr|)和O(|Γ|·|Nkr|·log|Nkr|)。此处,|Nkr|是每个机架中每种资源类型的刀片数目。最耗时的执行是刀片选择过程,所述刀片选择过程是从机架中选择用于每个资源类型的一个刀片。由于刀片组合的总数目是|Nkr||R|,因此刀片选择过程的复杂度是⊙(|Nkr||R|)。因此,第16行花费时间⊙(|Γ|·|Nkr||R|)。总的来说,算法的时间复杂度是⊙(|Γ|·|Nkr|·log|Nkr|+|Γ|·|Nkr||R|)。它等于O(|Γ|·|Nkr||R|),因为|R|>1。因为|R|具有典型值3到4,因此复杂度极高。幸运的是,DDC架构基本上是机架规模的,其中基本项|Nkr|的值不大,典型值为十几。
此算法的空间复杂度是O(|R|)。额外空间主要用于以递归方式调用BLADE-SELEC-TRAFFIC-SCHED过程。
对于静态情形,本发明人如下引入SHUFFLE-AND-UPDATE过程。给定一组请求I,本发明人首先将I中请求的顺序随机化,然后根据顺序对将ARRIVAL-ALLOC算法应用于每个请求并且计算目标函数,记录为Fm。接下来,发明人设置一个整型参数,发明人将其称为epoch。然后,本发明人重复随机化并尝试找到更优解,即具有目标F1且F1>Fm的解。如果可以在重复随机尝试K次后可以找到更优解,使得K<epoch,则本发明人用F1更新最优解。本发明人将此过程称为SHUFFLE-AND-UPDATE优化过程的一个epoch。进一步重复上述优化过程,直到在任何epoch都找不到更优解。
对于动态情形,为了减少无法完成其服务的所接受请求的数目,本发明人设计一种迁移机制来恢复中断的请求。图8给出此过程的伪代码。所述过程首先从DDC图中排除故障的器件,然后对于每个中断的请求,基于残余图调用过程ARRIVAL-ALLOC,并且如果成功,则将资源重新分配给此请求。故障的器件在修复后可以服务于其它请求。
根据本发明的实施例的资源管理框架的实施方案需要DDC的操作系统(OS)的支持,例如LegoOS和GiantVM。LegoOS基于名为splitkernel的新OS模型,其中每个资源组件维护独立的管理器(或监视器)。LegoOS提供允许应用程序使用相同资源类型的多个组件的能力,这可以与组件分配过程相结合。另外,LegoOS提供容错机制,所述容错机制可以结合基于迁移的恢复算法来恢复中断的服务。GiantVM是可以创建跨越多个组件和机器(即,刀片)的VM的管理程序系统,其也可以用于工具Radar框架。
下文呈现用于验证DDC相对于SDC的性能的数值结果。考虑静态情形和动态情形两者。
由于MILP的高计算复杂度,因此MILP可以仅找到小尺寸问题的最优解。本发明人仅考虑一个POD,所述POD由一个脊交换机和3个机架组成,所述每个机架内包含一个叶交换机、每个机架具有3个刀片且每个刀片具有3个资源组件。考虑三种类型的资源:R=(CPU、存储器、加速器),其中每个组件容量为100单元。每个硬件元件的年龄是∪(102,104)个时间单位,其中∪(a,b)是均匀分布在区间(a,b)内的随机值。此后,本发明人不将单元添加到仿真时间测量,所述仿真时间测量理解为时间单元。假设所有请求在时间t=0处给出,并且每个请求的服务时间是∪(1,100)。考虑四个种类的请求:CPU密集型、存储器密集型、加速器密集型和随机型。如果请求i是r1密集型(r1∈R),即前三种种类的请求,则其需求设置为
对于随机请求,其需求是
本发明人考虑了四个测试案例,即S1-S4。在S1中,除了资源组件之外的所有硬件元件都是有弹性的,即其可靠性为1,并且本发明人假设请求没有时延和带宽要求。每个资源组件的可靠性服从韦布尔分布,其规模参数为ηe=106,形状参数为βe=∪(1,2)。在这种设置下,硬件平均TBF(MTBF)比请求服务时间长四到五个数量级。S2是在S1的基础上扩展而来的。和S1的不同,在S2中,每个刀片变得没有弹性,其可靠性也服从上述韦布尔分布。类似地,在S2的基础上,将每个交换机的可靠性也服从上述韦布尔分布,就得到了S3。最后,S4进一步基于S3考虑时延约束。本发明人如下设置时延相关参数。硬件延迟设置为:其中Lpro=5ns/m。对于每个机架内链路,d=2m,而对于每个机架间链路,d=U(10,30)。CPU与存储器之间的流量的时延要求是∪(500,900)ns;而其它的资源组件之间的时延要求为∪(1,100)μs。
本发明人使用商业求解器AMPL/Gurobi来求解MILP公式,并用JAVA编程语言来部署启发式算法。
本发明人首先使用MILP评估不同分解规模的性能。图6给出了S1-S4中,当业务请求数为30时,MILP求出的最小业务可靠性与接受率的结果。图中,“BS”、“RS”和“PS”分别对应于刀片规模、机架规模和POD规模DDC。本发明人使用虚线连接结果以近似帕累托前沿。每个近似帕累托前沿基于给定的偏好提供关于接受率和最小请求可靠性的一组最优解。它是通过求解MILP公式时,改变目标函数中加权因数的值来获得的结果。本发明人观察到,PS在S1和S2中表现最好,而在S3和S4中表现明显较差。这是因为,相比于RS和BS,PS具有更大的分解规模,从而具有更大的优化空间。然而,由于PS中的请求比BS和RS中的请求使用更多的网络元件,当交换机变得没有弹性,且同时考虑时延要求时,PS的性能会急剧下降。
本发明人还观察到,RS在S1中比BS表现得更好,而在S2-S4中,RS的性能比BS下降得更快。原因如下。RS具有比BS更高的灵活性和效率,因此RS在S1中优于BS。然而,RS中的服务可靠性受到网络的影响较大,因此当刀片和交换机没有弹性时,RS的性能急剧下降(S2-S3)。在S4中,RS和BS的近似帕累托前沿在(0.999955,0.73)处相交。因此,如果将可靠性阈值设置为高于0.999955(对应于相交点的左侧),则RS的接受率低于BS,反之则高于BS。这是因为RS中的请求比BS中的请求需要更多的交换机和刀片,因此它们在RS中的可实现可靠性可能不如BS中的高,并且如果可靠性阈值非常高,则RS中的更多请求将被拒绝。相反,当放宽阈值时,资源分解的好处显现出来,其中,RS大大避免了BS中出现的资源搁浅问题,使得RS可以实现比BS更高的接受率。总体而言,相交点的两侧上的RS和BS的性能差异再次表明,资源分解可以提高资源效率,而如果网络没有弹性,则益处将被抵消。
图7提供针对BS的S1和针对RS的S3中的Radar结果,并且为了进行比较,本发明人还示出帕累托前沿和其它10000个随机解。Radar的结果通过改变刀片索引和机架索引的大小获得(参见第IV.B节)。发明人观察到Radar的性能接近于近似的帕累托前沿并且优于所有随机解,表明Radar具有高效率。另外,Radar始终保持较高的接受率。例如,在RS-S3中,通过Radar获得的接受率始终大于0.8,这也表明其高效率。应注意,在图7中,本发明人旨在显示Radar和随机获得的所有结果,而不仅仅是最优解。有一些解具有相同的接受率,但Radar和随机获得的最小请求可靠性不同,例如在RS-S3中圈出的两个数据点。显然,具有这两个解,本发明人将不会选择较差的一个(两者中较低的一个)。本发明人仅旨在说明这种解并解释它们是如何获得的。这可以通过ARRIVAL-ALLOC算法的第12行进行解释,所述算法是按照刀片索引的降序对刀片进行排序的操作。增加刀片索引的权重值时,算法会优先考虑可靠性高的刀片。然而,改变刀片的顺序并不会改变总的资源容量,接受率也可能保持不变。
以上结果表明,不完美的网络将抵消硬件分解的益处。备份是提高可靠性性能的直观方法,并且图8给出了将S3中的每个刀片和交换机添加备份时所得到的结果。本发明人从图8中观察到,所得结果与S1非常接近。这是因为备份显著提高交换机和刀片的可靠性,使性能非常接近交换机和刀片具有弹性时的性能。然而,备份不是一种有效的方法,它会导致成本增加。接下来,动态情形中的结果表明,可靠性可以在没有备份的情况下提高。在这个动态清醒中,本发明人考虑一个POD,该POD包含10个脊交换机和9个机架。每个机架有2个叶交换机、48个刀片。每个刀片含有3个资源组件。硬件容量和请求资源需求等其它设置与静态情形中的设置相同。此处,本发明人不考虑时延和带宽限制。本发明人仿真动态系统,包含请求到达、请求离开、硬件(组件、刀片和交换机)故障和硬件修复等事件类型。请求的到达服从到达率为1.5的泊松过程,而请求的服务时间服从均值为1000的指数分布。每个器件的TBF服从与静态清醒中相同参数的韦布尔分布。器件所需的修复时间服从均值为1的指数分布。该设置保证了每个硬件的可用性在99.999%到99.9999%之间,与现实世界DC中的硬件可用性保持一致。在仿真中,本发明人假设在调度器决定将服务迁移到何处之后,立即恢复中断的请求。仿真的事件总周期为106。
图9给出具有不同权重系数的仿真结果。前两个子图提供未应用迁移时的结果。本发明人观察到PS和RS的拒绝率显著低于BS的拒绝率,这得益于硬件分解带来的高效率。然而,第二个子图显示,对在所有已经接受的请求中,受到硬件故障影响而无法完成服务的请求数目这一参数而言,PS的值最高,其次是RS,最后是BS。结果进一步表明,易受损网络可能会抵消分解益处。最后两个子图提供应用迁移时的结果。本发明人观察到PS和RS在拒绝率和无法完成服务的所接受请求的数目方面都优于BS。结果表明,Radar框架可以克服在网络不具有弹性时产生的挑战。应注意,在静态情形中,本发明人已经证明PS的性能受到时延的显著影响。因此,在考虑时延时,仅RS可以克服由不完整网络引起的挑战。
本发明人研究了DDC中的服务可靠性,考虑了网络影响和不同的分解规模。考虑到可靠性和利用率两个方面,本发明人为DDC中的资源分配设计了MILP公式和Rada r框架。本发明人通过仿真发现,不完美的网络将显著抵消由硬件分解带来的资源效率和服务可靠性的提高。结果还表明,硬件备份有助于克服这种抵消,但可能导致成本的增加。本发明人设计的Rada r框架将受影响的业务迁移至其它区域,从而保证了业务可靠性。仿真结果表明,机架规模的分解架构是最佳选择,因为更大的分解规模面临时延挑战。
DDC是一个相对较新的研究领域,带来了许多研究机会。在下文中,本发明人考虑这项工作的局限性,列举了潜在的未来研究方向。第一,本发明人假设请求所需的需求总是从多个资源组件的相加。在某些应用程序中可能不是这样,例如,任务/进程应该在单个CPU组件上执行。第二,本发明人考虑的服务请求类似于VM或任务,它需要多个不同的资源来形成一个VM或完成一个任务。然而,存在一些应用程序,例如并行计算,其中需要多个VM共同完成单个作业的多个任务。在本公开中未考虑此类应用程序。第三,如所论述,本发明人假设没有等待空间,并且在没有重新分配尝试的情况下拒绝拒绝的请求。最后,响应于“云、雾、边缘、无服务器和量子计算的AI趋势”以提高DC中的自动化,本发明人可以研究如何将强化学习等AI工具与DDC中的资源分配整合。
出于说明和描述的目的,已提供本发明的前述描述。其不希望是详尽的或将本发明限于所公开的精确形式。许多修改以及变化对于所属领域的技术人员来说将是显而易见的。
选择和描述实施例是为了最好地解释本发明的原理及其实际应用,由此使得所属领域的其他技术人员能够理解本发明的各种实施例以及具有适合于所预期的特定用途的各种修改。
Claims (20)
1.一种服务器,其特征在于,包括:
多个处理模块,每个处理模块具有用于处理由所述服务器处理的任务的预定资源,其中所述多个处理模块通过通信链路互连,所述通信链路形成具有分解式数据中心(DCC)架构的处理模块网络;
DCC硬件监测器,其被布置成在所述服务器的操作期间检测与所述处理模块网络相关联的硬件信息;以及
任务调度器模块,其被布置成分析与每个相应任务相关联的资源分配请求和所述硬件信息,并且促进基于所述分析选择的一个或多个所述处理模块对所述任务的处理。
2.根据权利要求1所述的服务器,其特征在于,所述硬件信息包含所述DCC架构的拓扑、所述多个处理模块中的每一个的负载,以及与所述处理模块网络的故障和/或修复相关的信息。
3.根据权利要求2所述的服务器,其特征在于,所述任务调度器模块被布置成向所述处理模块网络提供调度器决策以促进所述任务的处理,其中所述调度器决策包含基于参与处理所述任务的不同处理模块的资源可用性和其间的资源间流量需求而分配所述网络中的多于一个处理模块以处理所述任务的决策。
4.根据权利要求3所述的服务器,其特征在于,所述任务调度器模块被布置成在静态情形中分析多个资源分配请求,其中所述资源分配请求一次性成批到达和离开。
5.根据权利要求4所述的服务器,其特征在于,所述任务调度器模块被布置成基于混合整数线性规划(MILP)方法分析所述多个资源分配请求。
6.根据权利要求5所述的服务器,其特征在于,所述混合整数线性规划(MILP)方法包含用目标函数中的变化权重求解MILP问题,所述目标函数与具有加权和的单目标问题相关联,其中所述单目标问题从与所述静态情形中的多个资源分配请求相关联的多目标问题转换。
7.根据权利要求3所述的服务器,其特征在于,所述任务调度器模块被布置成在动态情形中分析多个资源分配请求,其中所述资源分配请求在预定时间段内随机地且依序地到达和离开。
8.根据权利要求7所述的服务器,其特征在于,所述任务调度器模块包括第一子模块,所述第一子模块被布置成基于以下条件调度在所述动态情形中到达的所述资源分配请求:
如果在所述请求到达后有足够的资源可用,则接受所述资源分配请求;或
拒绝所述资源分配请求,使得所述请求离开所述系统而不重新尝试;
其中所述资源由单个处理模块或涉及资源间流量的两个或更多个处理模块的群组提供。
9.根据权利要求8所述的服务器,其特征在于,所述任务调度器模块包括第二子模块,所述第二子模块被布置成通过从所述DCC架构的所述拓扑中排除具有硬件故障的所述处理模块并且重新分配用于处理所接受请求的资源,恢复由与分配用于处理所述任务的资源相关联的硬件故障中断的所述所接受请求。
10.根据权利要求1所述的服务器,其特征在于,所述多个处理模块中的每一个包含不同类型的资源的多个组件,并且其中包含多于一个资源类型的请求的单个任务被布置成由所述多个处理模块中的不同类型的资源的组件以分解方式处理。
11.一种用于服务器中的资源调度方法,其特征在于,包括以下步骤:
在所述服务器的操作期间检测与处理模块网络相关联的硬件信息,其中具有分解式数据中心(DCC)架构的所述处理模块网络由通过通信链路互连的多个处理模块形成,并且所述多个处理模块中的每一个具有预定资源以用于处理由所述服务器处理的任务;
分析与每个相应任务相关联的资源分配请求和所述硬件信息;以及
促进基于所述分析选择的一个或多个所述处理模块对所述任务的处理。
12.根据权利要求11所述的资源调度方法,其特征在于,所述硬件信息包含所述DCC架构的拓扑、所述多个处理模块中的每一个的负载,以及与所述处理模块网络的故障和/或修复相关的信息。
13.根据权利要求12所述的资源调度方法,其特征在于,促进基于所述分析选择的一个或多个所述处理模块对所述任务的所述处理的所述步骤包括向所述处理模块网络提供调度器决策的步骤,其中所述调度器决策包含基于参与处理所述任务的不同处理模块的资源可用性和其间的资源间流量需求而分配所述网络中的多于一个处理模块以处理所述任务的决策。
14.根据权利要求13所述的资源调度方法,其特征在于,分析与每个相应任务相关联的所述资源分配请求和所述硬件信息的所述步骤包括在静态情形中分析多个资源分配请求的步骤,其中所述资源分配请求一次性成批到达和离开。
15.根据权利要求14所述的资源调度方法,其特征在于,基于混合整数线性规划(MILP)方法分析所述多个资源分配请求。
16.根据权利要求15所述的资源调度方法,其特征在于,所述混合整数线性规划(MILP)方法包含用目标函数中的变化权重求解MILP问题,所述目标函数与具有加权和的单目标问题相关联,其中所述单目标问题从与所述静态情形中的多个资源分配请求相关联的多目标问题转换。
17.根据权利要求13所述的资源调度方法,其特征在于,分析与每个相应任务相关联的所述资源分配请求和所述硬件信息的所述步骤包括在动态情形中分析多个资源分配请求的步骤,其中所述资源分配请求在预定时间段内随机地且依序地到达和离开。
18.根据权利要求17所述的资源调度方法,其特征在于,分析与每个相应任务相关联的所述资源分配请求和所述硬件信息的所述步骤包括基于以下条件调度在所述动态情形中到达的所述资源分配请求的步骤:
如果在所述请求到达后有足够的资源可用,则接受所述资源分配请求;或
拒绝所述资源分配请求,使得所述请求离开所述系统而不重新尝试;
其中所述资源由单个处理模块或涉及资源间流量的两个或更多个处理模块的群组提供。
19.根据权利要求18所述的资源调度方法,其特征在于,分析与每个相应任务相关联的所述资源分配请求和所述硬件信息的所述步骤包括以下步骤:通过从所述DCC架构的所述拓扑中排除具有硬件故障的所述处理模块并且重新分配用于处理所接受请求的资源,恢复由与分配用于处理所述任务的资源相关联的硬件故障中断的所述所接受请求。
20.根据权利要求11所述的资源调度方法,其特征在于,所述多个处理模块中的每一个包含不同类型的资源的多个组件,并且其中包含多于一个资源类型的请求的单个任务被布置成由所述多个处理模块中的不同类型的资源的组件以分解方式处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/972,570 | 2022-10-24 | ||
US17/972,570 US20240192987A1 (en) | 2022-10-24 | 2022-10-24 | Server and a resource scheduling method for use in a server |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117931386A true CN117931386A (zh) | 2024-04-26 |
Family
ID=90749527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211679631.1A Pending CN117931386A (zh) | 2022-10-24 | 2022-12-21 | 服务器以及用于服务器中的资源调度方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240192987A1 (zh) |
CN (1) | CN117931386A (zh) |
-
2022
- 2022-10-24 US US17/972,570 patent/US20240192987A1/en active Pending
- 2022-12-21 CN CN202211679631.1A patent/CN117931386A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240192987A1 (en) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10924535B2 (en) | Resource load balancing control method and cluster scheduler | |
Le et al. | Allox: compute allocation in hybrid clusters | |
US10540588B2 (en) | Deep neural network processing on hardware accelerators with stacked memory | |
US10452995B2 (en) | Machine learning classification on hardware accelerators with stacked memory | |
CN108243044B (zh) | 业务部署的方法与装置 | |
US20160379686A1 (en) | Server systems with hardware accelerators including stacked memory | |
CN105900063A (zh) | 多处理环境中的调度方法和装置 | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN108965014A (zh) | QoS感知的服务链备份方法及系统 | |
CN114356587B (zh) | 算力任务跨区域调度方法、系统及设备 | |
Zhao et al. | A resource minimizing scheduling algorithm with ensuring the deadline and reliability in heterogeneous systems | |
CN110383245A (zh) | 具有动态反馈的安全智能联网架构 | |
CN111930493A (zh) | 集群中NodeManager状态管理方法、装置及计算设备 | |
AlOrbani et al. | Load balancing and resource allocation in smart cities using reinforcement learning | |
Rajasekaran et al. | {CASSINI}:{Network-Aware} Job Scheduling in Machine Learning Clusters | |
Lakshmanan et al. | Placement of replicated tasks for distributed stream processing systems | |
CN117931386A (zh) | 服务器以及用于服务器中的资源调度方法 | |
Semmoud et al. | A Distributed Fault Tolerant Algorithm for Load Balancing in Cloud Computing Environments | |
Guo et al. | Radar: Reliable resource scheduling for composable/disaggregated data centers | |
Islam et al. | FaCS: Toward a fault-tolerant cloud scheduler leveraging long short-term memory network | |
Huang et al. | Reliable redundant services placement in federated micro-clouds | |
Entezari-Maleki et al. | Availability modeling of grid computing environments using SANs | |
Fomperosa et al. | Task scheduler for heterogeneous data centres based on deep reinforcement learning | |
Stavrinides et al. | Resource allocation and scheduling of linear workflow applications with ageing priorities and transient failures | |
Cao et al. | Performance optimization of budget-constrained mapreduce workflows in multi-clouds |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |