JP2022522320A - Reconfigurable Computation Pod Using Optical Network - Google Patents
Reconfigurable Computation Pod Using Optical Network Download PDFInfo
- Publication number
- JP2022522320A JP2022522320A JP2021522036A JP2021522036A JP2022522320A JP 2022522320 A JP2022522320 A JP 2022522320A JP 2021522036 A JP2021522036 A JP 2021522036A JP 2021522036 A JP2021522036 A JP 2021522036A JP 2022522320 A JP2022522320 A JP 2022522320A
- Authority
- JP
- Japan
- Prior art keywords
- workload
- building blocks
- dimension
- compute
- building block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 118
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 239000000835 fiber Substances 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 12
- 239000004744 fabric Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 239000013307 optical fiber Substances 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
- 238000013507 mapping Methods 0.000 description 5
- 238000000926 separation method Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000036541 health Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000001902 propagating effect Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 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
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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/0005—Switch and router 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
-
- 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次元構成の計算ノードを含む1組のビルディングブロックを含むスーパポッドから、組み合わせられると、要求データによって指定された目標構成に一致するビルディングブロックの部分セットを選択する。1組のビルディングブロックは、1つ以上の光回路スイッチを含む光ネットワークに接続される。ビルディングブロックの部分セットを含む計算ノードのワークロードクラスタを生成する。ワークロードクラスタの生成は、ワークロードクラスタの各次元のための1つ以上の光回路スイッチのそれぞれのルーティングデータを構成することを含む。Methods, systems and appliances for creating clusters of building blocks of compute nodes using optical networks. In one aspect, the method comprises receiving request data specifying a compute node requested to perform a compute workload. The request data specifies the n-dimensional target configuration of the compute node. From a superpod containing a set of building blocks, each containing a compute node in an m-dimensional configuration, select a subset of the building blocks that, when combined, match the target configuration specified by the request data. A set of building blocks is connected to an optical network containing one or more optical circuit switches. Generate a workload cluster of compute nodes that contains a subset of building blocks. Creating a workload cluster involves configuring the routing data for each of one or more optical circuit switches for each dimension of the workload cluster.
Description
背景
いくつかの計算ワークロード、例えば機械学習トレーニングは、ワークロードを効率的に処理するために多くの処理ノードを必要とする。処理ノードは、相互接続ネットワークを介して互いに通信することができる。例えば、機械学習トレーニングの場合、処理ノードは、互いに通信することによって、最適な深層学習モデルに収束することができる。相互接続ネットワークは、処理ユニットが収束を達成する速度および効率にとって重要である。
Background Some computational workloads, such as machine learning training, require many processing nodes to process the workload efficiently. Processing nodes can communicate with each other via an interconnect network. For example, in the case of machine learning training, processing nodes can converge to an optimal deep learning model by communicating with each other. The interconnect network is important for the speed and efficiency with which the processing unit achieves convergence.
機械学習および他のワークロードのサイズおよび複雑性が変化するため、複数の処理ノードを含むスーパコンピュータの固定した構成は、スーパコンピュータの利用可能性、拡張性および性能を制限してしまう場合がある。例えば、複数の処理ノードからなる特定の構成を接続する固定の相互接続ネットワークを有するスーパコンピュータのいくつかの処理ノードが故障した場合、スーパコンピュータは、故障した処理ノードを置換することができないため、利用可能性および性能が低下する。また、いくつかの特定の構成の性能は、故障したノードに関係なく他の構成の性能よりも高くなる場合がある。 Due to the changing size and complexity of machine learning and other workloads, a fixed configuration of a supercomputer with multiple processing nodes can limit the availability, scalability and performance of the supercomputer. .. For example, if some processing node of a supercomputer with a fixed interconnect network connecting a particular configuration consisting of multiple processing nodes fails, the supercomputer cannot replace the failed processing node. Availability and performance are reduced. Also, the performance of some specific configurations may be higher than that of other configurations, regardless of the failed node.
概要
本明細書は、光ネットワークを用いて、ワークロードクラスタを生成する計算ノードのスーパポートを再構成できる技術を説明する。
Overview This specification describes a technique that can reconfigure the superports of compute nodes that generate workload clusters using optical networks.
概して、本明細書に記載された主題の1つの発明的態様は、計算ワークロードを実行するために要求される計算ノードを指定する要求データを受信することを含む方法に具現化することができる。要求データは、計算ノードのn(nは、2以上である)次元目標構成を指定する。各々がm(mは、2以上である)次元構成の計算ノードを含む1組のビルディングブロックを含むスーパポッドから、組み合わせられると、要求データによって指定されたn次元目標構成に一致するビルディングブロックの部分セットを選択する。上記の1組のビルディングブロックは、n次元の各次元のための1つ以上の光回路スイッチを含む光ネットワークに接続される。ビルディングブロックの部分セットを含む計算ノードのワークロードクラスタを生成する。ワークロードクラスタは、特定の計算ワークロードの計算または実行に専用の計算ノードのクラスタである。生成することは、ワークロードクラスタの各次元について、当該次元のための1つ以上の光回路スイッチのそれぞれのルーティングデータを構成することを含む。ワークロードクラスタの各次元にそれぞれ対応するルーティングデータは、ワークロードクラスタの各次元に沿って、計算ワークロードのデータをどのように計算ノードの間にルーティングすることを指定する。ワークロードクラスタ内の計算ノードは、計算ワークロードを実行する。 In general, one invention aspect of the subject matter described herein can be embodied in a method comprising receiving request data specifying a compute node required to perform a computational workload. .. The request data specifies the n (n is 2 or more) dimensional target configuration of the compute node. A portion of the building block that, when combined, matches the n-dimensional target configuration specified by the request data, from a superpod containing a set of building blocks, each containing a compute node of the m (m is 2 or more) dimension configuration. Select a set. The set of building blocks described above is connected to an optical network containing one or more optical circuit switches for each of the n dimensions. Generate a workload cluster of compute nodes that contains a subset of building blocks. A workload cluster is a cluster of compute nodes dedicated to the computation or execution of a particular compute workload. Generating involves configuring the routing data for each dimension of one or more optical circuit switches for that dimension for each dimension of the workload cluster. The routing data corresponding to each dimension of the workload cluster specifies how to route the data of the compute workload between the compute nodes along each dimension of the workload cluster. Computational nodes in a workload cluster run computational workloads.
これらおよび他の実装は、必要に応じて、以下の特徴のうち、1つ以上を含むことができる。いくつかの態様において、要求データは、異なる種類の計算ノードを指定する。ビルディングブロックの部分セットを選択することは、要求データによって指定される各種類の計算ノードについて、指定された種類の1つ以上の計算ノードを含むビルディングブロックを選択することを含むことができる。 These and other implementations may optionally include one or more of the following features: In some embodiments, the request data specifies different types of compute nodes. Selecting a subset of building blocks can include selecting a building block that contains one or more compute nodes of the specified type for each type of compute node specified by the request data.
いくつかの態様において、スーパポッドの各次元のそれぞれのルーティングデータは、1つ以上の光回路スイッチのうちの1つについて光回路スイッチルーティングテーブルを含む。いくつかの態様において、光ネットワークは、n次元の各次元について、当該次元に沿った計算ノードの間にデータをルーティングする当該光ネットワークの1つ以上の光回路スイッチを含む。各ビルディングブロックは、当該ビルディングブロックの各次元に沿った複数のセグメントの計算ノードを含むことができる。光ネットワークは、各次元の各セグメントについて、ワークロードクラスタ内の各ビルディングブロックに対応する計算ノードセグメントの間にデータをルーティングする当該光ネットワークの光回路スイッチを含むことができる。 In some embodiments, the routing data for each dimension of the superpod comprises an optical circuit switch routing table for one of one or more optical circuit switches. In some embodiments, the optical network comprises one or more optical circuit switches of the optical network that route data between computational nodes along that dimension for each dimension of n dimensions. Each building block can contain multiple segments of compute nodes along each dimension of the building block. An optical network can include an optical circuit switch of the optical network that routes data between the compute node segments corresponding to each building block in the workload cluster for each segment of each dimension.
いくつかの態様において、各ビルディングブロックは、3次元トーラス状計算ノードまたはメッシュ状計算ノードのうちの1つを含む。いくつかの態様において、スーパポッドは、複数のワークロードクラスタを含み、各ワークロードクラスタは、ビルディングブロックの異なる部分セットを含み、他のワークロードクラスタとは異なるワークロードを実行することができる。 In some embodiments, each building block comprises one of a three-dimensional torus-like compute node or a mesh-like compute node. In some embodiments, the superpod contains multiple workload clusters, each workload cluster containing a different set of building blocks and capable of running different workloads than other workload clusters.
いくつかの態様は、ワークロードクラスタの特定のビルディングブロックが故障したことを示すデータを受信することと、利用可能なビルディングブロックを用いて特定のビルディングブロックを置換することとを含む。利用可能なビルディングブロックを用いて特定のビルディングブロックを置換することは、ワークロードクラスタの特定のビルディングブロックと1つ以上の他のビルディングブロックとの間のデータルーティングを停止するように、光ネットワークの1つ以上の光回路スイッチのデータルーティングを更新することと、ワークロードクラスタの利用可能なビルディングブロックと1つ以上の他のビルディングブロックとの間にデータをルーティングするように、光ネットワークの1つ以上の光回路スイッチのデータルーティングを更新することとを含むことができる。 Some embodiments include receiving data indicating that a particular building block of a workload cluster has failed and replacing the particular building block with an available building block. Replacing a particular building block with an available building block is like stopping data routing between a particular building block in a workload cluster and one or more other building blocks. One of the optical networks to update the data routing of one or more optical circuit switches and route data between the available building blocks of the workload cluster and one or more other building blocks. It can include updating the data routing of the above optical circuit switch.
いくつかの態様において、組み合わせられると、要求データによって指定されたn次元目標構成に一致するビルディングブロックの部分セットを選択することは、要求データによって指定されたn次元構成が、スーパポッド内の利用可能且つ健全な第2の量のビルディングブロックを超える第1の量のビルディングブロックを必要とすることを判断することと、要求データによって指定されたn次元構成が、スーパポッド内の利用可能且つ健全な第2の量のビルディングブロックを超える第1の量のビルディングブロックを必要とするという判断に応じて、計算ワークロードより低い優先度を有し且つスーパポッドの他のビルディングブロックによって実行されている1つ以上の第2の計算ワークロードを特定こと、および1つ以上の第2の計算ワークロードの1つ以上のビルディングブロックを、計算ワークロードのワークロードクラスタに割り当て直すこととを含む。ビルディングブロックの部分セットを含む計算ノードのワークロードクラスタを生成することは、1つ以上の第2の計算ワークロードの1つ以上のビルディングブロックをビルディングブロックの部分セットに含めることを有することができる。 In some embodiments, selecting a subset of building blocks that, when combined, matches the n-dimensional target configuration specified by the request data means that the n-dimensional configuration specified by the request data is available within the superpod. And determining that a first quantity of building blocks is needed that exceeds a healthy second quantity of building blocks, and the n-dimensional configuration specified by the request data, is available and healthy in the superpod. One or more that has a lower priority than the computational workload and is being executed by other Superpod building blocks, depending on the determination that a first quantity of building blocks is needed that exceeds two quantities of building blocks. Includes identifying a second computational workload in and reassigning one or more building blocks of one or more second computational workloads to a workload cluster of computational workloads. Creating a compute node workload cluster containing a subset of building blocks can have one or more building blocks of one or more second computational workloads included in the building block subset. ..
いくつかの態様において、ビルディングブロックの部分セットを含む計算ノードのワークロードクラスタを生成することは、ワークロードクラスタの各次元について、1つ以上の第2の計算ワークロードの1つ以上のビルディングブロックの各ビルディングブロックが、1つ以上の第2の計算ワークロードのビルディングブロックではなく、ワークロードクラスタの他のビルディングブロックと通信するように、当該次元のための1つ以上の光回路スイッチの各々のルーティングデータを再構成することを含む。 In some embodiments, generating a workload cluster of compute nodes containing a subset of building blocks is one or more building blocks of one or more second computational workloads for each dimension of the workload cluster. Each of the one or more optical circuit switches for that dimension so that each building block in the Includes reconstructing the routing data of.
本明細書に記載された主題は、以下の1つ以上の利点を実現するように、特定の実施形態に実装されてもよい。光ネットワークを用いて、ワークロードを実行するための計算ノードのクラスタを動的に構成することによって、他の計算ノードで故障したまたはオフラインした計算ノードを容易に置換できるため、計算ノードの利用可能性がより高くなる。計算ノードの柔軟構成によって、計算ノードの性能がより高くなり、各ワークロードを実行するための計算ノードの適切な数をより効率で割り当てることができ、各ワークロードを実行するための計算ノードの構成を最適化(または改善)することができる。複数の種類の計算ノードを含むスーパポッドを使用して、例えば、データセンタまたは他の場所において互いに物理的に近接する(例えば、同一のラックにおいて互いに接続されるおよび/または隣接する)計算ノードに限定されず、計算ノードの適切な数および構成だけでなく、各ワークロードを実行するための計算ノードの適切な種類を含むワークロードクラスタを生成することができる。代わりに、光ネットワークは、様々な形状のワークロードクラスタを可能にする。これらのワークロードクラスタにおいて、計算ノードは、互いに任意の物理的位置に配置されても、互いに隣接するように動作する。 The subject matter described herein may be implemented in a particular embodiment to achieve one or more of the following advantages: Computational nodes are available because you can easily replace failed or offline compute nodes on other compute nodes by dynamically configuring a cluster of compute nodes to run workloads using an optical network. The sex becomes higher. Flexible configuration of compute nodes allows for better performance of compute nodes, more efficient allocation of the appropriate number of compute nodes to run each workload, and more compute nodes to run each workload. The configuration can be optimized (or improved). Limited to compute nodes that are physically close to each other (eg, connected and / or adjacent to each other in the same rack), for example, in a data center or elsewhere, using a superpod that contains multiple types of compute nodes. Instead, you can generate a workload cluster that contains the appropriate number and configuration of compute nodes, as well as the appropriate type of compute node to run each workload. Instead, optical networks allow workload clusters of various shapes. In these workload clusters, compute nodes operate so that they are adjacent to each other, even if they are placed at arbitrary physical locations.
また、光ネットワークを用いてポッドを構成することによって、故障の隔離およびワークロードのより良いセキュリティを提供する。例えば、いくつかの従来のスーパコンピュータは、スーパコンピュータを構成する様々なコンピュータの間にトラフィックをルーティングする。1台のコンピュータが故障すると、通信経路が中断する。光ネットワークを用いてデータを迅速に再ルーティングすることができ、および/または利用可能な計算ノードを用いて故障した計算ノードを置換することができる。また、光回路スイッチング(OCS)スイッチによって提供されたワークロード間の物理的分離、例えば、異なる光路の物理的分離は、脆弱なソフトウェアを使用した分離を管理することに比べて、同一のスーパポートに実行されている様々なワークロード間により良いセキュリティを提供する。 Also, by configuring the pod with an optical network, fault isolation and better security of the workload are provided. For example, some traditional supercomputers route traffic between the various computers that make up a supercomputer. If one computer fails, the communication path is interrupted. Data can be rapidly rerouted using an optical network and / or a failed compute node can be replaced with an available compute node. Also, the physical separation between workloads provided by an optical circuit switching (OCS) switch, such as the physical separation of different optical paths, is the same superport as compared to managing the separation using vulnerable software. Provides better security between various workloads running on.
また、光ネットワークを用いてビルディングブロックを接続することによって、パケットスイッチングネットワークに比べて、ビルディングブロックの間にデータを送信する遅延を低減することができる。例えば、パケットスイッチングの場合、スイッチがパケットを受信し、バッファリングし、別のポートで再び送信する必要があるため、遅延が長くなる。OCSスイッチを用いてビルディングブロックを接続することによって、途中でパケットスイッチングまたはバッファリングを行わない真のエンドツーエンド光路を提供することができる。 Further, by connecting the building blocks using an optical network, it is possible to reduce the delay in transmitting data between the building blocks as compared with the packet switching network. For example, in the case of packet switching, the delay is long because the switch must receive the packet, buffer it, and send it again on another port. By connecting building blocks with OCS switches, it is possible to provide a true end-to-end optical path without packet switching or buffering along the way.
以下、図面を参照して、前述した主題の様々な特徴および利点を説明する。さらなる特徴および利点は、本明細書および特許請求の範囲に記載された主題から明らかである。 Hereinafter, various features and advantages of the above-mentioned subjects will be described with reference to the drawings. Further features and advantages are evident from the subject matter described herein and the claims.
詳細な説明
様々な図面において、同様の参照番号および名称は、同様の要素を示す。
Detailed Description In various drawings, similar reference numbers and names refer to similar elements.
一般的に、本明細書に記載されたシステムおよび技術は、光ネットワークファブリックを構成することによって、スーパポッドから計算ノードのワークロードクラスタを生成することができる。スーパポッドとは、光ネットワークを介して互いに接続されている計算ノードからなる複数のビルディングブロックのグループである。例えば、スーパポッドは、相互に接続された1組のビルディングブロックを含むことができる。各ビルディングブロックは、m次元構成、例えば2次元構成または3次元構成の複数の計算ノードを含むことができる。 In general, the systems and techniques described herein can generate a workload cluster of compute nodes from a superpod by configuring an optical network fabric. A superpod is a group of multiple building blocks consisting of computational nodes connected to each other via an optical network. For example, a superpod can include a set of interconnected building blocks. Each building block can contain multiple compute nodes in an m-dimensional configuration, eg, a two-dimensional configuration or a three-dimensional configuration.
ユーザは、特定のワークロードを実行するために目標構成の計算ノードを指定することができる。例えば、ユーザは、機械学習ワークロードを提供し、機械学習演算を実行するための目標構成の計算ノードを指定することができる。目標構成は、n(nは、例えば2以上である)次元の各次元に沿った計算ノードの数を定義することができる。すなわち、目標構成は、ワークロードクラスタのサイズおよび形状を定義することができる。例えば、一部の機械学習モデルおよび計算は、非正方形トポロジでより良好に機能する。 The user can specify the compute nodes of the goal configuration to run a particular workload. For example, the user can provide a machine learning workload and specify computational nodes for goal configurations to perform machine learning operations. The target configuration can define the number of computational nodes along each dimension of n (n is, for example, 2 or more) dimensions. That is, the goal configuration can define the size and shape of the workload cluster. For example, some machine learning models and computations work better in non-square topologies.
また、帯域幅の断面積は、例えば、データの転送を待機する計算ノードまたはアイドル計算サイクルから離脱する計算ノードにわたる計算を制限する可能性がある。計算ノードの全体にわたってワークをどのように割り当てるかおよびネットワークを介して様々な次元でどのくらいのデータを転送する必要があるかによって、ワークロードクラスタの形状は、ワークロードクラスタ内の計算ノードの性能に影響を及ぼす可能性がある。 Bandwidth cross-sectional areas can also limit computations across compute nodes that are waiting for data transfer or exit idle computation cycles, for example. Depending on how the work is allocated across the compute nodes and how much data needs to be transferred over the network in different dimensions, the shape of the workload cluster depends on the performance of the compute nodes in the workload cluster. May affect.
全ての計算ノードを用いて全ての計算ノードデータトラフィックを計算するワークロードの場合、立方体状のワークロードクラスタは、計算ノード間のホップ数を最小化することができる。ワークロードは、多くのローカル通信を有し、特定の次元に沿ってデータを隣接する1組の計算ノードに転送し、これらの隣接通信の多くを一体に連鎖する場合、他の次元よりも特定の次元に沿ってより多くの計算ノードを有する構成が有利である。したがって、ワークロードクラスタ内の計算ノードの構成を指定することをユーザに可能にさせることよって、ユーザは、ワークロードを実行するためにより良い性能をもたらす構成を指定することができる。 For workloads that use all compute nodes to compute all compute node data traffic, a cubic workload cluster can minimize the number of hops between compute nodes. A workload is more specific than any other dimension when it has many local communications and transfers data along a particular dimension to a set of adjacent compute nodes and many of these adjacent communications are chained together. A configuration with more compute nodes along the dimension of is advantageous. Therefore, by allowing the user to specify the configuration of the compute nodes in the workload cluster, the user can specify the configuration that provides better performance to run the workload.
異なる種類の計算ノードがスーパポッドに含まれる場合、要求は、ワークロードクラスタに含まれる各種類の計算ノードの数を指定することもできる。これによって、ユーザは、特定のワークロードを実行するためにより良好に動作する計算ノードの構成を指定することができる。 If different types of compute nodes are included in the superpod, the request can also specify the number of compute nodes of each type in the workload cluster. This allows the user to specify a configuration of compute nodes that works better to run a particular workload.
ワークロードスケジューラは、例えば、ビルディングブロックの利用可能性、ビルディングブロックの健全性(例えば、動作中または故障中)、および/またはスーパポッド内のワークロードの優先度(例えば、スーパポッドの計算ノードによって実行されるワークロードの優先度)に基づいて、ワークロードクラスタのビルディングブロックを選択することができる。ワークロードスケジューラは、選択されたビルディングブロックを特定するデータおよびビルディングブロックの目標構成を光回路スイッチング(OCS)マネージャに提供することができる。OCSマネージャは、ビルディングブロックを互いに接続するように、光ネットワークの1つ以上のOCSスイッチを構成することによって、ワークロードクラスタを生成することができる。その後、ワークロードスケジューラは、ワークロードクラスタ内の計算ノード上で計算ワークロードを実行することができる。 The workload scheduler is run, for example, by building block availability, building block health (eg, running or failing), and / or workload priority within the superpod (eg, the superpod compute node). The building blocks of the workload cluster can be selected based on the workload priority). The workload scheduler can provide the optical circuit switching (OCS) manager with data that identifies the selected building block and the target configuration of the building block. OCS managers can create workload clusters by configuring one or more OCS switches in an optical network to connect building blocks to each other. The workload scheduler can then run the compute workload on the compute nodes in the workload cluster.
ワークロードクラスタ内のビルディングブロックのうちの1つが故障した場合、単にOCSスイッチを再構成することによって、別のビルディングブロックを用いて故障したビルディングブロックを迅速に置換することができる。例えば、ワークロードスケジューラは、故障したビルディングブロックを置換するように、スーパポッドから、利用可能なビルディングブロックを選択することができる。ワークロードスケジューラは、選択されたビルディングブロックを用いて故障したビルディングブロックを置換するように、OCSマネージャに命令することができる。その後、OCSマネージャは、選択されたビルディングブロックをワークロードクラスタ内の他のビルディングブロックに接続し、故障したビルディングブロックをワークロードクラスタ内のビルディングブロックに接続しないように、OCSスイッチを再構成することができる。 If one of the building blocks in the workload cluster fails, the failed building block can be quickly replaced with another building block by simply reconfiguring the OCS switch. For example, the workload scheduler can select available building blocks from the superpod to replace the failed building block. The workload scheduler can instruct the OCS manager to replace the failed building block with the selected building block. The OCS manager will then reconfigure the OCS switch to connect the selected building block to other building blocks in the workload cluster and not to connect the failed building block to the building block in the workload cluster. Can be done.
図1は、例示的な処理システム130が、計算ノードのワークロードクラスタを生成し、ワークロードクラスタを用いて計算ワークロードを実行する環境100を示すブロック図である。処理システム130は、データ通信ネットワーク120、例えばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組み合わせを介して、ユーザ装置110から、計算ワークロード112を受信することができる。例示として、ワークロード112は、ソフトウェアアプリケーション、機械学習モデル、例えば、機械学習モデルのトレーニングおよび/または使用、ビデオの符号化および復号、ならびにデジタル信号処理ワークロードを含む。
FIG. 1 is a block diagram showing an environment 100 in which an
ユーザは、ワークロード112を実行するために要求される計算ノードのクラスタ114を指定することができる。例えば、ユーザは、要求される計算ノードのクラスタの目標形状および目標サイズを指定することができる。すなわち、ユーザは、複数の次元に沿った計算ノードの数量および計算ノードの形状を指定することができる。例えば、計算ノードが3次元x、yおよびzに沿って配置されている場合、ユーザは、各次元の計算ノードの数を指定することができる。また、ユーザは、クラスタに含まれる1つ以上の種類の計算ノードを指定することができる。以下で説明するように、処理システム130は、異なる種類の計算ノードを含むことができる。
The user can specify the
以下で説明するように、処理システム130は、ビルディングブロックを用いて、目標形状および目標サイズのクラスタに合致するワークロードクラスタを生成することができる。各ビルディングブロックは、m次元、例えば3次元に配置された複数の計算ノードを含むことができる。したがって、ユーザは、複数の次元の各次元のビルディングブロックの数を指定することにより、目標形状および目標サイズを指定することができる。例えば、処理システム130は、ユーザ装置110にユーザインターフェイスを提供することができる。このユーザインターフェイスによって、ユーザは、各次元に沿った最大数のビルディングブロックを選択することができる。
As described below, the
ユーザ装置110は、ワークロード112と、要求されるクラスタ114を指定するデータとを処理システム130に提供することができる。例えば、ユーザ装置110は、ネットワーク120を介して、ワークロード112と、要求されるクラスタ114を指定するデータとを含む要求データを処理システム130に提供することができる。
The
処理システム130は、セルスケジューラ140および1つ以上のセル150を含む。セル150は、1つ以上のスーパポッドからなるグループである。例えば、図示されたセル150は、4つのスーパポッド152~158を含む。各スーパポッド152~158は、本明細書においてビルディングブロックプールとも称される1組のビルディングブロック160を含む。この例において、各スーパポッド152~158は、64個のビルディングブロック160を含む。しかしながら、スーパポッド152~158は、他の数のビルディングブロック160、例えば、20、50、100、または別の適切な数のビルディングブロック160を含むことができる。また、スーパポッド152~158は、異なる数のビルディングブロック160を含むことができる。例えば、スーパポッド152は、64個のビルディングブロックを含むことができ、スーパポッド152は、100個のビルディングブロックを含む。
The
以下でより詳細に説明するように、各ビルディングブロック160は、2次元以上に配置された複数の計算ノードを含むことができる。例えば、ビルディングブロック160は、3次元に沿って配置された64個の計算ノード、具体的には各次元に沿って配置された4つの計算ノードを含むことができる。本明細書において、このような計算ノードの構成は、x次元に沿って配置された4つの計算ノード、y次元に沿って配置された4つの計算ノード、およびz次元沿って配置された4つの計算ノードを含む4×4×4ビルディングブロックとして呼ばれる。他の数の次元、例えば2次元および各次元に沿って他の数の計算ノード、例えば3×1、2×2×2、6×2、2×3×4も可能である。
As will be described in more detail below, each
また、ビルディングブロックは、1つのみの計算ノードを含んでもよい。しかしながら、後述するように、ワークロードクラスタを生成するために、ビルディングブロック間の光リンクは、ビルディングブロックを互いに接続するように構成されている。したがって、より小さいビルディングブロック、例えば1つのみの計算ノードを含むビルディングブロックは、より高い柔軟性でワークロードクラスタを生成することができるが、より多くのOCSスイッチ構成およびより多くの光ネットワーク要素(例えば、ケーブルおよびスイッチ)を必要とする。ビルディングブロック内の計算ノードの数は、所望のワークロードクラスタの柔軟性と、ワークロードクラスタを生成するために互いに接続する必要のあるビルディングブロックと、必要なOCSスイッチの数との間のトレードオフに基づいて、選択されてもよい。 Also, the building block may contain only one compute node. However, as described below, in order to generate a workload cluster, the optical links between the building blocks are configured to connect the building blocks to each other. Therefore, smaller building blocks, such as building blocks containing only one compute node, can generate workload clusters with greater flexibility, but with more OCS switch configurations and more optical network elements ( For example, cables and switches) are required. The number of compute nodes in a building block is a trade-off between the desired workload cluster flexibility and the number of building blocks that need to be connected to each other to create a workload cluster and the number of OCS switches required. May be selected based on.
ビルディングブロック160の各計算ノードは、特定用途向け集積回路(ASIC)、例えば機械学習ワークロード用のテンソル処理ユニット(TPU)、グラフィック処理ユニット(GPU)、または他の種類の処理ユニットを含むことができる。例えば、各計算ノードは、処理ユニットを含む単一のプロセッサチップであってもよい。
Each compute node in
いくつかの実装形態において、スーパポッド内の全てのビルディングブロック160は、同様の計算ノードを有する。例えば、スーパポッド152は、機械学習ワークロードを実行するために、64個のビルディングブロックを含み、各ビルディングブロックは、4×4×4構成の64個のTPUを有することができる。また、スーパポッドは、異なる種類の計算ノードを含むことができる。例えば、スーパポッド154は、TPUを有する60個のビルディングブロックと、機械学習ワークロード以外のタスクを実行する専用処理ユニットを有する4個のビルディングブロックとを含むことができる。このようにして、ワークロードを実行するためのワークロードクラスタは、異なる種類の計算ノードを含むことができる。スーパポッドは、冗長性のためにおよび/またはスーパポッド内で複数のワークロードの実行を可能にするために、各種類の計算ノードからなる複数のビルディングブロックを含むことができる。
In some implementations, all
いくつかの実装形態において、スーパポッド内の全てのビルディングブロック160は、同様の構成、例えば同様のサイズおよび形状を有する。例えば、スーパポッド152内の各ビルディングブロック160は、4×4×4構成を有することができる。また、スーパポッドは、異なる構成のビルディングブロックを含むことができる。例えば、スーパポッド154は、32個の4×4×4構成のビルディングブロックと、32個の16×8×16構成のビルディングブロックとを含むことができる。異なるビルディングブロック構成は、同様のまたは異なる計算ノードを含むことができる。例えば、TPUを含むビルディングブロックは、GPUを含むビルディングブロックとは異なる構成を有してもよい。
In some implementations, all
スーパポッドは、異なる階層のビルディングブロックを含むことができる。例えば、スーパポッド152は、4×4×4構成を有する基本ビルディングブロックを含むことができる。また、スーパポッド152は、より多くの計算ノードからなる中級ビルディングブロックを含むことができる。例えば、中級ビルディングブロックは、例えば8つの基本ビルディングブロックから形成された8×8×8構成を有することができる。このようにして、基本ビルディングブロックを接続することによってより大きなワークロードクラスタを生成することよりも、中級ビルディングブロックを用いて、少ないリンクでより大きなワークロードクラスタを生成することができる。また、スーパポッドに基本ビルディングブロックを含むことによって、中級ビルディングブロック内の計算ノードの数を必要としないより小さなワークロードクラスタを柔軟的に形成することができる。
Superpods can contain building blocks at different levels. For example, the
セル150内のスーパポッド152~158は、同様のまたは異なる種類の計算ノードからなるビルディングブロックを含むことができる。例えば、セル150は、TPUビルディングブロックからなる1つ以上のスーパポッドと、GPUビルディングブロックからなる1つ以上のスーパポッドとを含むことができる。セル150内の異なるスーパポッド152~158のビルディングブロックのサイズおよび形状は、同様であってもよく、異なってもよい。
Superpods 152-158 in
また、各セル150は、共有データストレージ162および共有補助計算要素164を含む。セル150内の各スーパポッド152~158は、共有データストレージ162を使用して、例えばスーパポッド152~158に実行されているワークロードによって生成されたデータを記憶することができる。共有データストレージ162は、ハードドライブ、ソリッドステートドライブ、フラッシュメモリ、および/または他の適切なデータ記憶装置を含むことができる。共有補助計算要素は、セル150内で共有されるCPU(例えば、汎用CPU装置)、GPU、および/または他のアクセラレータ(例えば、ビデオ復号アクセラレータまたは画像復号アクセラレータ)を含むことができる。また、補助計算要素164は、ストレージ機器、メモリ機器、および/またはネットワークを介して計算ノードによって共有され得る他の計算要素を含むことができる。
In addition, each
セルスケジューラ140は、ユーザ装置110から受信した各ワークロードを実行するために、セル150および/またはセル150のスーパポッド152~158を選択することができる。セルスケジューラ140は、ワークロードを実行するために指定された目標構成、スーパポッド152~158内のビルディングブロック160の利用可能性、およびスーパポッド152~158内のビルディングブロックの健全性に基づいて、スーパポッドを選択することができる。例えば、セルスケジューラ140は、ワークロードを実行するために、目標構成のワークロードクラスタを生成するように十分な数の利用可能且つ健全なビルディングブロックを少なくとも含むスーパポッドを選択することができる。要求データが計算ノードの種類を指定する場合、セルスケジューラ140は、指定された種類の計算ノードを含む十分な数の利用可能且つ健全なビルディングブロックを少なくとも含むスーパポッドを選択することができる。
The
以下で説明するように、各スーパポッド152~158は、ワークロードスケジューラおよびOCSマネージャを含んでもよい。セルスケジューラ140がセル150のスーパポッドを選択する場合、セルスケジューラ140は、そのスーパポッド150のワークロードスケジューラに、ワークロードおよび要求されたクラスタを指定するデータを提供することができる。以下でより詳細に説明するように、ワークロードスケジューラは、ビルディングブロックの利用可能性および健全性、必要に応じてスーパポッド内のワークロードの優先度に基づいて、スーパポッドのビルディングブロックから、ワークロードクラスタを生成するように接続すべき1組のビルディングブロックを選択することができる。例えば、以下で説明するように、ワークロードスケジューラがスーパポッド内の利用可能且つ健全なビルディングブロックの数よりも多くのビルディングブロックを含むワークロードクラスタを要求する要求を受信する場合、ワークロードスケジューラは、より低い優先度ワークロードを実行するためのビルディングブロックを、要求されたワークロードクラスタに割り当て直すことができる。ワークロードスケジューラは、選択されたビルディングブロックを特定するデータを、OCSマネージャに提供することができる。OCSマネージャは、ビルディングブロックを互いに接続するように1つ以上のOCSスイッチを構成することによって、ワークロードクラスタを生成することができる。その後、ワークロードスケジューラは、ワークロードクラスタ内の計算ノード上でワークロードを実行することができる。
As described below, each superpod 152-158 may include a workload scheduler and an OCS manager. If the
いくつかの実装形態において、セルスケジューラ140は、例えば、ワークロードを実行するためにスーパポッド152~158を選択するときに、様々なセル150とスーパポッド152~158との間のロードをバランスする。例えば、ワークロードを処理する能力のあるビルディングブロックを含む2つ以上のスーパポッドの間に1つのスーパポッドを選択する場合、セルスケジューラ140は、最も高い能力を有するスーパポッド、例えば、最も利用可能且つ健全なビルディングブロック、または全体的な能力が最も高いセルのスーパポッドを選択することができる。利用可能且つ健全なビルディングブロックは、別のワークロードを実行していないまたは起動中のワークロードクラスタの一部ではない且つ故障していないビルディングブロックである。セルスケジューラは、ビルディングブロックのインデックスを記憶することができる。各ビルディングブロックのインデックスは、ビルディングブロックが健全(例えば、故障していない)であるかおよび/または利用可能(例えば、別のワークロードを実行していないまたは起動中のワークロードクラスタの一部)であるかを示すデータを含むことができる。
In some implementations, the
いくつかの実装形態において、セルスケジューラ140は、ワークロードを実行するための目標構成を決定することができる。例えば、セルスケジューラ140は、ワークロードの推定される計算需要および利用可能な1つ以上の種類の計算ノードのスループットに基づいて、ビルディングブロックの目標構成を決定することができる。この例において、セルスケジューラ140は、決定された目標構成をスーパポッドのワークロードスケジューラに提供することができる。
In some implementations, the
図2は、例示的な論理スーパポッド210と、スーパポッド210内の一部のビルディングブロックから生成された例示的なワークロードクラスタ220、230、および240とを示す図である。この例において、スーパポッド210は、64個のビルディングブロックを含み、各ビルディングブロックは、4×4×4構成を有する。本明細書の多くの例において、4×4×4構成のビルディングブロックを説明したが、当該技術は、他の構成のビルディングブロックに適用されてもよい。
FIG. 2 shows an exemplary
後述するように、スーパポッド210内の斜線付きビルディングブロックは、ワークロードに割り当てられるビルディングブロックである。白いビルディングブロックは、利用可能且つ健全なビルディングブロックである。黒いビルディングブロックは、例えば故障によってワークロードクラスタの生成に使用できない不健全なビルディングブロックである。
As will be described later, the shaded building blocks in the
ワークロードクラスタ220は、スーパポッド210のビルディングブロックのうち、4つの4×4×4ビルディングブロックを含む8×8×4ポッドである。すなわち、ワークロードクラスタ220は、x次元に沿った8つの計算ノードと、y次元に沿った8つの計算ノードと、z次元に沿った4つの計算ノードとを有する。各ビルディングブロックが各次元に沿って4つの計算ノードを有するため、ワークロードクラスタ220は、x次元に沿った2つのビルディングブロックと、y次元に沿った2つのビルディングブロックと、z次元に沿った1つのビルディングブロックとを含む。
The
スーパポッド210内での、それらの位置を示すように、ワークロードクラスタ220の4つのビルディングブロックは、斜線で示されている。図示のように、ワークロードクラスタ220のビルディングブロックは、互いに隣接していない。以下でより詳細に説明するように、光ネットワークを使用することによって、スーパポッド210内のビルディングブロックの相対位置に関係なく、スーパポッド210内のビルディングブロックの任意の組み合わせから、ワークロードクラスタを生成することができる。
The four building blocks of the
ワークロードクラスタ230は、スーパポッド210のビルディングブロックのうち、8つのビルディングブロックを含む8×8×8ポッドである。具体的には、ワークロードクラスタ230は、各次元に沿って2つのビルディングブロックを含む。これによって、ワークロードクラスタ230は、各次元に沿って8つの計算ノードを含む。スーパポッド210内での、それらの位置を示すように、ワークロードクラスタ230内のビルディングブロックは、縦線で示されている。
The
ワークロードクラスタ240は、スーパポッド210のビルディングブロックのうち、32個のビルディングブロックを含む16×8×16ポッドである。具体的には、ワークロードクラスタ240は、x次元に沿った4つのビルディングブロックと、y次元に沿った2つのビルディングブロックと、z次元に沿った4つのビルディングブロックとを含む。これによって、このワークロードクラスタは、x次元に沿った16個の計算ノードと、y次元に沿った8つの計算ノードと、z次元に沿った16個の計算ノードとを含む。スーパポッド210内での、それらの位置を示すように、ワークロードクラスタ240内のビルディングブロックは、網目で示されている。
The
ワークロードクラスタ220、230および240は、単にワークロードを実行するために生成され得るスーパポッド210のクラスタのいくつかの例である。ワークロードクラスタは、多くの他の構成を有してもよい。例示のワークロードクラスタ220、230および240は、矩形を有するが、他の形状を有してもよい。
ワークロードクラスタ220、230および240を含むワークロードクラスタの形状は、物理的な形状ではなく、論理的な形状である。光ネットワークは、論理構成においてワークロードクラスタが物理的に接続されるように、ビルディングブロックが各次元に沿って互いに通信するように構成される。しかしながら、物理的なビルディングブロックおよび対応する計算ノードは、様々な方法でデータセンタ内で物理的に配置されてもよい。ワークロード220、230および240のビルディングブロックは、スーパポッド210内の全てのビルディングブロックが光ネットワークに接続されることを除いて、スーパポッド210内のビルディングブロック間の物理的関係に関係なく、任意の利用可能且つ健全なビルディングブロックから選択することができる。例えば、上記で説明され、図2に図示されたように、ワークロードクラスタ220、230および240は、物理的に隣接していないビルディングブロックを含む。
The shape of the workload cluster including the
さらに、ワークロードクラスタの論理構成は、スーパポッド内のビルディングブロックの物理的構成によって制限されない。例えば、8行および8列のビルディングブロックを配置すると共に、z次元に沿って1つのみのビルディングブロックを配置してもよい。しかしながら、z次元に沿って複数のビルディングブロックを含む論理構成を作成するように光ネットワークを構成することによって、ワークロードクラスタを構成することができる。 Moreover, the logical configuration of the workload cluster is not limited by the physical configuration of the building blocks in the superpod. For example, you may place 8 rows and 8 columns of building blocks and only one building block along the z dimension. However, a workload cluster can be configured by configuring the optical network to create a logical configuration containing a plurality of building blocks along the z dimension.
図3は、例示的なビルディングブロック310、およびビルディングブロック310を用いて生成された例示的なワークロードクラスタ320、330および340を示す図である。ビルディングブロック310は、各次元に沿った4つの計算ノードを含む4×4×4ビルディングブロックである。この例において、各次元のビルディングブロック310の各次元は、16個のセグメントを含み、各セグメントは、4つの計算ノードを含む。例えば、ビルディングブロック310の上部には、16個の計算ノードがある。16個の計算ノードのうち、y次元に沿ったセグメントは、1つの計算ノードと、ビルディングブロック310の底部の対応する最後の計算ノードを含む3つの他の計算ノードとを含む。例えば、y次元に沿った1つのセグメントは、計算ノード301~304を含む。
FIG. 3 is a diagram showing an
ビルディングブロック310内の計算ノードは、導電性材料作られた内部リンク318、例えば銅ケーブルを介して互いに接続することができる。各次元の各セグメント内の計算ノードは、内部リンク318を介して接続することができる。例えば、1つの内部リンク318は、計算ノード301を計算ノード302に接続する。また、1つの内部リンク318は、計算ノード302を計算ノード303に接続する。別の内部リンク318は、計算ノード303を計算ノード304に接続する。同様に、他のセグメント内の計算ノードを接続することによって、ビルディングブロック310の計算ノード間の内部データ通信を提供することができる。
Computational nodes in the
また、ビルディングブロック310は、ビルディングブロック310を光ネットワークに接続するための外部リンク311~316を含む。光ネットワークは、ビルディングブロック310を他のビルディングブロックに接続する。この例において、ビルディングブロック310は、x次元に16個の外部入力リンク311を含む。すなわち、ビルディングブロック310は、x次元に沿った16個のセグメントの各セグメントについて外部入力リンク311を含む。同様に、ビルディングブロック310は、x次元に沿った各セグメントについて外部出力リンク312と、y次元に沿った各セグメントについて外部入力リンク313と、y次元に沿った各セグメントについて外部出力リンク314と、z次元に沿った各セグメントについて外部入力リンク315と、z次元に沿った各セグメントについて外部出力リンク316とを含む。いくつかのビルディングブロックは、4次元以上の構成、例えばトーラスを有することができるため、ビルディングブロック310は、ビルディングブロック310の各次元について同様の外部リンクを含むことができる。
The
各外部リンク311~316は、対応する計算ノードのセグメント上の計算ノードを光ネットワークに接続するための光ファイバリンクであってもよい。例えば、各外部リンク311~316は、対応する計算ノードを光ネットワークのOCSスイッチに接続することができる。以下で説明するように、光ネットワークは、ビルディングブロック310のセグメントの各次元について1つ以上のOCSスイッチを含むことができる。すなわち、x次元の外部リンク311、312は、外部リンク313および314とは異なるOCSスイッチに接続される。以下に詳細に説明するように、OCSスイッチは、ビルディングブロックを他のビルディングブロックに接続することによって、ワークロードクラスタを生成するように構成されてもよい。
Each
ビルディングブロック310は、4×4×4メッシュ構成を有する。4×4×4(または他のサイズ)のビルディングブロックは、他の構成を有してもよい。例えば、ビルディングブロック310は、ワークロードクラスタ320と同様に、ラップアラウンドトーラスリンクを含む3次元トーラス構成を有してもよい。ワークロードクラスタ320は、ラップアラウンドトーラスリンク321~323を形成するように光ネットワークを構成することによって、単一のメッシュビルディングブロック310から生成されてもよい。
The
トーラスリンク321~323は、各セグメントの一端と当該セグメントの他端との間のラップアラウンドデータ通信を提供する。例えば、トーラスリンク321は、x次元に沿った各セグメントの各端部に配置された計算ノードを、当該セグメントの他方の端部に配置された計算ノードに接続する。トーラスリンク321は、計算ノード325を計算ノード326に接続するリンクを含むことができる。同様に、トーラスリンク322は、計算ノード325を計算ノード327に接続するリンクを含むことができる。
The torus links 321 to 323 provide wraparound data communication between one end of each segment and the other end of the segment. For example, the
トーラスリンク321~323は、導電性ケーブル、例えば銅ケーブルであってもよく、または光リンクであってもよい。例えば、トーラスリンク321~323の光リンクは、対応する計算ノードを1つ以上のOCSスイッチに接続することができる。OCSスイッチは、各セグメントの一端から各セグメントの他端にデータをルーティングするように構成することができる。ビルディングブロック310は、各次元についてOCSスイッチを含むことができる。例えば、トーラスリンク321は、第1のOCSスイッチに接続することができ、第1のOCSスイッチは、x次元に沿った各セグメントの一端とx次元に沿った各セグメントの他端との間にデータをルーティングすることができる。同様に、トーラスリンク322は、第2のOCSスイッチに接続することができ、第2のOCSスイッチは、y次元に沿った各セグメントの一端とy次元に沿った各セグメントの他端との間にデータをルーティングすることができる。トーラスリンク322は、第3のOCSスイッチに接続することができ、第3のOCSスイッチは、z次元に沿った各セグメントの一端とz次元に沿った各セグメントの他端との間にデータをルーティングすることができる。
The torus links 321 to 323 may be a conductive cable, for example, a copper cable, or may be an optical link. For example, the optical links of the torus links 321 to 323 can connect the corresponding compute node to one or more OCS switches. The OCS switch can be configured to route data from one end of each segment to the other end of each segment. The
ワークロードクラスタ330は、4×8×4ポッドを生成する2つのビルディングブロック338および339を含む。ビルディングブロック338および339の各々は、ビルディングブロック310またはワークロードクラスタ320と同様であってもよい。2つのビルディングブロックは、外部リンク337を介してy次元に沿って接続される。例えば、1つ以上のOCSスイッチは、ビルディングブロック338のy次元セグメントとビルディングブロック339のy次元セグメントとの間にデータをルーティングするように構成されてもよい。
The
また、1つ以上のOCSスイッチは、全ての3次元に沿って、各セグメントの一端と各セグメントの他端との間にラップアラウンドリンク331~333を形成するように構成されてもよい。この例において、ラップアラウンドリンク333は、ビルディングブロック338のy次元セグメントの一端をビルディングブロック339のy次元セグメントの一端に接続することによって、2つのビルディングブロック338および339を組み合わせることによって生成されたy次元セグメントに完全なラップアラウンド通信を提供する。
Further, the one or more OCS switches may be configured to form
ワークロードクラスタ340は、8×8×8クラスタを生成する8つのビルディングブロック(1つは図示せず)を含む。各ビルディングブロック348は、ビルディングブロック310と同様であってもよい。x次元に沿って接続されたビルディングブロックは、外部リンク345A~354Cを介して接続される。同様に、y次元に沿って接続されたビルディングブロックは、外部リンク344A~344Cを介して接続され、z次元に沿って接続されたビルディングブロックは、外部リンク346A~346Cを介して接続される。例えば、1つ以上のOCSスイッチは、x次元セグメントの間にデータをルーティングするように構成されてもよく、1つ以上のOCSスイッチは、y次元セグメントの間にデータをルーティングするように構成されてもよく、1つ以上のOCSスイッチは、z次元セグメントの間にデータをルーティングするように構成されてもよい。各次元に沿って、図3に示されていないビルディングブロックを隣接するビルディングブロックに接続する追加の外部リンクがある。また、1つ以上のOCSスイッチは、3次元の全てに沿って、各セグメントの一端と各セグメントの他端との間にラップアラウンドリンク341~343を形成するように構成されてもよい。
The workload cluster 340 contains eight building blocks (one not shown) that produces an 8x8x8 cluster. Each
図4は、計算ノードからOCSスイッチまでの例示的な光リンク400を示す図である。スーパポッドの計算ノードは、データセンタラックのトレイに設置されてもよい。各計算ノードは、6つの高速電気リンクを含むことができる。そのうち2つの電気リンクは、計算ノードの回路基板に接続されてもよく、4つの電気リンクは、ポート410、例えばOSFP(Octal Small Form Factor Pluggable)ポートに接続されている外部電気コネクタ、例えばOSFPコネクタにルーティングされてもよい。この例において、ポート410は、電気リンク412を介して光モジュール420に接続される。光モジュール420は、必要に応じて、大きなデータセンタに配置された計算ノード間のデータ通信を提供するために、電気リンクを、外部リンクの長さで延在する、例えば1キロメートル(km)を超えて延長する光リンクに変換することができる。光モジュールの種類は、ビルディングブロックとOCSスイッチとの間の必要な長さおよびリンクの所望の速度および帯域幅に基づいて、変更されてもよい。
FIG. 4 is a diagram showing an exemplary
光モジュール420は、光ファイバケーブル422および424介してサーキュレータ430に接続される。光ファイバケーブル422は、光モジュール420からサーキュレータ430にデータを送信するための1つ以上の光ファイバケーブルを含むことができる。光ファイバケーブル424は、サーキュレータ430からデータを受信するための1つ以上の光ファイバケーブルを含むことができる。例えば、光ファイバケーブル422および424は、双方向光ファイバまたは単方向TX/RX光ファイバの対を含むことができる。サーキュレータ430は、光ファイバの数を減らすことができる(例えば、単方向光ファイバを双方向光ファイバに変換することによって、2対の光ファイバケーブル432を一対に減らすことができる)。これは、典型的に、一体に変換された一対の光路(2つのファイバ)を収容する、OCSスイッチ440の単一のOCSポート445に一致する。いくつかの実装形態において、サーキュレータ430は、光モジュール420に一体化されてもよく、または光リンク400から省略されてもよい。
The
図5~7は、複数の計算トレイを用いて4×4×4ビルディングブロックを形成する方法を示す。同様の技術を用いて、他のサイズおよび形状のビルディングブロックを形成することができる。 FIGS. 5-7 show a method of forming a 4 × 4 × 4 building block using a plurality of calculation trays. Similar techniques can be used to form building blocks of other sizes and shapes.
図5は、4×4×4ビルディングブロックを形成するための論理的計算トレイ500を示す。4×4×4ビルディングブロックの基本ハードウェアブロックは、2×2×1トポロジを有する単一の計算トレイ500である。この例では、計算トレイ500は、x次元に沿った2つの計算ノード、y次元に沿った2つの計算ノード、およびz次元に沿った1つの計算ノードを含む。例えば、計算ノード501および502は、x次元セグメントを形成し、計算ノード503および504は、x次元セグメントを形成する。同様に、計算ノード501および503は、y次元セグメントを形成し、計算ノード502および504は、y次元セグメントを形成する。
FIG. 5 shows a
各計算ノード501~504は、内部リンク510、例えばプリント回路基板上の銅ケーブルまたはトレースを介して、2つの他の計算ノードに接続される。また、各計算ノードは、4つの外部ポートに接続される。計算ノード501は、外部ポート521に接続される。同様に、計算ノード502は、外部ポート522に接続され、計算ノード503は、外部ポート523に接続され、計算ノード504は、外部ポート524に接続される。上述したように、外部ポート521~524は、計算ノードをOCSスイッチに接続するOSFPポートまたは他のポートであってもよい。これらのポートは、銅ケーブルまたは光ファイバケーブルに取り付けられた光ファイバモジュールを収容することができる。
Each compute node 501-504 is connected to two other compute nodes via an
計算ノード501~504の各々の外部ポート521~524は、1つのx次元ポートと、1つのy次元ポートと、2つのz次元ポートとを含む。その理由は、各計算ノード501~504は、既に内部リンク510を介してx次元およびy次元に沿った別の計算ノードに接続されているからである。2つのz次元外部ポートを含むことによって、各計算ノード501~504は、z次元に沿った2つの計算ノードに接続することができる。
Each of the
図6は、1次元(z次元)を省略した例示的なビルディングブロックのサブブロック600を示す図である。具体的には、サブブロック600は、2×2構成の計算トレイ、例えば、図1の2×2構成の計算トレイ500によって形成された4×4×1ブロックである。サブブロック600は、4つの2×2構成の計算トレイ620A~620Dを含む。各計算トレイ620A~620Dは、4つの2×2×1構成の計算ノード622を含む図5の計算トレイ500と同様であってもよい。
FIG. 6 is a diagram showing a sub-block 600 of an exemplary building block omitting one dimension (z dimension). Specifically, the sub-block 600 is a 4 × 4 × 1 block formed by a calculation tray having a 2 × 2 configuration, for example, a
計算トレイ620A~620Dの計算ノード622は、内部リンク631~634、例えば銅ケーブルを介して接続されてもよい。例えば、計算トレイ620Aの2つの計算ノード622は、内部リンク632を介して、y次元に沿って計算トレイ620Bの2つの計算ノード622に接続される。
また、各計算トレイ620A~620Dの2つの計算ノード622は、x次元に沿って外部リンク640に接続される。同様に、各計算トレイ620A~620Dの2つの計算ノードは、y次元に沿って外部リンク641に接続される。具体的には、各x次元セグメントの端部に配置された計算ノードおよび各y次元セグメントの端部に配置された計算ノードは、外部リンク640に接続される。これらの外部リンク640は、例えば図4の光リンク400を介して、計算ノード、すなわち、計算ノードを含むビルディングブロックをOCSスイッチに接続する光ファイバケーブルであってもよい。
Further, the two
4×4×4ビルディングブロックは、z次元に沿って、サブブロック600のうちの4つを互いに接続することによって形成されてもよい。例えば、各計算トレイ620A~620Aの計算ノード622は、内部リンクを介して、z次元に配置された他のサブブロック600上の対応する計算トレイの1つまたは2つの計算ノードに接続することができる。各z次元セグメントの端部に配置された計算ノードは、x次元セグメントおよびy次元セグメントの端部に配置された計算ノードと同様に、OCSスイッチに接続されている外部リンク640を含むことができる。
The 4x4x4 building blocks may be formed by connecting four of the
図7は、例示的なビルディングブロック700を示す図である。ビルディングブロック700は、z次元に沿って接続された4つのサブブロック710A~710Dを含む。各サブブロック710A~710Dは、図6のサブブロック600と同様であってもよい。図7は、z次元に沿ったサブブロック710A~710Dの間の接続の一部を示している。
FIG. 7 is a diagram showing an
具体的には、ビルディングブロック700は、z次元に沿って、サブブロック710A~710Dの計算トレイ715の対応する計算ノード716の間の内部リンク730~733を含む。例えば、内部リンク730は、z次元に沿った計算ノード0のセグメントを接続する。同様に、内部リンク731は、z次元に沿った計算ノード1のセグメントを接続し、内部リンク732は、z次元に沿った計算ノード8のセグメントを接続し、内部リンク733は、z次元に沿った計算ノード9のセグメントを接続する。図示されていないが、同様の内部リンクは、計算ノード2~7およびA~Fのセグメントを接続する。
Specifically, the
また、ビルディングブロック700は、z次元に沿った各セグメントの端部に配置された外部リンク720を含む。図示は、計算ノード0、1、8および9のセグメントの外部リンク720のみを示しているが、計算ノード2~7およびA~Fの各他のセグメントも外部リンク720を含む。外部リンクは、x次元およびy次元セグメントの端部に配置された外部リンクと同様に、セグメントをOCSスイッチに接続することができる。
Also, the
図8は、スーパポッドのOCSファブリックトポロジ800を示す図である。この例において、OCSファブリックトポロジは、64個のビルディングブロック805、すなわち、ビルディングブロック0~63を含むスーパポッドの4×4×4ビルディングブロックの各次元に沿って、各セグメントの別個のOCSスイッチを含む。4×4×4ビルディングブロック805は、x次元に沿った16個のセグメントと、y次元に沿った16個のセグメントと、z次元に沿った16個のセグメントとを含む。この例において、OCSファブリックトポロジは、16個のx次元OCSスイッチと、16個のy次元OCSスイッチと、16個のz次元OCSスイッチとを含み、合計で48個のOCSスイッチは、様々なワークロードクラスタを形成するように構成することができる。
FIG. 8 is a diagram showing the
x次元の場合、OCSファブリックトポロジ800は、OCSスイッチ810を含む16個のOCSスイッチを含む。各ビルディングブロック805は、x次元に沿った各セグメントのOCSスイッチ810に接続された外部入力リンク811および外部出力リンク812を含む。これらの外部リンク811および812は、図4の光学リンク400と同様であってもよく、類似であってもよい。
In the x-dimensional case, the
y次元の場合、OCSファブリックトポロジ800は、OCSスイッチ820を含む16個のOCSスイッチを含む。各ビルディングブロック805は、y次元に沿った各セグメントのOCSスイッチ810に接続された外部入力リンク821および外部出力リンク822を含む。これらの外部リンク821および822は、図4の光学リンク400と同様であってもよく、類似であってもよい。
For the y-dimension, the
z次元の場合、OCSファブリックトポロジ800は、OCSスイッチ830を含む16個のOCSスイッチを含む。各ビルディングブロック805は、y次元に沿った各セグメントのOCSスイッチ810に接続された外部入力リンク821および外部出力リンク822を含む。これらの外部リンク821および822は、図4の光学リンク400と同様であってもよく、類似であってもよい。
For the z dimension, the
他の例において、複数のセグメントは、例えば、スーパポッド内のOCSの基数および/またはビルディングブロックの数に応じて、同一のOCSスイッチを共有することができる。例えば、1つのOCSスイッチがスーパポッド内の全てのビルディングブロックの全てのx次元セグメントについて十分な数のポートを有する場合、全てのx次元セグメントを当該OCSスイッチに接続することができる。別の例において、1つのOCSスイッチが十分な数のポートを有する場合、各次元の2つのセグメントは、当該OCSスイッチを共有することができる。しかしながら、スーパポッドの全てのビルディングブロックのセグメントを同一のOCSスイッチに接続することによって、単一のルーティングテーブルを用いて、これらのセグメントの計算ノードの間のデータ通信を行うことができる。また、各セグメントまたは各次元の別個のOCSスイッチを使用することによって、故障の対応および診断を単純化することができる。例えば、特定のセグメントまたは特定の次元のデータ通信に問題が存在する場合、特定のセグメントまたは特定の次元に複数のOCSを使用した場合よりも、潜在的に故障したOCSを特定することがより容易であろう。 In another example, multiple segments may share the same OCS switch, for example, depending on the number of OCS radix and / or number of building blocks in the superpod. For example, if one OCS switch has a sufficient number of ports for all x-dimensional segments of all building blocks in the superpod, then all x-dimensional segments can be connected to the OCS switch. In another example, if one OCS switch has a sufficient number of ports, the two segments of each dimension can share the OCS switch. However, by connecting all the building block segments of the superpod to the same OCS switch, a single routing table can be used for data communication between the compute nodes in these segments. Failure response and diagnosis can also be simplified by using separate OCS switches for each segment or dimension. For example, if there is a problem with a particular segment or dimension of data communication, it is easier to identify a potentially failed OCS than if you used multiple OCS for a particular segment or dimension. Will.
図9は、例示的なスーパポッド900の構成要素を示す図である。例えば、スーパポッド900は、図1の処理システム130のスーパポッドのうち、1つのスーパポッドであってもよい。例示的なスーパポッド900は、64個の4×4×4ビルディングブロック960を含み、これらのビルディングブロック960を使用して、計算ワークロード、例えば機械学習ワークロードを実行するためのワークロードクラスタを形成することができる。上述したように、各4×4×4ビルディングブロック960は、3次元の各次元に沿って配置された4つの計算ノードからなる32個の計算ノードを含む。例えば、ビルディングブロック960は、上述したビルディングブロック310、ワークロードクラスタ320、またはビルディングブロック700と同様であってもよく、類似であってもよい。
FIG. 9 is a diagram showing components of an
例示的なスーパポッド900は、光ネットワーク970を含み、光ネットワーク970は、各ビルディングブロック960の96個の外部リンク931、932および933を介して、ビルディングブロックに接続された48個のOCSスイッチ930、940および950を含む。各外部リンクは、図4の光学リンク400と同様または類似の光ファイバリンクであってもよい。
An
光ネットワーク970は、図8のOCSファブリックトポロジ800と同様に、各ビルディングブロックの各次元の各セグメントについてOCSスイッチを含む。x次元の場合、光ネットワーク970は、x次元に沿った各セグメントに1つずつ配置された16個のOCSスイッチ950を含む。また、光ネットワーク970は、各ビルディングブロック960について、x次元に沿ったビルディングブロック960の各セグメントに対応する入力外部リンクおよび出力外部リンクを含む。これらの外部リンクは、セグメント上の計算ノードを当該セグメントのOCSスイッチ950に接続する。各ビルディングブロック960がx次元に沿った16個のセグメントを含むため、光ネットワーク970は、各ビルディングブロック960のx次元セグメントを当該セグメントに対応するOCSスイッチ950に接続するための32個の外部リンク933(すなわち、16の入力リンクおよび16の出力リンク)を含む。
The
y次元の場合、光ネットワーク970は、y次元に沿った各セグメントに1つずつ配置された16個のOCSスイッチ930を含む。また、光ネットワーク970は、各ビルディングブロック960について、y次元に沿ったビルディングブロック960の各セグメントに対する入力外部リンクおよび出力外部リンクを含む。これらの外部リンクは、セグメント上の計算ノードを当該セグメントのOCSスイッチ930に接続する。各ビルディングブロック960がy次元に沿った16個のセグメントを含むため、光ネットワーク970は、各ビルディングブロック960のy次元セグメントを当該セグメントに対応するOCSスイッチ930に接続するための32個の外部リンク931(すなわち、16の入力リンクおよび16の出力リンク)を含む。
For the y-dimension, the
z次元の場合、光ネットワーク970は、y次元に沿った各セグメントに1つずつ配置された16個のOCSスイッチ932を含む。また、光ネットワーク970は、各ビルディングブロック960に対して、z次元に沿ったビルディングブロック960の各セグメントに対応する入力外部リンクおよび出力外部リンクを含む。これらの外部リンクは、セグメント上の計算ノードを当該セグメントのOCSスイッチ940に接続する。各ビルディングブロック960がz次元に沿った16個のセグメントを含むため、光ネットワーク970は、各ビルディングブロック960のz次元セグメントを当該セグメントに対応するOCSスイッチ940に接続するための32個の外部リンク932(すなわち、16の入力リンクおよび16の出力リンク)を含む。
For the z dimension, the
ワークロードスケジューラ910は、ワークロードと、ワークロードを実行するために要求されるビルディングブロック960のクラスタを指定するデータとを含む要求データを受信することができる。要求データは、ワークロードの優先度を含んでもよい。優先度は、高、中または低のレベルで表すことができ、また例えば1~100の範囲または別の適切な範囲で数値的に表すことができる。例えば、ワークロードスケジューラ910は、ユーザ装置またはセルスケジューラ、例えば図1のユーザ装置110またはセルスケジューラ140から、要求データを受信することができる。上述したように、要求データは、計算ノードのn次元目標構成、例えば計算ノードを含むビルディングブロックの目標構成を指定することができる。
The workload scheduler 910 can receive request data including the workload and data specifying a cluster of
ワークロードスケジューラ910は、要求データによって指定された目標構成に一致するワークロードクラスタを生成するために、1組のビルディングブロック960を選択することができる。例えば、ワークロードスケジューラ910は、スーパポッド900において利用可能且つ健全な1組のビルディングブロックを特定することができる。上述したように、利用可能且つ健全なビルディングブロックは、別のワークロードを実行していないまたは起動中のワークロードクラスタの一部ではない且つ故障していないビルディングブロックである。
The workload scheduler 910 can select a set of
例えば、ワークロードスケジューラ910は、スーパポッド内の各ビルディングブロック960の状態を示す状態データを、例えばデータベースの形で記憶および更新することができる。ビルディングブロック960の利用可能状態は、ビルディングブロック960がワークロードクラスタに割り当てられるか否かを示すことができる。ビルディングブロック960の健全状態は、当該ビルディングブロックが動作中であるかまたは故障中であるかを示すことができる。ワークロードスケジューラ910は、ワークロードに割り当てられていないことを示す利用可能状態および動作中であることを示す健全状態を有するビルディングブロック960を特定することができる。ビルディングブロック960がワークロードに割り当てられた場合、例えば、ワークロードを実行するためのワークロードクラスタを生成するために使用されている場合、または健全状態が動作中から故障中にもしくはその逆に変化した場合、ワークロードスケジューラは、それに応じてビルディングブロック960の状態データを更新することができる。
For example, the workload scheduler 910 can store and update state data indicating the state of each
ワークロードスケジューラ910は、特定された複数のビルディングブロック960から、目標構成によって定義された数に一致する数のビルディングブロック960を選択することができる。要求データが1つ以上の種類の計算ノードを指定する場合、ワークロードスケジューラ910は、特定されたビルディングブロック960から、要求された種類の計算ノードを含むビルディングブロックを選択することができる。例えば、要求データが、2つのTPUビルディングブロックおよび2つのGPUビルディングブロックからなる2×2構成のビルディングブロックを指定する場合、ワークロードスケジューラ910は、2つの利用可能且つ健全なTPUビルディングブロックと、2つの利用可能且つ健全なGPUビルディングブロックとを選択することができる。
The workload scheduler 910 can select a number of
また、ワークロードスケジューラ910は、スーパポッド内で実行中の各ワークロードの優先度と、要求データに含まれたワークロードの優先度とに基づいて、ビルディングブロック960を選択することができる。スーパポッド900が要求されたワークロードを実行するためのワークロードクラスタを生成するのに十分の利用可能且つ健全なビルディングブロックを有しない場合、ワークロードスケジューラ910は、要求されたワークロードよりも低い優先度を有するワークロードがスーパポッド900内で実行されているか否かを判断することができる。要求されたワークロードよりも低い優先度を有するワークロードが実行されている場合、ワークロードスケジューラ910は、1つ以上のより低い優先度のワークロードを実行するワークロードクラスタのビルディングブロックを、要求されるワークロードを実行するためのワークロードクラスタに割り当て直すことができる。例えば、ワークロードスケジューラ910は、より低い優先度のワークロードを終了させる、より低い優先度のワークロードを遅らせる、またはより低い優先度のワークロードのためのワークロードクラスタのサイズを減らすことによって、より高い優先度のワークロードのためのビルディングブロックを解放することができる。
Further, the workload scheduler 910 can select the
ワークロードスケジューラ910は、単に光ネットワークを再構成すること(例えば、以下で説明するようにOCSスイッチを構成すること)によって、ビルディングブロックを1つのワークロードクラスタから別のワークロードクラスタに割り当て直すことができる。これによって、このビルディングブロックは、より低い優先度のワークロードを実行するためのビルディングブロックではなく、より高い優先度のワークロードを実行するためのビルディングブロックに接続される。同様に、より高い優先度のワークロードを実行するためのビルディングブロックが故障した場合、ワークロードスケジューラ910は、光ネットワークを再構成することによって、より低い優先度のワークロードを実行するためのワークロードクラスタ内のビルディングブロックを、より高い優先度のワークロードを実行するためのワークロードクラスタに割り当て直すことができる。 The workload scheduler 910 reassigns building blocks from one workload cluster to another by simply reconfiguring the optical network (eg, configuring an OCS switch as described below). Can be done. This connects this building block to the building block for running the higher priority workload, not the building block for running the lower priority workload. Similarly, if a building block to run a higher priority workload fails, the workload scheduler 910 works to run a lower priority workload by reconfiguring the optical network. Building blocks in a load cluster can be reassigned to a workload cluster to run higher priority workloads.
ワークロードスケジューラ910は、ジョブごとの構成データ912を生成して、スーパポッド900のOCSマネージャ920に提供することができる。ジョブごとの構成データ912は、ワークロードを実行するために選択されたビルディングブロック960およびビルディングブロックの構成を指定することができる。例えば、構成は、2×2構成である場合、ビルディングブロック配置するするための4つのスポットを含む。ジョブごとの構成データは、選択されたビルディングブロック960を4つのスポットにそれぞれ配置することを指定することができる。
The workload scheduler 910 can generate
ジョブごとの構成データ912は、各ビルディングブロックの論理識別子を用いて、選択されたビルディングブロック960を特定することができる。例えば、各ビルディングブロック960は、固有の論理識別子を含むことができる。特定の実施例において、64個のビルディングブロック960に0~63の数字を付与することができ、これらの数字は、固有の論理識別子であってもよい。
The
OCSマネージャ920は、ジョブごとの構成データ912を用いてOCSスイッチ930、940および/または950を構成することによって、ジョブごとの構成データによって指定された構成に一致するワークロードクラスタを生成する。各OCSスイッチ930、940および950は、OCSスイッチの物理ポートの間にデータをルーティングするときに使用されるルーティングテーブルを含む。例えば、第1のビルディングブロックのx次元セグメントの出力外部リンクが、対応する第2のビルディングブロックのx次元セグメントの入力外部リンクに接続されていると仮定する。この場合、x次元セグメントのOCSスイッチ950のルーティングテーブルは、これらのセグメントが接続されているOCSスイッチの物理ポートの間のデータがこれらの物理ポートの間にルーティングされることを示す。
The
OCSマネージャ920は、各OCSスイッチ920、930および940の各ポートを各ビルディングブロックの各論理ポートにマッピング(対応付け)するポートデータを記憶することができる。ビルディングブロックの各x次元セグメントのポートデータは、外部入力リンクがOCSスイッチ950のどの物理ポートに接続されているか、外部出力リンクがOCSスイッチ950のどの物理ポートに接続されているかを指定することができる。スーパポッド900の各ビルディングブロック960の各次元のポートデータは、同様のデータを含むことができる。
The
OCSマネージャ920は、ポートデータを用いてOCSスイッチ930、940および/または950のルーティングテーブルを構成することによって、ワークロードを実行するためのワークロードクラスタを生成することができる。例えば、第1のビルディングブロックがx次元に沿って第2のビルディングブロックの左側に配置される2×1構成で、第1のビルディングブロックを第2のビルディングブロックに接続しようとすると仮定する。OCSマネージャ920は、第1のビルディングブロックのx次元セグメントと第2のビルディングブロックのx次元セグメントとの間にデータをルーティングするために、x次元のOCSスイッチ950のルーティングテーブルを更新する。ビルディングブロックの各x次元セグメントを接続する必要があるため、OCSマネージャ920は、各OCSスイッチ950のルーティングテーブルを更新することができる。
The
OCSマネージャ920は、各x次元セグメントのOCSスイッチ950のルーティングテーブルを更新することができる。具体的には、OCSマネージャ920は、ルーティングテーブルを更新することによって、第1のビルディングブロックのセグメントが接続されているOCSスイッチ950の物理ポートを、第2のビルディングブロックのセグメントが接続されているOCSスイッチの物理ポートにマッピングすることができる。各x次元セグメントが入力リンクおよび出力リンクを含むため、OCSマネージャ920は、第1のビルディングブロックの入力リンクが第2のビルディングブロックの出力リンクに接続され、第1のビルディングブロックの出力リンクが第2のビルディングブロックの入力リンクに接続されるように、ルーティングテーブルを更新することができる。
The
OCSマネージャ920は、各OCSスイッチから現在のルーティングテーブルを取得することによって、ルーティングテーブルを更新することができる。他の例において、OCSマネージャ920は、適切なルーティングテーブルを更新し、更新されたルーティングテーブルを適切なOCSスイッチに送信することができる。他の例において、OCSマネージャ920は、更新を指定する更新データをOCSスイッチに送信することができ、OCSスイッチは、更新データに従ってルーティングテーブルを更新することができる。
The
更新されたルーティングテーブルでOCSスイッチを構成した後、ワークロードクラスタが生成される。次いで、ワークロードスケジューラ910は、ワークロードクラスタ内の計算ノードに、ワークロードを実行させることができる。例えば、ワークロードスケジューラ910は、ワークロードをワークロードクラスタ内の計算ノードに提供して実行させることができる。 After configuring the OCS switch with the updated routing table, a workload cluster is created. The workload scheduler 910 can then cause the compute nodes in the workload cluster to execute the workload. For example, the workload scheduler 910 can provide and execute the workload to the compute nodes in the workload cluster.
ワークロードの実行が終了した後、ワークロードスケジューラ910は、ワークロードクラスタを生成するために使用された各ビルディングブロックの状態を利用可能状態に戻すように、各ビルディングブロックの状態を更新することができる。また、ワークロードスケジューラ910は、ワークロードクラスタを生成するために使用されたビルディングブロックの間の接続を解除するように、OCSマネージャ920に命令することができる。したがって、OCSマネージャ920は、ビルディングブロックの間にデータをルーティングするために使用されたOCSスイッチの物理ポート間のマッピングを解除するように、ルーティングテーブルを更新することができる。
After the workload finishes running, the workload scheduler 910 may update the state of each building block to return the state of each building block used to create the workload cluster to the available state. can. The workload scheduler 910 can also instruct
このように、OCSスイッチを用いて光ファブリックトポロジを構成することにより、ワークロードを実行するためのワークロードクラスタを生成することによって、スーパポッドは、複数のワークロードを動的且つ安全にホストすることができる。ワークロードスケジューラ920は、新しいワークロードが受信されると、即座にワークロードクラスタを生成し、ワークロードが処理されると、即座にワークロードクラスタを解放することができる。OCSスイッチによって提供されたセグメント間のルーティングは、従来のスーパコンピュータよりも、同一のスーパポッドに実行されている異なるワークロードの間により良好なセキュリティを提供する。例えば、OCSスイッチは、ワークロードの間のエアギャップを用いて、ワークロードを物理的に分離する。従来のスーパコンピュータは、ソフトウェアを用いてワークロードを分離する。このため、情報が漏洩しやすい。
In this way, by configuring the optical fabric topology with OCS switches to create a workload cluster to run the workload, the superpod can dynamically and safely host multiple workloads. Can be done. The
図10は、ワークロードクラスタを生成し、ワークロードクラスタを用いて計算ワークロードを実行するための例示的なプロセス1000を示す流れ図である。プロセス1000の動作は、1つ以上のデータ処理装置を含むシステムによって実行されてもよい。例えば、プロセス1000の動作は、図1の処理システム130によって実行されてもよい。
FIG. 10 is a flow chart illustrating an
システムは、要求される計算ノードのクラスタを指定する要求データを受信する(1010)。要求データは、ユーザ装置から受信されてもよい。要求データは、計算ワークロードと、計算ノードのn次元目標構成を指定するデータとを含むことができる。例えば、要求データは、計算ノードを含むビルディングブロックのn次元目標構成を指定することができる。 The system receives request data specifying the cluster of compute nodes requested (1010). The request data may be received from the user device. The request data can include computational workloads and data that specify the n-dimensional goal configuration of the compute node. For example, the request data can specify an n-dimensional goal configuration of a building block containing compute nodes.
いくつかの実装形態において、要求データは、ビルディングブロックを生成するための計算ノードの種類を指定することができる。スーパポッドは、異なる種類の計算ノードからなるビルディングブロックを含むことができる。例えば、スーパポッドは、各々が4×4×4構成のTPUを含む90個のビルディングブロックと、2×1構成の専用計算ノードを含む10個の専用ビルディングブロックとを含むことができる。要求データは、各種類の計算ノードからなるビルディングブロックの数およびこれらのビルディングブロックの構成を指定することができる。 In some implementations, the request data can specify the type of compute node for generating building blocks. Superpods can contain building blocks consisting of different types of compute nodes. For example, a superpod can include 90 building blocks, each containing a 4x4x4 TPU, and 10 dedicated building blocks, each containing a 2x1 dedicated compute node. The request data can specify the number of building blocks consisting of each type of compute node and the configuration of these building blocks.
システムは、1組のビルディングブロックを含むスーパポッドから、要求されたクラスタを生成するためのビルディングブロックの部分セット(サブセット)を選択する(1020)。上記で説明したように、スーパポッドは、3次元構成の計算ノード、例えば4×4×4構成の計算ノードを含む1組のビルディングブロックを含むことができる。システムは、目標構成によって定義された数量に一致する数量のビルディングブロックを選択することができる。上述したように、システムは、健全であり且つ要求されたクラスタを生成するために利用可能なビルディングブロックを選択することができる。 The system selects a subset of building blocks to generate the requested cluster from a superpod containing a set of building blocks (1020). As described above, a superpod can include a set of building blocks containing compute nodes in a three-dimensional configuration, eg, a 4x4x4 configuration. The system can select a quantity of building blocks that matches the quantity defined by the target configuration. As mentioned above, the system can select building blocks that are available to generate healthy and requested clusters.
ビルディングブロックの部分セットは、ビルディングブロックの適切な部分セットであってもよい。適切な部分セットは、1組のビルディングブロックのうちの全てのメンバーを含まない部分セットである。例えば、全てのビルディングブロックよりも少ないビルディングブロックは、目標構成の計算ノードに一致するワークロードクラスタを生成するために必要とされてもよい。 The subset of building blocks may be the appropriate subset of building blocks. A suitable subset is a subset that does not include all members of a set of building blocks. For example, fewer building blocks than all building blocks may be needed to generate workload clusters that match the compute nodes in the target configuration.
システムは、選択された計算ノードの部分セットを含むワークロードクラスタを生成する(1030)。このワークロードクラスタは、要求データによって指定された目標構成に一致する構成のビルディングブロックを含むことができる。例えば、要求データが4×8×4構成の計算ノードを指定する場合、ワークロードクラスタは、図3のワークロードクラスタ330のように配置された2つのビルディングブロックを含むことができる。
The system creates a workload cluster containing a subset of the selected compute nodes (1030). This workload cluster can contain building blocks with configurations that match the target configuration specified by the request data. For example, if the request data specifies a compute node with a 4x8x4 configuration, the workload cluster can include two building blocks arranged as in the
ワークロードクラスタを生成するために、システムは、ワークロードクラスタの各次元についてルーティングデータを構成することができる。例えば、上述したように、スーパポッドは、ビルディングブロックの各次元について1つ以上のOCSスイッチを含む光ネットワークを含むことができる。ある次元のためにルーティングデータは、1つ以上のOCSスイッチのためにルーティングテーブルを含むことができる。図9を参照して上述したように、OCSスイッチのルーティングテーブルは、各次元に沿った計算ノードの適切なセグメントの間にデータをルーティングするように構成されてもよい。 To generate a workload cluster, the system can configure routing data for each dimension of the workload cluster. For example, as mentioned above, a superpod can include an optical network that includes one or more OCS switches for each dimension of the building block. For a dimension, the routing data can include a routing table for one or more OCS switches. As mentioned above with reference to FIG. 9, the OCS switch routing table may be configured to route data between the appropriate segments of compute nodes along each dimension.
システムは、ワークロードクラスタ内の計算ノードに、計算ワークロードを実行させる(1040)。例えば、システムは、計算ワークロードをワークロードクラスタ内の計算ノードに提供することができる。計算ワークロードが実行されている間に、構成されたOCSスイッチは、ワークロードクラスタのビルディングブロックの間にデータをルーティングすることができる。構成されたOCSスイッチは、計算ノードが目標構成において物理的に接続されていなくても物理的に接続されていたように、ビルディングブロックの計算ノードの間にデータをルーティングすることができる。 The system causes a compute node in the workload cluster to execute the compute workload (1040). For example, the system can provide a compute workload to compute nodes in a workload cluster. While the computational workload is running, the configured OCS switch can route data between the building blocks of the workload cluster. The configured OCS switch can route data between the compute nodes of the building block as if the compute nodes were physically connected even if they were not physically connected in the target configuration.
例えば、ある次元の各セグメントの計算ノードは、異なるビルディングブロック内のセグメントの他の計算ノードと単一の物理セグメントに物理的に接続されるように、OCSスイッチを介して、データを異なるビルディングブロック内のセグメントの他の計算ノードに通信することができる。この構成のワークロードクラスタは、途中でパケットスイッチングまたはバッファリングを行わない真のエンドツーエンド光路を提供することができるため、パケットスイッチングネットワークとは異なる。パケットスイッチングの場合、スイッチがパケットを受信し、バッファリングし、別のポートで再び送信する必要があるため、遅延が長くなる。 For example, a compute node in each segment of a dimension sends data to different building blocks through an OCS switch so that it is physically connected to a single physical segment with other compute nodes in the segment in different building blocks. It can communicate with other compute nodes in the segment within. A workload cluster in this configuration differs from a packet switching network because it can provide a true end-to-end optical path without packet switching or buffering along the way. In the case of packet switching, the delay is high because the switch has to receive the packet, buffer it, and send it again on another port.
計算ワークロードの実行が終了した後、システムは、他のワークロードを実行するために、例えばビルディングブロックの状態を利用可能な状態に更新し、ワークロードクラスタのビルディングブロックの間にデータをルーティングしないようにデータルーティングを更新することによって、ビルディングブロックを解放することができる。 After the computational workload finishes running, the system updates the state of the building blocks, for example, to the available state to run other workloads, and does not route data between the building blocks of the workload cluster. You can free the building blocks by updating the data routing so that.
図11は、故障したビルディングブロックを置換するように、光ネットワークを再構成するための例示的なプロセス1100を示す流れ図である。プロセス1100の動作は、1つ以上のデータ処理装置を含むシステムによって実行されてもよい。例えば、プロセス1100の動作は、図1の処理システム130によって実行されてもよい。
FIG. 11 is a flow chart illustrating an
システムは、ワークロードクラスタ内の計算ノードに、計算ワークロードを実行させる(1110)。例えば、システムは、ワークロードクラスタを生成し、計算ノードに、図10のプロセス1000に従って計算ワークロードを実行させることができる。
The system causes a compute node in the workload cluster to execute the compute workload (1110). For example, the system can create a workload cluster and have the compute node run the compute workload according to
システムは、ワークロードクラスタのビルディングブロックが故障したことを示すデータを受信する(1120)。例えば、ビルディングブロックの1つ以上の計算ノードが故障した場合、別の要素、例えば監視要素は、ビルディングブロックが故障したと判断し、ビルディングブロックが故障したことを示すデータをシステムに送信することができる。 The system receives data indicating that the building block of the workload cluster has failed (1120). For example, if one or more compute nodes in a building block fail, another element, such as a monitoring element, may determine that the building block has failed and send data to the system indicating that the building block has failed. can.
システムは、利用可能なビルディングブロックを特定する(1130)。例えば、システムは、ワークロードクラスタの他のビルディングブロックと同様のスーパポッドにおいて、利用可能且つ健全なビルディングブロックを特定することができる。システムは、例えば、システムによって記憶されたビルディングブロックの状態データに基づいて、利用可能且つ健全なビルディングブロックを特定することができる。 The system identifies available building blocks (1130). For example, the system can identify available and healthy building blocks in a superpod similar to other building blocks in a workload cluster. The system can identify available and healthy building blocks, for example, based on the building block state data stored by the system.
システムは、特定された利用可能なビルディングブロックを用いて、故障したビルディングブロックを置換する(1140)。システムは、特定された利用可能なビルディングブロックで故障したビルディングブロックを置換するように、ビルディングブロックを接続する光ネットワークの1つ以上のOCSスイッチのデータルーティングを更新することができる。例えば、システムは、ワークロードクラスタの他のビルディングブロックと故障したビルディングブロックとの間の接続を解除するように、1つ以上のOCSスイッチのルーティングテーブルを更新することができる。また、システムは、特定されたビルディングブロックをワークロードクラスタの他のビルディングブロックに接続するように、1つ以上のOCSスイッチのルーティングテーブルを更新するができる。 The system replaces the failed building block with the identified available building block (1140). The system can update the data routing of one or more OCS switches in the optical network connecting the building blocks to replace the failed building block with the identified available building blocks. For example, the system can update the routing table of one or more OCS switches to disconnect between other building blocks in the workload cluster and the failed building block. The system can also update the routing table of one or more OCS switches to connect the identified building block to other building blocks in the workload cluster.
システムは、特定されたビルディングブロックを、故障したビルディングブロックスポットの論理スポットに論理的に配置することができる。上述したように、OCSスイッチのルーティングテーブルは、あるビルディングブロックのセグメントに接続されたOCSスイッチの物理ポートを、対応する別のビルディングブロックのセグメントに接続されたOCSスイッチの物理ポートにマッピングすることができる。この場合、システムは、故障したビルディングブロックではなく、特定された利用可能なビルディングブロックの対応するセグメントとのマッピングを更新することによって、置換を行うことができる。 The system can logically place the identified building block in the logical spot of the failed building block spot. As mentioned above, the OCS switch's routing table can map the physical port of an OCS switch connected to a segment of one building block to the physical port of an OCS switch connected to a segment of the corresponding building block. can. In this case, the system can make the replacement by updating the mapping with the corresponding segment of the identified available building block rather than the failed building block.
例えば、故障したビルディングブロックの特定のx次元セグメントの入力外部リンクがOCSスイッチの第1のポートに接続され、特定された利用可能なビルディングブロックの対応するx次元セグメントの入力外部リンクがOCSスイッチの第2のポートに接続されていると仮定する。さらに、ルーティングテーブルが第1のポートを、別のビルディングブロックの対応するx次元セグメントに接続されているOCSスイッチの第3のポートにマッピングすると仮定する。置換を行うために、システムは、第1のポートを第3のポートにマッピングするのではなく、第2のポートを第3のポートにマッピングすることによって、ルーティングテーブルのマッピングを更新することができる。システムは、故障したビルディングブロックの各セグメントに対して同様のことを行うことができる。 For example, the input external link for a particular x-dimensional segment of a failed building block is connected to the first port of the OCS switch, and the input external link for the corresponding x-dimensional segment of the identified available building block is the OCS switch. Suppose you are connected to a second port. Further assume that the routing table maps the first port to the third port of the OCS switch connected to the corresponding x-dimensional segment of another building block. To make the substitution, the system can update the routing table mapping by mapping the second port to the third port instead of mapping the first port to the third port. .. The system can do the same for each segment of the failed building block.
本明細書に記載された主題および動作の実施形態は、本明細書に開示された構造およびそれらの均等物を含むデジタル電子回路、コンピュータソフトウェア、ファームウェア、ハードウェア、またはそれらの1つ以上の組み合わせで実現されてもよい。本明細書に記載された主題の実施形態は、1つ以上のコンピュータプログラム、すなわち、コンピュータ記憶媒体上にエンコードされ、データ処理装置によって実行されるまたはデータ処理装置の動作を制御するためのコンピュータプログラム命令の1つ以上のモジュールとして実現されてもよい。代替的にまたは追加的に、プログラム命令は、データ処理装置によって実行されるために、適切な受信装置に送信される情報をエンコードするように人工的に生成された伝搬信号、例えば機械によって生成された電気信号、光信号、または電磁信号にエンコードされてもよい。コンピュータ記憶媒体は、コンピュータ可読記憶装置、コンピュータ可読記憶基板、ランダムアクセスメモリアレイもしくは装置またはシリアルアクセスメモリアレイもしくは装置、またはそれらの1つ以上の組み合わせであってもよく、またはそれらに含まれてもよい。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、人工的に生成された伝搬信号にエンコードされるコンピュータプログラム命令のソースまたはインストール先であってもよい。また、コンピュータ記憶媒体は、1つ以上の別個の物理的な要素または媒体(例えば、複数のCD、ディスク、または他の記憶装置)であってもよく、またはそれらに含まれてもよい。 Embodiments of the subject matter and operation described herein are digital electronic circuits, computer software, firmware, hardware, or a combination thereof, including the structures and their equivalents disclosed herein. It may be realized by. The embodiments of the subject described herein are one or more computer programs, i.e., computer programs encoded on a computer storage medium and executed by or controlling the operation of the data processing apparatus. It may be implemented as one or more modules of instructions. Alternatively or additionally, the program instruction is generated by a propagating signal, eg, a machine, that is artificially generated to encode the information sent to the appropriate receiver for execution by the data processor. It may be encoded into an electrical signal, an optical signal, or an electromagnetic signal. The computer storage medium may be, or may be contained in, a computer readable storage device, a computer readable storage board, a random access memory array or device or a serial access memory array or device, or a combination thereof. good. Further, the computer storage medium may be a source or installation destination of computer program instructions encoded in an artificially generated propagating signal, although it is not a propagating signal. The computer storage medium may also be, or may be contained in, one or more separate physical elements or media (eg, multiple CDs, discs, or other storage devices).
本明細書に記載された動作は、データ処理装置によって1つ以上のコンピュータ可読ストレージ装置に記憶されたデータまたは他のソースから受信されたデータに対して実行された動作として実現されてもよい。 The operations described herein may be implemented as operations performed by a data processing device on data stored in one or more computer-readable storage devices or received from other sources.
「データ処理装置」という用語は、例えば、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、またはそれらの組み合わせを含む、データを処理するための全ての種類の機器、装置、およびマシンを含む。装置は、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。また、装置は、ハードウェアのほかに、当該コンピュータプログラムの実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの組み合わせを構成するコードを含むことができる。装置および実行環境は、様々な異なるコンピューティングモデルインフラストラクチャ、例えばウェブサービス、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャを実現することができる。 The term "data processing appliance" includes all types of equipment, appliances, and machines for processing data, including, for example, programmable processors, computers, system-on-chips, or combinations thereof. The device can include dedicated logic circuits, such as FPGAs (field programmable gate arrays) or ASICs (application specific integrated circuits). In addition to the hardware, the device also contains code that creates the execution environment for the computer program, such as processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or a combination thereof. Can include constituent code. Equipment and execution environments can implement a variety of different computing model infrastructures, such as web services, distributed computing infrastructure, and grid computing infrastructure.
(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)コンピュータプログラムは、コンパイル型またはインタプリタ型言語、宣言または手続き型言語を含む任意のプログラミング言語で記述されてもよく、独立型プログラム、モジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境に適切に使用できる他のユニット含む任意の形で展開されてもよい。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、必ずしも対応する必要はない。プログラムは、他のプログラムまたはデータ(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)を保持するファイルの一部、当該プログラム専用の単一のファイル、または複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に格納されてもよい。コンピュータプログラムは、1台のコンピュータ、または一箇所に配置されもしくは複数の箇所に分散され、通信ネットワークによって相互接続された複数のコンピュータ上で展開され、実行されてもよい。 Computer programs (also known as programs, software, software applications, scripts, or code) may be written in any programming language, including compiled or interpreted languages, declarative or procedural languages, and are stand-alone. It may be deployed in any form, including programs, modules, components, subroutines, objects, or other units that can be used appropriately in a computing environment. The computer program may, but does not necessarily, support the files in the file system. A program is a portion of a file that holds other programs or data (eg, one or more scripts stored in a markup language document), a single file dedicated to that program, or multiple collaborative files (eg,). It may be stored in one or more modules, subprograms, or files that store parts of the code). The computer program may be deployed and executed on one computer, or a plurality of computers arranged in one place or distributed in a plurality of places and interconnected by a communication network.
本明細書に記載されたプロセスおよび論理フローは、1つ以上のプログラム可能なプロセッサによって実行されてもよい。1つ以上のプログラム可能なプロセッサは、動作を実行するように、入力データを処理して、出力を生成することによって1つ以上のコンピュータプログラムを実行する。また、プロセスおよび論理フローは、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されてもよく、装置は、専用論理回路として実装されてもよい。 The processes and logical flows described herein may be performed by one or more programmable processors. One or more programmable processors execute one or more computer programs by processing input data and producing outputs to perform operations. Further, the process and the logic flow may be executed by a dedicated logic circuit, for example, FPGA (field programmable gate array) or ASIC (application specific integrated circuit), and the device may be implemented as a dedicated logic circuit.
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサ、専用マイクロプロセッサ、および任意の種類のデジタルコンピュータの1つ以上のプロセッサを含む。一般的に、プロセッサは、読み取り専用メモリ、ランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従って動作を実行するためのプロセッサと、命令およびデータを記憶するための1つ以上のメモリ装置とを含む。一般的に、コンピュータはまた、データを記憶するための1つ以上の大容量記憶装置、例えば磁気ディスク、光磁気ディスクまたは光ディスクを含むか、または1つ以上の大容量記憶装置からデータを受信する、または1つ以上の大容量記憶装置にデータを転送する、またはその両方を行うように1つ以上の大容量記憶装置に動作可能に結合される。しかしながら、コンピュータは、そのような装置を有する必要はない。さらに、コンピュータは、別の装置、例えば携帯電話、携帯情報端末(PDA)、モバイルオーディオプレーヤまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または携帯記憶装置(例えば、USBフラッシュドライブ)に組み込むことができる。コンピュータプログラム命令およびデータの記憶に適した装置は、例えば、EPROM、EEPROMおよびフラッシュメモリ装置などの半導体メモリ装置、例えば内部ハードディスクまたは取外し可能なディスクなどの磁気ディスク、光磁気ディスク、CD ROMおよびDVD-ROMディスクを含む全ての不揮発性メモリ、媒体、およびメモリ装置を含む。プロセッサおよびメモリは、専用論理回路によって補足されてもよく、または専用論理回路に組み込まれてもよい。 Suitable processors for running computer programs include, for example, general purpose microprocessors, dedicated microprocessors, and one or more processors of any type of digital computer. Generally, the processor receives instructions and data from read-only memory, random access memory, or both. Essential elements of a computer include a processor for performing operations according to instructions and one or more memory devices for storing instructions and data. In general, a computer also includes or receives data from one or more mass storage devices for storing data, such as magnetic disks, optomagnetic disks or optical disks, or from one or more mass storage devices. , Or transfer data to one or more mass storage devices, or both, and are operably coupled to one or more mass storage devices. However, the computer does not need to have such a device. In addition, the computer may be another device, such as a mobile phone, personal digital assistant (PDA), mobile audio player or video player, game console, Global Positioning System (GPS) receiver, or portable storage device (eg, USB flash drive). ) Can be incorporated. Suitable devices for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROM, EEPROM and flash memory devices, such as magnetic disks such as internal hard disks or removable disks, magneto-optical disks, CD ROMs and DVDs. Includes all non-volatile memory, media, and memory devices, including ROM disks. The processor and memory may be supplemented by dedicated logic circuits or may be incorporated into dedicated logic circuits.
ユーザとの対話を提供するために、本明細書に記載された主題の実施形態は、情報をユーザに表示するための表示装置、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、およびユーザがコンピュータに入力を提供することができるキーボードおよびポインティング装置、例えばマウスまたはトラックボールを含むコンピュータ上で実装されてもよい。他の種類の装置を使用して、ユーザとの相互作用を提供することもできる。ユーザに提供されるフィードバックは、例えば、任意の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよい。ユーザから受信される入力は、音響入力、音声入力、または触覚入力を含んでもよい。さらに、コンピュータは、ユーザによって使用されている装置に文書を送信し、当該装置から文書を受信することによって、例えば、ウェブブラウザから受信された要求に応答して、ユーザのクライアント装置上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。 To provide interaction with the user, embodiments of the subject matter described herein are display devices for displaying information to the user, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, and the user. May be implemented on a computer that includes a keyboard and pointing device that can provide input to the computer, such as a mouse or trackball. Other types of devices can also be used to provide user interaction. The feedback provided to the user may be, for example, any sensory feedback, such as visual feedback, auditory feedback, or tactile feedback. The input received from the user may include acoustic input, voice input, or tactile input. Further, the computer sends a document to the device used by the user and receives the document from the device, for example, in response to a request received from a web browser, a web browser on the user's client device. You can interact with the user by sending a web page to.
本明細書に記載された主題の実施形態は、バックエンドコンポーネントを含むコンピューティングシステム、例えばデータサーバに実装されてもよく、またはミドルウェアコンポーネントを含むコンピューティングシステム、例えばアプリケーションサーバに実装されてもよく、またはフロントエンドコンポーネントを含むコンピューティングシステム、例えばユーザが本明細書に記載された主題の実装形態と相互作用することができるグラフィカルユーザインターフェイスまたはウェブブラウザ、または上述したバックエンドコンポーネント、ミドルウェアコンポーネントもしくはフロントエンドコンポーネントの任意の組み合わせを備えるクライアントコンピュータに実装されてもよい。システムの構成要素は、任意のデジタルデータ通信媒体、例えば通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、インターネットワーク(例えば、インターネット)、およびピアツーピアネットワーク(例えば、アドホックピアツーピアネットワーク)を含む。 The embodiments of the subject matter described herein may be implemented in a computing system that includes back-end components, such as a data server, or may be implemented in a computing system that includes middleware components, such as an application server. , Or a computing system that includes front-end components, such as a graphical user interface or web browser that allows the user to interact with the implementations of the subject matter described herein, or the back-end components, middleware components or front described above. It may be implemented on a client computer with any combination of end components. The components of the system can be interconnected by any digital data communication medium, such as a communication network. Examples of communication networks include local area networks (LANs) and wide area networks (WANs), internetworks (eg, the Internet), and peer-to-peer networks (eg, ad hoc peer-to-peer networks).
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に互いに遠隔であり、一般的に通信ネットワークを介して相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって形成される。いくつかの実施形態において、サーバは、(例えば、クライアント装置と対話するユーザにデータを表示させ、ユーザ入力を受信するために)データ(例えば、HTMLページ)をクライアント装置に送信する。サーバは、クライアント装置で生成されたデータ(例えば、ユーザインタラクションの結果)をクライアント装置から受信することができる。 The computing system can include clients and servers. Clients and servers are generally remote from each other and generally interact over a communication network. The client-server relationship runs on each computer and is formed by computer programs that have a client-server relationship with each other. In some embodiments, the server sends data (eg, an HTML page) to the client device (eg, to display data to a user interacting with the client device and receive user input). The server can receive data generated by the client device (eg, the result of user interaction) from the client device.
本明細書は、多くの具体的な実装詳細を含むが、これらの実装詳細は、発明の範囲または請求範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態に関して本明細書に記載された特定の特徴は、任意の組み合わせで単一の実施形態に実装されてもよい。逆に、単一の実施形態に関して記載された様々な特徴は、別々にまたは任意の適切なサブコンビネーションで複数の実施形態に実装されてもよい。さらに、特徴がある組み合わせで作用し、その組み合わせで作用すると主張したとしても、必要に応じて、主張した組み合わせから1つ以上の特徴を除去することができ、主張した組み合わせをサブコンビネーションに分割することができる。 Although the present specification includes many specific implementation details, these implementation details should not be construed as limitations to the scope or claims of the invention, but rather are specific to a particular embodiment of a particular invention. Should be interpreted as an explanation of the characteristics of. The particular features described herein with respect to separate embodiments may be implemented in any combination in a single embodiment. Conversely, the various features described for a single embodiment may be implemented separately or in any suitable subcombination in multiple embodiments. Furthermore, even if a characteristic combination works and it is claimed to work with that combination, one or more features can be removed from the claimed combination as needed, and the claimed combination is divided into sub-combinations. be able to.
同様に、特定の順序で動作を図面に示しているが、これは、望ましい結果を達成するために、これらの動作を図示された特定の順序でまたは順次に実行する必要、または図示された全ての動作を実行する必要があるとして理解すべきではない。特定の状況によって、マルチタスクおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステム要素の分離は、全ての実施形態においてそのような分離が必要であるとして理解すべきではなく、記載されたプログラム要素およびシステムは、一般的に、単一のソフトウェア製品に一体化されてもよく、または複数のソフトウェア製品にパッケージ化されてもよいと理解すべきである。 Similarly, the drawings show the operations in a particular order, which requires or all of these operations to be performed in the specific order shown or in sequence to achieve the desired result. Should not be understood as having to perform the actions of. Depending on the particular situation, multitasking and parallel processing may be advantageous. Moreover, the separation of various system elements in the embodiments described above should not be understood as requiring such separation in all embodiments, and the program elements and systems described are generally single. It should be understood that it may be integrated into one software product or packaged into multiple software products.
したがって、本発明の特定の実施形態を説明してきた。他の実施形態は、特許請求の範囲に含まれる。場合によって、特許請求の範囲に記載された動作は、異なる順序で実行されても、望ましい結果を達成することができる。さらに、添付の図面に示されたプロセスは、望ましい結果を達成するために、必ずしも図示された特定の順序でまたは順次に実行される必要がない。いくつかの実装形態において、マルチタスクおよび並列処理が有利であり得る。 Therefore, specific embodiments of the present invention have been described. Other embodiments are included in the claims. In some cases, the actions described in the claims can be performed in different orders to achieve the desired result. Moreover, the processes shown in the accompanying drawings do not necessarily have to be performed in the particular order or sequence shown to achieve the desired results. In some implementations, multitasking and parallel processing can be advantageous.
Claims (20)
計算ワークロードを実行するために要求される計算ノードを指定する要求データを受信することを含み、前記要求データは、前記計算ノードのn(nは、2以上である)次元目標構成を指定し、
各々がm(mは、2以上である)次元構成の計算ノードを含む1組のビルディングブロックを含むスーパポッドから、組み合わせられると、前記要求データによって指定された前記n次元目標構成に一致する前記ビルディングブロックの部分セットを選択することを含み、前記1組のビルディングブロックは、前記n次元の各次元のための1つ以上の光回路スイッチを含む光ネットワークに接続され、
前記ビルディングブロックの部分セットを含む計算ノードのワークロードクラスタを生成することを含み、
前記生成することは、
前記ワークロードクラスタの各次元について、当該次元のための前記1つ以上の光回路スイッチのそれぞれのルーティングデータを構成することを含み、前記ワークロードクラスタの各次元にそれぞれ対応する前記ルーティングデータは、前記ワークロードクラスタの前記次元に沿って、前記計算ワークロードのデータをどのように前記計算ノードの間にルーティングすることを指定し、
前記ワークロードクラスタの前記計算ノードに、前記計算ワークロードを実行させることを含む、方法。 A method performed by one or more data processing devices, wherein the method is performed.
The request data comprises receiving request data that specifies the compute node requested to perform the compute workload, which specifies the n (n is greater than or equal to 2) dimensional goal configuration of the compute node. ,
The building that, when combined, matches the n-dimensional target configuration specified by the request data, from a superpod containing a set of building blocks, each containing a compute node with an m (m is 2 or more) dimension configuration. A set of building blocks comprising selecting a subset of blocks is connected to an optical network containing one or more optical circuit switches for each of the n dimensions.
Including creating a workload cluster of compute nodes containing a subset of the building blocks
The above-mentioned generation is
For each dimension of the workload cluster, the routing data corresponding to each dimension of the workload cluster comprises configuring the routing data of each of the one or more optical circuit switches for that dimension. Specifying how to route the data of the compute workload between the compute nodes along the dimension of the workload cluster.
A method comprising causing the compute node of the workload cluster to execute the compute workload.
前記ビルディングブロックの部分セットを選択することは、前記要求データによって指定される各種類の計算ノードについて、前記指定された種類の1つ以上の計算ノードを含むビルディングブロックを選択することを含む、請求項1に記載の方法。 The request data specifies different types of compute nodes.
Choosing a subset of the building block comprises selecting a building block containing one or more compute nodes of the specified type for each type of compute node specified by the request data. Item 1. The method according to Item 1.
前記光ネットワークは、各次元の各セグメントについて、前記ワークロードクラスタ内の各ビルディングブロックに対応する計算ノードセグメントの間にデータをルーティングする当該光ネットワークの光回路スイッチを含む、請求項4に記載の方法。 Each building block contains multiple segments of compute nodes along each dimension of the building block.
4. The optical network of claim 4, wherein the optical network includes an optical circuit switch of the optical network that routes data between the compute node segments corresponding to each building block in the workload cluster for each segment of each dimension. Method.
各ワークロードクラスタは、前記ビルディングブロックの異なる部分セットを含み、他のワークロードクラスタとは異なるワークロードを実行する、請求項1に記載の方法。 The superpod contains multiple workload clusters.
The method of claim 1, wherein each workload cluster comprises a different subset of said building blocks and performs a different workload than the other workload clusters.
利用可能なビルディングブロックを用いて前記特定のビルディングブロックを置換することとをさらに含む、請求項1に記載の方法。 Receiving data indicating that a particular building block in the workload cluster has failed,
The method of claim 1, further comprising replacing the particular building block with an available building block.
前記ワークロードクラスタの前記特定のビルディングブロックと1つ以上の他のビルディングブロックとの間のデータルーティングを停止するように、前記光ネットワークの1つ以上の光回路スイッチのデータルーティングを更新することと、
前記ワークロードクラスタの前記利用可能なビルディングブロックと前記1つ以上の他のビルディングブロックとの間にデータをルーティングするように、前記光ネットワークの前記1つ以上の光回路スイッチのデータルーティングを更新することとを含む、請求項8に記載の方法。 Replacing the particular building block with an available building block
Updating the data routing of one or more optical circuit switches in the optical network to stop the data routing between the particular building block of the workload cluster and one or more other building blocks. ,
Update the data routing of the one or more optical circuit switches in the optical network to route data between the available building blocks of the workload cluster and the one or more other building blocks. The method according to claim 8, including the above.
前記要求データによって指定された前記n次元構成が、前記スーパポッド内の利用可能且つ健全な第2の量のビルディングブロックを超える第1の量のビルディングブロックを必要とすることを判断することと、
前記要求データによって指定された前記n次元構成が、前記スーパポッド内の利用可能且つ健全な前記第2の量のビルディングブロックを超える前記第1の量のビルディングブロックを必要とするという判断に応じて、
前記計算ワークロードより低い優先度を有し且つ前記スーパポッドの他のビルディングブロックによって実行されている1つ以上の第2の計算ワークロードを特定すること、および、
前記1つ以上の第2の計算ワークロードの1つ以上のビルディングブロックを、前記計算ワークロードのための前記ワークロードクラスタに割り当て直すこととを含み、
前記ビルディングブロックの部分セットを含む前記計算ノードの前記ワークロードクラスタを生成することは、前記1つ以上の第2の計算ワークロードの前記1つ以上のビルディングブロックを前記ビルディングブロックの部分セットに含めることを有する、請求項1に記載の方法。 When combined, selecting a subset of the building blocks that matches the n-dimensional goal configuration specified by the request data
Determining that the n-dimensional configuration specified by the request data requires a first quantity of building blocks that exceeds the available and sound second quantity of building blocks in the superpod.
In response to the determination that the n-dimensional configuration specified by the request data requires the first quantity of building blocks that exceeds the available and sound second quantity of building blocks in the superpod.
Identifying one or more second computational workloads that have a lower priority than the computational workload and are being executed by other building blocks of the superpod, and
Including reallocating one or more building blocks of the one or more second compute workloads to the workload cluster for the compute workload.
Creating the workload cluster of the compute node containing a subset of the building blocks includes the one or more building blocks of the one or more second compute workloads in the building block subset. The method according to claim 1.
データ処理装置、
コンピュータプログラムをエンコードしたコンピュータ記憶媒体とを備え、
前記プログラムは、前記データ処理装置によって実行されると、前記データ処理装置に以下の動作を実行させるデータ処理装置命令を含み、前記動作は、
計算ワークロードを実行するために要求される計算ノードを指定する要求データを受信することを含み、前記要求データは、前記計算ノードのn(nは、2以上である)次元目標構成を指定し、
各々がm(mは、2以上である)次元構成の計算ノードを含む1組のビルディングブロックを含むスーパポッドから、組み合わせられると、前記要求データによって指定された前記n次元目標構成に一致する前記ビルディングブロックの部分セットを選択することを含み、前記1組のビルディングブロックは、前記n次元の各次元のための1つ以上の光回路スイッチを含む光ネットワークに接続され、
前記ビルディングブロックの部分セットを含む計算ノードのワークロードクラスタを生成することを含み、
前記生成することは、
前記ワークロードクラスタの各次元について当該次元のための前記1つ以上の光回路スイッチのそれぞれのルーティングデータを構成することを含み、前記ワークロードクラスタの各次元にそれぞれ対応する前記ルーティングデータは、前記ワークロードクラスタの前記次元に沿って、前記計算ワークロードのデータをどのように前記計算ノードの間にルーティングすることを指定し、
前記ワークロードクラスタの前記計算ノードに、前記計算ワークロードを実行させることを含む、システム。 It ’s a system,
Data processing equipment,
Equipped with a computer storage medium that encodes a computer program
The program includes a data processing device instruction that causes the data processing device to perform the following operations when executed by the data processing device.
The request data comprises receiving request data that specifies the compute node requested to perform the compute workload, which specifies the n (n is greater than or equal to 2) dimensional goal configuration of the compute node. ,
The building that, when combined, matches the n-dimensional target configuration specified by the request data, from a superpod containing a set of building blocks, each containing a compute node with an m (m is 2 or more) dimension configuration. A set of building blocks comprising selecting a subset of blocks is connected to an optical network containing one or more optical circuit switches for each of the n dimensions.
Including creating a workload cluster of compute nodes containing a subset of the building blocks
The above-mentioned generation is
The routing data corresponding to each dimension of the workload cluster comprises configuring the routing data of each of the one or more optical circuit switches for that dimension for each dimension of the workload cluster. Specifying how to route the data for the compute workload between the compute nodes along the dimension of the workload cluster.
A system comprising having the compute node of the workload cluster execute the compute workload.
前記ビルディングブロックの部分セットを選択することは、前記要求データによって指定された各種類の計算ノードについて、前記指定された種類の1つ以上の計算ノードを含むビルディングブロックを選択することを含む、請求項12に記載のシステム。 The request data specifies different types of compute nodes.
Choosing a subset of the building block comprises selecting a building block containing one or more compute nodes of the specified type for each type of compute node specified by the request data. Item 12. The system according to item 12.
前記光ネットワークは、各次元の各セグメントについて、前記ワークロードクラスタ内の各ビルディングブロックに対応する計算ノードセグメントの間にデータをルーティングする当該光ネットワークの光回路スイッチを含む、請求項15に記載のシステム。 Each building block contains multiple segments of compute nodes along each dimension of the building block.
15. The optical network of claim 15, wherein the optical network includes an optical circuit switch of the optical network that routes data between the compute node segments corresponding to each building block in the workload cluster for each segment of each dimension. system.
各ワークロードクラスタは、前記ビルディングブロックの異なる部分セットを含み、他のワークロードクラスタとは異なるワークロードを実行する、請求項12に記載のシステム。 The superpod contains multiple workload clusters.
12. The system of claim 12, wherein each workload cluster comprises a different subset of said building blocks and performs a different workload than the other workload clusters.
前記ワークロードクラスタの特定のビルディングブロックが故障したことを示すデータを受信することと、
利用可能なビルディングブロックを用いて前記特定のビルディングブロックを置換することとを含む、請求項12に記載のシステム。 The above operation is
Receiving data indicating that a particular building block in the workload cluster has failed,
12. The system of claim 12, comprising replacing the particular building block with an available building block.
計算ワークロードを実行するために要求される計算ノードを指定する要求データを受信することを含み、前記要求データは、前記計算ノードのn(nは、2以上である)次元目標構成を指定し、
各々がm(mは、2以上である)次元構成の計算ノードを含む1組のビルディングブロックを含むスーパポッドから、組み合わせられると、前記要求データによって指定された前記n次元目標構成に一致する前記ビルディングブロックの部分セットを選択することを含み、前記1組のビルディングブロックは、前記n次元の各次元のための1つ以上の光回路スイッチを含む光ネットワークに接続され、
前記ビルディングブロックの部分セットを含む計算ノードのワークロードクラスタを生成することを含み、
前記生成することは、
前記ワークロードクラスタの各次元について、当該次元のための前記1つ以上の光回路スイッチのそれぞれのルーティングデータを構成することを含み、前記ワークロードクラスタの各次元にそれぞれ対応する前記ルーティングデータは、前記ワークロードクラスタの前記次元に沿って、前記計算ワークロードのデータをどのように前記計算ノードの間にルーティングすることを指定し、
前記ワークロードクラスタの前記計算ノードに、前記計算ワークロードを実行させることを含む、非一時コンピュータ記憶媒体。 A non-temporary computer storage medium in which a computer program is encoded, wherein the program comprises a data processing device instruction that causes the data processing device to perform the following operations when executed by the data processing device.
The request data comprises receiving request data that specifies the compute node requested to perform the compute workload, which specifies the n (n is greater than or equal to 2) dimensional goal configuration of the compute node. ,
The building that, when combined, matches the n-dimensional target configuration specified by the request data, from a superpod containing a set of building blocks, each containing a compute node with an m (m is 2 or more) dimension configuration. A set of building blocks comprising selecting a subset of blocks is connected to an optical network containing one or more optical circuit switches for each of the n dimensions.
Including creating a workload cluster of compute nodes containing a subset of the building blocks
The above-mentioned generation is
For each dimension of the workload cluster, the routing data corresponding to each dimension of the workload cluster comprises configuring the routing data of each of the one or more optical circuit switches for that dimension. Specifying how to route the data of the compute workload between the compute nodes along the dimension of the workload cluster.
A non-temporary computer storage medium comprising having the compute node of the workload cluster execute the compute workload.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023035587A JP2023078228A (en) | 2019-03-06 | 2023-03-08 | Reconfigurable computing pods using optical networks |
Applications Claiming Priority (5)
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 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023035587A Division JP2023078228A (en) | 2019-03-06 | 2023-03-08 | Reconfigurable computing pods using optical networks |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022522320A true JP2022522320A (en) | 2022-04-18 |
JP7242847B2 JP7242847B2 (en) | 2023-03-20 |
Family
ID=72336372
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021522036A Active JP7242847B2 (en) | 2019-03-06 | 2019-12-18 | Reconfigurable computing pod using optical network |
JP2023035587A Pending JP2023078228A (en) | 2019-03-06 | 2023-03-08 | Reconfigurable computing pods using optical networks |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023035587A Pending JP2023078228A (en) | 2019-03-06 | 2023-03-08 | Reconfigurable computing pods using optical networks |
Country Status (7)
Country | Link |
---|---|
US (3) | US11042416B2 (en) |
EP (1) | EP3853732A1 (en) |
JP (2) | JP7242847B2 (en) |
KR (2) | KR102583771B1 (en) |
CN (2) | CN117873727A (en) |
BR (1) | BR112021007538A2 (en) |
WO (1) | WO2020180387A1 (en) |
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 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006146864A (en) * | 2004-11-17 | 2006-06-08 | Raytheon Co | Scheduling in high-performance computing (hpc) system |
JP2016504668A (en) * | 2012-11-21 | 2016-02-12 | コーヒレント・ロジックス・インコーポレーテッド | Processing system with distributed processor |
JP2016091069A (en) * | 2014-10-30 | 2016-05-23 | 富士通株式会社 | Job management program, job management method, and job management apparatus |
JP2017527031A (en) * | 2014-08-18 | 2017-09-14 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | Cluster server configuration using cellular automata |
Family Cites Families (48)
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 |
US7518120B2 (en) | 2005-01-04 | 2009-04-14 | The Regents Of The University Of Michigan | Long-distance quantum communication and scalable quantum computation |
JP2006215816A (en) * | 2005-02-03 | 2006-08-17 | Fujitsu Ltd | Information processing system and its control method |
US8194638B2 (en) | 2006-07-27 | 2012-06-05 | International Business Machines Corporation | Dual network types solution for computer interconnects |
CN101330413B (en) * | 2007-06-22 | 2012-08-08 | 上海红神信息技术有限公司 | Method for expanding mixed multi-stage tensor based on around network and ultra-cube network structure |
CN101354694B (en) * | 2007-07-26 | 2010-10-13 | 上海红神信息技术有限公司 | Ultra-high expanding super computing system based on MPU structure |
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 (en) * | 2011-09-27 | 2013-04-15 | 성균관대학교산학협력단 | Three-dimensional network on chip |
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 (en) | 2012-02-03 | 2014-12-17 | 光机队公司 | Scalable optical broadcast interconnect |
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 |
US10394611B2 (en) | 2012-11-26 | 2019-08-27 | Amazon Technologies, Inc. | Scaling computing clusters in a distributed computing system |
KR101465420B1 (en) * | 2013-10-08 | 2014-11-27 | 성균관대학교산학협력단 | Network on chip and method for routing the network on chip |
CN103580771B (en) * | 2013-11-11 | 2016-01-20 | 清华大学 | Sheet switching method during full light based on time synchronized |
CN104731796B (en) * | 2013-12-19 | 2017-12-19 | 秒针信息技术有限公司 | Data storage computational methods and system |
US11290524B2 (en) * | 2014-08-13 | 2022-03-29 | Microsoft Technology Licensing, Llc | Scalable fault resilient communications within distributed clusters |
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 |
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 (en) | 2017-01-19 | 2019-05-21 | 西安电子科技大学 | Light interconnection network system and communication means in a kind of supercomputer |
CN107094270A (en) * | 2017-05-11 | 2017-08-25 | 中国科学院计算技术研究所 | The interconnection system and its topological construction method of restructural |
JP6885193B2 (en) * | 2017-05-12 | 2021-06-09 | 富士通株式会社 | Parallel processing device, job management method, and job management program |
CN107241660B (en) * | 2017-06-26 | 2021-07-06 | 国网信息通信产业集团有限公司 | Switching network architecture and method of all-optical flexible granularity for intelligent power grid service |
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/en active Pending
- 2019-12-18 WO PCT/US2019/067100 patent/WO2020180387A1/en unknown
- 2019-12-18 CN CN201980069191.8A patent/CN112889032B/en active Active
- 2019-12-18 KR KR1020217011905A patent/KR102583771B1/en active IP Right Grant
- 2019-12-18 KR KR1020237032481A patent/KR102625118B1/en active IP Right Grant
- 2019-12-18 EP EP19839305.0A patent/EP3853732A1/en active Pending
- 2019-12-18 BR BR112021007538-0A patent/BR112021007538A2/en unknown
- 2019-12-18 JP JP2021522036A patent/JP7242847B2/en 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/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006146864A (en) * | 2004-11-17 | 2006-06-08 | Raytheon Co | Scheduling in high-performance computing (hpc) system |
JP2016504668A (en) * | 2012-11-21 | 2016-02-12 | コーヒレント・ロジックス・インコーポレーテッド | Processing system with distributed processor |
JP2017527031A (en) * | 2014-08-18 | 2017-09-14 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | Cluster server configuration using cellular automata |
JP2016091069A (en) * | 2014-10-30 | 2016-05-23 | 富士通株式会社 | Job management program, job management method, and job management apparatus |
Also Published As
Publication number | Publication date |
---|---|
US11537443B2 (en) | 2022-12-27 |
JP7242847B2 (en) | 2023-03-20 |
CN117873727A (en) | 2024-04-12 |
KR102583771B1 (en) | 2023-09-27 |
US11042416B2 (en) | 2021-06-22 |
KR20210063382A (en) | 2021-06-01 |
BR112021007538A2 (en) | 2021-07-27 |
CN112889032B (en) | 2024-02-06 |
US20200285524A1 (en) | 2020-09-10 |
EP3853732A1 (en) | 2021-07-28 |
CN112889032A (en) | 2021-06-01 |
US20230161638A1 (en) | 2023-05-25 |
WO2020180387A1 (en) | 2020-09-10 |
US20210286656A1 (en) | 2021-09-16 |
KR102625118B1 (en) | 2024-01-12 |
KR20230141921A (en) | 2023-10-10 |
JP2023078228A (en) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7242847B2 (en) | Reconfigurable computing pod using optical network | |
US11451889B2 (en) | Reconfigurable computing pods using optical networks with one-to-many optical switches | |
US10452971B2 (en) | Deep neural network partitioning on servers | |
KR101159377B1 (en) | High performance computing system and method | |
KR101159386B1 (en) | On-demand instantiation in a high-performance computinghpc system | |
US20160379109A1 (en) | Convolutional neural networks on hardware accelerators | |
KR20070006906A (en) | System and method for topology-aware job scheduling and backfilling in an hpc environment | |
US20220121928A1 (en) | Enhanced reconfigurable interconnect network | |
CN104219279A (en) | Modular architecture for extreme-scale distributed processing applications | |
US9906433B2 (en) | API supporting server and key based networking | |
CN109952809B (en) | Quaternary full mesh dimension driven network architecture | |
JP2019008648A (en) | Information processing system and information processing method | |
JP7306481B2 (en) | Distributed processing system | |
JP2019028853A (en) | Information processing system, information processing method, and program | |
Qi | A Hybrid Genetic Algorithm towards Network Aware Virtual Machine Placement in Data Centers | |
Jiang et al. | BHyberCube: A MapReduce aware heterogeneous architecture for data center | |
Khayam Anjam | SDN for BigData Application Clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210617 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210617 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220823 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221024 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230308 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7242847 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |