CN117873727A - 使用光网络的可重新配置的计算平台 - Google Patents
使用光网络的可重新配置的计算平台 Download PDFInfo
- Publication number
- CN117873727A CN117873727A CN202410134763.9A CN202410134763A CN117873727A CN 117873727 A CN117873727 A CN 117873727A CN 202410134763 A CN202410134763 A CN 202410134763A CN 117873727 A CN117873727 A CN 117873727A
- Authority
- CN
- China
- Prior art keywords
- workload
- building blocks
- computing
- dimension
- nodes
- 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
- 230000003287 optical effect Effects 0.000 title claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 42
- 238000004590 computer program Methods 0.000 claims description 13
- 239000000835 fiber Substances 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 239000004744 fabric Substances 0.000 description 7
- 230000036541 health Effects 0.000 description 6
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 5
- 239000010949 copper Substances 0.000 description 5
- 229910052802 copper Inorganic materials 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000012447 hatching Effects 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003862 health status Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 230000000007 visual effect Effects 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0005—Switch and router aspects
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17387—Three dimensional, e.g. hypercubes
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/803—Application aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/821—Prioritising resource allocation or reservation requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/65—Re-configuration of fast packet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
-
- 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/505—Clust
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0005—Switch and router aspects
- H04Q2011/0052—Interconnection of switches
- H04Q2011/0058—Crossbar; Matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/0064—Arbitration, scheduling or medium access control aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/0079—Operation or maintenance aspects
- H04Q2011/0081—Fault tolerance; Redundancy; Recovery; Reconfigurability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/0086—Network resource allocation, dimensioning or optimisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/009—Topology aspects
- H04Q2011/0098—Mesh
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开了使用光网络的可重新配置的计算平台。方法、系统和装置,包括用于使用光网络生成计算节点的构建块集群的装置。在一个方面,方法包括接收指定用于计算工作负载的所请求计算节点的请求数据。请求数据指定计算节点的目标n维度排列。从包括每个均包括计算节点的m维度排列的构造模集合的超级平台中进行选择,所述构建块的子集在被组合时与由请求数据指定的目标排列相匹配。所述构造块集合连接到包括一个或多个光电路交换的光网络。生成包括构建块的子集的计算节点的工作负载集群。生成包括针对工作负载集群的每个维度配置用于一个或多个光电路交换的相应路由数据。
Description
分案说明
本申请属于申请日为2019年12月18日的中国发明专利申请201980069191.8的分案申请。
技术领域
本公开涉及使用光网络的可重新配置的计算平台。
背景技术
一些计算工作负载,例如机器学习训练,需要大量的处理节点以有效地完成工作负载。处理节点可以通过互连网络彼此通信。例如,在机器学习训练中,处理节点可以彼此通信以收敛于最佳的深度学习模型。互连网络对于处理单元实现收敛的速度和效率至关重要。
随着机器学习和其他工作负载的大小和复杂性变化,包括多个处理节点的超级计算机的刚性结构可能会限制超级计算机的可用性、可伸缩性和性能。例如,如果具有连接处理节点的特定排列的刚性互连网络的超级计算机的某些处理节点发生故障,则超级计算机可能无法替换这些处理节点,从而导致可用性和性能降低。与不依赖故障节点的其他排列相比,某些特定排列也可能导致更高的性能。
发明内容
本说明书描述了与计算节点的可重配置超级平台(superpod)有关的技术,使用光网络从该可重配置超级平台中生成工作负载集群。
通常,本说明书中描述的主题的一个创新方面可以体现在以下方法中,该方法包括:接收指定用于计算工作负载的所请求计算节点的请求数据。请求数据指定所述计算节点的目标n维度排列,其中n大于或等于2。从包括每个均包括计算节点的m维度排列的构建块集合的超级平台中选择所述构建块的子集,所述构建块的子集在被组合时与由所述请求数据指定的目标n维度排列相匹配,其中m大于或等于2。所述构建块的子集连接到包括用于n维度中的每个维度的一个或多个光电路交换的光网络。生成包括所述构建块的子集的计算节点的工作负载集群。工作负载集群是专用于特定给定工作负载的计算或执行的计算节点集群。生成包括对于所述工作负载集群的每个维度,配置用于该维度的一个或多个光电路交换的相应路由数据,所述工作负载集群的每个维度的相应路由数据指定计算工作负载的数据如何沿所述工作负载集群的该维度在计算节点之间被路由。使所述工作负载集群的计算节点执行所述计算工作负载。
这些和其他实施方式可各自可选地包括以下特征中的一个或多个。在某些方面,所述请求数据指定不同类型的计算节点。选择所述构建块的子集包括针对由所述请求数据指定的每种类型的计算节点选择包括所指定的类型的一个或多个计算节点的构建块。
在一些方面,用于所述超级平台的每个维度的相应路由数据包括用于所述一个或多个光电路交换中的一个的光电路交换路由表。在一些方面,对于所述n维度中的每个维度,所述光网络包括沿着该维度在计算节点之间路由数据的所述光网络的一个或多个光电路交换。每个构建块可以包括沿着所述构建块的每个维度的计算节点的多个分段。对于每个维度的每个分段,所述光网络可以包括所述光网络的光电路交换,所述光网络的所述光电路交换在所述工作负载集群中的每个构建块的计算节点的对应分段之间路由数据。
在一些方面,每个构建块包括计算节点的三维环面或计算节点的网格中的一个。在一些方面,超级平台包括多个工作负载集群。每个工作负载集群可以包括所述构建块的不同子集,并且执行与每个其他工作负载集群不同的工作负载。
一些方面包括:接收指示所述工作负载集群的给定构建块已故障的数据,以及用可用构建块来替换所述给定构建块。用可用构建块来替换所述给定构建块可以包括更新所述光网络的一个或多个光电路交换的路由数据,以停止在所述工作负载集群的给定构建块与一个或多个其他构建块之间路由数据,以及更新所述光网络的一个或多个光电路交换的路由数据,以在所述工作负载集群的可用构建块与一个或多个其他构建块之间路由数据。
在一些方面,选择所述构建块的子集,所述构建块的子集在被组合时与由所述请求数据指定的目标n维度排列相匹配,包括:确定由所述请求数据指定的n维度排列需要超过所述超级平台中健康可用的第二数量的构建块的第一数量的构建块,并且响应于确定由所述请求数据指定的n维度排列需要超过所述超级平台中健康可用的第二数量的构建块的第一数量的构建块:识别比所述计算工作负载具有更低优先级并且正在由所述超级平台的其他构建块执行的一个或多个第二计算工作负载,并将所述一个或多个第二计算工作负载的一个或多个构建块重新分配给用于所述计算工作负载的工作负载集群。生成包括所述构建块的子集的计算节点的工作负载集群包括:在所述构建块的子集中包括所述一个或多个第二计算工作负载的一个或多个构建块。
在一些方面,生成包括所述构建块的子集的计算节点的工作负载集群包括:针对所述工作负载集群的每个维度重新配置用于该维度的一个或多个光电路交换的相应路由数据,使得所述一个或多个第二计算工作负载的一个或多个构建块中的每一个与所述工作负载集群的其他构建块而不是所述一个或多个第二计算工作负载的构建块进行通信。
本说明书中描述的主题可以在特定实施例中实现,以实现以下优点中的一个或多个。使用光网络为工作负载动态配置计算节点的群集导致计算节点的可用性更高,因为其他计算节点可以轻松替换已故障或脱机的计算节点。计算节点排列的灵活性导致计算节点的性能更高,并且为每个工作负载分配适当数量和优化(或改进)的计算节点排列的效率更高。利用包括多种类型的计算节点的超级平台,可以生成工作负载群集,其不仅包括适当数量的计算节点和计算节点的排列,而且还包括针对每个工作负载的适当类型的计算节点,例如,但不仅限于在数据中心或其他位置在物理上彼此靠近(例如,在同一机架中彼此直接连接和/或彼此相邻)的计算节点。相反,光网络启用了各种形状的工作负载集群,其中计算节点尽管彼此相对在任意物理位置中,但是好像它们彼此相邻一样进行操作。
使用光网络配置平台还为工作负载提供了故障隔离和更好的安全性。例如,一些常规的超级计算机在组成该超级计算机的各种计算机之间路由流量。如果计算机之一发生故障,则该通信路径将丢失。使用光网络,可以快速重新路由数据和/或可用计算节点可以替换已故障的计算节点。另外,与使用易受攻击的软件来管理分离相比,由光电路交换(OCS)交换机提供的工作负载之间的物理隔离(例如,不同光路的物理隔离)在同一超级平台中执行的各种工作负载之间提供了更好的安全性。
使用光网络连接构建块还可以减少相对于分组交换网络在构建块之间传送数据时的延迟。例如,在分组交换中,存在额外的延迟,因为分组需要由交换机接收,缓冲并在另一个端口上再次发送出去。使用OCS交换机连接构建块提供真正的端到端光路,而中间没有分组交换或缓冲。
下面参考附图描述前述主题的各种特征和优点。根据本文描述的主题和权利要求,其他特征和优点是显而易见的。
附图说明
图1是其中示例处理系统生成计算节点的工作负载集群并使用工作负载集群执行计算工作负载的环境的框图。
图2示出了示例逻辑超级平台和从超级平台中的一部分构建块生成的示例工作负载集群。
图3示出了示例构建块和使用该构建块生成的示例工作负载集群。
图4示出了从计算节点到光电路交换(OCS)交换机的示例光链接。
图5示出了用于形成构建块的逻辑计算托盘。
图6示出了省略一个维度的示例构建块的子块。
图7示出了示例构建块。
图8示出了用于超级平台的OCS结构拓扑。
图9示出了示例超级平台的组件。
图10是示出了用于生成工作负载集群并使用工作负载集群执行计算工作负载的示例过程的流程图。
图11是示出了用于重新配置光网络以替换故障的构建块的示例过程的流程图。
在各个附图中,相同的附图标记和符号指示相同的元件。
具体实施方式
通常,本文描述的系统和技术可以配置光网络结构以从超级平台生成计算节点的工作负载群集。超级平台是一组通过光网络相互连接的计算节点的多个构建块。例如,超级平台可以包括一组互连的构建块。每个构建块可以包括m维度排列(例如二维度或三维度排列)的多个计算节点。
用户可以指定用于特定工作负载的计算节点的目标排列。例如,用户可以提供机器学习工作负载并指定计算节点的目标排列以执行机器学习计算。目标排列可以定义跨n个维度中的每个维度的计算节点的数量,例如,其中n大于或等于2。即,目标排列可以定义工作负载集群的大小和形状。例如,某些机器学习模型和计算在非正方形拓扑上执行更好。
横截面带宽也可能成为整个计算的限制,例如,等待数据传输的计算节点留下了空闲的计算周期。根据如何跨计算节点分配工作以及需要在各个维度上跨网络传输多少数据,工作负载集群的形状可能会影响工作负载集群中的计算节点的性能。
对于将具有所有计算节点到所有计算节点数据流量的工作负载,立方体形状的工作负载群集将使计算节点之间的跳跃数最小化。如果工作负载具有大量本地通信,然后将数据跨特定维度传输到相邻的一组计算节点,并且该工作负载需要将许多这些相邻通信链接在一起,则该工作负载可能会受益于与其他维度相比在特定维度中具有更多计算节点的排列。因此,使用户能够指定工作负载群集中的计算节点的排列,可以允许用户指定可能导致其工作负载的更好性能的排列。
如果超级平台中包括不同类型的计算节点,则请求还可以指定要包括在工作负载群集中的每种类型的计算节点的数量。这允许用户指定对特定工作负载执行得更好的计算节点的排列。
工作负载调度器可以例如基于构建块的可用性、构建块的健康(例如,工作或故障)和/或超级平台中的工作负载的优先级(例如,超级平台的计算节点执行或将要执行的工作负载的优先级)而为工作负载集群选择构建块。工作负载调度器可以将识别所选构建块和构建块的目标排列的数据提供给光电路交换(OCS)管理器。然后,OCS管理器可以配置光网络的一个或多个OCS交换机,以将构建块连接在一起以形成工作负载集群。然后,工作负载调度器可以在工作负载群集的计算节点上执行计算工作负载。
如果工作负载集群的一个构建块发生故障,则可以通过简单地重新配置OCS交换机来快速将发生故障的构建块替换为另一个构建块。例如,工作负载调度器可以在超级平台中选择可用的构建块来替换发生故障的构建块。工作负载调度器可以指示OCS管理器将已故障的构建块替换为所选的构建块。然后,OCS管理器可以重新配置OCS交换机,以使所选的构建块连接到工作负载集群的其他构建块,并且使已故障的构建块不再连接到工作负载集群的构建块。
图1是示例处理系统130生成计算节点的工作负载集群并且使用工作负载集群执行计算工作负载的环境100的框图。处理系统130可以通过例如局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合的数据通信网络120从用户设备110接收计算工作负载112。示例工作负载112包括软件应用、机器学习模型(例如,训练和/或使用机器学习模型,编码和解码视频以及数字信号处理工作负载等)。
用户还可以为工作负载112指定计算节点的所请求集群114。例如,用户可以指定计算节点的所请求集群的集群的目标形状和大小。即,用户可以跨多个维度指定计算节点的数量和计算节点的形状。例如,如果计算节点分布在x、y和z的三个维度上,则用户可以在每个维度中指定多个计算节点。用户还可以指定一种或多种类型的计算节点以包括在群集中。如下所述,处理系统130可以包括不同类型的计算节点。
如下所述,处理系统130可以使用构建块来生成与集群的目标形状和大小相匹配的工作负载集群。每个构建块可以包括以m个维度(例如,三个维度)排列的多个计算节点。因此,用户可以根据多个维度中的每个维度中的构建块的数量来指定目标形状和大小。例如,处理系统130可以向用户设备110提供用户界面,该用户界面使用户能够在每个维度中选择多达最大数量的构建块。
用户设备110可以将工作负载112和指定所请求集群114的数据提供给处理系统130。例如,用户设备110可以通过网络120将包括工作负载112和指定所请求的集群114的数据的所请求数据提供给处理系统130。
处理系统130包括单元调度器140和一个或多个单元(cell)150。单元150是一组一个或多个超级平台。例如,示出的单元150包括四个超级平台152-158。每个超级平台152-158包括一组构建块160,在本文中也称为构建块池。在该示例中,每个超级平台152-158包括64个构建块160。然而,超级平台152-158可以包括其他数量的构建块160,例如20、50、100或另一适当量。超级平台152-158还可以包括不同数量的构建块160。例如,超级平台152可以包括64个构建块,而超级平台152包括100个构建块。
如下面更详细地描述的,每个构建块160可以包括以二维度或更多维度排列的多个计算节点。例如,构建块160可以包括沿着三个维度排列的64个计算节点,每个维度中具有四个计算节点。计算节点的这种排列在本文档中称为4x4x4构建块,其中沿x维度具有四个计算节点,沿y维度具有四个计算节点,而沿z维度具有四个计算节点。其他数量的维度(例如,二维度)以及每个维度中其他数量的计算节点也是可能的,例如3x1、2x2x2、6x2、2x3x4等。
构建块还可以包括单个计算节点。但是,如下所述,为了生成工作负载集群,构建块之间的光链接配置为将构建块连接在一起。因此,尽管较小的构建块(例如,具有单个计算节点的构建块)可以在生成工作负载群集时提供更大的灵活性,但是较小的构建块可能需要更多的OCS交换机配置和更多的光网络组件(例如,电缆和交换机)。可以基于工作负载集群的所需灵活性与将构建块连接在一起以形成工作负载集群的要求和所需的OCS交换机数量之间的折衷,来选择构建块中计算节点的数量。
构建块160的每个计算节点可以包括专用集成电路(ASIC),例如用于机器学习工作负载的张量处理单元(TPU)、图形处理单元(GPU)或其他类型的处理单元。例如,每个计算节点可以是包括处理单元的单个处理器芯片。
在一些实施方式中,超级平台中的所有构建块160具有相同的计算节点。例如,超级平台152可以包括64个构建块,每个构建块具有以4x4x4排列的64个TPU,用于执行机器学习工作负载。超级平台还可以包括不同类型的计算节点。例如,超级平台154可以包括具有TPU的60个构建块和具有执行除机器学习工作负载以外的任务的专用处理单元的4个构建块。这样,工作负载的工作负载群集可以包括不同类型的计算节点。超级平台可以包括超级平台中的每种类型的计算节点的多个构建块,以实现冗余和/或允许多个工作负载在超级平台中运行。
在一些实施方式中,超级平台中的所有构建块160具有相同排列,例如,相同尺寸和形状。例如,超级平台152的每个构建块160可以具有4x4x4排列。超级平台也可以具有带有不同排列的构建块。例如,超级平台154可以具有以4x4x4排列的32个构建块和以16x8x16排列的32个构建块。不同的构建块排列可以具有相同或不同的计算节点。例如,具有TPU的构建块的排列可能与具有GPU的构建块的排列不同。
超级平台可以具有不同层次的构建块。例如,超级平台152可以包括具有4x4x4排列的基本级构建块。超级平台152还可以包括具有更多计算节点的中间级构建块。例如,中间级构建块可以具有例如由八个基本级构建块制成的8x8x8排列。这样,与连接基本级构建块以生成较大的工作负载集群相比,可以使用具有较少链接配置的中间级构建块来生成较大的工作负载集群。在超级平台中还具有基本级构建块,从而为较小的工作负载集群提供了灵活性,这些集群可能不需要中间级构建块中的计算节点数量。
单元150内的超级平台152-158可以在构建块中具有相同或不同类型的计算节点。例如,单元150可以包括具有TPU构建块的一个或多个超级平台和具有GPU构建块的一个或多个超级平台。构建块的大小和形状在单元150的不同超级平台152-158中也可以相同或不同。
每个单元150还包括共享数据存储162和共享辅助计算组件164。单元150中的每个超级平台152-158可以使用共享数据存储162,例如,存储由在超级平台152-158中执行的工作负载生成的数据。共享数据存储162可以包括硬盘驱动器、固态驱动器、闪存和/或其他适当的数据存储设备。共享辅助计算组件可以包括在单元150内共享的CPU(例如,通用CPU机器)、GPU和/或其他加速器(例如,视频解码、图像解码等)。辅助计算组件164还可以包括存储设备、存储器设备和/或计算节点可以通过网络共享的其他计算组件。
单元调度器140可以针对从用户设备110接收的每个工作负载选择单元150和/或单元150的超级平台152-158。单元调度器140可以基于为工作负载指定的目标排列、超级平台152-158中的构建块160的可用性以及超级平台152-158中的构建块的健康来选择超级平台。例如,单元调度器140可以为工作负载选择至少包括足够数量的可用且健康的构建块的超级平台,以生成具有目标排列的工作负载集群。如果请求数据指定计算节点的类型,则单元调度器140可以选择具有至少足够数量的具有指定类型的计算节点的可用且健康的构建块的超级平台。
如下所述,每个超级平台152-158还可以包括工作负载调度器和OCS管理器。当单元调度器140选择单元150的超级平台时,单元调度器140可以将工作负载和指定所请求集群的数据提供给该超级平台150的工作负载调度器。如下面更详细地描述的,工作负载调度器可以基于构建块的可用性和健康以及可选地超级平台中的工作负载的优先级而从超级平台的构建块中选择一组构建块进行连接以形成工作负载集群。例如,如下所述,如果工作负载调度器接收到对工作负载群集的请求,其中该工作负载群集包括比超级平台中健康且可用的构建块数量更多的构建块,则工作负载调度器可以将优先级较低的工作负载的构建块重新分配给所请求工作负载集群。工作负载调度器然后可以将识别所选构建块的数据提供给OCS管理器。然后,OCS管理器可以配置一个或多个OCS交换机,以将构建块连接在一起以形成工作负载集群。然后,工作负载调度器可以在工作负载群集的计算节点上执行工作负载。
在一些实施方式中,例如,当为工作负载选择超级平台152-158时,单元调度器140平衡各个单元150与超级平台152-158之间的负载。例如,当在具有用于工作负载的构建块的容量的两个或更多个超级平台之间进行选择时,单元调度器140可以选择具有最大容量的超级平台,例如,最可用和最健康的构建块,或者具有整体容量最大的单元的超级平台。可用的健康的构建块是未执行另一工作负载或活动工作负载集群的一部分且未处于故障状态的构建块。单元调度器可以维护构建块的索引。对于每个构建块,索引可以包括指示构建块是否健康(例如,未处于故障状态)和/或可用(例如,未执行另一工作负载或活动工作负载集群的一部分)的数据。
在一些实施方式中,单元调度器140还可以确定工作负载的目标排列。例如,单元调度器140可以基于所估计的工作负载的计算需求和一种或多种类型的可用计算节点的吞吐量来确定构建块的目标排列。在该示例中,单元调度器140可以将所确定的目标排列提供给超级平台的工作负载调度器。
图2示出了示例逻辑超级平台210以及从超级平台210中的一部分构建块生成的示例工作负载集群220、230和240。在该示例中,超级平台210包括64个构建块,每个构建块具有4x4x4排列。尽管本文档中描述的许多示例都是根据4x4x4构建块进行描述的,但是相同的技术也可以应用于构建块的其他排列。
在超级平台210中,用阴影线表示的构造被分配给工作负载,如下所述。用纯白色表示的构建块是可用的健康构建块。用实心黑色表示的构建块是不健康的节点,其例如由于故障而无法用于生成工作负载群集。
工作负载集群220是8x8x4的平台,其包括来自超级平台210的四个4x4x4构建块。也就是说,工作负载集群220沿x维度具有八个计算节点,沿y维度具有八个计算节点,以及沿z维度具有四个计算节点。由于每个构建块沿每个维度都有四个计算节点,因此工作负载集群220包括沿x维度的两个构建块、沿y维度的两个构建块和沿z维度的一个构建块。
工作负载集群220的四个构建块用斜线阴影线表示,以示出它们在超级平台210中的位置。如图所示,工作负载集群220的构建块彼此不相邻。如下面更详细地描述的,光网络的使用使得能够从超级平台210中的工作负载集群的任何组合生成工作负载集群,而不管它们在超级平台210中的相对位置如何。
工作负载集群230是8x8x8的平台,其包括超级平台210的八个构建块。特别地,工作负载集群包括沿每个维度的两个构建块,这为工作负载集群230提供了沿每个维度的八个计算节点。用垂直阴影线表示了工作负载集群230的构建块,以示出它们在超级平台210中的位置。
工作负载集群240是16x8x16的平台,其包括超级平台210的32个构建块。特别地,工作负载集群240包括沿x维度的四个构建块、沿y维度的两个构建块、以及沿z维度的四个构建块,这为工作负载群集提供了沿x维度的16个计算节点、沿y维度的8个计算节点和沿z维度的16个计算节点。用交叉阴影线表示了工作负载集群240的构建块,以示出它们在超级平台210中的位置。
工作负载集群220、230和240仅仅是可以为工作负载生成的超级平台210的集群的一些示例。工作负载集群的许多其他排列也是可能的。尽管示例工作负载集群220、230和240具有矩形形状,但是其他形状也是可能的。
包括工作负载集群220、230和240的工作负载集群的形状是逻辑形状而不是物理形状。对光网络进行配置,以使构建块沿每个维度进行通信,就好像工作负载群集在逻辑配置中物理连接一样。但是,可以以各种方式将物理构建块及其相应的计算节点物理地排列在数据中心中。可以从任何健康的可用构建块中选择工作负载220、230和240的构建块,而对超级平台210中的构建块之间的物理关系没有任何限制,除了所有构建块都已连接到超级平台210的光网络之外。例如,如上所述和图2所示,工作负载集群220、230和240包括物理上不相邻的构建块。
另外,工作负载集群的逻辑排列不受超级平台的构建块的物理排列的约束。例如,可以将构建块排列成八行八列,而沿z维度仅一个构建块。但是,可以配置工作负载群集,以便通过配置光网络来创建此逻辑排列,从而使工作负载群集包括沿z维度的多个构建块。
图3示出了示例构建块310以及使用构建块310生成的示例工作负载集群320、330和340。构建块310是沿着每个维度具有四个计算节点的4x4x4构建块。在该示例中,构建块310的每个维度包括在每个分段中四个计算节点的16个分段。例如,在构建块310的顶部上有16个计算节点。对于这16个计算节点中的每一个,沿y维度都有一个分段,其包括计算节点和三个其他计算节点,其包括在构建块310的底部上对应的最后计算节点。例如,沿y维度的一个分段包括计算节点301-304。
构建块310内的计算节点可以通过由导电材料(例如铜电缆)制成的内部链接318彼此连接。可以使用内部链接318连接每个维度的每个分段中的计算节点。例如,存在将计算节点301连接到计算节点302的内部链接318。还存在将计算节点302连接到计算节点303的内部链接318和将计算节点303连接到计算节点304的另一个内部链接318。可以以相同的方式连接每个其他分段中的计算节点,以在构建块310的计算节点之间提供内部数据通信。
构建块310还包括将构建块310连接到光网络的外部链接311-316。光网络将构建块310连接到其他构建块。在该示例中,构建块310包括用于x维度的16个外部输入链接311。即,构建块310包括用于沿x维度的16个分段中的每个分段的外部输入链接311。类似地,构建块310包括沿x维度的每个分段的外部输出链接312、沿y维度的每个分段的外部输入链接313、沿y维度的每个分段的外部输出链接314、沿z维度的每个分段的外部输入链接315、以及沿z维度的每个分段的外部输出链接316。由于构建块的某些排列可以具有三个以上的尺寸,例如圆环,因此构建块310可以为构建块310的每个尺寸包括相似的外部链接。
每个外部链接311-316可以是将其相应的计算节点分段上的计算节点连接到光网络的光纤链接。例如,每个外部链接311-316可以将其计算节点连接到光网络的OCS交换机。如下所述,对于构建块310对其具有分段的每个维度,光网络可以包括一个或多个OCS交换机。也就是说,用于x维度的外部链接311和312可以连接到与外部链接313和314不同的OCS交换机。OCS交换机可以被配置为将构建块连接到其他构建块以形成工作负载群集,如下面更详细的描述。
构建块310为4x4x4网格排列的形式。对于4x4x4(或其他尺寸的构建块),其他排列也是可能的。例如,类似于工作负载集群320,构建块310可以是具有环绕的环形链接的三维圆环的形式。也可以通过配置光网络以提供环绕的环形链接321-323来从单个网格构建块310生成工作负载集群320。
环形链接321-323在每个分段的一端与每个分段的另一端之间提供环绕数据通信。例如,环形链接321将沿x维度的每个分段的每一端处的计算节点连接到该分段的另一端处的对应计算节点。环形链接321可以包括将计算节点325连接到计算节点326的链接。类似地,环形链接322可以包括将计算节点325连接到计算节点327的链接。
环形链接321-323可以是导电电缆,例如铜电缆或光链接。例如,环形链接321-323的光链接可以将其对应的计算机节点连接到一个或多个OCS交换机。可以将OCS交换机配置为将数据从每个分段的一端路由到每个分段的另一端。构建块310可以包括用于每个维度的OCS交换机。例如,环形链接321可以连接到第一OCS交换机,该第一OCS交换机在沿x维度的每个分段的一端与沿x维度的每个分段的另一端之间路由数据。类似地,环形链接322可以连接到第二OCS交换机,该第二OCS交换机在沿y维度的每个分段的一端与沿y维度的每个分段的另一端之间路由数据。环形链接322可以连接到第三OCS交换机,该第三OCS交换机在沿z维度的每个分段的一端与沿z维度的每个分段的另一端之间路由数据。
工作负载集群330包括形成4x8x4平台的两个构建块338和339。每个构建块338和339可以与构建块310或工作负载集群320相同。这两个构建块使用外部链接337沿y维度连接。例如,一个或多个OCS交换机可以被配置为在构建块338的y维度分段和构建块339的y维度分段之间路由数据。
另外,可以将一个或多个OCS交换机配置为沿所有三个维度在每个分段的一端与每个分段的另一端之间提供环绕链接331-333。在该示例中,环绕链接333将构建块338的y维度分段的一端连接至构建块339的y维度分段的一端,以为通过两个构建块338和339的组合形成的y维度分段提供完全环绕通信。
工作负载集群340包括形成8x8x8集群的八个构建块(一个未示出)。每个构建块348可以与构建块310相同。使用外部链接345A-345C连接沿x维度连接的构建块链接。类似地,使用外部链接344A-344C连接沿y维度连接的构建块链接,使用外部链接346A-346C连接沿z维度连接的构建块。例如,一个或多个OCS交换机可配置为在x维度分段之间路由数据,一个或多个OCS交换机可配置为在y维度分段之间路由数据,并且一个或多个OCS交换机可配置为在Z维度分段之间路由数据。存在附加外部链接,每个维度用于将构建块(图3中未示出)连接到相邻的构建块。另外,一个或多个OCS交换机可被配置为沿所有三个维度在每个分段的一端与每个分段的另一端之间提供环绕链接341-343。
图4示出了从计算节点到OCS交换机的示例光链接400。可以将超级平台的计算节点安装在数据中心机架的托盘中。每个计算节点可以包括六个高速电链接。电链接中的两个可以连接到计算节点的电路板上,并且四个可以路由到外部电连接器(例如八进制小尺寸可插拔(OSFP)连接器),该连接器连接到端口410(例如OSFP端口)。在该示例中,端口410通过电触点412连接到光学模块420。光学模块420可以将电链接转换成光链接,以将外部链接的长度延长,例如,超过一公里(km),以根据需要在大型数据中心中的计算节点之间提供数据通信。光模块的类型可以基于构建块和OCS交换机之间所需的长度以及链接的所需速度和带宽而变化。
光学模块420通过光纤电缆422和424连接到环行器430。光纤电缆422可以包括一个或多个光纤电缆,用于将数据从光学模块420传送到环行器430。光纤电缆424可以包括一个或多个光纤电缆,用于从环行器430接收数据。例如,光纤电缆422和424可以包括双向光纤或成对的单向TX/RX光纤。环行器430可以通过从单向光纤转换到双向光纤来减少光纤电缆的数量(例如,从两对光缆减少到单对光缆432)。这与OCS交换机的单个OCS端口445很好地对准,OCS交换机通常容纳在一起切换的一对光路(2个光纤)。在一些实施方式中,环行器430可以被集成到光学模块420中或从光链接400中省去。
图5-图7示出了如何使用多个计算托盘形成4x4x4构建块。可以使用类似的技术来形成其他大小和形状的构建块。
图5示出了用于形成4x4x4构建块的逻辑计算托盘500。4x4x4构建块的基本硬件块是具有2x2x1拓扑的单个计算托盘500。在该示例中,计算托盘500具有沿着x维度的两个计算节点、沿着y维度的两个节点以及沿着z维度的一个节点。例如,计算节点501和502形成x维度分段,并且计算节点503和504形成x维度分段。类似地,计算节点501和503形成y维度分段,并且计算节点502和504形成y维度分段。
每个计算节点501-504使用内部链接510(例如,印刷电路板上的铜缆或迹线)连接到其他两个计算节点。每个计算节点还连接到四个外部端口。计算节点501连接到外部端口521。类似地,计算节点502连接到外部端口522,计算节点503连接到外部端口523,并且计算节点504连接到外部端口524。外部端口521-524可以是OSFP或将计算节点连接到OCS交换机的其他端口,如上所述。这些端口可以容纳附接到光纤电缆的电铜或光纤模块。
每个计算节点501-504的外部端口521-524具有一个x维度端口、一个y维度节点和两个z维度节点。这是因为每个计算节点501-504已使用内部链接510连接到x维度和y维度中的另一个计算节点。具有两个z维度的外部端口允许每个计算节点501-504也连接到沿着z维度的两个计算节点。
图6示出了省略了一个维度(z维度)的示例构建块的子块600。特别地,子块600是由2x2排列的计算托盘(例如图1的2x2排列的计算托盘500)形成的4x4x1块。子块600包括以2x2排列的四个计算托盘620A-620D。每个计算托盘620A-620D可以与图5的计算托盘500相同,包括以2x2x1排列的四个计算节点622。
计算托盘620A-620D的计算节点622可以使用内部链接631-634(例如铜电缆)连接。例如,使用内部链接632,计算托盘620A的两个计算节点622沿着y维度连接到计算托盘620B的两个计算节点622。
每个计算托盘620A-620D的两个计算节点622也沿着x维度连接到外部链接640。类似地,每个计算托盘620A-620D的两个计算节点也沿着y维度连接到外部线641。特别地,在每个x维度分段的末端和每个y维度分段的末端的计算节点连接到外部链接640。这些外部链接640可以是连接将计算节点并因此将包括计算节点的构建块(例如,使用图4的光链接400)连接到OCS交换机的光纤电缆。
可以通过沿着z维度将四个子块600连接在一起来形成4x4x4构建块。例如,每个计算托盘620A-620A的计算节点622可以使用内部链接连接到以z维度排列的其他子块600上的计算托盘的一个或两个对应的计算节点。每个z维度分段末端的计算节点可以包括连接到OCS交换机的外部链接640,类似于x维度分段和y维度分段末端的外部链接。
图7示出了示例构建块700。构建块700包括沿着z维度连接的四个子块710A-710D。每个子块710A-710D可以与图6的子块600相同。图7示出了沿着z维度的子块710A-710D之间的一些连接。
具体地,构建块700包括在子块710A-710D的计算托盘715的相应计算节点716之间沿着z维度的内部链接730-733。例如,内部链接730沿着z维度连接计算节点0的分段。类似地,内部链接731沿z维度连接计算节点1的分段,内部链接732沿z维度连接计算节点8的分段,并且内部链接733沿z维度连接计算节点9的分段。尽管未示出,但相似的内部链接连接了计算节点2-7和A-F的分段。
构建块700还沿着z维度在每个分段的末端包括外部链接720。尽管仅针对计算节点0、1、8和9的分段示出了外部链接720,但计算节点2-7和AF的其他每个分段也都包括外部链接720。外部链接可以将分段连接到OCS交换机,类似于x维度和y维度分段的末端的外部链接。
图8示出了用于超级平台的OCS结构拓扑800。在该示例中,OCS结构拓扑包括沿着超级平台的4x4x4构建块的每个维度的每个分段的单独的OCS交换机,该超级平台包括64个构建块805,即构建块0-63。4x4x4构建块805包括沿着x维度的16个分段、沿着y维度的16个分段和沿着z维度的16个分段。在此示例中,OCS结构拓扑包括用于x维度的16个OCS交换机、用于y维度的16个OCS交换机和用于z维度的16个OCS交换机,总共48个OCS交换机,其可以被配置为生成各种工作负载集群。
对于x维度,OCS结构拓扑800包括16个OCS交换机,包括OCS交换机810。对于沿着x维度的每个分段,每个构建块805包括外部输入链接811和外部输出链接812,其连接到用于该分段的OCS交换机810。这些外部链接811和812可以与图4的光学链接400相同或相似。
对于y维度,OCS结构拓扑800包括16个OCS交换机,包括OCS交换机820。对于沿着y维度的每个分段,每个构建块805包括外部输入链接821和外部输出链接822,其连接到用于该分段的OCS交换机810。这些外部链接821和822可以与图4的光学链接400相同或相似。
对于z维度,OCS结构拓扑800包括16个OCS交换机,包括OCS交换机830。对于沿着z维度的每个分段,每个构建块805包括外部输入链接821和外部输出链接822,其连接到用于该分段的OCS交换机810。这些外部链接821和822可以与图4的光学链接400相同或相似。
在其他示例中,例如,取决于OCS基数和/或超级平台中的构建块的数量,多个分段可以共享相同的OCS交换机。例如,如果OCS交换机具有足够数量的端口用于超级平台中所有构建块的所有x维度分段,则所有x维度分段都可以连接到同一OCS交换机。在另一个示例中,如果OCS交换机具有足够数量的端口,则每个维度的两个分段可以共享OCS交换机。但是,通过将超级平台的所有构建块的相应分段连接到同一OCS交换机,可以使用单个路由表在这些分段的计算节点之间进行数据通信。此外,为每个分段或每个维度使用单独的OCS交换机可以简化故障排除和诊断。例如,如果跨特定分段或维度的数据通信存在问题,则与将多个OCS用于该特定分段或维度相比,识别潜在故障的OCS会更容易。
图9示出了示例超级平台900的组件。例如,超级平台900可以是图1的处理系统130的超级平台之一。示例超级平台900包括64个4x4x4构建块960,其可以用于生成执行计算工作负载(例如,机器学习工作负载)的工作负载集群。如上所述,每个4x4x4构建块960包括32个计算节点,其中四个计算节点沿着三个维度的每一个排列。例如,构建块960可以与上述构建块310、工作负载集群320或构建块700相同或相似。
示例超级平台900包括光网络970,其包括48个OCS交换机930、940和950,这些OCS交换机930、940和950使用每个构建块960的96个外部链接931、932和933连接到构建块。每个外部链接可以是光纤链接,其与图4的光链接400相似或相同。
与图8的OCS结构拓扑800相似,光网络970包括用于每个构建块的每个维度的每个分段的OCS交换机。对于x维度,光网络970包括16个OCS交换机950,沿着x维度的每个分段一个。对于每个构建块960,光网络970还包括沿着x维度的构建块960的每个分段的输入外部链接和输出外部链接。这些外部链接将分段上的计算节点连接到该分段的OCS交换机950。由于每个构建块960沿着x维度包括16个分段,因此光网络970包括32个外部链接933(即16个输入链接和16个输出链接),这些外部链接将每个构建块960的x维度分段连接到分段的相应的OCS交换机950。
对于y维度,光网络970包括16个OCS交换机930,沿着y维度的每个分段一个。对于每个构建块960,光网络970还包括沿着y维度的构建块960的每个分段的输入外部链接和输出外部链接。这些外部链接将分段上的计算节点连接到该分段的OCS交换机930。由于每个构建块960包括沿着y维度的16个分段,因此光网络970包括32个外部链接931(即16个输入链接和16个输出链接),这些外部链接将每个构建块960的y维度分段连接到分段的相应OCS交换机930。
对于z维度,光网络970包括16个OCS交换机932,沿着z维度的每个分段一个。对于每个构建块960,光网络970还包括沿着z维度的构建块960的每个分段的输入外部链接和输出外部链接。这些外部链接将分段上的计算节点连接到该分段的OCS交换机940。由于每个构建块960包括沿着z维度的16个分段,因此光网络970包括32个外部链接932(即16个输入链接和16个输出链接),这些外部链接将每个构建块960的z维度分段连接到分段的相应OCS交换机940。
工作负载调度器910可以接收请求数据,该请求数据包括工作负载和指定用于执行工作负载的构建块960的所请求集群的数据。请求数据还可以包括工作负载的优先级。优先级可以以例如高、中或低的水平或以例如1-100的范围或另一适当范围的数值来表示。例如,工作负载调度器910可以从用户设备或单元调度器(例如,图1的用户设备110或单元调度器140)接收请求数据。如上所述,请求数据可以指定计算节点的目标n维度排列(例如,包括计算节点的构建块的目标排列)。
工作负载调度器910可以选择设置的构建块960以生成与由请求数据指定的目标排列相匹配的工作负载集群。例如,工作负载调度器910可以在超级平台900中识别一组可用的健康构建块。如上所述,可用的健康构建块是未执行另一工作负载或活动工作负载集群的一部分并且未处于故障状态的构建块。
例如,工作负载调度器910可以例如以数据库的形式维护和更新状态数据,其指示超级平台中的每个构建块960的状态。构建块960的可用性状态可以指示是否将构建块960分配给工作负载集群。构建块960的健康状态可以指示该构建块是工作还是故障。工作负载调度器910可以识别具有指示未将构建块960分配给工作负载的可用性状态并且具有健康工作状态的构建块960。当将构建块960分配给工作负载(例如,用于为工作负载生成工作负载集群)或具有健康状态更改(例如,从工作变为故障或反之亦然)时,工作负载调度器可以相应地为该构建块960更新状态数据。
工作负载调度器910可以从识别的构建块960中选择与目标排列所定义的数量相匹配的构建块960的数量。如果请求数据指定一种或多种类型的计算节点,则工作负载调度器910可以从所识别的构建块960中选择具有所请求的一种或多种类型的计算节点的构建块。例如,如果请求数据指定具有两个TPU构建块和两个GPU构建块的2x2排列的构建块,则工作负载调度器910可以选择两个具有TPU的可用健康构建块和两个具有GPU的健康可用构建块。
工作负载调度器910还可以基于当前在超级平台中运行的每个工作负载的优先级和包括在请求数据中的工作负载的优先级来选择构建块960。如果超级平台900没有足够的可用健康构建块来生成用于所请求的工作负载的工作负载集群,则工作负载调度器910可以确定是否存在优先级低于所请求的工作负载的在超级平台900中正在执行的任何工作负载。如果是这样,则工作负载调度器910可以将构建块从一个或多个较低优先级工作负载的工作负载集群重新分配给所请求的工作负载的工作负载集群。例如,工作负载调度器910可以终止较低优先级工作负载,延迟较低优先级工作负载,或者减小较低优先级工作负载的工作负载集群的大小,以释放用于较高优先级的工作负载的构建块。
工作负载调度器910可以简单地通过重新配置光网络(例如,通过配置如下所述的OCS交换机)来将构建块从一个工作负载集群重新分配给另一工作负载集群,以使得该构建块连接到较高优先级的构建块,而不是较低优先级的构建块。类似地,如果较高优先级工作负载的构建块发生故障,则工作负载调度器910可以通过重新配置光网络来将较低优先级工作负载的工作负载集群的构建块重新分配给较高优先级工作负载的工作负载集群。
工作负载调度器910可以生成每个工作的配置数据912并将其提供给超级平台900的OCS管理器920。每个工作的配置数据912可以为工作负载和构建块的排列指定所选的构建块960。例如,如果该排列是2x2排列,则该排列包括用于构建块的四个点。每个工作的配置数据可以指定哪个选择的构建块960进入四个点中的每个点。
每个工作的配置数据912可以使用每个构建块的逻辑标识符来识别所选择的构建块960。例如,每个构建块960可以包括唯一逻辑标识符。在特定示例中,可以将64个构建块960编号为0-63,并且这些数字可以是唯一逻辑标识符。
OCS管理器920使用每个工作的配置数据912来配置OCS交换机930、940和/或950以生成与每个工作的配置数据所指定的排列相匹配的工作负载集群。每个OCS交换机930、940和950均包括路由表,该路由表用于在OCS交换机的物理端口之间路由数据。例如,假设将第一构建块的x维度分段的输出外部链接连接到第二构建块的相应x维度分段的输入外部链接。在该示例中,用于该x维度分段的OCS交换机950的路由表将指示在这些分段所连接的OCS交换机的物理端口之间的数据将在彼此之间路由。
OCS管理器920可以维护端口数据,该端口数据将每个OCS交换机920、930和940的每个端口映射到每个构建块的每个逻辑端口。对于构建块的每个x维度分段,此端口数据可以指定外部输入链接连接到OCS交换机950的哪个物理端口以及外部输出链接连接到OCS交换机950的哪个物理端口。对于超级平台900的每个构建块960的每个维度,端口数据可以包括相同的数据。
OCS管理器920可以使用该端口数据来配置OCS交换机930、940和/或950的路由表,以生成用于工作负载的工作负载集群。例如,假定第一构建块将连接到2x1排列的第二构建块,其中该第一构造在x维度中位于第二构建块的左侧。OCS管理器920将更新x维度的OCS交换机950的路由表,以在第一构建块和第二构建块的x维度分段之间路由数据。由于将需要连接构建块的每个x维度分段,因此OCS管理器920可以更新每个OCS交换机950的路由表。
对于每个x维度分段,OCS管理器920可以更新该分段的OCS交换机950的路由表。特别地,OCS管理器920可以更新路由表以将第一构建块的分段连接到的OCS交换机950的物理端口映射到第二构建块的分段连接到的OCS交换机的物理端口。由于每个x维度分段都包括输入链接和输出链接,因此OCS管理器920可以更新路由表,使得第一构建块的输入链接被连接到第二构建块的输出链接并且第一构建块的输出链接被连接到第二构建块的输入链接。
OCS管理器920可以通过从每个OCS交换机获得当前路由表来更新路由表。OCS管理器920可以更新适当的路由表,并且将更新的路由表发送到适当的OCS交换机。在另一个示例中,OCS管理器920可以向OCS交换机发送指定更新的更新数据,并且OCS交换机可以根据该更新数据来更新其路由表。
在将OCS交换机配置有其更新的路由表之后,将生成工作负载群集。然后,工作负载调度器910可以使工作负载由工作负载集群的计算节点执行。例如,工作负载调度器910可以将工作负载提供给工作负载集群的计算节点以供执行。
在工作负载完成之后,工作负载调度器910可以将用于生成工作负载集群的每个构建块的状态更新为可用。工作负载调度器910还可以指示OCS管理器920移除用于生成工作负载集群的构建块之间的连接。继而,OCS管理器920可以更新路由表以移除用于在构建块之间路由数据的OCS交换机的物理端口之间的映射。
使用OCS交换机配置光纤结构拓扑以这种方式为工作负载生成工作负载群集,使超级平台能够以动态和安全的方式托管多个工作负载。当接收到新工作负载并且工作负载完成时,工作负载调度器920可以动态地生成和终止工作负载集群。与传统的超级计算机相比,OCS交换机提供的分段之间的路由在同一超级平台中执行的不同工作负载之间提供了更好的安全性。例如,OCS交换机通过工作负载之间的气隙使工作负载在物理上彼此分离。传统的超级计算机使用提供工作负载之间隔离的软件,这更容易受到数据泄露的影响。
图10是示出了用于生成工作负载集群并使用该工作负载集群来执行计算工作负载的示例过程1000的流程图。可以由包括一个或多个数据处理装置的系统来执行过程1000的操作。例如,过程1000的操作可以由图1的处理系统130执行。
系统接收指定计算节点的所请求集群的请求数据(1010)。例如,可以从用户设备接收请求数据。请求数据可以包括计算工作负载和指定计算节点的目标n维度排列的数据。例如,请求数据可以指定包括计算节点的构建块的目标n维度排列。
在一些实施方式中,请求数据还可以指定构建块的计算节点的类型。超级平台可以包括具有不同类型的计算节点的构建块。例如,超级平台可以包括90个构建块(每个构建块包括4x4x4排列的TPU)以及10个专用构建块(其包括2x1排列的专用计算节点)。请求数据可以指定每种类型的计算节点的构建块的数量以及这些构建块的排列。
系统从包括一组构建块的超级平台中为所请求集群选择构建块的子集(1020)。如上所述,超级平台可以包括一组构建块,其具有三维度排列的计算节点,例如,4x4x4排列的计算节点。系统可以选择与目标排列定义的数量匹配的数量的构建块。如上所述,系统可以选择健康且可用于所请求集群的构建块。
构建块的子集可以是构建块的适当子集。适当子集是不包括集合中所有成员的子集。例如,可能需要少于所有构建块才能生成与计算节点的目标排列匹配的工作负载集群。
系统生成工作负载集群,该工作负载集群包括计算节点的所选子集(1030)。工作负载集群可以具有与请求数据指定的目标排列相匹配的构建块排列。例如,如果请求数据指定计算节点的4x8x4排列,则工作负载集群可以包括如图3的工作负载集群330那样排列的两个构建块。
为了生成工作负载集群,系统可以为工作负载集群的每个维度配置路由数据。例如,如上所述,超级平台可以包括光网络,该光网络包括针对构建块的每个维度的一个或多个OCS交换机。一个维度的路由数据可以包括一个或多个OCS交换机的路由表。如以上参考图9所述,OCS交换机的路由表可以被配置为沿着每个维度在计算节点的适当分段之间路由数据。
系统使工作负载集群的计算节点执行计算工作负载(1040)。例如,系统可以将计算工作负载提供给工作负载集群的计算节点。在执行计算工作负载时,已配置的OCS交换机可以在工作负载集群的构建块之间路由数据。已配置的OCS交换机可以在构建块的计算节点之间路由数据,就像计算节点在目标排列中物理连接一样,尽管计算节点在该排列中并未物理连接。
例如,维度的每个分段的计算节点可以跨OCS交换机将数据传达到该分段的位于不同的构建块中的其他计算节点,就好像该分段中的计算节点在单个物理分段中物理上连接在一起一样。这与分组交换网络不同,因为工作负载群集的此配置在相应的分段之间提供了真正的端到端光路径,中间没有分组交换或缓冲。在分组交换中,存在增加的延迟,因为分组需要由交换机接收,缓冲并在另一个端口上再次传送。
在计算工作负载完成之后,系统可以释放其他工作负载的构建块,例如,通过将构建块的状态更新为可用状态并且将路由数据更新为不再在工作负载集群的构建块之间路由数据。
图11是示出用于重新配置光网络以替换故障的构建块的示例过程1100的流程图。过程1100的操作可以由包括一个或多个数据处理装置的系统来执行。例如,过程1100的操作可以由图1的处理系统130执行。
系统使工作负载集群的计算节点执行计算工作负载(1110)。例如,系统可以使用图10的过程1000来生成工作负载集群并且使计算节点执行计算工作负载。
系统接收指示工作负载集群的构建块已故障的数据(1120)。例如,如果构建块的一个或多个计算节点发生故障,则另一组件(例如,监视组件)可以确定该构建块已发生故障并将指示该构建块已发生故障的数据发送给系统。
系统识别可用构建块(1130)。例如,系统可以在与工作负载集群的其他构建块相同的超级平台中识别可用的健康构建块。系统可以基于例如由系统维护的构建块的状态数据来识别可用的健康构建块。
系统将已故障的构建块替换为所识别的可用构建块(1140)。系统可以更新连接构造块的光网络的一个或多个OCS交换机的路由数据,以将已故障的构造块替换为所识别的可用构建块。例如,系统可以更新一个或多个OCS交换机的路由表,以移除工作负载集群的其他构建块与已故障的构建块之间的连接。系统还可以更新一个或多个OCS交换机的路由表,以将所识别的构建块连接到工作负载集群的其他构建块。
系统可以在逻辑上将所识别的构建块排列在已故障的构建块点的逻辑点中。如上所述,OCS交换机的路由表可以将连接到构建块的分段的OCS交换机的物理端口映射到连接到另一个构建块的对应分段的OCS交换机的物理端口。在该示例中,系统可以通过将映射更新为所识别的可用构建块而不是已故障的构建块的相应分段来进行替换。
例如,假设用于已故障的构建块的特定x维度分段的输入外部链接连接到OCS交换机的第一端口,并且所识别的可用构建块的对应x维度分段的输入外部链接连接到OCS交换机的第二端口。还假设路由表将OCS交换机的第一端口映射到第三端口,该OCS交换机连接到另一个构建块的相应x维度分段。为了进行替换,系统可以更新路由表的映射以将第二端口映射到第三端口,而不是将第一端口映射到第三端口。系统可以对故障构建块的每个分段执行此操作。
本说明书中描述的主题和操作的实施方式可以在数字电子电路中,或在计算机软件、固件或硬件中实施,包括在本说明书中公开的结构及其等同结构,或者以它们的一种或多种的组合来实施。本说明书中描述的主题的实施例可以被实现为一种或多种计算机程序,即,计算机程序指令的一个或多个模块,其被编码在计算机存储介质上以由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置以通过数据处理装置来执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备或它们中的一个或多个的组合中。此外,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)或包括在其中。
本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的数据执行的操作。
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机、片上系统、或以上的多个或组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础设施,例如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言、声明性或过程语言)编写,并且可以部署为任何形式,包括作为独立程序或作为模块、组件、子例程、对象或其他适合在计算环境中使用的单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),专用于所讨论程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)。可以将计算机程序部署为在一台计算机上执行,或者在位于一个站点上或分布在多个站点上并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。处理和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁,磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备或将数据传输到一个或多个大容量存储设备,或两者。但是,计算机不必具有此类设备。此外,计算机可以嵌入到另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)等。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,可以在具有显示设备的计算机上实现本说明书中描述的主题的实施例,该显示设备例如是CRT(阴极射线管)或LCD(液晶显示)监视器,用于向用户显示信息以及键盘和指点设备(例如鼠标或轨迹球),用户可以通过它们向计算机提供输入。其他种类的设备也可以用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互,例如,通过响应于从网页浏览器接收到的请求,将网页发送到用户客户端设备上的网页浏览器。
本说明书中描述的主题的实施例可以在包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面的客户端计算机或Web浏览器,用户可通过该Web浏览器与本说明书中描述的主题的实现进行交互),或者一种或多种此类后端、中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如互联网)和对等网络(例如ad hoc对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,出于向与客户端设备交互的用户显示数据并从用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
尽管本说明书包括许多特定的实施细节,但是这些不应被解释为对任何发明或可要求保护的范围的限制,而是对特定发明的特定实施例的特定特征的描述。在单独的实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中切除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的效果。结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。
因此,已经描述了本主题的特定实施例。其他实施例在所附权利要求的范围内。在某些情况下,可以以不同的顺序执行权利要求中记载的动作,并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可能是有利的。
Claims (20)
1.一种由一个或多个数据处理装置执行的方法,所述方法包括:
识别用于执行计算工作负载的计算节点的目标排列;以及
生成具有与计算节点的所述目标排列匹配的排列的计算节点的工作负载集群,包括:
对于n维度中的每个维度,配置针对该维度的光网络的一个或多个光电路交换,使得在该维度中排列的多个构建块的计算节点通过针对该维度的所述一个或多个光电路交换彼此通信,其中,所述多个构建块通信地耦合到所述光网络,其中,每个构建块包括计算节点的n维度排列,多个计算节点在所述n维度中的每个维度中排列,n大于或等于2;以及
使所述工作负载集群的所述计算节点执行所述计算工作负载。
2.根据权利要求1所述的方法,其中,对于每个维度配置所述一个或多个光电路交换包括对于每个维度配置所述一个或多个光交换的相应路由数据,所述相应路由数据指定所述计算工作负载的数据如何沿着该维度在计算节点之间被路由。
3.根据权利要求1所述的方法,进一步包括:
从用于所述计算工作负载的构建块集合中选择构建块子集作为所述多个构建块。
4.根据权利要求1所述的方法,其中,每个构建块包括沿着所述n维度中的每个维度的计算节点的多个分段,并且所述光网络包括用于所述多个构建块的每个维度的每个分段的相应光电路交换。
5.根据权利要求1所述的方法,其中,每个构建块包括计算节点的三维环面或计算节点的网格中的一个。
6.根据权利要求1所述的方法,进一步包括:
接收指示所述工作负载集群的给定构建块已故障的数据;以及
用所述多个构建块中的可用构建块替换所述给定构建块,所述替换包括在对应的一个或多个维度上重新配置所述一个或多个光电路交换,使得所述可用构建块的所述计算节点在所述对应的一个或多个维度上与所述工作负载集群的其他计算节点通信。
7.根据权利要求1所述的方法,其中:
识别用于执行所述计算工作负载的计算节点的所述目标排列包括接收指定计算节点的所述目标排列和要包括在计算节点的所述目标排列中的不同类型的计算节点的请求数据。
8.根据权利要求7所述的方法,进一步包括:针对由所述请求数据指定的每种类型的计算节点,确定包括所述类型的计算节点的一个或多个计算节点的构建块。
9.一种系统,包括:
数据处理装置;以及
编码有计算机程序的计算机存储介质,所述程序包括数据处理装置指令,所述数据处理装置指令在由所述数据处理装置执行时使所述数据处理装置执行操作,所述操作包括:
识别用于执行计算工作负载的计算节点的目标排列;以及
生成具有与计算节点的所述目标排列匹配的排列的计算节点的工作负载集群,包括:
对于n维度中的每个维度,配置针对该维度的光网络的一个或多个光电路交换,使得在该维度中排列的多个构建块的计算节点通过针对该维度的所述一个或多个光电路交换彼此通信,其中,所述多个构建块通信地耦合到所述光网络,其中,每个构建块包括计算节点的n维度排列,多个计算节点在所述n维度中的每个维度中排列,n大于或等于2;以及
使所述工作负载集群的所述计算节点执行所述计算工作负载。
10.根据权利要求9所述的系统,其中,对于每个维度配置所述一个或多个光电路交换包括对于每个维度配置所述一个或多个光交换的相应路由数据,所述相应路由数据指定所述计算工作负载的数据如何沿着该维度在计算节点之间被路由。
11.根据权利要求9所述的系统,其中,所述操作进一步包括:
从用于所述计算工作负载的构建块集合中选择构建块子集作为所述多个构建块。
12.根据权利要求9所述的系统,其中,每个构建块包括沿着所述n维度中的每个维度的计算节点的多个分段,并且所述光网络包括用于所述多个构建块的每个维度的每个分段的相应光电路交换。
13.根据权利要求9所述的系统,其中,每个构建块包括计算节点的三维环面或计算节点的网格中的一个。
14.根据权利要求9所述的系统,其中,所述操作进一步包括:
接收指示所述工作负载集群的给定构建块已故障的数据;以及
用所述多个构建块中的可用构建块替换所述给定构建块,所述替换包括在对应的一个或多个维度上重新配置所述一个或多个光电路交换,使得所述可用构建块的所述计算节点在所述对应的一个或多个维度上与所述工作负载集群的其他计算节点通信。
15.根据权利要求9所述的系统,其中:
识别用于执行所述计算工作负载的计算节点的所述目标排列包括接收指定计算节点的所述目标排列和要包括在计算节点的所述目标排列中的不同类型的计算节点的请求数据。
16.根据权利要求15所述的系统,其中,所述操作进一步包括:针对由所述请求数据指定的每种类型的计算节点,确定包括所述类型的计算节点的一个或多个计算节点的构建块。
17.一种编码有计算机程序的非暂时性计算机存储介质,所述程序包括指令,所述指令在由一个或多个数据处理装置执行时使所述一个或多个数据处理装置执行操作,所述操作包括:
识别用于执行计算工作负载的计算节点的目标排列;以及
生成具有与计算节点的所述目标排列匹配的排列的计算节点的工作负载集群,包括:
对于n维度中的每个维度,配置针对该维度的光网络的一个或多个光电路交换,使得在该维度中排列的多个构建块的计算节点通过针对该维度的所述一个或多个光电路交换彼此通信,其中,所述多个构建块通信地耦合到所述光网络,其中,每个构建块包括计算节点的n维度排列,多个计算节点在所述n维度中的每个维度中排列,n大于或等于2;以及
使所述工作负载集群的所述计算节点执行所述计算工作负载。
18.根据权利要求17所述的非暂时性计算机存储介质,其中,对于每个维度配置所述一个或多个光电路交换包括对于每个维度配置所述一个或多个光交换的相应路由数据,所述相应路由数据指定所述计算工作负载的数据如何沿着该维度在计算节点之间被路由。
19.根据权利要求17所述的非暂时性计算机存储介质,进一步包括:
从用于所述计算工作负载的构建块集合中选择构建块子集作为所述多个构建块。
20.根据权利要求17所述的非暂时性计算机存储介质,其中,每个构建块包括沿着所述n维度中的每个维度的计算节点的多个分段,并且所述光网络包括用于所述多个构建块的每个维度的每个分段的相应光电路交换。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962814757P | 2019-03-06 | 2019-03-06 | |
US62/814,757 | 2019-03-06 | ||
US16/381,951 US11042416B2 (en) | 2019-03-06 | 2019-04-11 | Reconfigurable computing pods using optical networks |
US16/381,951 | 2019-04-11 | ||
PCT/US2019/067100 WO2020180387A1 (en) | 2019-03-06 | 2019-12-18 | Reconfigurable computing pods using optical networks |
CN201980069191.8A CN112889032B (zh) | 2019-03-06 | 2019-12-18 | 使用光网络的可重新配置的计算平台 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980069191.8A Division CN112889032B (zh) | 2019-03-06 | 2019-12-18 | 使用光网络的可重新配置的计算平台 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117873727A true CN117873727A (zh) | 2024-04-12 |
Family
ID=72336372
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410134763.9A Pending CN117873727A (zh) | 2019-03-06 | 2019-12-18 | 使用光网络的可重新配置的计算平台 |
CN201980069191.8A Active CN112889032B (zh) | 2019-03-06 | 2019-12-18 | 使用光网络的可重新配置的计算平台 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980069191.8A Active CN112889032B (zh) | 2019-03-06 | 2019-12-18 | 使用光网络的可重新配置的计算平台 |
Country Status (7)
Country | Link |
---|---|
US (3) | US11042416B2 (zh) |
EP (1) | EP3853732A1 (zh) |
JP (2) | JP7242847B2 (zh) |
KR (2) | KR102583771B1 (zh) |
CN (2) | CN117873727A (zh) |
BR (1) | BR112021007538A2 (zh) |
WO (1) | WO2020180387A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847918B2 (en) * | 2014-08-12 | 2017-12-19 | Microsoft Technology Licensing, Llc | Distributed workload reassignment following communication failure |
US11042416B2 (en) * | 2019-03-06 | 2021-06-22 | Google Llc | Reconfigurable computing pods using optical networks |
US11847012B2 (en) * | 2019-06-28 | 2023-12-19 | Intel Corporation | Method and apparatus to provide an improved fail-safe system for critical and non-critical workloads of a computer-assisted or autonomous driving vehicle |
US11516087B2 (en) * | 2020-11-30 | 2022-11-29 | Google Llc | Connecting processors using twisted torus configurations |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4598400A (en) * | 1983-05-31 | 1986-07-01 | Thinking Machines Corporation | Method and apparatus for routing message packets |
US6853635B1 (en) * | 2000-07-24 | 2005-02-08 | Nortel Networks Limited | Multi-dimensional lattice network |
US20030023709A1 (en) | 2001-02-28 | 2003-01-30 | Alvarez Mario F. | Embedded controller and node management architecture for a modular optical network, and methods and apparatus therefor |
AU2003293432A1 (en) | 2002-12-04 | 2004-06-23 | Corning Incorporated | Fast-switching scalable optical interconnection design with fast contention resolution |
US8401385B2 (en) | 2003-10-02 | 2013-03-19 | Trex Enterprises Corp. | Optically switched communication network |
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 |
US7518120B2 (en) | 2005-01-04 | 2009-04-14 | The Regents Of The University Of Michigan | Long-distance quantum communication and scalable quantum computation |
JP2006215816A (ja) * | 2005-02-03 | 2006-08-17 | Fujitsu Ltd | 情報処理システムおよび情報処理システムの制御方法 |
US8194638B2 (en) | 2006-07-27 | 2012-06-05 | International Business Machines Corporation | Dual network types solution for computer interconnects |
CN101330413B (zh) * | 2007-06-22 | 2012-08-08 | 上海红神信息技术有限公司 | 基于环绕网络与超立方网络架构的混合多阶张量扩展方法 |
CN101354694B (zh) * | 2007-07-26 | 2010-10-13 | 上海红神信息技术有限公司 | 基于mpu架构的超高扩展超级计算系统 |
WO2009055016A2 (en) | 2007-10-23 | 2009-04-30 | Hewlett-Packard Development Company, L.P. | Integrated circuit with optical interconnect |
EP2083532B1 (en) * | 2008-01-23 | 2013-12-25 | Comptel Corporation | Convergent mediation system with improved data transfer |
US7856544B2 (en) * | 2008-08-18 | 2010-12-21 | International Business Machines Corporation | Stream processing in super node clusters of processors assigned with stream computation graph kernels and coupled by stream traffic optical links |
US8296419B1 (en) | 2009-03-31 | 2012-10-23 | Amazon Technologies, Inc. | Dynamically modifying a cluster of computing nodes used for distributed execution of a program |
US8270830B2 (en) | 2009-04-01 | 2012-09-18 | Fusion-Io, Inc. | Optical network for cluster computing |
US8619605B2 (en) * | 2009-05-13 | 2013-12-31 | Avaya Inc. | Method and apparatus for maintaining port state tables in a forwarding plane of a network element |
US8719415B1 (en) | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US8260840B1 (en) | 2010-06-28 | 2012-09-04 | Amazon Technologies, Inc. | Dynamic scaling of a cluster of computing nodes used for distributed execution of a program |
US8824491B2 (en) | 2010-10-25 | 2014-09-02 | Polytechnic Institute Of New York University | Distributed scheduling for variable-size packet switching system |
KR101254706B1 (ko) * | 2011-09-27 | 2013-04-15 | 성균관대학교산학협력단 | 3차원 네트워크 온 칩 |
US20130156425A1 (en) * | 2011-12-17 | 2013-06-20 | Peter E. Kirkpatrick | Optical Network for Cluster Computing |
US8867915B1 (en) | 2012-01-03 | 2014-10-21 | Google Inc. | Dynamic data center network with optical circuit switch |
CN104221396A (zh) | 2012-02-03 | 2014-12-17 | 光机队公司 | 可扩展的光广播互连 |
US9465632B2 (en) | 2012-02-04 | 2016-10-11 | Global Supercomputing Corporation | Parallel hardware hypervisor for virtualizing application-specific supercomputers |
US9229163B2 (en) | 2012-05-18 | 2016-01-05 | Oracle International Corporation | Butterfly optical network with crossing-free switches |
US9479219B1 (en) * | 2012-09-24 | 2016-10-25 | Google Inc. | Validating a connection to an optical circuit switch |
US9332323B2 (en) * | 2012-10-26 | 2016-05-03 | Guohua Liu | Method and apparatus for implementing a multi-dimensional optical circuit switching fabric |
JP6122135B2 (ja) * | 2012-11-21 | 2017-04-26 | コーヒレント・ロジックス・インコーポレーテッド | 分散型プロセッサを有する処理システム |
US10394611B2 (en) | 2012-11-26 | 2019-08-27 | Amazon Technologies, Inc. | Scaling computing clusters in a distributed computing system |
KR101465420B1 (ko) * | 2013-10-08 | 2014-11-27 | 성균관대학교산학협력단 | 네트워크 온 칩 및 네트워크 온 칩의 신호를 라우팅하는 방법 |
CN103580771B (zh) * | 2013-11-11 | 2016-01-20 | 清华大学 | 基于时间同步的全光时片交换方法 |
CN104731796B (zh) * | 2013-12-19 | 2017-12-19 | 秒针信息技术有限公司 | 数据存储计算方法和系统 |
US11290524B2 (en) * | 2014-08-13 | 2022-03-29 | Microsoft Technology Licensing, Llc | Scalable fault resilient communications within distributed clusters |
US10158530B2 (en) * | 2014-08-18 | 2018-12-18 | Advanced Micro Devices, Inc. | Configuration of a cluster server using cellular automata |
US10200292B2 (en) * | 2014-08-25 | 2019-02-05 | Intel Corporation | Technologies for aligning network flows to processing resources |
US9521089B2 (en) | 2014-08-30 | 2016-12-13 | International Business Machines Corporation | Multi-layer QoS management in a distributed computing environment |
JP6413634B2 (ja) * | 2014-10-30 | 2018-10-31 | 富士通株式会社 | ジョブ管理プログラム、ジョブ管理方法、およびジョブ管理装置 |
US20160241474A1 (en) * | 2015-02-12 | 2016-08-18 | Ren Wang | Technologies for modular forwarding table scalability |
US10694268B2 (en) * | 2015-03-23 | 2020-06-23 | Aeponyx Inc. | Photonic switches, photonic switching fabrics and methods for data centers |
US10334334B2 (en) * | 2016-07-22 | 2019-06-25 | Intel Corporation | Storage sled and techniques for a data center |
US10389800B2 (en) * | 2016-10-11 | 2019-08-20 | International Business Machines Corporation | Minimizing execution time of a compute workload based on adaptive complexity estimation |
US10834484B2 (en) * | 2016-10-31 | 2020-11-10 | Ciena Corporation | Flat, highly connected optical network for data center switch connectivity |
US10243687B2 (en) * | 2016-11-17 | 2019-03-26 | Google Llc | Optical network unit wavelength tuning |
CN106851442B (zh) | 2017-01-19 | 2019-05-21 | 西安电子科技大学 | 一种超级计算机中的光互连网络系统及通信方法 |
CN107094270A (zh) * | 2017-05-11 | 2017-08-25 | 中国科学院计算技术研究所 | 可重构的互连系统及其拓扑构建方法 |
JP6885193B2 (ja) * | 2017-05-12 | 2021-06-09 | 富士通株式会社 | 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム |
CN107241660B (zh) * | 2017-06-26 | 2021-07-06 | 国网信息通信产业集团有限公司 | 面向智能电网业务的全光灵活粒度的交换网络架构及方法 |
US10552227B2 (en) * | 2017-10-31 | 2020-02-04 | Calient Technologies, Inc. | Reconfigurable computing cluster with assets closely coupled at the physical layer by means of an optical circuit switch |
US11042416B2 (en) * | 2019-03-06 | 2021-06-22 | Google Llc | Reconfigurable computing pods using optical networks |
US11122347B2 (en) * | 2019-07-01 | 2021-09-14 | Google Llc | Reconfigurable computing pods using optical networks with one-to-many optical switches |
-
2019
- 2019-04-11 US US16/381,951 patent/US11042416B2/en active Active
- 2019-12-18 CN CN202410134763.9A patent/CN117873727A/zh active Pending
- 2019-12-18 WO PCT/US2019/067100 patent/WO2020180387A1/en unknown
- 2019-12-18 CN CN201980069191.8A patent/CN112889032B/zh active Active
- 2019-12-18 KR KR1020217011905A patent/KR102583771B1/ko active IP Right Grant
- 2019-12-18 KR KR1020237032481A patent/KR102625118B1/ko active IP Right Grant
- 2019-12-18 EP EP19839305.0A patent/EP3853732A1/en active Pending
- 2019-12-18 BR BR112021007538-0A patent/BR112021007538A2/pt unknown
- 2019-12-18 JP JP2021522036A patent/JP7242847B2/ja active Active
-
2021
- 2021-05-27 US US17/332,769 patent/US11537443B2/en active Active
-
2022
- 2022-12-05 US US18/075,332 patent/US20230161638A1/en active Pending
-
2023
- 2023-03-08 JP JP2023035587A patent/JP2023078228A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US11537443B2 (en) | 2022-12-27 |
JP7242847B2 (ja) | 2023-03-20 |
KR102583771B1 (ko) | 2023-09-27 |
US11042416B2 (en) | 2021-06-22 |
KR20210063382A (ko) | 2021-06-01 |
BR112021007538A2 (pt) | 2021-07-27 |
CN112889032B (zh) | 2024-02-06 |
US20200285524A1 (en) | 2020-09-10 |
EP3853732A1 (en) | 2021-07-28 |
CN112889032A (zh) | 2021-06-01 |
US20230161638A1 (en) | 2023-05-25 |
JP2022522320A (ja) | 2022-04-18 |
WO2020180387A1 (en) | 2020-09-10 |
US20210286656A1 (en) | 2021-09-16 |
KR102625118B1 (ko) | 2024-01-12 |
KR20230141921A (ko) | 2023-10-10 |
JP2023078228A (ja) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112889032B (zh) | 使用光网络的可重新配置的计算平台 | |
CN112188325B (zh) | 使用具有一对多光交换机的光网络的可重新配置的计算平台 | |
CN107769956B (zh) | 计算系统和冗余资源连接结构 | |
JP4676463B2 (ja) | 並列計算機システム | |
US8934483B2 (en) | Data center switch | |
US9258253B2 (en) | System and method for flexible switching fabric | |
US20220121928A1 (en) | Enhanced reconfigurable interconnect network | |
JPH06325005A (ja) | 再構成可能なトーラス・ネットワーク方式 | |
CN111698113A (zh) | 利用约束来确定优化的网络规划并且实现优化的网络规划 | |
US20200235815A1 (en) | Methods and sysems for reconfigurable network topologies | |
CN111684421A (zh) | 服务器系统 | |
EP3716508B1 (en) | Multilayer and interactive user interfaces for displaying features of an optimized network plan | |
JP2019008648A (ja) | 情報処理システム及び情報処理方法 | |
Correa et al. | Statistical approaches to predicting and diagnosing performance problems in component-based distributed systems: An experimental evaluation | |
JP7306481B2 (ja) | 分散処理システム | |
US20240154906A1 (en) | Creation of cyclic dragonfly and megafly cable patterns | |
Guo | Data Center Networking: Network Topologies and Traffic Management in Large-Scale Data Centers |
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 |