CN112261132A - 数据中心机群中的处理分配 - Google Patents

数据中心机群中的处理分配 Download PDF

Info

Publication number
CN112261132A
CN112261132A CN202011132249.XA CN202011132249A CN112261132A CN 112261132 A CN112261132 A CN 112261132A CN 202011132249 A CN202011132249 A CN 202011132249A CN 112261132 A CN112261132 A CN 112261132A
Authority
CN
China
Prior art keywords
processing device
task
bandwidth
group
available
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
Application number
CN202011132249.XA
Other languages
English (en)
Other versions
CN112261132B (zh
Inventor
乌曼·苏热施巴罕·帕特尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN112261132A publication Critical patent/CN112261132A/zh
Application granted granted Critical
Publication of CN112261132B publication Critical patent/CN112261132B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/828Allocation of resources per group of connections, e.g. per group of users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/74Admission control; Resource allocation measures in reaction to resource unavailability
    • H04L47/745Reaction in network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/788Autonomous allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Power Sources (AREA)

Abstract

本公开涉及数据中心机群中的处理分配。一种用于在数据中心的处理设备之间分配任务的方法和系统。该方法可以包括接收将任务分配给一个或多个处理设备的请求,该请求指示用于执行任务的所需带宽,连接到主机服务器的预定义处理设备组的列表以及指示其中所包括的处理设备组的可用性,用于对每个可用处理设备组指配任务和可用带宽;将任务分配给可用带宽大于或等于执行任务所需带宽的处理设备组,并且更新列表以指示向其指配任务的处理设备组和共享至少一个处理设备的其他处理设备组的每一个不可用。可以将任务指配给具有所需最低功率量的可用处理设备组。

Description

数据中心机群中的处理分配
技术领域
本公开涉及数据中心机群中的处理分配。
背景技术
数据中心通常包含服务器机群(fleet),服务器机群具有各种处理设备,诸如连接到服务器的图形处理单元(GPU)和加速器。可以将处理设备分配给各种任务,诸如高性能计算,云游戏,虚拟机,视频编码,基础架构即服务部署等。给定任务的性能可能涉及在多个处理设备处进行处理,每个处理设备都连接到服务器。除了服务器能够用作主机并与处理设备通信之外,处理设备还可以能够在彼此之间进行对等通信,即,无需通过服务器中继通信。
数据中心服务器机群可以包含数百个甚至数千个服务器,这些服务器具有连接到它们的不同数量的GPU和加速器。这样一来,服务器机群的带宽和功率需求就可能很大。因此,有必要仔细地管理服务器机群的带宽和功率需求。
发明内容
本公开提供了用于数据中心服务器机群的功率管理、同时确保为指配服务器机群的所有任务提供足够的带宽的方法和系统,。为了提供这些益处,可以获得与连接到服务器机群的每个服务器的处理设备有关的信息,并且可以存储和访问该信息以便确定将任务指配给一个或多个处理设备中的哪个。处理设备的候选组可以是非详尽列表。总之,所获得的信息用于缩小所有接收到的任务的候选者列表,进一步缩小用于任何一个给定任务的候选者列表,并从候选者当中进一步选择单个组来执行任务。获得的信息可以定期更新以反映服务器机群属性的变化。所获得的信息在指配任务、完成任务或这两者时也可以定期更新。
本公开的一个方面针对一种方法,包括:由一个或多个处理器接收将第一任务分配给多个处理设备中的一个或多个的第一请求,每个处理设备连接到对应主机服务器,至少一些处理设备被配置为经由对等连接彼此通信,第一请求指示执行第一任务的所需带宽;由一个或多个处理器访问预定义处理设备组的一个或多个列表,每个处理设备组包括连接到公共对应主机服务器的一个或多个处理设备,每个列表指示相应服务器的处理设备组针对分配任务的可用性,并进一步指示每个可用处理设备组的可用带宽;由一个或多个处理器将第一任务指配给第一处理设备组,第一处理设备组的可用带宽大于或等于执行第一任务所需的带宽;以及由一个或多个处理器更新包括第一处理设备组的列表,以指示第一处理设备组和与第一处理设备组共享至少一个处理设备的任何其他处理设备组的每一个都不可用。
在一些示例中,更新列表可以包括指示第一处理设备组被分配,并且与第一处理设备组共享至少一个处理设备的任何其他处理设备组不可用。
在一些示例中,该方法可以进一步包括由一个或多个处理器接收将第二任务分配给多个处理设备中的一个或多个的第二请求,第二请求指示用于执行第二任务的所需带宽;由一个或多个处理器访问包括所更新的列表的一个或多个列表;由一个或多个处理器将第二任务指配给具有大于或等于执行第二任务的所需带宽的可用带宽的第二处理设备组,其中,第一处理设备组和第二处理设备组不共享任何处理设备;以及由一个或多个处理器重新更新所更新的列表,以指示第二处理设备组和与第二处理设备组共享至少一个处理设备的任何其他处理设备组的每一个都不可用。
在一些示例中,该方法可以进一步包括由一个或多个处理器接收完成第一任务的指示;以及由一个或多个处理器更新包括第一处理设备组的列表以指示第一处理设备组可用,以及与第一处理设备组共享至少一个处理设备并且不与另一分配的处理设备组共享处理设备的任何其他处理设备组可用。
在一些示例中,更新列表可以包括更新用于与第一处理设备组共享至少一个总线连接的一个或多个处理设备组的可用带宽。对于针对其更新了可用带宽的给定处理设备组,所更新的可用带宽可以为更新之前的可用带宽与执行第一任务的所需带宽之间的差;或者在执行第一任务时测量的可用带宽的量。
在一些示例中,可以包括第一处理设备组的列表针对每个可用处理设备组,进一步指示用于将第一任务分配给可用处理设备组所需的附加功率量,以及该方法可以进一步包括将具有所需要的最低功率量的可用处理组指定为第一处理设备组。更新包括第一处理设备组的列表可以包括更新用于与第一处理设备组共享至少一个硬件组件或机械组件的一个或多个处理设备组所需要的附加功率量。对于针为其更新了所需要的附加功率量的给定处理设备组,可以基于用于所共享的至少一个硬件组件或机械组件的预定功率需求来确定所更新的所需要的附加功率量。
在一些示例中,第一请求可以指示用于执行第一任务的所需主机服务器带宽和所需对等带宽中的每一个。包括第一处理设备组的列表可以指示用于每个可用处理设备组的可用主机服务器带宽和可用对等带宽中的每一个。将第一任务指配给第一处理设备组可以进一步基于第一处理组的可用主机服务器带宽大于或等于用于执行第一任务的所需主机服务器带宽;以及第一处理组的可用对等带宽大于或等于用于执行第一任务的所需对等带宽。
本公开的另一方面针对一种方法,该方法包括由一个或多个处理器接收将任务分配给多个处理设备中的一个或多个的请求,每个处理设备连接至对应主机服务器,至少一些处理设备被配置为经由对等连接彼此通信,该请求指示用于执行任务所需的带宽,由一个或多个处理器接收用于多个处理设备组的信息,每个处理设备组包括连接到公共对应主机服务器的一个或多个处理设备,该信息指示对每个给定处理设备组,该给定处理设备组的可用带宽以及激活该给定处理设备组所需的附加功率量,由多个处理器之一从具有大于或等于用于执行任务所需的带宽的可用带宽的处理设备组的子集中选择具有用于指配任务所需要的最低的附加功率量的处理设备组,并且由一个或多个处理器发送将任务指配给所选处理设备组的请求。
在一些示例中,该方法可以进一步包括基于将任务指配给所选择的处理设备组来更新用于多个处理设备组的信息。更新信息可以包括对多个处理设备组中的每个未选择的组,更新用于激活未选择的处理设备组所需要的附加功率量。
在一些示例中,该请求可以进一步指示组大小参数,该信息可以针对每个给定处理设备组指示给定处理设备组的组大小,以及可以从具有大于或等于用于执行任务所需的带宽的可用带宽并且具有在组大小参数内的组大小的处理设备组的子集中选择具有用于指配任务所需要的最低附加功率量的处理设备组。给定处理设备组的组大小可以指示给定处理设备组中包括的加速器、图形处理单元或两者的总数。
在一些示例中,将任务指配给所选择的处理设备组的请求可以包括由一个或多个处理器向所选择的处理设备组的主机服务器发送用于启动任务的指令。
本公开的另一方面针对一种方法,包括由服务器的一个或多个处理器存储关于与服务器连接并由其控制的多个处理设备的信息,其中,多个处理设备中的至少一些被配置为经由对等连接彼此通信,其中,所存储的信息包括多个处理设备的子组的标识,每个所标识的子组在所存储的信息中与相应的可用性指示、相应的可用带宽指示和相应的激活所需功率指示相关联,由服务器的一个或多个处理器接收将任务指配给指定子组的请求,由服务器的一个或多个处理器将任务指配指定子组,并且响应于将任务指配给指定的子组,由服务器的一个或多个处理器更新所存储的信息以指示可用性、可用带宽和用于激活用于多个处理设备中的至少一些所需的功率的变化。
该方法可以进一步包括由服务器的一个或多个处理器从请求节点接收对所存储的信息的请求;以及由服务器的一个或多个处理器响应于该请求,将所存储的信息发送给请求节点。可以从请求节点接收指配任务的请求。
在一些示例中,该方法可以进一步包括收集关于多个处理设备的信息,其中,收集关于多个处理设备的子组的非穷举列表的信息,其中,至少部分地基于包括在排除的子组中的处理设备的数量,从非穷举列表中排除子组。存储关于多个处理设备的信息可能涉及存储编译信息。子组的非穷尽列表包括处理设备的每一数量达到预定最大数量的最大子组数量,以及该方法可以进一步包括:对预定最大数量内的每个处理设备子组,确定连接该子组的处理设备的链路数,并且对达到预定最大数量的处理设备的每一数量,最多选择具有最少链路数的最大子组数量。
本公开的又一方面针对一种系统,该系统包括数据中心,该数据中心包括多个主机服务器。每个主机服务器可以连接到单独的处理设备组。至少一些处理设备可以被配置为经由对等连接彼此通信。每个主机服务器包括标识多个处理设备的子组的分组数据,每个标识的子组在分组数据中与相应的可用性指示、相应的可用带宽指示和激活所需的相应的功率指示相关联。该系统可以进一步包括用于存储指令的存储器。该系统可以进一步包括耦合到存储器并被配置为执行所存储的指令的一个或多个处理器。
执行指令可以涉及执行在本文的实施例的任何一个或组合中描述的任一方法。
附图说明
图1是根据本公开的方面的示例性数据中心的框图。
图2是根据本公开的方面的示例性服务器的框图。
图3是表示根据本公开的方面的示例性任务分配例程的流程图。
图4-6是根据本公开的方面的图3的任务分配例程的示例性子例程的流程图。
图7是根据本公开的方面的示例性信息收集和存储例程的流程图。
具体实施方式
概述
本公开的技术总体上涉及在处理设备的网络中有效地分配任务,以便优化用于执行任务的网络的功率需求。
为了管理服务器机群的带宽和功率需求,每个主机可以存储分组表,该分组表列出了连接到主机的不同处理设备组。分组表可以包括与处理设备组的各种属性有关的信息,包括但不限于:该组中包括的处理设备的数量(组大小);分组处理设备(分组设备)的ID号;将该组的处理设备连接到主机所需的总链路数(到主机的链路);经由对等连接使处理设备彼此连接所需的总链路数(P2P链路);将处理设备连接到主机以及经由对等连接彼此连接所需的总链路数(总链路);主机与组中的处理设备之间通信的可用带宽(主机到设备带宽);经由对等连接在处理设备之间通信的可用带宽(P2P带宽);激活该组所需的功率量(用于激活的功率);以及该组的当前状态或可用性(状态)。
在一些实施方式中,系统可以诸如从一个或多个用户或应用接收用于分配的任务。每个所接收的任务可以指定带宽需求,诸如主机到处理设备带宽、对等带宽或两者。
在一些实施方式中,任务分配可以涉及确定哪些组具有满足或超过任务指定的所需带宽的可用带宽,然后从那些组当中选择具有激活该组所需的最低功率量的组。就此而言,最小化在分配给定到来任务中所消耗的功率,同时为有效地完成任务提供了足够的处理资源和通信带宽。
在一些实施方式中,每个所接收的任务可以进一步指定应在其上分配任务的处理设备组大小,诸如处理设备的数量或处理设备的最小数量。在此类实施方式中,任务分配可能涉及确定哪些组具有任务需求内的组大小,并且从具有指定组大小的那些组当中进行选择。
除了任务分配例程和过程之外,系统还可以执行分组表管理过程。分组表管理过程可以包括初始地构造和填充分组表。这可以由服务器机群的每个主机针对其所连接的对应处理设备来执行。可以使用图遍历算法来标识处理设备之间的链路,可以基于链路标识组,并且可以选择数量有限的组来填充分组表,以便在分组表中最小化用于每一组的链路数。如果处理设备的网络是树形网络,则可以使用树形遍历算法。对于点对点拓扑,诸如外围组件高速互连(PCIe),可以使用广度优先搜索算法。
分组表管理可以进一步涉及随着任务被分配给该主机的处理设备而更新主机的分组表。更新分组表可以涉及指示当任务被分配给处理设备时处理设备的不可用,或者指示当任务被分配给那些组的处理设备时那些组的不可用。类似地,可以在完成指配的任务之后更新处理设备或组以指示可用性。更新分组表可以进一步涉及指示随着任务被分配给网络的处理设备而列出的每个组的剩余可用带宽。例如,如果两个组共享网络中的链路,则将任务分配给一个组可能会导致共享链路上可用于另一组的带宽减少。更新分组表可以进一步涉及指示激活网络的其他组所需的更新功率。例如,如果两个组共享硬件组件或机械组件,则激活一个组可能会降低激活第二组的功率需求,因为硬件或机械组件已经被通电,并且可能已经由于第一组的激活而正在运行。
上述实施方式可以降低用于在处理节点——特别是对于大型服务器机群,诸如数据中心中包括的那些服务器机群——当中指配任务的成本。降低的成本可以包括下述中的任何一个或组合:通过仅选择所需的处理设备而降低的处理功率、通过使用尽可能少的功率来激活数据中心的硬件和机械组件以完成任务而降低的功耗、以及通过避免将任务指配给资源或带宽不足的组来完成所指配的任务而降低的时间。
示例性系统
图1示出了包括数据中心服务器机群110的示例性系统100。在服务器机群110中可以包括多个服务器机架120。每个服务器机架120可以进一步包括多个服务器托盘125,并且每个服务器托盘125可以包括相应的服务器130。本文结合图2更详细地描述了示例性服务器130。
数据中心服务器机群可以实施多种架构和技术中的任何一种,包括但不限于直接连接存储(DAS)、网络连接存储(NAS)、存储区域网络(SAN)、光纤信道(FC)、以太网光纤信道(FCoE)、混合体系结构网络等。数据中心除了服务器130的处理和存储设备之外还可以包括许多其他设备,诸如电缆、路由器等。此外,在一些示例中,数据中心可以是虚拟化环境。
系统中包括的每个服务器130可以充当多个处理设备P1-P8的主机,诸如一个或多个图形处理单元(GPU)、一个或多个加速器等。处于说明的目的,一般地仅示出处理设备P1,并且未指定哪个设备是GPU,哪个设备是加速器等等。处理装置P1-P8经由多个交换机S1-S6连接到服务器130或彼此连接。可以根据PCIe拓扑来布置处理设备和交换机,由此,交换机可以是PCIe交换机。在替代方案中,可以利用其他树状总线拓扑。服务器机群110可以包括数百个——甚至数千个——服务器,每个服务器具有通过诸如PCIe等的总线拓扑连接到其上的数量变化的处理设备。
在一些示例中,服务器和处理设备的拓扑可以是树形拓扑,由此,每个处理设备通过一系列的一个或多个交换机连接到服务器。在其他示例中,拓扑可以包括附加总线链路,使得给定处理设备通过一个以上的一系列交换机连接到服务器。例如,在图1的示例中,每个处理设备P1、P2、P4、P5、P6、P7和P8分别通过一系列的交换机连接到服务器130(P1到S1;P2到S2、S1;P4到S4、S3、S1;P5到S3、S1;P6到S5;P7到S6、S5;以及P8到S6、S5),并且处理设备P3通过多个系列的交换机(通过S2、S1;或通过S4、S3、S1)连接到服务器。
图2是示例性服务器200——诸如图1中所示的服务器130——的框图。服务器200可以包括处理器210、存储器220和服务器中通常存在的其他组件。
处理器210可以是公知的处理器或其他不太公知类型的处理器。可替代地,处理器210可以是专用控制器,诸如ASIC。
存储器220可以存储可由处理器210访问的信息,包括可以由处理器210检索、操纵或存储的数据230。存储器220还可以包括可以由处理器210执行的指令240。存储器220可以是能够存储可由处理器210访问的信息的一种类型的非暂时性计算机可读介质,诸如硬盘驱动器、固态驱动器、磁带驱动器、光学存储器、存储卡、ROM、RAM、DVD、CD-ROM、能写入和只读存储器。
数据230可以由处理器210根据指令240检索、存储或修改。例如,尽管系统和方法不受特定数据结构的限制,但是数据230可以以被存储在计算机寄存器中、存储在数据库中、作为具有多个不同字段和记录的结构、存储在文档或缓冲区中。数据230还可以以计算机可读格式来格式化,诸如但不限于二进制值、ASCII或Unicode。此外,数据230可以包括足以标识相关信息的信息,诸如数字、描述性文本、专有代码、指针、对存储在其他存储器中的数据的引用,包括其他网络位置,或者由函数使用来计算相关数据的信息。
指令240可以是由处理器210直接执行的指令集——诸如机器代码,或间接执行的指令集——诸如脚本。就此而言,术语“指令”、“步骤”和“程序”在本文中可互换使用。指令240可以以目标代码格式存储,以供处理器210直接处理,或者以其他类型的计算机语言存储,包括按需解释或预先编译的脚本或独立源代码模块的集合。
尽管图2在功能上将处理器210和存储器220示为在同一块内,但是处理器210和存储器220实际上可以包括可以或可以不存储在同一物理壳体内的多个处理器和存储器。例如,一些数据230和指令240可以被存储在可移动CD-ROM上,而其他数据230和指令240可以被存储在只读计算机芯片内。一些或所有指令和数据可以被存储在物理上远离处理器210但仍可被处理器210访问的位置中。类似地,处理器210实际上可以包括处理器的集合,该处理器集合可以并行地或可以不并行地操作。
服务器200除了处理器和存储设备之外还可以包括多个其他设备,诸如通信设备250,以使得能够在计算设备——诸如电缆、路由器等——之间进行输入和输出。通信设备250可以有助于服务器200和与数据中心通信的用户设备或其他远程设备之间的通信,并且可以能够向和从诸如调制解调器(例如,拨号、电缆或光纤)和无线接口的其他计算机传送数据。例如,数据中心的服务器200以及其他服务器和处理器可以经由网络连接,诸如通过因特网、万维网、内联网、虚拟专用网、广域网、局域网、使用一个或多个公司专有的通信协议的专用网、以太网、WiFi(例如,702.71、702.71b、g、n或其他此类标准)以及RPC、HTTP和前述的各种组合来接收通信。
每个计算设备的存储器220可以存储可由一个或多个处理器210访问的信息,包括在计算设备200处接收或由计算设备200生成的数据230,以及可以由一个或多个处理器210执行的指令240。
数据230可以包括分组表232。分组表232可以列出多个处理设备组,并且可以进一步指示处理设备的各种属性。出于说明的目的,表1中示出了用于图1的系统100中包括的处理设备组的示例性分组表。
表1:
Figure BDA0002735528170000121
在表1的示例中,分组表包括组大小为1的7个处理设备组,组大小为2的7个处理设备组以及组大小为3的7个处理设备组。每个组的组大小对应于该组中包括的处理设备的总数。
在一些示例中,分组表中包括的组可以不是所有组的穷尽列表。例如,对每个给定组大小列出的组的数量可能受预定值限制。预定值可以是存储在存储器中并用于控制分组表232的填充的分组表参数234之一。例如,图1的系统100的服务器130连接到8个处理设备P1至P8,但是服务器130的分组表可以限于七个组。在这样的示例中,诸如表1所示,可以从组大小为1的组中排除其中一个处理设备。
关于排除哪个处理设备的确定可以基于也包括在分组表参数234中的预定义规则。例如,参数可以指定一个或多个规则,通过该规则,基于各个组的一个或多个属性,某些候选组优先于其他候选组。这样的属性可以包括但不限于表1中所示的各种组属性,包括将该组的处理设备连接到主机所需的链路总数(到主机的链路)、经由对等连接使处理设备彼此连接所需的链路总数(P2P链路)、将处理设备连接到主机以及经由对等连接彼此连接所需的链路总数(总链路)、用于主机与该组中的处理设备之间通信的可用带宽(主机到设备带宽)、用于经由对等连接在处理设备之间通信的可用带宽(P2P带宽)以及激活该组所需的功率量(用于激活的功率)。由于在将任务分配给任何处理设备之前会发生分组表的填充,因此每个组的当前状态或可用性(状态)都不是选择候选组的因素,因为每个组都必须以“可用”开始。
在表1的示例中,总链路被用来选择候选组,由此具有较少总链路的组比具有更多总链路更多的组更优选。在组大小为1的示例中,排除P4,因为它是唯一具有4个总链路的处理设备,而其他每个处理设备都具有3个或更少的总链路。
在组大小2的示例中,仅具有4个或更少的链路的处理设备对被包括在分组表中。例如,包括组P1、P5,因为通过不超过4个链路:P1-S1、P5-S3、S3-S1和S1-服务器,将处理设备P1和P5链接到服务器130并且彼此链接。相比之下,排除组P2、P5,因为需要至少5个链路才能将处理设备P2和P5相互链接并链接到服务器130:P2-S2、S2-S1、P5-S3、S3-S1和S1服务器。
在组大小为3的示例中,仅具有6个或更少链路的处理设备组被包括在分组表中。例如,包括组P1、P2、P5,因为通过不超过6个链路:P1-S1、P2-S2、S2-S1、P5-S3、S3-S1和S1-服务器,将处理设备P1、P2和P5链接到服务器130并且彼此链接。相比之下,排除组P2、P3、P4,因为需要至少7个链路:P2-S2、S2-S1、P3-S2(或P3-S4)、P4-S4、S4-S3、S3-S1和S1-服务器,才能将处理设备P2、P3和P4彼此链接并且链接到服务器130。
在一些情况下,两个处理组可以具有用于确定将哪个组包括在分组表中的相同的属性,但是分组表可能受到限制,使得仅可以选择一个组。在这种情况下,可以随机地或根据次要规则来选择组。例如,对于表1的组大小3,组P1、P3、P5不被包括在分组表中,尽管通过不超过6个链路:P1-S1、P3-S2、S2-S1、P5-S3、S3-S1和S1-服务器,将P1、P3和P5链接到服务器130并且彼此链接。选择P1、P3、P5上的其他候选可能是随机的。可替代地,在排除该组以利于其他组的情况下,可能已经考虑了其他因素。
可以对每个分组大小做出类似的确定,由此选择具有最少总链路(或在不同示例中,最佳的一些其他属性)的给定分组大小的那些处理设备组,以包括在分组表232中。
返回图2,在一些示例中,分组表参数234可以进一步包括指示最大组大小、最小组大小或两者的组大小阈值。在表1的分组表的示例中,分组表包括具有组大小为1、2和3的处理设备组,但是具有较大组大小(例如4、5)的其他处理设备组也是可用的。这可能是由于分组表参数将分组表限制为组大小3。对于进一步的示例,由于表1的分组表包括具有组大小为1的组,因此可以看出,该分组表没有最小组大小。
指令240可以包括用于指示处理器210根据本文所述的例程执行操作的各种算法。例如,指令240可以包括用于填充分组表的分组表汇编例程242,诸如根据上文说明的示例性规则。对于进一步的示例,指令可以包括任务分配例程244,用于确定应当将到来任务指配给哪些处理设备组。对于进一步的示例,指令240可以包括用于更新包括在分组表中的处理设备组的属性的分组表管理或更新例程。结合图3-7的流程图,更详细地描述这些例程和其他例程。应当理解到,本文所述的例程仅是示例,并且在其他示例中,可以添加、减去、替换或重新排序某些步骤。
示例性方法
图3是示出用于分配在数据中心处接收的任务的示例性例程300的流程图。该例程可以由数据中心中包括的任务分配器的一个或多个处理器执行。在图2的示例中,任务分配器的数据和指令被示为包括在数据中心的服务器中。然而,在本公开的其他示例中,任务分配器可以包括与数据中心的服务器分开的一个或多个处理器以及一个或多个存储器存储设备,或者可以包括服务器处理器和存储器以及单独的处理器和存储器的一些组合。
在框310,一个或多个处理器可以接收将任务分配给数据中心的一个或多个处理设备的请求。可以从用户设备或与数据中心通信并且能够向和从其他计算机传送数据的其他远程设备接收请求。
所接收的请求可以包括用于执行与任务相关联的处理操作的指令。在一些示例中,所接收的请求可以进一步包括执行任务所需的带宽量的指示。在一些示例中,所接收的请求可以进一步包括执行任务所需的处理设备的数量的指示。由于并非数据中心中包括的所有处理设备均必然地具有执行任务的足够的带宽,并且并非数据中心中包括的所有处理设备组均必然地包括所需数量的设备,因此,该信息可以由一个或多个处理器使用以确定用于执行任务的候选处理设备组,更具体地说,是排除不满足用于执行任务的上述标准的处理设备组。
在框320,一个或多个处理器可以访问预定义的处理器组的列表。该列表可以被存储在数据中心中包括的服务器中并且可以从该服务器访问。在一些示例中,数据中心中包括的每个服务器可以存储包括连接到该服务器的处理设备的单独的列表。这样,连接到数据中心的服务器的处理设备可以被包括在多个单独存储的列表中。在这样的示例中,框320可以涉及从数据中心的每个服务器访问列表,或更具体地,从包括列表的每个服务器访问列表。一个或多个处理器可以被配置为聚合所访问的列表,以便处理与连接到数据中心服务器的所有处理设备有关的信息。为了清楚起见,下面的示例指代“列表”,但是应当理解到,可以将相同或相似的原理应用于由一个或多个处理器访问和评估的多个列表。
在一些示例中,列表可以以表格的形式存储,尽管列表可以以另一结构存储。该列表可以包括上文结合图2所示的表1中示出的信息。也就是说,对于每个处理设备组,该列表可以包括下述属性中的任何一个或组合:
组大小:组中包括的处理设备的数量。
被分组的设备:组中包括的处理设备的ID号。
到主机的链路:用于将组中包括的处理设备连接到所连接的服务器的链路总数。
P2P链路:用于经由对等连接将组中包括的处理设备彼此连接的链路总数。
总链路数:用于将组中包括的处理设备连接到所连接的服务器以及彼此连接的链路总数。在许多情况下,组中包括的两个处理设备可以共享与服务器连接的一个或多个链路,或者将一个处理设备链接到另一个的链路也可以是将处理设备之一链接到服务器的链路。在这种情况下,“总链路数”可能小于到主机的链路与P2P链路的值之和。
主机到设备的带宽:用于在连接的服务器和组中包括的处理设备之间通信的可用带宽。在一些情况下,将服务器连接到一个处理设备的链路中的可用带宽可能不同于用于连接到另一处理设备的可用带宽。在这种情况下,在此列出的值是该组中包括的所有处理设备中的最小值,因为将任务指配给该组将受到具有最低可用带宽的处理设备的限制。
P2P带宽:用于经由对等连接在组中包括的处理设备之间通信的可用带宽。与主机到设备的带宽一样,从一个对等连接到下一个对等连接,一个处理设备连接到另一处理设备的链路中的可用带宽可以不同。在这种情况下,在此列出的值是该组中包括的处理设备的所有对等连接当中的最小值,因为将任务指配给该组将受到具有最低可用带宽的对等连接的限制。可用带宽可能会随着任务指配给连接到服务器的处理设备或由连接到服务器的处理设备完成而变化,从而耗尽可用带宽并为未来的任务留下更少的可用带宽。
用于激活的功率:如果要将任务指配给该组,则激活该组中包括的处理设备所需的功率量。在一些示例中,可能需要功率来操作该组的处理设备的硬件组件,诸如为专用集成电路(ASIC)、GPU、托盘和处理器板供电。在一些示例中,可能需要功率来操作与组的处理设备相关联的机械组件,诸如为服务器风扇或冷却设备供电以维持服务器机群的温度。
状态:处理设备组的当前状态或可用性。状态可以指示该组何时可用或不可用以指配任务。状态可以进一步在由于已将任务指配给该组而不可用的组与由于该组中包括的一个或多个处理设备还被包括在向其指配任务的不同组中而不可用的组之间区分。
在框330,一个或多个处理器可以将任务指配给该组中包括的一组处理设备。在一些示例中,指配任务可以涉及首先根据第一标准集从列表中识别候选组,并且随后根据第二标准集从列表中选择候选组中的一个。第一标准可以过滤出不能向其指配任务的处理设备组,诸如没有足够数量的处理设备来执行任务或没有足够的带宽来执行任务的组。带宽不足可以是指服务器与每个处理设备之间的带宽不足、处理设备之间的对等连接中的带宽不足或两者的组合。第一标准还可以被用来过滤出不可用的处理设备组,这是由于已经将另一个任务指配给该组,或者由于该组中包括的至少一个处理设备被包括向其指配不同任务且尚未完成的不同组中。基于诸如最低或最高可用带宽、最低所需功率、最低或最高处理设备数量等因素,可以使用第二标准来从候选组中选择最佳组。
图4是示出图3的框330的示例性子例程400的流程图,该子例程将任务指配给一组处理设备。例程300的操作可以从框320开始,以继续图4的框410的操作。将结合图1所示的系统100和表1所示的系统属性来描述子例程400的示例。在该示例中,所接收的任务需要至少2个处理设备的组大小、5Gbps的主机到设备带宽以及2Gbps的对等带宽。
在框410,一个或多个处理器可以确定哪些处理器组在指定组大小参数内。例如,一个或多个处理器可以排除表1的前七个处理器设备组,因为所接收的任务需要至少2个处理设备的组大小,并且这些组中的每一个仅包括一个处理设备。
在框420,一个或多个处理器可以确定哪些处理设备组具有大于或等于用于执行任务的所需带宽的可用带宽。继续以上示例,一个或多个处理器可以排除具有不足的主机到设备带宽的组(P1,P5)、(P1,P4,P5)、(P1,P2,P5)、(P2,P3,P5)和(P3,P4,P5)。其余的处理设备组构成处理设备人列表的子集,该子集本身是可以向其指配任务的候选处理设备组的列表。
在框430,一个或多个处理器可以从处理设备组的子集中选择具有执行任务所需的最低附加功率量的处理设备组。继续上面的示例,一个或多个处理器可以从列表中选择(P2,P3)或(P6,P7),因为这些组中的每个组都需要220W的附加功率才能执行任务,而其他组需要220W以上的功率。这两个组之间的选择可以是随机的,也可以基于其他标准,诸如哪个组具有更高可用带宽等。选择这两个组之一的结果是与使用其他已知过程指配的组所消耗的功率相比,减少了执行任务所消耗的功率。随着时间的流逝,由诸如以上描述的任务分配所导致的功率节省可高达每天数千瓦时。
在框440,一个或多个处理器将任务指配给所选择的一组处理设备。指配任务可以涉及向连接到该组处理设备的服务器提供任务,以及向服务器提供指令以执行任务,包括指定要用于执行任务的处理设备。
返回图3,在指配了任务之后,操作可以在框340继续,其中,一个或多个处理器更新列表。在一些示例中,更新列表可以涉及更新列表中包括的处理器组的可用性的指示。在其他示例中,还可以更新列表中包括的其他属性,诸如“带宽”和“用于激活的功率”参数。
图5是示出用于图3的框340的示例性子例程500的流程图,该子例程500更新处理设备组的列表。例程300的操作可以从框330开始,以继续图5中的框510的操作。上文结合图3和4提供的示例在此继续以进一步示出系统的操作。
在框510,一个或多个处理器可以更新列表中包括的处理器设备组的状态。此外,包括P2处理设备或P3处理设备的其他组的状态可以被更新为“不可用”,这意味着该组不可用于指配任务,因为其处理设备中的至少一些被另一个任务占用。
图6是示出图5的框510的示例性子例程600的流程图,该子例程600更新列表中的处理器设备组状态。在框610,一个或多个处理器可以将所选择的处理设备组的状态从“可用”改变为“已指配”。继续上面的示例,假设任务被指配给组(P2,P3),则组(P2,P3)的状态可以从“可用”更新为“已指配”,这意味着已为该组指配了任务,并且无法被指配另一任务。在其他示例中,状态可以更改为“不可用”,这意味着该组不可用于被指配任务。“不可用”状态可能比“已指配”状态更笼统,因为它指示哪些组不可用,但未指示任务已被分配给了该组。
在框620,一个或多个处理器可以确定哪些其他处理设备组(即,除了在框330处指配任务的处理设备组之外)与所选择的处理设备组共享至少一个处理设备。继续上面的示例,由于处理设备P2和P3被包括在组(P2,P3)中,所以在该确定中包括的其他组将包括(P2)、(P3)、(P1,P2)、(P1,P3)、(P1,P2,P3)、(P1,P3,P4)、(P1,P2,P5)、(P2,P3,P5)和(P3,P4,P5)。应当注意到,框620的确定不仅适用于候选处理设备组的子集,而且适用于列表中包括的所有处理设备组。
在框630,一个或多个处理器可以改变在框620处确定的处理设备组的状态,以与所选择的处理设备组共享至少一个处理设备。该状态可以从“可用”改变为“不可用”,指示每个组中包括的至少一个处理设备对待指配的其他任务不可用。
返回图5,在框520,一个或多个处理器可以基于任务的指配来更新列表中包括的处理设备组的“带宽”属性。继续以上示例,假设该任务被指配给组(P2,P3),则这可能会减少服务器130与处理设备P2和P3之间的链路的可用带宽,如图1所示,这些链路是链路P2-S2、P3-S2、S2-S1和S1-服务器。结果,依赖于这些链路中的一个或多个以连接到服务器或经由对等链路连接到其他处理设备的其他处理设备指配任务之后剩余的可用带宽较少。
在一些示例中,可以通过监视来完成更新“带宽”属性。例如,可以基于实际的链路利用率监视来获得可用带宽。监视功能可以由任务分配器、数据中心服务器或它们的一些组合的一个或多个处理器来执行和控制。
在一些示例中,更新“带宽”属性可以通过估计来完成。例如,可以从向其指配任务的组中的可用带宽量中减去任务所需的带宽量,以便得出更新的可用带宽量。继续上面的示例,由于任务所需的主机到设备带宽为5Gbps以及所需的P2P带宽为2Gbps,因此可以从指配的组(P2,P3)的可用带宽中减去这些值。另外,可以估计与指配的组共享链路的其他组在可用带宽上具有类似的下降。再一次,继续上面的示例,对于包括链路S1-服务器的组——其是包括P1、P2、P3、P4或P5的所有组,带宽可能会降低5Gbps,而对于P6、P7和P8,带宽可能保持不变。
应当注意,在一些情况下,将任务分配给一组处理设备可能会影响其他组的带宽,即使这些组未与指配的组共享处理设备。例如,如上文针对组(P2,P3)所述,向该组分配任务可能会影响共享S1-服务器链路的其他组的带宽。以类似的方式,将任务分配给组(P1,P5)可能会减少也可用于处理设备组(P3,P4)的链路S3-S1上的带宽,尽管该组不与组(P1,P5)共享任何处理设备。
此外,由于一些系统可能依赖于常规估计和基于测量对估计的定期校正,因此测量和估计技术不相互排斥。
在框530,一个或多个处理器可以更新列表中包括的处理设备组的“用于激活的功率”属性。激活处理设备组可以涉及激活先前不活动、空闲或处于低功率状态的硬件或机械组件。硬件组件可以包括指配的处理设备组中包括的处理设备的ASIC、GPU、托盘或板中的任何一种或组合。机械部件可以包括指配的处理设备组中包括的服务器风扇或处理设备的冷却设备中的任何一种或组合。也可以包括其他硬件或机械组件。由于给定硬件组件或给定机械组件可以为一个以上的处理设备提供服务,因此激活硬件或机械组件以为一个处理设备提供服务可能意味着该组件已被激活,无需再次激活以为诸如在不同处理设备组中包括的设备的第二处理设备服务。这样,出于激活一个处理设备组的目的而激活硬件和机械组件可能导致激活另一处理设备组的硬件和机械组件所需的功率更少,因为一些组件可能已经被激活。
继续表1的上述示例,所选的处理设备组(P2,P3)需要220W以激活。由于在指配任务时激活了所有硬件和机械组件,因此激活所需的功率可能降至0W。此外,对于诸如共享处理设备P2或P3的那些处理设备组的其他处理设备组,由于那些处理设备的机械和硬件组件已被激活,因此那些组所需的功率也可能下降。另外,其他处理设备可以与P2或P3共享硬件或机械组件,因此也可以减少激活包括那些处理设备的处理设备组。例如,如果P1和P2共享硬件组件,并且如果P3、P5和P7也共享机械组件,那么对于包括P1、P5或P7之一的所有处理设备组,激活所需的功率可以下降,即使这些处理设备当前均未被指配任务。
为了说明在将任务分配给处理设备组之一之后一个或多个处理器更新处理设备组的属性的示例,在表2中示出了用于在图1的系统100中包括的处理设备组的更新分组表:
表2:
Figure BDA0002735528170000231
在表2的示例中,更新了许多处理设备组的带宽、用于激活的功率和状态属性以反映:由于指配了第一任务而导致的可用带宽减少;由于已经激活了(P2,P3)组的组件而导致的激活其他处理设备组所需的功率减少;以及由于处理设备P2和P3正在使用中而导致的一些处理组不可用。
尽管在图3中未示出,但是在完成任务之后,一个或多个处理器可以进一步再次更新处理设备组的属性,以反映处理设备P2和P3的可用性以及处理设备组(P2,P3)不再被指配任务。这可以涉及表2中所示的属性回复到表1中示出的那些属性,其前提是还未将另一任务指配给其他处理设备中的任何一个。
在另一种情况下,在完成第一任务之前,一个或多个处理器可以接收另一个任务以进行指配。在这种情况下,一个或多个处理器可能依赖于表2中所示的属性,以便将下一任务有效地分指配仍然具有足够的可用带宽并且对于其鉴于第一任务已经导致一些硬件和机械组件处于激活状态而因此需要最少功率量以激活处理设备的处理设备组。
为了说明,继续上述示例,如果第二所接收任务需要3或更大的组大小、1Gbps的主机到设备带宽和1Gbps的P2P带宽,则该一个或多个处理器可以确定候选处理设备组的子集,排除了组大小为1或2的所有组以及“不可用”的(P1,P2,P3)、(P1,P3,P4)、(P1,P2,P5)、(P2,P3,P5)和(P3,P4,P5)。这将留下两个候选处理设备组:(P1,P2,P5)和(P6,P7,P8)。然后,一个或多个处理器可以基于激活该组所需的功率为440W——该功率低于激活(P1,P4,P5)所需的功率——而将任务指配给(P6,P7,P8)。然后,一个或多个处理器可以进一步更新处理设备组的属性,以反映(P6,P7,P8)被指配了任务、包括P6、P7或P8中的至少一个的其他组不可用、用于至少一些其他处理设备组的减少的可用带宽、以及激活至少一些其他处理设备组所需的最少功率。
在一些示例中,一个或多个处理器还可以被配置为在接收到第一任务之前,以表的形式或者以一些其他形式或数据结构填充处理设备组及其属性的列表。图7是示出用于收集和存储关于连接到服务器的一个或多个处理设备组的信息的示例性例程700的流程图。可以在图3的框310之前,全部或至少部分地执行例程700的步骤。
在框710,一个或多个处理器可以收集关于连接到服务器并由服务器控制的处理设备的信息。该信息可以包括关于连接到服务器的处理设备之间的连接的数据,诸如哪些设备是对等连接、通过哪些链路以及通过哪些交换机。尽管为了简单起见在上述示例中未示出,但是列表中包括的信息可以进一步包括用于将服务器、处理设备和交换机彼此连接的特定链路。可以使用一个或多个遍历算法——诸如树遍历算法,或更具体地,诸如广度优先搜索算法——来收集该信息。从遍历算法收集的信息可以被用来确定连接各个处理设备组的链路总数。该信息还可以包括服务器与各个处理设备之间的带宽的测量、经由对等连接的各个处理设备之间的测量、用于激活与各个设备相关联的硬件和机械组件的功率的测量等等。
在框720,一个或多个处理器可以确定处理设备子组的非穷举列表。如前所述,可以基于诸如组大小参数的预定值来限制非穷举列表,组大小参数限制了处理设备的任何给定子组的组大小。例如,在表1和表2的上述示例中,由那些表表示的非穷举列表包括两个限制:组大小限制为3,即子组中不超过三个处理设备,以及对每个组大小的7个子组的限制。在其他示例中,可以选择不同的参数。例如,用于每个组大小的子组的数量可能受连接到服务器的处理设备的总数限制,由此将不会限制具有组大小为1的组。在这样的示例中,表1和表2将包括24个条目:大小为1的8个组、大小为2的8个组,以及大小为3的8个组。
要包括在非穷举列表中的子组的选择可以基于其他因素和参数,诸如每个组中包括的链路总数。在表1和表2的示例中,子组被选择以使链路的总数最小化,使得从列表中排除具有更多总链路的子组,而支持具有更少总链路的子组。在其他示例中,可以考虑其他因素,诸如带宽。在一些情况下,从列表中排除子组可能会受包括其他子组影响,诸如每个处理设备是否被限于出现在列表中达最大次数。
在框730处,存储关于非穷尽列表中包括的子组的信息。例如,每个列表可以被存储在连接到该列表中包括的处理设备的相应服务器上。
在图7的示例中,该例程在图3的操作之前执行。但是,在一些情况下,可以在稍后的时间执行图7的操作。例如,一个或多个处理器可以周期性地监视连接到服务器的所有总线链路,并且基于新的测量值来更新列表中包括的信息。就此而言,用于一些处理设备组的可用带宽可以基于更新的收集信息而改变。
在一些示例中,例程300和700的操作可以由单独的处理器执行。例如,连接到列表中包括的处理设备的服务器的一个或多个处理器可以负责执行例程700的操作,因为这些操作限于从连接到特定服务器的设备收集信息,而连接到系统的许多服务器的任务分配器的一个或多个处理器可以负责执行例程300的操作,因为当接收到任务时,可以查询来自若干服务器的列表,以便找到用于分配任务的最佳或最有效的处理设备组。
就此而言,应当认识到,上文结合图3-6所述的示例总体上描述了基于单个列表将任务指配给与单个服务器相关联的处理设备并且在分配任务后更新该单个列表的简化示例,而图7总体上描述了填充用于单个服务器的单个分组表的简化示例。然而,在其他示例中,许多服务器可以包括处理设备组的相应列表,并且作业分配器的一个或多个处理器可以从所有或多个这些列表中收集信息,并且基于来自多个列表的信息来分配任务。
上述系统和例程可以降低用于在连接到单个服务器的处理节点之间,更具体地,在连接到服务器机群的许多相应服务器的处理节点之间指配任务的成本。这对于大型服务器机群——诸如数据中心中包括的服务器机群——尤其有利,其中,能源效率的提高可以对降低成本和避免诸如停电的技术问题产生大规模影响。降低成本可以是通过仅选择所需的处理设备以及进一步通过选择尚未被占用但其许多硬件和机械组件已经在使用中且不需要被激活或退出空闲或省电状态的处理设备组而消耗的减少的功率的结果。另外,由于系统和例程被配置为跟踪并定期更新处理设备和处理设备组的可用带宽,并且此外由于系统和例程被配置为跟踪组的可用性并且将任务指配给可用的组而不是以之后可用的组来使任务排队等候,因此本公开还提供了减少完成指配任务的时间。
尽管已经参考特定实施例描述了本文的技术,但是应当理解到,这些实施例仅是本技术的原理和应用的示例。因此,应当理解到,在不脱离如由所附权利要求限定的本技术的精神和范围的情况下,可以对示例性实施例进行多种改进,并且可以设计其他布置。
大多数前述替代示例不是互相排斥的,而是可以以各种组合实现以实现独特的优点。由于可以在不脱离权利要求所限定的主题的情况下利用以上讨论的特征的这些和其他变形以及组合,因此,对实施例的前述描述应当通过示例的方式而不是通过限制由权利要求所限定的主题的方式来进行。作为示例,不必以上述精确顺序执行前述操作。相反,可以以不同的顺序来处理各个步骤,诸如颠倒或同时进行。除非另有说明,步骤也可以省略。另外,提供本文描所述的示例以及措辞为“诸如”、“包括”等的短语不应当被解释为将权利要求的主题限制于特定示例,相反,这些示例旨在仅说明许多可能的实施例之一。此外,不同附图中的相同附图标记可以标识相同或相似的元件。

Claims (20)

1.一种方法,包括:
由一个或多个处理器接收将第一任务分配给多个处理设备中的一个或多个的第一请求,每个处理设备连接到对应主机服务器,至少一些处理设备被配置为经由对等连接彼此通信,所述第一请求指示执行所述第一任务所需的带宽;
由所述一个或多个处理器访问预定义处理设备组的一个或多个列表,每个处理设备组包括连接到公共对应主机服务器的一个或多个处理设备,每个列表指示相应主机服务器的处理设备组针对分配任务的可用性,并进一步指示每个可用处理设备组的可用带宽;
由所述一个或多个处理器将所述第一任务指配给具有大于或等于执行所述第一任务所需的带宽的可用带宽的第一处理设备组;以及
由所述一个或多个处理器更新包括所述第一处理设备组的列表,以指示所述第一处理设备组和与所述第一处理设备组共享至少一个处理设备的任何其他处理设备组的每一个都不可用。
2.如权利要求1所述的方法,其中,更新所述列表包括指示所述第一处理设备组被分配,并且与所述第一处理设备组共享至少一个处理设备的任何其他处理设备组不可用。
3.如权利要求2所述的方法,进一步包括:
由所述一个或多个处理器接收将第二任务分配给所述多个处理设备中的一个或多个的第二请求,所述第二请求指示用于执行所述第二任务所需的带宽;
由所述一个或多个处理器访问包括所更新的列表的预定义处理设备组的一个或多个列表;
由所述一个或多个处理器将所述第二任务指配给具有大于或等于执行所述第二任务所需的带宽的可用带宽的第二处理设备组,其中,所述第一处理设备组和所述第二处理设备组不共享任何处理设备;以及
由所述一个或多个处理器重新更新所更新的列表,以指示所述第二处理设备组和与所述第二处理设备组共享至少一个处理设备的任何其他处理设备组的每一个都不可用。
4.如权利要求2所述的方法,进一步包括:
由所述一个或多个处理器接收所述第一任务已完成的指示;以及
由所述一个或多个处理器更新包括所述第一处理设备组的列表以指示所述第一处理设备组可用,以及与所述第一处理设备组共享至少一个处理设备并且不与另一分配的处理设备组共享处理设备的任何其他处理设备组可用。
5.如权利要求1所述的方法,其中,更新所述列表包括更新用于与所述第一处理设备组共享至少一个总线连接的一个或多个处理设备组的可用带宽。
6.如权利要求5所述的方法,其中,对于针对给定处理设备组更新了可用带宽的所述给定处理设备组,所更新的可用带宽为:
更新之前的可用带宽与执行所述第一任务所需的带宽之间的差;或者
在执行所述第一任务时测量的可用带宽的量。
7.如权利要求1所述的方法,其中,包括所述第一处理设备组的所述列表针对每个可用处理设备组进一步指示用于将所述第一任务分配给所述可用处理设备组所需要的附加功率量,以及
其中,所述方法进一步包括将具有所需要的最低功率量的可用处理设备组指定为所述第一处理设备组。
8.如权利要求7所述的方法,其中,更新包括所述第一处理设备组的所述列表包括更新用于与所述第一处理设备组共享至少一个硬件组件或机械组件的一个或多个处理设备组所需要的附加功率量。
9.如权利要求8所述的方法,其中,对于针对给定处理设备组更新了所需要的附加功率量的所述给定处理设备组,基于用于所共享的至少一个硬件组件或机械组件的预定功率需求来确定所更新的所需要的附加功率量。
10.如权利要求1所述的方法,其中,所述第一请求指示用于执行所述第一任务的所需主机服务器带宽和所需对等带宽中的每一个;
其中,包括所述第一处理设备组的所述列表指示用于每个可用处理设备组的可用主机服务器带宽和可用对等带宽中的每一个,以及
其中,将所述第一任务指配给所述第一处理设备组进一步基于:
所述第一处理设备组的可用主机服务器带宽大于或等于用于执行所述第一任务的所需主机服务器带宽;以及
所述第一处理设备组的可用对等带宽大于或等于用于执行所述第一任务的所需对等带宽。
11.一种系统,包括:
数据中心,所述数据中心包括多个主机服务器,每个主机服务器连接到多个处理设备中的单独的处理设备组,其中,所述多个处理设备中的至少一些处理设备被配置为经由对等连接彼此通信,每个主机服务器包括标识相应处理设备组的子组的分组数据,所述分组数据中的每个标识的子组与相应的可用性指示、相应的可用带宽指示和激活所需的相应的功率指示相关联;
用于存储指令的存储器;以及
一个或多个处理器,所述一个或多个处理器耦合到所述存储器,并被配置为执行所述指令以执行操作,所述操作包括:
接收将第一任务分配给所述多个处理设备中的一个或多个的第一请求,所述第一请求指示用于执行所述第一任务所需的带宽;
由所述一个或多个处理器访问包括所述分组数据的一个或多个列表;
由所述一个或多个处理器将所述第一任务指配给具有大于或等于用于执行所述第一任务所需的带宽的可用带宽的第一子组;以及
由所述一个或多个处理器更新包括所述第一子组的列表,以指示所述第一子组和与所述第一子组共享至少一个处理设备的任何其他子组中的每一个都不可用。
12.如权利要求11所述的系统,其中,更新所述列表包括指示所述第一子组被分配、以及与所述第一子组共享至少一个处理设备的任何其他子组不可用。
13.如权利要求12所述的系统,其中,所述操作进一步包括:
接收将第二任务分配给所述多个处理设备中的一个或多个的第二请求,所述第二请求指示用于执行所述第二任务所需的带宽;
访问含有所更新的列表的包括所述分组数据的一个或多个列表;
将所述第二任务指配给具有大于或等于用于执行所述第二任务所需的带宽的可用带宽的第二子组,其中,所述第一子组和所述第二子组不共享任何处理设备;以及
重新更新所更新的列表,以指示所述第二子组和与所述第二子组共享至少一个处理设备的任何其他子组中的每一个都不可用。
14.如权利要求12所述的系统,其中,所述操作进一步包括:
接收所述第一任务已完成的指示;以及
更新包括所述第一子组的列表以指示所述第一子组可用,以及与所述第一子组共享至少一个处理设备并且不与另一分配的子组共享处理设备的任何其他子组可用。
15.如权利要求11所述的系统,其中,所述操作进一步包括:更新用于与所述第一子组共享至少一个总线连接的一个或多个子组的可用带宽。
16.如权利要求15所述的系统,其中,对于针对给定子组更新了可用带宽的所述给定子组,所更新的可用带宽为:
更新之前的可用带宽与执行所述第一任务所需的带宽之间的差;或者
在执行所述第一任务时测量的可用带宽的量。
17.如权利要求11所述的系统,其中,包括所述第一子组的所述列表针对每个可用子组,进一步指示用于将所述第一任务分配给所述可用子组所需要的附加功率量,以及
其中,所述操作进一步包括将具有所需要的最低附加功率量的可用处理设备组指定为所述第一子组。
18.如权利要求17所述的系统,其中,所述操作进一步包括:更新用于与所述第一子组共享至少一个硬件组件或机械组件的一个或多个子组所需要的附加功率量。
19.如权利要求18所述的系统,其中,对于针对给定子组更新了所需要的附加功率量的所述给定子组,所述操作进一步包括:基于用于所共享的至少一个硬件组件或机械组件的预定功率需求来确定所更新的所需要的附加功率量。
20.如权利要求11所述的系统,其中,所述第一请求指示用于执行所述第一任务的所需主机服务器带宽和所需对等带宽中的每一个;
其中,包括所述第一子组的所述列表指示用于每个可用子组的可用主机服务器带宽和可用对等带宽中的每一个,以及
其中,所述操作进一步包括,进一步基于以下内容来将所述第一任务指配给所述第一子组:
所述第一处理设备组的可用主机服务器带宽大于或等于用于执行所述第一任务的所需主机服务器带宽;以及
所述第一处理设备组的可用对等带宽大于或等于用于执行所述第一任务的所需对等带宽。
CN202011132249.XA 2020-05-13 2020-10-21 数据中心机群中的处理分配 Active CN112261132B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/930,490 US11394660B2 (en) 2020-05-13 2020-05-13 Processing allocation in data center fleets
US15/930,490 2020-05-13

Publications (2)

Publication Number Publication Date
CN112261132A true CN112261132A (zh) 2021-01-22
CN112261132B CN112261132B (zh) 2024-09-27

Family

ID=73698575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011132249.XA Active CN112261132B (zh) 2020-05-13 2020-10-21 数据中心机群中的处理分配

Country Status (4)

Country Link
US (2) US11394660B2 (zh)
EP (2) EP3910472B1 (zh)
CN (1) CN112261132B (zh)
DK (1) DK3910472T3 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11553038B1 (en) * 2021-10-22 2023-01-10 Kyndryl, Inc. Optimizing device-to-device communication protocol selection in an edge computing environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120159506A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Scheduling and management in a personal datacenter
US9032077B1 (en) * 2012-06-28 2015-05-12 Amazon Technologies, Inc. Client-allocatable bandwidth pools
CN105704181A (zh) * 2014-11-26 2016-06-22 国际商业机器公司 管理移动设备中的任务的方法和装置
US20170109807A1 (en) * 2015-10-19 2017-04-20 Demandware Inc. Scalable Systems and Methods for Generating and Serving Recommendations

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539415B1 (en) * 1997-09-24 2003-03-25 Sony Corporation Method and apparatus for the allocation of audio/video tasks in a network system
US7827283B2 (en) * 2003-02-19 2010-11-02 International Business Machines Corporation System for managing and controlling storage access requirements
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
JP5891680B2 (ja) * 2011-09-27 2016-03-23 富士通株式会社 電力制御装置、電力制御方法、および電力制御プログラム
US10091904B2 (en) * 2016-07-22 2018-10-02 Intel Corporation Storage sled for data center
US20180136985A1 (en) * 2016-11-17 2018-05-17 International Business Machines Corporation Asset placement management in a shared pool of configurable computing resources
US10419539B2 (en) * 2017-05-19 2019-09-17 Bank Of America Corporation Data transfer path selection
GB2575294B8 (en) * 2018-07-04 2022-07-20 Graphcore Ltd Host Proxy On Gateway
US11816061B2 (en) * 2020-12-18 2023-11-14 Red Hat, Inc. Dynamic allocation of arithmetic logic units for vectorized operations

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120159506A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Scheduling and management in a personal datacenter
CN102591921A (zh) * 2010-12-20 2012-07-18 微软公司 个人数据中心内的调度和管理
US9032077B1 (en) * 2012-06-28 2015-05-12 Amazon Technologies, Inc. Client-allocatable bandwidth pools
CN105704181A (zh) * 2014-11-26 2016-06-22 国际商业机器公司 管理移动设备中的任务的方法和装置
US20170109807A1 (en) * 2015-10-19 2017-04-20 Demandware Inc. Scalable Systems and Methods for Generating and Serving Recommendations

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
U.D.ANNAKKAGE;N.K.C.NAIR: "Dynamic System Equivalents:A Survey of Available Techniques", IEEE TRANSACTIONS ON POWER DELIVERY, vol. 27, no. 1, 14 October 2011 (2011-10-14) *
王嘉宁: "OFDM系统中的资源分配算法研究", 中国优秀硕士学位论文数据库, 16 November 2011 (2011-11-16) *

Also Published As

Publication number Publication date
US20220294747A1 (en) 2022-09-15
US11637791B2 (en) 2023-04-25
EP3910472B1 (en) 2024-01-31
EP4300311A3 (en) 2024-03-06
CN112261132B (zh) 2024-09-27
DK3910472T3 (da) 2024-04-29
US11394660B2 (en) 2022-07-19
EP3910472A1 (en) 2021-11-17
US20210359957A1 (en) 2021-11-18
EP4300311A2 (en) 2024-01-03

Similar Documents

Publication Publication Date Title
US10461774B2 (en) Technologies for assigning workloads based on resource utilization phases
US9317336B2 (en) Method and apparatus for assignment of virtual resources within a cloud environment
CN107534583B (zh) 在管理节点中实现的方法和相关装置
Alicherry et al. Network aware resource allocation in distributed clouds
CN102724277B (zh) 虚拟机热迁移和部署的方法、服务器及集群系统
Cohen et al. Almost optimal virtual machine placement for traffic intense data centers
US8892728B2 (en) Automatic zone-based management of a data center
CN110221920B (zh) 部署方法、装置、存储介质及系统
CN111835849B (zh) 增强接入网服务能力的方法和装置
CN113014611B (zh) 一种负载均衡方法及相关设备
CN103036800A (zh) 虚拟机负载均衡系统、节点及方法
WO2017207049A1 (en) A node of a network and a method of operating the same for resource distribution
US11979335B2 (en) Network controller
US11637791B2 (en) Processing allocation in data center fleets
CN116266129A (zh) 分布式计算系统中的多领导者选举
CN109697115B (zh) 用于调度应用的方法、装置以及计算机可读介质
KR20130028554A (ko) 메시지 버스를 이용한 대용량 분산 처리 장치 및 그 방법
CN115509749A (zh) 任务执行方法和装置、存储介质和电子设备
CN116360973A (zh) 数据处理系统及其操作方法
Liu et al. Towards deadline guaranteed cloud storage services
CN112748850A (zh) 用于存储管理的方法、设备和计算机程序产品
JP5747389B2 (ja) 計算機資源割当装置及び方法及びプログラム
CN117149099B (zh) 一种计算存储分体式服务器系统及控制方法
CN118250215A (zh) 一种网络拓扑结构逻辑分块之间路径规划的方法及设备

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40040166

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant