KR20210063382A - 광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들 - Google Patents

광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들 Download PDF

Info

Publication number
KR20210063382A
KR20210063382A KR1020217011905A KR20217011905A KR20210063382A KR 20210063382 A KR20210063382 A KR 20210063382A KR 1020217011905 A KR1020217011905 A KR 1020217011905A KR 20217011905 A KR20217011905 A KR 20217011905A KR 20210063382 A KR20210063382 A KR 20210063382A
Authority
KR
South Korea
Prior art keywords
building blocks
workload
compute nodes
dimension
data
Prior art date
Application number
KR1020217011905A
Other languages
English (en)
Other versions
KR102583771B1 (ko
Inventor
니샨트 파틸
샹 조우
앤드류 스윙
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020237032481A priority Critical patent/KR102625118B1/ko
Publication of KR20210063382A publication Critical patent/KR20210063382A/ko
Application granted granted Critical
Publication of KR102583771B1 publication Critical patent/KR102583771B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17387Three dimensional, e.g. hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/803Application aware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/821Prioritising resource allocation or reservation requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/65Re-configuration of fast packet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0005Switch and router aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0062Network aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0005Switch and router aspects
    • H04Q2011/0052Interconnection of switches
    • H04Q2011/0058Crossbar; Matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0062Network aspects
    • H04Q2011/0064Arbitration, scheduling or medium access control aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0062Network aspects
    • H04Q2011/0079Operation or maintenance aspects
    • H04Q2011/0081Fault tolerance; Redundancy; Recovery; Reconfigurability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0062Network aspects
    • H04Q2011/0086Network resource allocation, dimensioning or optimisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0062Network aspects
    • H04Q2011/009Topology aspects
    • H04Q2011/0098Mesh

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

광학 네트워크를 사용하여 컴퓨트 노드들의 빌딩 블록들의 클러스터들을 생성하기 위한 장치를 포함하는 방법들, 시스템들 및 장치. 일 양상에서, 방법은 컴퓨팅 워크로드에 대해 요청된 컴퓨트 노드들을 특정하는 요청 데이터를 수신하는 단계를 포함한다. 요청 데이터는 컴퓨트 노드들의 타겟 n-차원 어레인지먼트를 특정한다. 컴퓨트 노드들의 m-차원 어레인지먼트를 각각 포함하는 빌딩 블록들의 세트를 포함하는 슈퍼포드로부터, 조합될 때 요청 데이터에 의해 특정된 타겟 어레인지먼트와 매칭하는 빌딩 블록들의 서브세트를 선택하는 것이 이루어진다. 빌딩 블록들의 세트는 하나 이상의 광학 회로 스위치들을 포함하는 광학 네트워크에 연결된다. 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터가 생성된다. 생성하는 것은 워크로드 클러스터의 각각의 차원에 대해, 하나 이상의 광학 회로 스위치들에 대한 개개의 라우팅 데이터를 구성하는 것을 포함한다.

Description

광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들
[0001] 머신 러닝 훈련(machine learning training)과 같은 일부 컴퓨테이셔널 워크로드(computational workload)들은 워크로드들을 효율적으로 완료하기 위해 많은 수의 프로세싱 노드들을 요구한다. 프로세싱 노드들은 상호 연결 네트워크들을 통해 서로 통신할 수 있다. 예컨대, 머신 러닝 훈련(machine learning training)에서, 프로세싱 노드들은 서로 통신하여 최적의 딥 러닝 모델(deep learning model)에 수렴할 수 있다. 상호 연결 네트워크들은 프로세싱 유닛들이 수렴을 달성하는 속도 및 효율성에 중요하다.
[0002] 머신 러닝 및 다른 워크로드들이 크기 및 복잡성이 다양하므로, 다수의 프로세싱 노드들을 포함하는 슈퍼 컴퓨터들의 강성(rigid) 구조들은 슈퍼 컴퓨터들의 이용가능성, 확장성 및 성능을 제한할 수 있다. 예컨대, 프로세싱 노드들의 특정 어레인지먼트(arrangement)를 연결하는 강성 상호 연결 네트워크를 갖는 슈퍼 컴퓨터의 일부 프로세싱 노드들이 실패하는 경우, 슈퍼 컴퓨터는 이러한 프로세싱 노드들을 대체하지 못할 수 있어서, 감소된 이용가능성 및 성능을 초래할 수 있다. 일부 특정 어레인지먼트들은 또한 실패한 노드들과 관계없이 다른 어레인지먼트들보다 높은 성능을 초래할 수 있다.
[0003] 본 명세서는 컴퓨트 노드(compute node)들의 재구성가능한 슈퍼포드(superpod)들 ― 이로부터 워크로드 클러스터들이 광학 네트워크들을 사용하여 생성됨 ― 에 관한 기술들을 설명한다.
[0004] 일반적으로, 본 명세서에서 설명된 청구대상의 하나의 혁신적 양상은 컴퓨팅 워크로드에 대해 요청된 컴퓨트 노드들을 특정하는 요청 데이터를 수신하는 단계를 포함하는 방법들로 구현될 수 있다. 요청 데이터는 컴퓨트 노드들의 타겟 n-차원 어레인지먼트를 특정하며, 여기서 n은 2 이상이다. 컴퓨트 노드들의 m-차원 어레인지먼트를 각각 포함하는 빌딩 블록들의 세트를 포함하는 슈퍼포드로부터, 조합될 때 요청 데이터에 의해 특정된 타겟 n-차원 어레인지먼트와 매칭하는 빌딩 블록들의 서브세트를 선택하는 것이 이루어지며, 여기서 m은 2 이상이다. 빌딩 블록들의 세트는 n-차원들 각각에 대한 하나 이상의 광학 회로 스위치들을 포함하는 광학 네트워크에 연결된다. 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터가 생성된다. 워크로드 클러스터는 특정한 주어진 워크로드의 계산 또는 실행에 전용인 컴퓨트 노드들의 클러스터이다. 생성하는 것은 워크로드 클러스터의 각각의 차원에 대해, 차원에 대한 하나 이상의 광학 회로 스위치들에 대한 개개의 라우팅 데이터를 구성하는 것을 포함한다. 워크로드 클러스터의 각각의 차원에 대한 개개의 라우팅 데이터는 워크로드 클러스터의 차원을 따라 컴퓨트 노드들 사이에서 컴퓨팅 워크로드의 데이터가 어떻게 라우팅되는지를 특정한다. 워크로드 클러스터의 컴퓨트 노드들은 컴퓨팅 워크로드를 실행하도록 야기된다.
[0005] 이러한 그리고 다른 구현들은 각각 선택적으로, 다음의 특징들 중의 하나 이상의 특징을 포함할 수 있다. 일부 양상들에서, 요청 데이터는 컴퓨트 노드들의 상이한 유형들을 특정한다. 빌딩 블록들의 서브세트를 선택하는 것은, 요청 데이터에 의해 특정된 컴퓨트 노드의 각각의 유형에 대해, 특정된 유형의 하나 이상의 컴퓨트 노드들을 포함하는 빌딩 블록을 선택하는 것을 포함할 수 있다.
[0006] 일부 양상들에서, 슈퍼포드의 각각의 차원에 대한 개개의 라우팅 데이터는 하나 이상의 광학 회로 스위치들 중 하나에 대한 광학 회로 스위치 라우팅 테이블을 포함한다. 일부 양상들에서, 광학 네트워크는, n 차원들 각각에 대해, 차원을 따라 컴퓨트 노드들 사이에서 데이터를 라우팅하는 광학 네트워크의 하나 이상의 광학 회로 스위치들을 포함한다. 각각의 빌딩 블록은 빌딩 블록들의 각각의 차원을 따라 컴퓨트 노드들의 다수의 세그먼트들을 포함할 수 있다. 광학 네트워크는 각각의 차원의 각각의 세그먼트에 대해, 워크로드 클러스터의 각각의 빌딩 블록의 컴퓨트 노드들의 대응하는 세그먼트들 사이에서 데이터를 라우팅하는 광학 네트워크의 광학 회로 스위치를 포함할 수 있다.
[0007] 일부 양상들에서, 각각의 빌딩 블록은 컴퓨트 노드들의 3-차원 토러스 또는 컴퓨트 노드들의 메쉬(mesh) 중 하나를 포함한다. 일부 양상들에서, 슈퍼포드는 다수의 워크로드 클러스터들을 포함한다. 각각의 워크로드 클러스터는 빌딩 블록들의 상이한 서브세트를 포함할 수 있고, 서로 다른 워크로드 클러스터와 상이한 워크로드들을 실행할 수 있다.
[0008] 일부 양상들은 워크로드 클러스터의 주어진 빌딩 블록이 실패했음을 표시하는 데이터를 수신하는 것 및 주어진 빌딩 블록을 이용가능한 빌딩 블록으로 대체하는 것을 포함한다. 주어진 빌딩 블록을 이용가능한 빌딩 블록으로 대체하는 것은, 워크로드 클러스터의 주어진 빌딩 블록과 하나 이상의 다른 빌딩 블록들 사이에서 데이터를 라우팅하는 것을 중단하기 위해 광학 네트워크의 하나 이상의 광학 회로 스위치들의 라우팅 데이터를 업데이트하는 것, 및 워크로드 클러스터의 이용가능한 빌딩 블록과 하나 이상의 다른 빌딩 블록들 사이에서 데이터를 라우팅하기 위해 광학 네트워크의 하나 이상의 광학 회로 스위치들의 라우팅 데이터를 업데이트하는 것을 포함할 수 있다.
[0009] 일부 양상들에서, 조합될 때 요청 데이터에 의해 특정된 타겟 n-차원 어레인지먼트와 매칭하는 빌딩 블록들의 서브세트를 선택하는 것은, 요청 데이터에 의해 특정된 n-차원 어레인지먼트가 슈퍼포드의 제2 수량의 이용가능한 건전한(healthy) 빌딩 블록들을 초과하는 제1 수량의 빌딩 블록들을 요구한다고 결정하는 것, 및 요청 데이터에 의해 특정된 n-차원 어레인지먼트가 슈퍼포드의 제2 수량의 이용가능한 건전한 빌딩 블록들을 초과하는 제1 수량의 빌딩 블록들을 요구한다고 결정하는 것에 대한 응답으로: 컴퓨팅 워크로드보다 낮은 우선순위를 갖고 슈퍼포드의 다른 빌딩 블록들에 의해 실행되고 있는 하나 이상의 제2 컴퓨팅 워크로드들을 식별하는 것, 및 하나 이상의 제2 컴퓨팅 워크로드들의 하나 이상의 빌딩 블록들을 컴퓨팅 워크로드를 위한 워크로드 클러스터에 재할당하는 것을 포함한다. 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터를 생성하는 것은 빌딩 블록들의 서브세트에 하나 이상의 제2 컴퓨팅 워크로드들의 하나 이상의 빌딩 블록들을 포함시키는 것을 포함할 수 있다.
[0010] 일부 양상들에서, 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터를 생성하는 것은, 하나 이상의 제2 컴퓨팅 워크로드들의 하나 이상의 빌딩 블록들 각각이 하나 이상의 제2 컴퓨팅 워크로드들의 빌딩 블록들보다는 워크로드 클러스터의 다른 빌딩 블록들과 통신하도록, 워크로드 클러스터의 각각의 차원에 대해, 차원에 대한 하나 이상의 광학 회로 스위치들에 대한 개개의 라우팅 데이터를 재구성하는 것을 포함한다.
[0011] 본 명세서에서 설명된 청구 대상은 다음의 이점들 중 하나 이상의 이점들을 실현하도록 특정 실시예들에서 구현될 수 있다. 워크로드들에 대한 컴퓨트 노드들의 클러스터들을 동적으로 구성하기 위해 광학 네트워크들을 사용하는 것은 다른 컴퓨트 노드들이 결함있는 컴퓨트 노드들 또는 오프라인 컴퓨트 노드들로 쉽게 대체될 수 있으므로 컴퓨트 노드들의 더 높은 이용가능성을 초래한다. 컴퓨트 노드들의 어레인지먼트의 유연성은 컴퓨트 노드들의 더 높은 성능을 초래하고, 각각의 워크로드에 대해 최적화된(또는 개선된) 적절한 수 및 어레인지먼트의 컴퓨트 노드들을 더 효율적으로 배정하는 것을 초래한다. 다양한 유형들의 컴퓨트 노드들을 포함하는 슈퍼포드들을 통해, 예컨대, 데이터 센터 또는 다른 위치에서 물리적으로 서로 가까운(예컨대, 동일한 랙(rack)에서 서로 직접적으로 연결되고 그리고/또는 인접한) 컴퓨트 노드들에만 제한되지 않고, 적절한 수 및 어레인지먼트의 컴퓨트 노드들뿐만 아니라 각각의 워크로드에 대한 적절한 유형들의 컴퓨트 노드들을 포함하는 워크로드 클러스터들이 생성될 수 있다. 대신에, 광학 네트워크는 컴퓨트 노드들이 마치 서로에 대해 임의의 물리적 위치들에 있지만 서로 인접해있는 것처럼 동작하는 다양한 형상들의 워크로드 클러스터들을 인에이블(enable)한다.
[0012] 또한 포드들을 구성하기 위해 광학 네트워크들을 사용하는 것은 워크로드들에 대한 결함 격리 및 더 양호한 보안을 제공한다. 예컨대, 일부 종래의 슈퍼 컴퓨터들은 슈퍼 컴퓨터를 구성하는 다양한 컴퓨터들 사이에서 트래픽을 라우팅한다. 컴퓨터들 중 하나가 실패하면, 그 통신 경로는 손실된다. 광학 네트워크들을 사용하면, 데이터가 신속하게 다시 라우팅될 수 있고 그리고/또는 이용가능한 컴퓨트 노드가 실패한 컴퓨트 노드를 대체할 수 있다. 또한, OCS(optical circuit switching) 스위치들에 의해 제공된 워크로드들 사이의 물리적 격리, 예컨대, 상이한 광 경로(light path)들의 물리적 격리는 분리를 관리하기 위해 취약한 소프트웨어를 사용하기보다는 동일한 슈퍼포드에서 실행되는 다양한 워크로드들 사이에 더 양호한 보안을 제공한다.
[0013] 또한 빌딩 블록들을 연결하기 위해 광학 네트워크들을 사용하는 것은 패킷 교환 네트워크들에 비해 빌딩 블록들 사이에서 데이터를 송신할 때 레이턴시를 감소시킬 수 있다. 예컨대, 패킷 교환에서는 패킷이 스위치에 의해 수신되고, 버퍼링되고, 다른 포트 상에서 다시 전송될 필요가 있으므로 추가적 레이턴시가 존재한다. 빌딩 블록들을 연결하기 위해 OCS 스위치들을 사용하는 것은 중간에 패킷 교환 또는 버퍼링이 없는 트루 엔드-투-엔드(true end-to-end) 광 경로를 제공한다.
[0014] 전술된 청구 대상의 다양한 특징들 및 이점들이 도면들과 관련하여 이하에서 설명된다. 추가 특징들 및 이점들은 본원 및 청구항들에서 설명된 청구 대상으로부터 명백하다.
[0015] 도 1은 예시적 프로세싱 시스템이 컴퓨트 노드들의 워크로드 클러스터들을 생성하고 워크로드 클러스터들을 사용하여 컴퓨팅 워크로드들을 실행하는 환경의 블록 다이어그램이다.
[0016] 도 2는 슈퍼포드의 빌딩 블록들의 일부분으로부터 생성된 예시적 논리적 슈퍼포드 및 예시적 워크로드 클러스터들을 예시한다.
[0017] 도 3은 빌딩 블록을 사용하여 생성된 예시적 빌딩 블록 및 예시적 워크로드 클러스터들을 예시한다.
[0018] 도 4는 컴퓨트 노드로부터 OCS(optical circuit switching) 스위치로의 예시적 광학 링크를 예시한다.
[0019] 도 5는 빌딩 블록을 형성하기 위한 논리적 컴퓨트 트레이(compute tray)를 예시한다.
[0020] 도 6은 하나의 차원이 생략된 예시적 빌딩 블록의 서브블록을 예시한다.
[0021] 도 7은 예시적 빌딩 블록을 예시한다.
[0022] 도 8은 슈퍼포드에 대한 OCS 패브릭 토폴로지(fabric topology)를 예시한다.
[0023] 도 9는 예시적 슈퍼포드의 컴포넌트들을 예시한다.
[0024] 도 10은 워크로드 클러스터를 생성하고, 워크로드 클러스터를 사용하여 컴퓨팅 워크로드를 실행하기 위한 예시적 프로세스를 예시하는 흐름 다이어그램이다.
[0025] 도 11은 실패한 빌딩 블록을 대체하기 위해 광학 네트워크를 재구성하기 위한 예시적 프로세스를 예시하는 흐름 다이어그램이다.
[0026] 다양한 도면들에서의 유사한 참조 번호들 및 표기들은 유사한 엘리먼트들을 표시한다.
[0027] 일반적으로, 본원에서 설명된 시스템들 및 기법들은 슈퍼포드로부터 컴퓨트 노드들의 워크로드 클러스터들을 생성하도록 광학 네트워크 패브릭을 구성할 수 있다. 슈퍼포드는 광학 네트워크를 통해 서로 연결된 컴퓨트 노드들의 다수의 빌딩 블록들의 그룹이다. 예컨대, 슈퍼포드는 상호 연결된 빌딩 블록들의 세트를 포함할 수 있다. 각각의 빌딩 블록은 2-차원 또는 3-차원 어레인지먼트와 같은 m-차원 어레인지먼트에 있는 다수의 컴퓨트 노드들을 포함할 수 있다.
[0028] 사용자는 특정 워크로드에 대한 컴퓨트 노드들의 타겟 어레인지먼트를 특정할 수 있다. 예컨대, 사용자는 머신 러닝 워크로드를 제공할 수 있고, 머신 러닝 컴퓨테이션(computation)들을 수행할 컴퓨트 노드들의 타겟 어레인지먼트를 특정할 수 있다. 타겟 어레인지먼트는 n 차원들 각각에 걸친 컴퓨트 노드들의 수를 정의할 수 있으며, 예컨대, 여기서 n은 2 이상이다. 즉, 타겟 어레인지먼트는 워크로드 클러스터의 사이즈 및 형상을 정의할 수 있다. 예컨대, 일부 머신 러닝 모델들 및 컴퓨테이션들은 정사각형이 아닌 토폴로지들 상에서 더 양호하게 수행된다.
[0029] 또한 단면 대역폭은 전체적으로 컴퓨트 스루아웃(compute throughout), 예컨대, 유휴 컴퓨트 사이클들을 벗어나 데이터 전달을 기다리는 컴퓨트 노드들에 대한 제한이 될 수 있다. 컴퓨트 노드들에 걸쳐 작업이 어떻게 배정되는지 및 다양한 차원들에서 네트워크에 걸쳐 얼마나 많은 데이터가 전달될 필요가 있는지에 따라, 워크로드 클러스터의 형상은 워크로드 클러스터의 컴퓨트 노드들의 성능에 영향을 미칠 수 있다.
[0030] 모든 컴퓨트 노드 데이터 트래픽에 대한 모든 컴퓨트 노드를 가질 워크로드들의 경우, 큐브형 워크로드 클러스터는 컴퓨트 노드들 사이의 홉들의 수를 최소화할 것이다. 워크로드가 많은 로컬 통신을 갖고, 그런 다음, 특정 차원에 걸쳐 컴퓨트 노드들의 인접한 세트에 데이터를 전달하고, 워크로드가 함께 연결된 이러한 다수의 이웃 통신들을 요구하는 경우, 워크로드는 다른 차원들보다 특정 차원에 더 많은 컴퓨트 노드들을 갖는 어레인지먼트로부터의 이점을 가질 수 있다. 따라서 사용자들이 워크로드 클러스터에서 컴퓨트 노드들의 어레인지먼트를 특정하는 것을 가능하게 하는 것은 사용자들이 자신들의 워크로드들에 대한 더 양호한 성능을 초래할 수 있는 어레인지먼트들을 특정할 수 있게 한다.
[0031] 상이한 유형들의 컴퓨트 노드들이 슈퍼포드에 포함되는 경우, 요청은 또한 워크로드 클러스터에 포함할 각각의 유형의 컴퓨트 노드의 수를 특정할 수 있다. 이것은 사용자들이 특정 워크로드에 대해 더 양호하게 수행하는 컴퓨트 노드들의 어레인지먼트를 특정할 수 있게 한다.
[0032] 워크로드 스케줄러는 예컨대, 빌딩 블록들의 이용가능성, 빌딩 블록들의 건전성(health)(예컨대, 작동 또는 실패), 및/또는 슈퍼포드의 워크로드들의 우선순위(예컨대, 슈퍼포드의 컴퓨트 노드들에 의해 실행되거나 또는 실행될 워크로드들의 우선순위)에 기초하여 워크로드 클러스터에 대한 빌딩 블록들을 선택할 수 있다. 워크로드 스케줄러는 선택된 빌딩 블록들 및 빌딩 블록들의 타겟 어레인지먼트를 식별하는 데이터를 OCS(optical circuit switching) 매니저에 제공할 수 있다. 그런 다음, OCS 매니저는 빌딩 블록들을 함께 연결하여 워크로드 클러스터를 형성하기 위해 광학 네트워크의 하나 이상의 OCS 스위치들을 구성할 수 있다. 그런 다음, 워크로드 스케줄러는 워크로드 클러스터의 컴퓨트 노드들 상에서 컴퓨팅 워크로드를 실행할 수 있다.
[0033] 워크로드 클러스터의 빌딩 블록들 중 하나가 실패할 경우, 실패한 빌딩 블록은 단순히 OCS 스위치들을 재구성함으로써 다른 빌딩 블록으로 신속하게 대체될 수 있다. 예컨대, 워크로드 스케줄러는 슈퍼포드의 이용가능한 빌딩 블록을 선택하여 실패한 빌딩 블록을 대체할 수 있다. 워크로드 스케줄러는 실패한 빌딩 블록을 선택된 빌딩 블록으로 대체하도록 OCS 매니저에게 명령할 수 있다. 그런 다음, OCS 매니저는, 선택된 빌딩 블록이 워크로드 클러스터의 다른 빌딩 블록들에 연결되고 실패한 빌딩 블록이 더 이상 워크로드 클러스터의 빌딩 블록들에 연결되지 않도록, OCS 스위치들을 재구성할 수 있다.
[0034] 도 1은 예시적 프로세싱 시스템(130)이 컴퓨트 노드들의 워크로드 클러스터들을 생성하고 워크로드 클러스터들을 사용하여 컴퓨팅 워크로드들을 실행하는 환경(100)의 블록 다이어그램이다. 프로세싱 시스템(130)은 데이터 통신 네트워크(120), 예컨대, LAN(local area network), WAN(wide area network), 인터넷, 모바일 네트워크, 또는 이들의 조합을 통해 사용자 디바이스들(110)로부터 컴퓨팅 워크로드들(112)을 수신할 수 있다. 예시적 워크로드들(112)은 몇 가지만 예를 들자면, 소프트웨어 애플리케이션들, 머신 러닝 모델들, 예컨대, 머신 러닝 모델들의 훈련 및/또는 사용, 비디오들의 인코딩 및 디코딩, 및 디지털 신호 프로세싱 워크로드들을 포함한다.
[0035] 또한 사용자는 워크로드(112)에 대한 컴퓨트 노드들의 요청된 클러스터(114)를 특정할 수 있다. 예컨대, 사용자는 컴퓨트 노드들의 요청된 클러스터에 대한 클러스터의 타겟 형상 및 사이즈를 특정할 수 있다. 즉, 사용자는 다수의 차원들에 걸친 컴퓨트 노드들의 수량 및 컴퓨트 노드들의 형상을 특정할 수 있다. 예컨대, 컴퓨트 노드들이 3차원들 x, y 및 z에 걸쳐 분산될 경우, 사용자는 각각의 차원의 컴퓨트 노드들의 수를 특정할 수 있다. 또한 사용자는 클러스터에 포함할 컴퓨트 노드들의 하나 이상의 유형들을 특정할 수 있다. 아래에서 설명되는 바와 같이, 프로세싱 시스템(130)은 상이한 유형들의 컴퓨트 노드들을 포함할 수 있다.
[0036] 아래에서 설명되는 바와 같이, 프로세싱 시스템(130)은 빌딩 블록들을 사용하여 클러스터의 타겟 형상 및 사이즈와 매칭하는 워크로드 클러스터를 생성할 수 있다. 각각의 빌딩 블록은 m 차원들, 예컨대, 3차원들로 배열된 다수의 컴퓨트 노드들을 포함할 수 있다. 따라서, 사용자는 다수의 차원들 각각에서 빌딩 블록들의 수량에 관해 타겟 형상 및 사이즈를 특정할 수 있다. 예컨대, 프로세싱 시스템(130)은 사용자들이 각각의 차원에서 최대 수의 빌딩 블록들을 선택하는 것을 가능하게 하는 사용자 인터페이스를 사용자 디바이스들(110)에 제공할 수 있다.
[0037] 사용자 디바이스(110)는 요청된 클러스터(114)를 특정하는 데이터 및 워크로드(112)를 프로세싱 시스템(130)에 제공할 수 있다. 예컨대, 사용자 디바이스(110)는 요청된 클러스터(114)를 특정하는 데이터 및 워크로드(112)를 포함하는 요청 데이터를 네트워크(120)를 통해 프로세싱 시스템(130)에 제공할 수 있다.
[0038] 프로세싱 시스템(130)은 셀 스케줄러(140) 및 하나 이상의 셀들(150)을 포함한다. 셀(150)은 하나 이상의 슈퍼포드들의 그룹이다. 예컨대, 예시된 셀(150)은 4개의 슈퍼포드들(152-158)을 포함한다. 각각의 슈퍼포드(152-158)는 빌딩 블록들(160)의 세트(본원에서 빌딩 블록들의 풀(pool)로 또한 지칭됨)를 포함한다. 이 예에서, 각각의 슈퍼포드(152-158)는 64개의 빌딩 블록들(160)을 포함한다. 그러나 슈퍼포드들(152-158)은 다른 수량들, 예컨대, 20, 50, 100 또는 다른 적절한 수량의 빌딩 블록들(160)을 포함할 수 있다. 또한 슈퍼포드들(152-158)은 상이한 수량들의 빌딩 블록들(160)을 포함할 수 있다. 예컨대, 슈퍼포드(152)는 64개의 빌딩 블록들을 포함할 수 있는 반면, 슈퍼포드(152)는 100개의 빌딩 블록들을 포함한다.
[0039] 아래에서 더 상세하게 설명되는 바와 같이, 각각의 빌딩 블록(160)은 2개 이상의 차원들로 배열된 다수의 컴퓨트 노드들을 포함할 수 있다. 예컨대, 빌딩 블록(160)은 3차원들을 따라 배열된 64개의 컴퓨트 노드들을 포함할 수 있으며, 각각의 차원에는 4개의 컴퓨트 노드들이 있다. 컴퓨트 노드들의 이러한 어레인지먼트는 본 문서에서 x 차원을 따라 4개의 컴퓨트 노드들을 갖고, y 차원을 따라 4개의 컴퓨트 노드들을 갖고 z 차원을 따라 4개의 컴퓨트 노드들을 갖는 4x4x4 빌딩 블록으로 지칭된다. 3x1, 2x2x2, 6x2, 2x3x4 등과 같이, 차원들, 예컨대, 2개의 차원들의 다른 수량들 및 각각의 차원의 컴퓨트 노드들의 다른 수량들이 또한 가능하다.
[0040] 또한 빌딩 블록은 단일 컴퓨트 노드를 포함할 수 있다. 그러나 아래에서 설명되는 바와 같이, 워크로드 클러스터를 생성하기 위해, 빌딩 블록들 사이의 광학 링크들은 빌딩 블록들을 함께 연결하도록 구성된다. 따라서 더 작은 빌딩 블록들, 예컨대, 단일 컴퓨트 노드를 갖는 빌딩 블록들은 워크로드 클러스터들을 생성할 때 더 많은 유연성을 제공할 수 있지만, 더 작은 빌딩 블록들은 더 많은 OCS 스위치 구성들 및 더 많은 광학 네트워크 컴포넌트들(예컨대, 케이블들 및 스위치들)을 요구할 수 있다. 빌딩 블록들 내의 컴퓨트 노드들의 수는 워크로드 클러스터들 및 요구되는 수의 OCS 스위치들을 형성하기 위해 빌딩 블록들을 함께 연결하는 요건들과 워크로드 클러스터들의 원하는 유연성 사이의 트레이드오프(tradeoff)에 기초하여 선택될 수 있다.
[0041] 빌딩 블록들(160)의 각각의 컴퓨트 노드는 ASIC(application-specific integrated circuit), 예컨대, 머신 러닝 워크로드에 대한 TPU(tensor processing unit), GPU(graphics processing unit), 또는 다른 유형의 프로세싱 유닛을 포함할 수 있다. 예컨대, 각각의 컴퓨트 노드는 프로세싱 유닛을 포함하는 단일 프로세서 칩일 수 있다.
[0042] 일부 구현들에서, 슈퍼포드의 모든 빌딩 블록들(160)은 동일한 컴퓨트 노드들을 갖는다. 예컨대, 슈퍼포드(152)는 머신 러닝 워크로드들을 실행하기 위해 4x4x4 어레인지먼트로 각각 64개의 TPU들을 갖는 64개의 빌딩 블록들을 포함할 수 있다. 또한 슈퍼포드는 상이한 유형들의 컴퓨트 노드들을 포함할 수 있다. 예컨대, 슈퍼포드(154)는 TPU들을 갖는 60개의 빌딩 블록들 및 머신 러닝 워크로드들 이외의 태스크(task)들을 수행하는 특수 목적 프로세싱 유닛들을 갖는 4개의 빌딩 블록들을 포함할 수 있다. 이러한 방식으로, 워크로드에 대한 워크로드 클러스터들은 상이한 유형들의 컴퓨트 노드들을 포함할 수 있다. 슈퍼포드는 다수의 워크로드들이 슈퍼포드에서 실행될 수 있도록 그리고/또는 중복성을 위해 슈퍼포드의 각각의 유형의 컴퓨트 노드의 다수의 빌딩 블록들을 포함할 수 있다.
[0043] 일부 구현들에서, 슈퍼포드의 모든 빌딩 블록들(160)은 동일한 어레인지먼트, 예컨대, 동일한 사이즈 및 형상을 갖는다. 예컨대, 슈퍼포드(152)의 각각의 빌딩 블록(160)은 4x4x4 어레인지먼트를 가질 수 있다. 또한 슈퍼포드는 상이한 어레인지먼트들을 갖는 빌딩 블록들을 가질 수 있다. 예컨대, 슈퍼포드(154)는 4x4x4 어레인지먼트들의 32개의 빌딩 블록들 및 16x8x16 어레인지먼트의 32개의 빌딩 블록들을 가질 수 있다. 상이한 빌딩 블록 어레인지먼트들은 동일하거나 또는 상이한 컴퓨트 노드들을 가질 수 있다. 예컨대, TPU들을 갖는 빌딩 블록들은 GPU들을 갖는 빌딩 블록들과 상이한 어레인지먼트를 가질 수 있다.
[0044] 슈퍼포드는 빌딩 블록들의 상이한 계층들을 가질 수 있다. 예컨대, 슈퍼포드(152)는 4x4x4 어레인지먼트를 갖는 기본 레벨 빌딩 블록들을 포함할 수 있다. 또한 슈퍼포드(152)는 더 많은 컴퓨트 노드들을 갖는 중간 레벨 빌딩 블록들을 포함할 수 있다. 예컨대, 중간 레벨 빌딩 블록들은 예컨대, 8개의 기본 레벨 빌딩 블록들로 구성된 8x8x8 어레인지먼트를 가질 수 있다. 이러한 방식으로, 기본 레벨 빌딩 블록들이 더 큰 워크로드 클러스터들을 생성하기 위해 연결된 경우보다 더 적은 링크 구성을 갖는 중간 레벨 빌딩 블록들을 사용하여 더 큰 워크로드 클러스터들이 생성될 수 있다. 또한 슈퍼포드에 기본 레벨 빌딩 블록들을 갖는 것은 중간 레벨 빌딩 블록들의 컴퓨트 노드들의 수량을 요구하지 않을 수 있는 더 작은 워크로드 클러스터들에 대한 유연성을 허용한다.
[0045] 셀(150) 내의 슈퍼포드들(152-158)은 빌딩 블록들의 동일하거나 또는 상이한 유형들의 컴퓨트 노드들을 가질 수 있다. 예컨대, 셀(150)은 TPU 빌딩 블록들을 갖는 하나 이상의 슈퍼포드들 및 GPU 빌딩 블록들을 갖는 하나 이상의 슈퍼포드들을 포함할 수 있다. 또한 빌딩 블록들의 사이즈 및 형상은 셀(150)의 상이한 슈퍼포드들(152-158)에서 동일하거나 또는 상이할 수 있다.
[0046] 또한 각각의 셀(150)은 공유 데이터 스토리지(162) 및 공유 보조 컴퓨팅 컴포넌트들(164)을 포함한다. 셀(150)의 각각의 슈퍼포드(152-158)는 공유 데이터 스토리지(162)를 사용하여, 예컨대, 슈퍼포드들(152-158)에서 실행되는 워크로드들에 의해 생성된 데이터를 저장할 수 있다. 공유 데이터 스토리지(162)는 하드 드라이브들, 솔리드 스테이트 드라이브들, 플래시 메모리 및/또는 다른 적절한 데이터 저장 디바이스들을 포함할 수 있다. 공유 보조 컴퓨팅 컴포넌트들은 셀(150) 내에서 공유되는 CPU들(예컨대, 범용 CPU 머신들), GPU들, 및/또는 다른 가속기들(예컨대, 비디오 디코딩, 이미지 디코딩 등)을 포함할 수 있다. 또한 보조 컴퓨팅 컴포넌트들(164)은 저장 어플라이언스(appliance)들, 메모리 어플라이언스들 및/또는 네트워크를 통해 컴퓨트 노드들에 의해 공유될 수 있는 다른 컴퓨팅 컴포넌트들을 포함할 수 있다.
[0047] 셀 스케줄러(140)는 사용자 디바이스(110)로부터 수신된 각각의 워크로드에 대해 셀(150) 및/또는 셀(150)의 슈퍼포드(152-158)를 선택할 수 있다. 셀 스케줄러(140)는 워크로드에 대해 특정된 타겟 어레인지먼트, 슈퍼포드들(152-158)의 빌딩 블록들(160)의 이용가능성, 및 슈퍼포드들(152-158)의 빌딩 블록들의 건전성에 기초하여 슈퍼포드를 선택할 수 있다. 예컨대, 셀 스케줄러(140)는 워크로드에 대해, 타겟 어레인지먼트를 갖는 워크로드 클러스터를 생성하기 위해 적어도 충분한 양의 이용가능하고 건전한 빌딩 블록들을 포함하는 슈퍼포드를 선택할 수 있다. 요청 데이터가 컴퓨트 노드의 유형을 특정하는 경우, 셀 스케줄러(140)는 특정된 유형의 컴퓨트 노드를 갖는 적어도 충분한 양의 이용가능하고 건전한 빌딩 블록들을 갖는 슈퍼포드를 선택할 수 있다.
[0048] 아래에서 설명되는 바와 같이, 각각의 슈퍼포드(152-158)는 또한 워크로드 스케줄러 및 OCS 매니저를 포함할 수 있다. 셀 스케줄러(140)가 셀(150)의 슈퍼포드를 선택할 때, 셀 스케줄러(140)는 요청된 클러스터를 특정하는 데이터 및 워크로드를 슈퍼포드(150)의 워크로드 스케줄러에 제공할 수 있다. 아래에서 더 상세하게 설명되는 바와 같이, 워크로드 스케줄러는 슈퍼포드의 빌딩 블록들의 이용가능성 및 건전성, 및 선택적으로 워크로드들의 우선순위에 기초하여 워크로드 클러스터를 형성하기 위해 연결할 빌딩 블록들의 세트를 슈퍼포드의 빌딩 블록들로부터 선택할 수 있다. 예컨대, 아래에서 설명되는 바와 같이, 워크로드 스케줄러가 이용가능하고 건전한 슈퍼포드의 빌딩 블록들의 수보다 많은 빌딩 블록들을 포함하는 워크로드 클러스터에 대한 요청을 수신하는 경우, 워크로드 스케줄러는 요청된 워크로드 클러스터에 더 낮은 우선순위 워크로드들의 빌딩 블록들을 재할당할 수 있다. 워크로드 스케줄러는 선택된 빌딩 블록들을 식별하는 데이터를 OCS 매니저에 제공할 수 있다. 그런 다음, OCS 매니저는 빌딩 블록들을 함께 연결하여 워크로드 클러스터를 형성하기 위해 하나 이상의 OCS 스위치들을 구성할 수 있다. 그런 다음, 워크로드 스케줄러는 워크로드 클러스터의 컴퓨트 노드들 상에서 워크로드를 실행할 수 있다.
[0049] 일부 구현들에서, 셀 스케줄러(140)는 예컨대, 워크로드들에 대한 슈퍼포드들(152-158)을 선택할 때, 다양한 셀들(150)과 슈퍼포드들(152-158) 사이에서의 로드들의 균형을 맞춘다. 예컨대, 워크로드에 대한 빌딩 블록들의 용량을 갖는 2개 이상의 슈퍼포드들 사이에서 선택할 때, 셀 스케줄러(140)는 용량이 가장 많은, 예컨대, 이용가능하고 건전한 빌딩 블록들이 가장 많은 슈퍼포드 또는 전체 용량이 가장 많은 셀의 슈퍼포드를 선택할 수 있다. 이용가능한 건전한 빌딩 블록은, 다른 워크로드 또는 활성 워크로드 클러스터의 일부를 실행하고 있지 않고 실패한 상태에 있지 않는 빌딩 블록이다. 셀 스케줄러는 빌딩 블록들의 인덱스를 유지할 수 있다. 인덱스는, 각각의 빌딩 블록에 대해, 빌딩 블록이 건전하고(예컨대, 실패한 상태가 아님) 그리고/또는 이용가능한지(예컨대, 다른 워크로드 또는 활성 워크로드 클러스터의 일부를 실행하지 않음) 여부를 표시하는 데이터를 포함할 수 있다.
[0050] 일부 구현들에서, 셀 스케줄러(140)는 또한 워크로드에 대한 타겟 어레인지먼트를 결정할 수 있다. 예컨대, 셀 스케줄러(140)는 워크로드의 추정된 컴퓨테이셔널 수요(demand) 및 하나 이상의 유형들의 이용가능한 컴퓨트 노드들의 스루풋에 기초하여 빌딩 블록들의 타겟 어레인지먼트를 결정할 수 있다. 이 예에서, 셀 스케줄러(140)는 결정된 타겟 어레인지먼트를 슈퍼포드의 워크로드 스케줄러에 제공할 수 있다.
[0051] 도 2는 슈퍼포드(210)의 빌딩 블록들의 일부분으로부터 생성된 예시적 논리적 슈퍼포드(210) 및 예시적 워크로드 클러스터들(220, 230 및 240)을 예시한다. 이 예에서, 슈퍼포드(210)는 4x4x4 어레인지먼트를 각각 갖는 64개의 빌딩 블록들을 포함한다. 본 문서에서 설명된 예들 중 많은 예가 4x4x4 빌딩 블록들에 대해 설명되지만, 빌딩 블록들의 다른 어레인지먼트들에 동일한 기법들이 적용될 수 있다.
[0052] 슈퍼포드(210)에서, 해칭(hatching)으로 표현된 빌딩 블록들은 아래에서 설명되는 바와 같이, 워크로드에 할당된다. 순백색(solid white)으로 표현된 빌딩 블록들은 이용가능한 건전한 빌딩 블록들이다. 순흑색(solid black)으로 표현된 빌딩 블록들은 예컨대, 실패로 인해 워크로드 클러스터를 생성하는 데 사용될 수 없는 건전하지 않은 노드들이다.
[0053] 워크로드 클러스터(220)는 슈퍼포드(210)로부터의 4x4x4 빌딩 블록들 중 4개를 포함하는 8x8x4 포드이다. 즉, 워크로드 클러스터(220)는 x-차원을 따라 8개의 컴퓨트 노드들을 갖고, y-차원을 따라 8개의 컴퓨트 노드들을 갖고, z-차원을 따라 4개의 컴퓨트 노드들을 갖는다. 각각의 빌딩 블록은 각각의 차원을 따라 4개의 컴퓨트 노드들을 가지므로, 워크로드 클러스터(220)는 x-차원을 따라 2개의 빌딩 블록들을 포함하고, y-차원을 따라 2개의 빌딩 블록들을 포함하고, z-차원을 따라 하나의 빌딩 블록을 포함한다.
[0054] 워크로드 클러스터(220)의 4개의 빌딩 블록들은 슈퍼포드(210)에서의 그들의 포지션들을 예시하기 위해 대각선 해칭으로 도시된다. 예시된 바와 같이, 워크로드 클러스터(220)의 빌딩 블록들은 서로 인접하지 않는다. 아래에서 더 상세하게 설명되는 바와 같이, 광학 네트워크의 사용은, 워크로드 클러스터들이 슈퍼포드(210)에서의 그들의 상대적 포지션들에 관계없이 슈퍼포드(210)의 워크로드 클러스터들의 임의의 조합으로부터 생성되는 것을 가능하게 한다.
[0055] 워크로드 클러스터(230)는 슈퍼포드(210)의 빌딩 블록들 중 8개를 포함하는 8x8x8 포드이다. 특히, 워크로드 클러스터는 각각의 차원을 따라 2개의 빌딩 블록들을 포함하며, 이는 각각의 차원을 따라 8개의 컴퓨트 노드들을 워크로드 클러스터(230)에 제공한다. 워크로드 클러스터(230)의 빌딩 블록들은 슈퍼포드(210)에서의 그들의 포지션들을 예시하기 위해 수직 해칭으로 도시된다.
[0056] 워크로드 클러스터(240)는 슈퍼포드(210)의 빌딩 블록들 중 32개를 포함하는 16x8x16 포드이다. 특히, 워크로드 클러스터(240)는 x-차원을 따라 4개의 빌딩 블록들을 포함하고, y-차원을 따라 2개의 빌딩 블록들을 포함하고, z-차원을 따라 4개의 빌딩 블록들을 포함하며, 이는 워크로드 클러스터(16)에 x-차원을 따라 16개의 컴퓨트 노드들을 제공하고, y-차원을 따라 8개의 컴퓨트 노드들을 제공하고, z-차원을 따라 16개의 컴퓨트 노드들을 제공한다. 워크로드 클러스터(240)의 빌딩 블록들은 슈퍼포드(210)에서의 그들의 포지션들을 예시하기 위해 크로스(cross) 해칭으로 도시된다.
[0057] 워크로드 클러스터들(220, 230 및 240)은 워크로드들을 위해 생성될 수 있는 슈퍼포드(210)의 클러스터들의 단지 일부 예들일 뿐이다. 워크로드 클러스터들의 많은 다른 어레인지먼트들이 또한 가능하다. 예시적 워크로드 클러스터들(220, 230 및 240)은 직사각형 형상을 갖지만, 다른 형상들이 또한 가능하다.
[0058] 워크로드 클러스터들(220, 230 및 240)을 포함하는 워크로드 클러스터들의 형상들은 물리적 형상들이라기 보다는 논리적 형상들이다. 광학 네트워크는 마치 워크로드 클러스터들이 논리적 구성에서 물리적으로 연결된 것처럼 빌딩 블록들이 각각의 차원을 따라 통신하도록 구성된다. 그러나 물리적 빌딩 블록들 및 그들의 대응하는 컴퓨트 노드들은 다양한 방식들로 데이터 센터에 물리적으로 배열된다. 워크로드들(220, 230 및 240)의 빌딩 블록들은 빌딩 블록들이 모두 슈퍼포드(210)에 대한 광학 네트워크에 연결된다는 점을 제외하고는 슈퍼포드(210)의 빌딩 블록들 사이의 물리적 관계에 대한 임의의 제약없이 이용가능한 건전한 빌딩 블록들 중 임의의 것으로부터 선택될 수 있다. 예컨대, 위에서 설명되고 도 2에 예시된 바와 같이, 워크로드 클러스터들(220, 230 및 240)은 물리적으로 인접하지 않은 빌딩 블록들을 포함한다.
[0059] 또한, 워크로드 클러스터들의 논리적 어레인지먼트는 슈퍼포드의 빌딩 블록들의 물리적 어레인지먼트에 의해 제약되지 않는다. 예컨대, 빌딩 블록들은 8개의 행들 및 8개의 열들로 배열될 수 있으며, z-차원을 따라 단지 하나의 빌딩 블록이 있다. 그러나 워크로드 클러스터는, 이러한 논리적 어레인지먼트를 생성하기 위해 광학 네트워크를 구성함으로써 워크로드 클러스터들이 z-차원을 따라 다수의 빌딩 블록들을 포함하도록 구성될 수 있다.
[0060] 도 3은 빌딩 블록(310)을 사용하여 생성된 예시적 빌딩 블록(310) 및 예시적 워크로드 클러스터들(320, 330 및 340)을 예시한다. 빌딩 블록(310)은 각각의 차원을 따라 4개의 컴퓨트 노드들을 갖는 4x4x4 빌딩 블록이다. 이 예에서, 빌딩 블록(310)의 각각의 차원은 각각의 세그먼트 내의 4개의 컴퓨트 노드들의 16개의 세그먼트들을 포함한다. 예컨대, 빌딩 블록(310)의 최상부에 16개의 컴퓨트 노드들이 존재한다. 이러한 16개의 컴퓨트 노드들 각각에 대해, 컴퓨트 노드, 및 빌딩 블록(310)의 최하부에 대응하는 마지막 컴퓨트 노드를 포함하는 3개의 컴퓨트 노드들을 포함하는 y-차원을 따라 세그먼트가 존재한다. 예컨대, y-차원을 따라 하나의 세그먼트는 컴퓨트 노드들(301-304)을 포함한다.
[0061] 빌딩 블록(310) 내의 컴퓨트 노드들은 전도성 재료, 예컨대, 구리 케이블들로 구성된 내부 링크들(318)로 서로 연결될 수 있다. 각각의 차원의 각각의 세그먼트 내의 컴퓨트 노드들은 내부 링크들(318)을 사용하여 연결될 수 있다. 예컨대, 컴퓨트 노드(301)를 컴퓨트 노드(302)에 연결하는 내부 링크(318)가 존재한다. 또한 컴퓨트 노드(302)를 컴퓨트 노드(303)에 연결하는 내부 링크(318) 및 컴퓨트 노드(303)를 컴퓨트 노드(304)에 연결하는 다른 내부 링크(318)가 존재한다. 서로 다른 세그먼트 내의 컴퓨트 노드들은 빌딩 블록(310)의 컴퓨트 노드들 사이의 내부 데이터 통신을 제공하기 위해 동일한 방식으로 연결될 수 있다.
[0062] 또한 빌딩 블록(310)은 빌딩 블록(310)을 광학 네트워크에 연결하는 외부 링크들(311-316)을 포함한다. 광학 네트워크는 빌딩 블록(310)을 다른 빌딩 블록들에 연결한다. 이 예에서, 빌딩 블록(310)은 x-차원에 대한 16개의 외부 입력 링크들(311)을 포함한다. 즉, 빌딩 블록(310)은 x-차원을 따라 16개의 세그먼트들 각각에 대한 외부 입력 링크(311)를 포함한다. 유사하게, 빌딩 블록(310)은 x-차원을 따라 각각의 세그먼트에 대한 외부 출력 링크(312)를 포함하고, y-차원을 따라 각각의 세그먼트에 대한 외부 입력 링크(313)를 포함하고, y-차원을 따라 각각의 세그먼트에 대한 외부 출력 링크(314)를 포함하고, z-차원을 따라 각각의 세그먼트에 대한 외부 입력 링크(315)를 포함하고, 그리고 z-차원을 따라 각각의 세그먼트에 대한 외부 출력 링크(316)를 포함한다. 빌딩 블록들의 일부 어레인지먼트들이 토러스와 같은 3 초과의 차원들을 가질 수 있으므로, 빌딩 블록(310)은 빌딩 블록(310)의 각각의 차원에 대한 유사한 외부 링크들을 포함할 수 있다.
[0063] 각각의 외부 링크(311-316)는 컴퓨트 노드들의 그것의 대응하는 세그먼트 상의 컴퓨트 노드를 광학 네트워크에 연결하는 광섬유 링크일 수 있다. 예컨대, 각각의 외부 링크(311-316)는 컴퓨트 노드를 광학 네트워크의 OCS 스위치에 연결할 수 있다. 아래에서 설명되는 바와 같이, 광학 네트워크는 빌딩 블록들(310)이 세그먼트를 갖는 각각의 차원에 대한 하나 이상의 OCS 스위치들을 포함할 수 있다. 즉, x-차원에 대한 외부 링크들(311 및 312)은 외부 링크들(313 및 314)과 상이한 OCS 스위치(들)에 연결될 수 있다. 아래에서 더 상세하게 설명되는 바와 같이, OCS 스위치들은 워크로드 클러스터들을 형성하기 위해 빌딩 블록을 다른 빌딩 블록들에 연결하도록 구성될 수 있다.
[0064] 빌딩 블록(310)은 4x4x4 메쉬 어레인지먼트의 형태이다. 4x4x4(또는 다른 사이즈의 빌딩 블록)에 대해 다른 어레인지먼트들 또한 가능하다. 예컨대, 빌딩 블록(310)은 워크로드 클러스터(320)와 유사하게, 랩-어라운드(wrap-around) 토러스 링크들을 갖는 3-차원 토러스의 형태일 수 있다. 또한 워크로드 클러스터(320)는 랩-어라운드 토러스 링크들(321-323)을 제공하도록 광학 네트워크를 구성함으로써 단일 메쉬 빌딩 블록(310)으로부터 생성될 수 있다.
[0065] 토러스 링크들(321-323)은 각각의 세그먼트의 한 단부와 각각의 세그먼트의 다른 단부 사이의 랩 어라운드 데이터 통신을 제공한다. 예컨대, 토러스 링크들(321)은 x-차원을 따르는 각각의 세그먼트의 각각의 단부에 있는 컴퓨트 노드를 세그먼트의 다른 단부에 있는 대응하는 컴퓨트 노드에 연결한다. 토러스 링크들(321)은 컴퓨트 노드(325)를 컴퓨트 노드(326)에 연결하는 링크를 포함할 수 있다. 유사하게, 토러스 링크들(322)은 컴퓨트 노드(325)를 컴퓨트 노드(327)에 연결하는 링크를 포함할 수 있다.
[0066] 토러스 링크들(321-323)은 전도성 케이블들, 예컨대, 구리 케이블들 또는 광학 링크들일 수 있다. 예컨대, 토러스 링크들(321-323)의 광학 링크들은 그들의 대응하는 컴퓨터 노드들을 하나 이상의 OCS 스위치들에 연결할 수 있다. OCS 스위치들은 각각의 세그먼트의 한 단부로부터 각각의 세그먼트의 다른 단부로 데이터를 라우팅하도록 구성될 수 있다. 빌딩 블록(310)은 각각의 차원에 대한 OCS 스위치를 포함할 수 있다. 예컨대, 토러스 링크들(321)은 x-차원을 따르는 각각의 세그먼트의 한 단부와 x-차원을 따르는 각각의 세그먼트의 다른 단부 사이에서 데이터를 라우팅하는 제1 OCS 스위치에 연결될 수 있다. 유사하게, 토러스 링크들(322)은 y-차원을 따르는 각각의 세그먼트의 한 단부와 y-차원을 따르는 각각의 세그먼트의 다른 단부 사이에서 데이터를 라우팅하는 제2 OCS 스위치에 연결될 수 있다. 토러스 링크들(322)은 z-차원을 따르는 각각의 세그먼트의 한 단부와 z-차원을 따르는 각각의 세그먼트의 다른 단부 사이에서 데이터를 라우팅하는 제3 OCS 스위치에 연결될 수 있다.
[0067] 워크로드 클러스터(330)는 4x8x4 포드를 형성하는 2개의 빌딩 블록들(338 및 339)을 포함한다. 각각의 빌딩 블록(338 및 339)은 빌딩 블록(310) 또는 워크로드 클러스터(320)와 동일할 수 있다. 2개의 빌딩 블록들은 외부 링크들(337)을 사용하여 y-차원을 따라 연결된다. 예컨대, 하나 이상의 OCS 스위치들은 빌딩 블록(338)의 y-차원 세그먼트들과 빌딩 블록(339)의 y-차원 세그먼트들 사이에서 데이터를 라우팅하도록 구성될 수 있다.
[0068] 또한, 하나 이상의 OCS 스위치들은 3차원들 모두를 따라 각각의 세그먼트의 한 단부와 각각의 세그먼트의 다른 단부 사이의 랩 어라운드 링크들(331-333)을 제공하도록 구성될 수 있다. 이 예에서, 랩 어라운드 링크들(333)은 2개의 빌딩 블록들(338 및 339)의 조합에 의해 형성된 y-차원 세그먼트들에 대한 완전한 랩 어라운드 통신을 제공하기 위해 빌딩 블록(338)의 y-차원 세그먼트들의 한 단부를 빌딩 블록(339)의 y-차원 세그먼트들의 한 단부에 연결한다.
[0069] 워크로드 클러스터(340)는 8x8x8 클러스터를 형성하는 8개의 빌딩 블록들(하나는 도시되지 않음)을 포함한다. 각각의 빌딩 블록(348)은 빌딩 블록(310)과 동일할 수 있다. x-차원을 따라 연결된 빌딩 블록 링크들은 외부 링크들(345A-345C)을 사용하여 연결된다. 유사하게, y-차원을 따라 연결된 빌딩 블록 링크들은 외부 링크들(344A-344C)을 사용하여 연결되고, z-차원을 따라 연결된 빌딩 블록들은 외부 링크들(346A-346C)을 사용하여 연결된다. 예컨대, 하나 이상의 OCS 스위치들은 x-차원 세그먼트들 사이에서 데이터를 라우팅하도록 구성될 수 있고, 하나 이상의 OCS 스위치들은 y-차원 세그먼트들 사이에서 데이터를 라우팅하도록 구성될 수 있고, 하나 이상의 OCS 스위치들은 z-차원 세그먼트들 사이에서 데이터를 라우팅하도록 구성될 수 있다. 도 3에 예시되지 않은 빌딩 블록을 인접한 빌딩 블록들에 연결하는 각각의 차원에 대한 추가 외부 링크들이 존재한다. 또한, 하나 이상의 OCS 스위치들은 3차원들 모두를 따라 각각의 세그먼트의 한 단부와 각각의 세그먼트의 다른 단부 사이의 랩 어라운드 링크들(341-343)을 제공하도록 구성될 수 있다.
[0070] 도 4는 컴퓨트 노드로부터 OCS 스위치로의 예시적 광학 링크(400)를 예시한다. 슈퍼포드들의 컴퓨트 노드들은 데이터 센터 랙들의 트레이들에 설치될 수 있다. 각각의 컴퓨트 노드는 6개의 고속 전기 링크들을 포함할 수 있다. 전기 링크들 중 2개는 컴퓨트 노드의 회로 보드 상에 연결될 수 있고, 4개는 포트(410), 예컨대, OSFP 포트에 연결되는 외부 전기 커넥터들, 예컨대, OSFP(Octal Small Form Factor Pluggable) 커넥터들로 라우팅될 수 있다. 이 예에서, 포트(410)는 전기 컨택(electrical contact)들(412)에 의해 광학 모듈(420)에 연결된다. 광학 모듈(420)은 필요한 경우, 더 큰 데이터 센터의 컴퓨트 노드들 사이에 데이터 통신을 제공하기 위해 전기 링크들을 광학 링크들로 변환하여 외부 링크들의 길이를 예컨대, 1 킬로미터(km) 초과로 연장할 수 있다. 광학 모듈 유형은 빌딩 블록들과 OCS 스위치들 사이에 요구되는 길이들뿐만 아니라 링크들의 원하는 속도 및 대역폭에 기초하여 변할 수 있다.
[0071] 광학 모듈(420)은 광섬유 케이블들(422 및 424)에 의해 써큘레이터(430)에 연결된다. 광섬유 케이블들(422)은 광학 모듈(420)로부터 써큘레이터(430)로 데이터를 송신하기 위한 하나 이상의 광섬유 케이블들을 포함할 수 있다. 광섬유 케이블들(424)은 써큘레이터(430)로부터 데이터를 수신하기 위한 하나 이상의 광섬유 케이블들을 포함할 수 있다. 예컨대, 광섬유 케이블들(422 및 424)은 양방향 광섬유들 또는 단방향 TX/RX 광섬유들의 쌍들을 포함할 수 있다. 써큘레이터(430)는 (예컨대, 단방향 광섬유들로부터 양방향 광섬유들로 변환함으로써 광섬유 케이블들(432)의 두 쌍들로부터 단일 쌍으로) 광섬유 케이블들의 수를 감소시킬 수 있다. 이것은 함께 스위치되는 한 쌍의 광학 경로들(2개의 광섬유들)을 통상적으로 수용하는 OCS 스위치(440)의 단일 OCS 포트(445)와 잘 정렬된다. 일부 구현들에서, 써큘레이터(430)는 광학 모듈(420)에 통합되거나 또는 광학 링크(400)로부터 생략될 수 있다.
[0072] 도 5-7은 다수의 컴퓨트 트레이들을 사용하여 4x4x4 빌딩 블록이 어떻게 형성되는지를 예시한다. 빌딩 블록들의 다른 사이즈들 및 형상들을 형성하기 위해 유사한 기법들이 사용될 수 있다.
[0073] 도 5는 4x4x4 빌딩 블록을 형성하기 위한 논리적 컴퓨트 트레이(500)를 예시한다. 4x4x4 빌딩 블록의 기본 하드웨어 블록은 2x2x1 토폴로지를 갖는 단일 컴퓨트 트레이(500)이다. 이 예에서, 컴퓨트 트레이(500)는 x-차원을 따라 2개의 컴퓨트 노드들을 갖고, y-차원을 따라 2개의 노드들을 갖고, z-차원을 따라 1개의 노드를 갖는다. 예컨대, 컴퓨트 노드들(501 및 502)은 x-차원 세그먼트를 형성하고 컴퓨트 노드들(503 및 504)은 x-차원 세그먼트를 형성한다. 유사하게, 컴퓨트 노드들(501 및 503)은 y-차원 세그먼트를 형성하고 컴퓨트 노드들(502 및 504)은 y-차원 세그먼트를 형성한다.
[0074] 각각의 컴퓨트 노드(501-504)는 내부 링크들(510), 예컨대, 인쇄 회로 기판 상의 구리 케이블들 또는 트레이스들을 사용하여 2개의 다른 컴퓨트 노드들에 연결된다. 또한 각각의 컴퓨트 노드는 4개의 외부 포트들에 연결된다. 컴퓨트 노드(501)는 외부 포트들(521)에 연결된다. 유사하게, 컴퓨트 노드(502)는 외부 포트들(522)에 연결되고, 컴퓨트 노드(503)는 외부 포트들(523)에 연결되고, 컴퓨트 노드(504)는 외부 포트들(524)에 연결된다. 위에서 설명된 바와 같이, 외부 포트들(521-524)은 컴퓨트 노드들을 OCS 스위치들에 연결하는 OSFP 또는 다른 포트들일 수 있다. 포트들은 광섬유 케이블에 부착된 전기 구리 또는 광섬유 모듈을 수용할 수 있다.
[0075] 각각의 컴퓨트 노드(501-504)에 대한 외부 포트들(521-524)은 x-차원 포트, y-차원 노드 및 2개의 z-차원 노드들을 갖는다. 이것은 각각의 컴퓨트 노드(501-504)가 내부 링크들(510)을 사용하여 x-차원 및 y-차원의 다른 컴퓨트 노드에 이미 연결되어 있기 때문이다. 2개의 z-차원 외부 포트들을 갖는 것은 각각의 컴퓨트 노드(501-504)가 또한 z-차원을 따라 2개의 컴퓨트 노드들에 연결될 수 있게 한다.
[0076] 도 6은 하나의 차원(z-차원)이 생략된 예시적 빌딩 블록의 서브-블록(600)을 예시한다. 특히, 서브-블록(600)은 컴퓨트 트레이들의 2x2 어레인지먼트, 예컨대, 도 1의 컴퓨트 트레이들(500)의 2x2 어레인지먼트에 의해 형성된 4x4x1 블록이다. 서브-블록(600)은 2x2 어레인지먼트로 4개의 컴퓨트 트레이들(620A-620D)을 포함한다. 각각의 컴퓨트 트레이(620A-620D)는 2x2x1 어레인지먼트의 4개의 컴퓨트 노드들(622)을 포함하는 도 5의 컴퓨트 트레이(500)와 동일할 수 있다.
[0077] 컴퓨트 트레이들(620A-620D)의 컴퓨트 노드들(622)은 내부 링크들(631-634), 예컨대, 구리 케이블들을 사용하여 연결될 수 있다. 예컨대, 컴퓨트 트레이(620A)의 2개 컴퓨트 노드들(622)은 내부 링크들(632)을 사용하여 컴퓨트 트레이(620B)의 2개의 컴퓨트 노드들(622)에 y-차원을 따라 연결된다.
[0078] 또한 각각의 컴퓨트 트레이(620A-620D)의 2개의 컴퓨트 노드들(622)은 x-차원을 따라 외부 링크들(640)에 연결된다. 유사하게, 각각의 컴퓨트 트레이(620A-620D)의 2개의 컴퓨트 노드들은 또한 y-차원을 따라 외부 라인들(641)에 연결된다. 특히, 각각의 x-차원 세그먼트의 단부 및 각각의 y-차원 세그먼트의 단부의 컴퓨트 노드들은 외부 링크(640)에 연결된다. 이러한 외부 링크들(640)은 예컨대, 도 4의 광학 링크(400)를 사용하여 컴퓨트 노드들 및 그에 따라 컴퓨트 노드들을 포함하는 빌딩 블록을 OCS 스위치들에 연결하는 광섬유 케이블들일 수 있다.
[0079] 4x4x4 빌딩 블록은 z-차원을 따라 서브-블록들(600) 중 4개를 함께 연결함으로써 형성될 수 있다. 예컨대, 각각의 컴퓨트 트레이(620A-620A)의 컴퓨트 노드들(622)은 내부 링크들을 사용하여 z-차원으로 배열된 다른 서브-블록들(600) 상의 컴퓨트 트레이들의 하나 또는 2개의 대응하는 컴퓨트 노드들에 연결될 수 있다. 각각의 z-차원 세그먼트의 단부에 있는 컴퓨트 노드들은 x-차원 및 y-차원 세그먼트들의 단부들에 있는 외부 링크들과 유사하게 OCS 스위치에 연결되는 외부 링크(640)를 포함할 수 있다.
[0080] 도 7은 예시적 빌딩 블록(700)을 예시한다. 빌딩 블록(700)은 z-차원을 따라 연결된 4개의 서브-블록들(710A-710D)을 포함한다. 각각의 서브-블록(710A-710D)은 도 6의 서브-블록(600)과 동일할 수 있다. 도 7은 z-차원을 따르는 서브-블록들(710A-710D) 사이의 연결들 중 일부를 예시한다.
[0081] 특히, 빌딩 블록(700)은 서브-블록들(710A-710D)의 컴퓨트 트레이들(715)의 대응하는 컴퓨트 노드들(716) 사이의 z-차원을 따르는 내부 링크들(730-733)을 포함한다. 예컨대, 내부 링크들(730)은 z-차원을 따라 컴퓨트 노드들(0)의 세그먼트를 연결한다. 유사하게, 내부 링크들(731)은 z-차원을 따라 컴퓨트 노드들(1)의 세그먼트를 연결하고, 내부 링크들(732)은 z-차원을 따라 컴퓨트 노드들(8)의 세그먼트를 연결하고, 내부 링크들(733)은 z-차원을 따라 컴퓨트 노드들(9)의 세그먼트를 연결한다. 도시되지 않았지만, 유사한 내부 링크들은 컴퓨트 노드들(2-7 및 A-F)에 대한 세그먼트들을 연결한다.
[0082] 또한 빌딩 블록(700)은 z-차원을 따라 각각의 세그먼트의 단부에 외부 링크들(720)을 포함한다. 외부 링크들(720)은 컴퓨트 노드들(0, 1, 8 및 9)의 세그먼트들에 대해서만 도시되지만, 컴퓨트 노드들(2-7 및 A-F)의 서로 다른 세그먼트는 또한 외부 링크들(720)을 포함한다. 외부 링크들은 x-차원 및 y-차원 세그먼트들의 단부들에 있는 외부 링크들과 유사하게 세그먼트들을 OCS 스위치들에 연결할 수 있다.
[0083] 도 8은 슈퍼포드에 대한 OCS 패브릭 토폴로지(800)를 예시한다. 이 예에서, OCS 패브릭 토폴로지는 64개의 빌딩 블록들(805), 즉, 빌딩 블록들(0-63)을 포함하는 슈퍼포드의 4x4x4 빌딩 블록들의 각각의 차원을 따라 각각의 세그먼트에 대한 별개의 OCS 스위치를 포함한다. 4x4x4 빌딩 블록(805)은 x-차원을 따라 16개의 세그먼트들을 포함하고, y-차원을 따라 16개의 세그먼트들을 포함하고, z-차원을 따라 16개의 세그먼트들을 포함한다. 이 예에서, 다양한 워크로드 클러스터들을 생성하도록 구성될 수 있는 총 48개의 OCS 스위치들에 대해, OCS 패브릭 토폴로지는 x-차원에 대한 16개의 OCS 스위치들을 포함하고, y-차원에 대한 16개의 OCS 스위치들을 포함하고, z-차원에 대한 16개의 OCS 스위치들을 포함한다.
[0084] x-차원의 경우, OCS 패브릭 토폴로지(800)는 OCS 스위치(810)를 포함하는 16개의 OCS 스위치들을 포함한다. x-차원을 따르는 각각의 세그먼트에 대해, 각각의 빌딩 블록(805)은 그 세그먼트에 대한 OCS 스위치(810)에 연결된 외부 입력 링크(811) 및 외부 출력 링크(812)를 포함한다. 이러한 외부 링크들(811 및 812)은 도 4의 광학 링크(400)와 동일하거나 또는 유사할 수 있다.
[0085] y-차원의 경우, OCS 패브릭 토폴로지(800)는 OCS 스위치(820)를 포함하는 16개의 OCS 스위치들을 포함한다. y-차원을 따르는 각각의 세그먼트에 대해, 각각의 빌딩 블록(805)은 그 세그먼트에 대한 OCS 스위치(810)에 연결된 외부 입력 링크(821) 및 외부 출력 링크(822)를 포함한다. 이러한 외부 링크들(821 및 822)은 도 4의 광학 링크(400)와 동일하거나 또는 유사할 수 있다.
[0086] z-차원의 경우, OCS 패브릭 토폴로지(800)는 OCS 스위치(830)를 포함하는 16개의 OCS 스위치들을 포함한다. z-차원을 따르는 각각의 세그먼트에 대해, 각각의 빌딩 블록(805)은 그 세그먼트에 대한 OCS 스위치(810)에 연결된 외부 입력 링크(821) 및 외부 출력 링크(822)를 포함한다. 이러한 외부 링크들(821 및 822)은 도 4의 광학 링크(400)와 동일하거나 또는 유사할 수 있다.
[0087] 다른 예들에서, 다수의 세그먼트들은 예컨대, 슈퍼포드의 빌딩 블록들의 수 및/또는 OCS 기수에 따라 동일한 OCS 스위치를 공유할 수 있다. 예컨대, OCS 스위치가 슈퍼포드의 모든 빌딩 블록들의 모든 x-차원 세그먼트들에 대해 충분한 수의 포트들을 갖는 경우, 모든 x-차원 세그먼트들은 동일한 OCS 스위치에 연결될 수 있다. 다른 예에서, OCS 스위치가 충분한 수의 포트들을 갖는 경우, 각각의 차원의 2개의 세그먼트들은 OCS 스위치를 공유할 수 있다. 그러나 슈퍼포드의 모든 빌딩 블록들의 대응하는 세그먼트들을 동일한 OCS 스위치에 연결되게 함으로써, 단일 라우팅 테이블을 사용하여 이러한 세그먼트들의 컴퓨트 노드들 사이에서 데이터 통신이 가능하게 한다. 또한, 각각의 세그먼트 또는 각각의 차원에 대해 별개의 OCS 스위치들을 사용하는 것은 문제 해결 및 진단들을 단순화할 수 있다. 예컨대, 특정 세그먼트 또는 차원에 걸쳐 데이터 통신에 문제들이 존재하는 경우, 다수의 OCS들이 특정 세그먼트 또는 차원에 사용된 경우보다 잠재적으로 결함이 있는 OCS를 식별하는 것이 더 쉬울 것이다.
[0088] 도 9는 예시적 슈퍼포드(900)의 컴포넌트들을 예시한다. 예컨대, 슈퍼포드(900)는 도 1의 프로세싱 시스템(130)의 슈퍼포드들 중 하나일 수 있다. 예시적 슈퍼포드(900)는 컴퓨팅 워크로드들, 예컨대, 머신 러닝 워크로드들을 실행하는 워크로드 클러스터들을 생성하는 데 사용될 수 있는 64개의 4x4x4 빌딩 블록들(960)을 포함한다. 위에서 설명된 바와 같이, 각각의 4x4x4 빌딩 블록(960)은 3차원들 각각을 따라 배열된 4개의 컴퓨트 노드들을 갖는 32개의 컴퓨트 노드들을 포함한다. 예컨대, 빌딩 블록들(960)은 위에서 설명된 빌딩 블록(310), 워크로드 클러스터(320) 또는 빌딩 블록(700)과 동일하거나 또는 유사할 수 있다.
[0089] 예시적 슈퍼포드(900)는 각각의 빌딩 블록(960)에 대해 96개의 외부 링크들(931, 932 및 933)을 사용하여 빌딩 블록들에 연결된 48개의 OCS 스위치들(930, 940 및 950)을 포함하는 광학 네트워크(970)를 포함한다. 각각의 외부 링크는 도 4의 광학 링크(400)와 유사하거나 또는 동일한 광섬유 링크일 수 있다.
[0090] 광학 네트워크(970)는 도 8의 OCS 패브릭 토폴로지(800)와 유사하게, 각각의 빌딩 블록의 각각의 차원의 각각의 세그먼트에 대한 OCS 스위치를 포함한다. x-차원의 경우, 광학 네트워크(970)는 x-차원을 따라 각각의 세그먼트에 대해 하나씩 16개의 OCS 스위치들(950)을 포함한다. 또한 광학 네트워크(970)는 각각의 빌딩 블록(960)에 대해, x-차원을 따라 빌딩 블록(960)의 각각의 세그먼트에 대한 입력 외부 링크 및 출력 외부 링크를 포함한다. 이러한 외부 링크들은 세그먼트에 대한 컴퓨트 노드들을 세그먼트에 대한 OCS 스위치(950)에 연결한다. 각각의 빌딩 블록(960)이 x-차원을 따라 16개의 세그먼트들을 포함하므로, 광학 네트워크(970)는 각각의 빌딩 블록(960)의 x-차원 세그먼트들을 세그먼트들에 대한 대응하는 OCS 스위치들(950)에 연결하는 32개의 외부 링크들(933)(즉, 16개의 입력 및 16개의 출력 링크들)을 포함한다.
[0091] y-차원의 경우, 광학 네트워크(970)는 y-차원을 따라 각각의 세그먼트에 대해 하나씩 16개의 OCS 스위치들(930)을 포함한다. 또한 광학 네트워크(970)는 각각의 빌딩 블록(960)에 대해, y-차원을 따라 빌딩 블록(960)의 각각의 세그먼트에 대한 입력 외부 링크 및 출력 외부 링크를 포함한다. 이러한 외부 링크들은 세그먼트에 대한 컴퓨트 노드들을 세그먼트에 대한 OCS 스위치(930)에 연결한다. 각각의 빌딩 블록(960)이 y-차원을 따라 16개의 세그먼트들을 포함하므로, 광학 네트워크(970)는 각각의 빌딩 블록(960)의 y-차원 세그먼트들을 세그먼트들에 대한 대응하는 OCS 스위치들(930)에 연결하는 32개의 외부 링크들(931)(즉, 16개의 입력 및 16개의 출력 링크들)을 포함한다.
[0092] z-차원의 경우, 광학 네트워크(970)는 z-차원을 따라 각각의 세그먼트에 대해 하나씩 16개의 OCS 스위치들(932)을 포함한다. 또한 광학 네트워크(970)는 각각의 빌딩 블록(960)에 대해, z-차원을 따라 빌딩 블록(960)의 각각의 세그먼트에 대한 입력 외부 링크 및 출력 외부 링크를 포함한다. 이러한 외부 링크들은 세그먼트에 대한 컴퓨트 노드들을 세그먼트에 대한 OCS 스위치(940)에 연결한다. 각각의 빌딩 블록(960)이 z-차원을 따라 16개의 세그먼트들을 포함하므로, 광학 네트워크(970)는 각각의 빌딩 블록(960)의 z-차원 세그먼트들을 세그먼트들에 대한 대응하는 OCS 스위치들(940)에 연결하는 32개의 외부 링크들(932)(즉, 16개의 입력 및 16개의 출력 링크들)을 포함한다.
[0093] 워크로드 스케줄러(910)는 워크로드를 포함하는 요청 데이터 및 워크로드를 실행하기 위한 빌딩 블록들(960)의 요청된 클러스터를 특정하는 데이터를 수신할 수 있다. 또한 요청 데이터는 워크로드에 대한 우선순위를 포함할 수 있다. 우선순위는, 예컨대, 높음, 중간 또는 낮음의 레벨들로 또는 수치적으로 예컨대, 1-100의 범위 또는 다른 적절한 범위로 표현될 수 있다. 예컨대, 워크로드 스케줄러(910)는 사용자 디바이스 또는 셀 스케줄러, 예컨대, 도 1의 사용자 디바이스(110) 또는 셀 스케줄러(140)로부터 요청 데이터를 수신할 수 있다. 위에서 설명된 바와 같이, 요청 데이터는 컴퓨트 노드들의 타겟 n-차원 어레인지먼트, 예컨대, 컴퓨트 노드들을 포함하는 빌딩 블록들의 타겟 어레인지먼트를 특정할 수 있다.
[0094] 워크로드 스케줄러(910)는 요청 데이터에 의해 특정된 타겟 어레인지먼트와 매칭하는 워크로드 클러스터를 생성하기 위해 빌딩 블록들(960)의 세트를 선택할 수 있다. 예컨대, 워크로드 스케줄러(910)는 슈퍼포드(900)에서, 이용가능한 건전한 빌딩 블록들의 세트를 식별할 수 있다. 위에서 설명된 바와 같이, 이용가능한 건전한 빌딩 블록은, 다른 워크로드 또는 활성 워크로드 클러스터의 일부를 실행하고 있지 않고 실패한 상태에 있지 않는 빌딩 블록이다.
[0095] 예컨대, 워크로드 스케줄러(910)는 슈퍼포드의 각각의 빌딩 블록(960)의 상태를 표시하는 상태 데이터를 예컨대, 데이터베이스의 형태로 유지 및 업데이트할 수 있다. 빌딩 블록(960)에 대한 이용가능성 상태는 빌딩 블록(960)이 워크로드 클러스터에 할당되었는지 여부를 표시할 수 있다. 빌딩 블록(960)에 대한 건전성 상태는 빌딩 블록이 작동하는지 아니면 실패했는지를 표시할 수 있다. 워크로드 스케줄러(910)는 빌딩 블록(960)이 워크로드에 할당되지 않고 작동의 건전성 상태를 가짐을 표시하는 이용가능성 상태를 갖는 빌딩 블록들(960)을 식별할 수 있다. 빌딩 블록(960)이 워크로드에 할당되거나, 예컨대, 워크로드에 대한 워크로드 클러스터를 생성하는 데 사용되거나, 또는 예컨대, 작동으로부터 실패로 또는 그 반대로 건전성 상태 변화를 가질 때, 워크로드 스케줄러는 그에 따라 빌딩 블록(960)에 대한 상태 데이터를 업데이트할 수 있다.
[0096] 식별된 빌딩 블록(960)으로부터, 워크로드 스케줄러(910)는 타겟 어레인지먼트에 의해 정의된 수량과 매칭하는 빌딩 블록들(960)의 수량을 선택할 수 있다. 요청 데이터가 컴퓨트 노드들의 하나 이상의 유형들을 특정하는 경우, 워크로드 스케줄러(910)는 식별된 빌딩 블록들(960)로부터, 요청된 유형(들)의 컴퓨트 노드들을 갖는 빌딩 블록들을 선택할 수 있다. 예컨대, 요청된 데이터가 TPU들의 2개의 빌딩 블록들 및 GPU들의 2개의 빌딩 블록들을 갖는 빌딩 블록들의 2x2 어레인지먼트를 특정하는 경우, 워크로드 스케줄러(910)는 TPU들을 갖는 2개의 이용가능한 건전한 빌딩 블록들 및 GPU들을 갖는 2개의 이용가능한 건전한 빌딩 블록들을 선택할 수 있다.
[0097] 또한 워크로드 스케줄러(910)는 슈퍼포드에서 현재 실행되고 있는 각각의 워크로드의 우선순위 및 요청 데이터에 포함된 워크로드의 우선순위에 기초하여 빌딩 블록들(960)을 선택할 수 있다. 슈퍼포드(900)가 요청된 워크로드에 대한 워크로드 클러스터를 생성하기에 충분한 이용가능한 건전한 빌딩 블록들을 갖지 않는 경우, 워크로드 스케줄러(910)는 요청된 워크로드보다 낮은 우선순위를 갖는 슈퍼포드(900)에서 실행되는 임의의 워크로드들이 존재하는지 여부를 결정할 수 있다. 그렇다면, 워크로드 스케줄러(910)는 하나 이상의 더 낮은 우선순위 워크로드들의 워크로드 클러스터(들)로부터 요청된 워크로드에 대한 워크로드 클러스터로 빌딩 블록들을 재할당할 수 있다. 예컨대, 워크로드 스케줄러(910)는 더 낮은 우선순위 워크로드(들)를 종료시키거나, 더 낮은 우선순위 워크로드(들)를 지연시키거나, 또는 더 낮은 우선순위 워크로드(들)에 대한 워크로드 클러스터들의 사이즈를 감소시켜 더 높은 우선순위 워크로드에 대한 빌딩 블록들을 확보(free up)할 수 있다.
[0098] 워크로드 스케줄러(910)는, 빌딩 블록이 더 낮은 우선순위 워크로드의 빌딩 블록들보다는 높은 우선순위 워크로드의 빌딩 블록들에 연결되도록, 단순히 광학 네트워크를 재구성함으로써(예컨대, 아래에서 설명되는 바와 같이 OCS 스위치들을 구성함으로써) 하나의 워크로드 클러스터로부터 다른 워크로드 클러스터로 빌딩 블록을 재할당할 수 있다. 유사하게, 더 높은 우선순위 워크로드의 빌딩 블록이 실패하는 경우, 워크로드 스케줄러(910)는 광학 네트워크를 재구성함으로써 더 낮은 우선순위 워크로드에 대한 워크로드 클러스터의 빌딩 블록을 더 높은 우선순위 워크로드의 워크로드 클러스터에 재할당할 수 있다.
[0099] 워크로드 스케줄러(910)는 작업별 구성 데이터(912)를 생성하여 슈퍼포드(900)의 OCS 매니저(920)에게 제공할 수 있다. 작업별 구성 데이터(912)는 워크로드에 대한 선택된 빌딩 블록들(960) 및 빌딩 블록들의 어레인지먼트를 특정할 수 있다. 예컨대, 어레인지먼트가 2x2 어레인지먼트인 경우, 어레인지먼트는 빌딩 블록들에 대한 4개의 스팟(spot)들을 포함한다. 작업별 구성 데이터는 4개의 스팟들 각각에 들어가는 선택된 빌딩 블록(960)을 특정할 수 있다.
[00100] 작업별 구성 데이터(912)는 각각의 빌딩 블록에 대한 논리적 식별자를 사용하여 선택된 빌딩 블록들(960)을 식별할 수 있다. 예컨대, 각각의 빌딩 블록(960)은 고유한 논리적 식별자를 포함할 수 있다. 특정 예에서, 64개의 빌딩 블록들(960)은 0-63으로 넘버링될 수 있고, 이러한 번호들은 고유한 논리적 식별자들일 수 있다.
[00101] OCS 매니저(920)는 작업별 구성 데이터(912)를 사용하여, 작업별 구성 데이터에 의해 특정된 어레인지먼트와 매칭하는 워크로드 클러스터를 생성하도록 OCS 스위치들(930, 940 및/또는 950)을 구성한다. 각각의 OCS 스위치(930, 940 및 950)는 OCS 스위치의 물리적 포트들 사이에서 데이터를 라우팅하는 데 사용되는 라우팅 테이블을 포함한다. 예컨대, 제1 빌딩 블록의 x-차원 세그먼트에 대한 외부 출력 링크가 제2 빌딩 블록의 대응하는 x-차원 세그먼트에 대한 외부 입력 링크에 연결된다고 가정해보자. 이 예에서, 이러한 x-차원 세그먼트에 대한 OCS 스위치(950)의 라우팅 테이블은 이러한 세그먼트들이 연결된 OCS 스위치의 물리적 포트들 사이의 데이터가 서로 사이에서 라우팅될 것임을 표시할 것이다.
[00102] OCS 매니저(920)는 각각의 OCS 스위치(920, 930 및 940)의 각각의 포트를 각각의 빌딩 블록의 각각의 논리적 포트에 맵핑하는 포트 데이터를 유지할 수 있다. 빌딩 블록의 각각의 x-차원 세그먼트에 대해, 이러한 포트 데이터는 외부 입력 링크가 연결된 OCS 스위치(950)의 물리적 포트 및 외부 출력 링크가 연결된 OCS 스위치(950)의 물리적 포트를 특정할 수 있다. 포트 데이터는 슈퍼포드(900)의 각각의 빌딩 블록(960)의 각각의 차원에 대해 동일한 데이터를 포함할 수 있다.
[00103] OCS 매니저(920)는 이러한 포트 데이터를 사용하여, 워크로드에 대한 워크로드 클러스터를 생성하도록 OCS 스위치들(930, 940 및/또는 950)의 라우팅 테이블들을 구성할 수 있다. 예컨대, 제1 빌딩 블록이 x-차원에서 제2 빌딩 블록의 좌측 상에 제1 빌딩 블록을 갖는 2x1 어레인지먼트에서 제2 빌딩 블록에 연결될 것이라고 가정해보자. OCS 매니저(920)는 제1 빌딩 블록 및 제2 빌딩 블록의 x-차원 세그먼트들 사이에서 데이터를 라우팅하기 위해 x-차원에 대한 OCS 스위치들(950)의 라우팅 테이블들을 업데이트할 것이다. 빌딩 블록들의 각각의 x-차원 세그먼트가 연결될 필요가 있을 때, OCS 매니저(920)는 각각의 OCS 스위치(950)의 라우팅 테이블을 업데이트할 수 있다.
[00104] 각각의 x-차원 세그먼트에 대해, OCS 매니저(920)는 세그먼트에 대한 OCS 스위치(950)에 대한 라우팅 테이블을 업데이트할 수 있다. 특히, OCS 매니저(920)는 제1 빌딩 블록의 세그먼트가 연결된 OCS 스위치(950)의 물리적 포트를 제2 빌딩 블록의 세그먼트가 연결된 OCS 스위치의 물리적 포트에 맵핑하기 위해 라우팅 테이블을 업데이트할 수 있다. 각각의 x-차원 세그먼트가 입력 및 출력 링크를 포함하므로, OCS 매니저(920)는 제1 빌딩 블록의 입력 링크가 제2 빌딩 블록의 출력 링크에 연결되고 제1 빌딩 블록의 출력 링크가 제2 빌딩 블록의 입력 링크에 연결되도록 라우팅 테이블을 업데이트할 수 있다.
[00105] OCS 매니저(920)는 각각의 OCS 스위치로부터 현재 라우팅 테이블을 획득함으로써 라우팅 테이블들을 업데이트할 수 있다. OCS 매니저(920)는 적절한 라우팅 테이블들을 업데이트할 수 있고, 업데이트된 라우팅 테이블들을 적절한 OCS 스위치들에 전송할 수 있다. 다른 예에서, OCS 매니저(920)는 업데이트들을 특정하는 업데이트 데이터를 OCS 스위치들에 전송할 수 있고, OCS 스위치들은 업데이트 데이터에 따라 그들의 라우팅 테이블들을 업데이트할 수 있다.
[00106] OCS 스위치들이 그들의 업데이트된 라우팅 테이블들로 구성된 이후에, 워크로드 클러스터가 생성된다. 그런 다음, 워크로드 스케줄러(910)는 워크로드로 하여금 워크로드 클러스터의 컴퓨트 노드들에 의해 실행되게 할 수 있다. 예컨대, 워크로드 스케줄러(910)는 실행을 위해 워크로드 클러스터의 컴퓨트 노드들에 워크로드를 제공할 수 있다.
[00107] 워크로드가 완료된 이후에, 워크로드 스케줄러(910)는 워크로드 클러스터를 생성하는 데 사용된 각각의 빌딩 블록의 상태를 다시 이용가능한 것으로 업데이트할 수 있다. 또한 워크로드 스케줄러(910)는 워크로드 클러스터를 생성하는 데 사용된 빌딩 블록들 사이의 연결들을 제거하도록 OCS 매니저(920)에게 명령할 수 있다. 차례로, OCS 매니저(920)는 빌딩 블록들 사이에서 데이터를 라우팅하는 데 사용된 OCS 스위치들의 물리적 포트들 사이의 맵핑들을 제거하기 위해 라우팅 테이블들을 업데이트할 수 있다.
[00108] 이러한 방식으로 워크로드들에 대한 워크로드 클러스터들을 생성하도록 광학 패브릭 토폴로지를 구성하기 위해 OCS 스위치들을 사용하는 것은 슈퍼포드들이 동적이고 안전한 방식으로 다수의 워크로드들을 호스팅하는 것을 가능하게 한다. 워크로드 스케줄러(920)는 새로운 워크로드들이 수신되고 워크로드들이 완료될 때 온 더 플라이(on the fly)로 워크로드 클러스터들을 생성하여 종료할 수 있다. OCS 스위치들에 의해 제공된 세그먼트들 사이의 라우팅은 종래의 슈퍼컴퓨터들보다 동일한 슈퍼포드에서 실행되는 상이한 워크로드들 사이에 더 양호한 보안을 제공한다. 예컨대, OCS 스위치들은 워크로드들 사이의 에어 갭을 통해 물리적으로 서로로부터 워크로드들을 커플링해제한다. 종래의 슈퍼컴퓨터들은 데이터 유출들에 더 취약한 워크로드들 사이의 격리를 제공하는 소프트웨어를 사용한다.
[00109] 도 10은 워크로드 클러스터를 생성하고, 워크로드 클러스터를 사용하여 컴퓨팅 워크로드를 실행하기 위한 예시적 프로세스(1000)를 예시하는 흐름 다이어그램이다. 프로세스(1000)의 동작들은 하나 이상의 데이터 프로세싱 장치를 포함하는 시스템에 의해 수행될 수 있다. 예컨대, 프로세스(1000)의 동작들은 도 1의 프로세싱 시스템(130)에 의해 수행될 수 있다.
[00110] 시스템은 컴퓨트 노드들의 요청된 클러스터를 특정하는 요청 데이터를 수신한다(1010). 예컨대, 요청 데이터는 사용자 디바이스로부터 수신될 수 있다. 요청 데이터는 컴퓨트 노드들의 타겟 n-차원 어레인지먼트를 특정하는 컴퓨팅 워크로드 및 데이터를 포함할 수 있다. 예컨대, 요청 데이터는 컴퓨트 노드들을 포함하는 빌딩 블록들의 타겟 n-차원 어레인지먼트를 특정할 수 있다.
[00111] 일부 구현들에서, 요청 데이터는 또한 빌딩 블록들에 대한 컴퓨트 노드들의 유형들을 특정할 수 있다. 슈퍼포드는 상이한 유형들의 컴퓨트 노드들을 갖는 빌딩 블록들을 포함할 수 있다. 예컨대, 슈퍼포드는 각각 TPU들의 4x4x4 어레인지먼트를 각각 포함하는 90개의 빌딩 블록들 및 특수 목적 컴퓨트 노드들의 2x1 어레인지먼트를 포함하는 10개의 특수 목적 빌딩 블록들을 포함할 수 있다. 요청 데이터는 각각의 유형의 컴퓨트 노드의 빌딩 블록들의 수량 및 이러한 빌딩 블록들의 어레인지먼트를 특정할 수 있다.
[00112] 시스템은 빌딩 블록들의 세트를 포함하는 슈퍼포드로부터, 요청된 클러스터에 대한 빌딩 블록들의 서브세트를 선택한다(1020). 위에서 설명된 바와 같이, 슈퍼포드는 컴퓨트 노드들의 3-차원 어레인지먼트, 예컨대, 컴퓨트 노드들의 4x4x4 어레인지먼트를 갖는 빌딩 블록들의 세트를 포함할 수 있다. 시스템은 타겟 어레인지먼트에 의해 정의된 수량과 매칭하는 빌딩 블록들의 수량을 선택할 수 있다. 위에서 설명된 바와 같이, 시스템은 요청된 클러스터에 대해 이용가능하고 건전한 빌딩 블록들을 선택할 수 있다.
[00113] 빌딩 블록들의 서브세트는 빌딩 블록들의 적절한 서브세트일 수 있다. 적절한 서브세트는 세트의 모든 멤버들을 포함하지 않는 서브세트이다. 예컨대, 컴퓨트 노드들의 타겟 어레인지먼트와 매칭하는 워크로드 클러스터를 생성하는 데 빌딩 블록들 전부 미만이 요구될 수 있다.
[00114] 시스템은 컴퓨트 노드들의 선택된 서브세트를 포함하는 워크로드 클러스터를 생성한다(1030). 워크로드 클러스터는 요청 데이터에 의해 특정된 타겟 어레인지먼트와 매칭하는 빌딩 블록들의 어레인지먼트를 가질 수 있다. 예컨대, 요청 데이터가 컴퓨트 노드들의 4x8x4 어레인지먼트를 특정하는 경우, 워크로드 클러스터는 도 3의 워크로드 클러스터(330)와 같이 배열된 2개의 빌딩 블록들을 포함할 수 있다.
[00115] 워크로드 클러스터를 생성하기 위해, 시스템은 워크로드 클러스터의 각각의 차원에 대한 라우팅 데이터를 구성할 수 있다. 예컨대, 위에서 설명된 바와 같이, 슈퍼포드는 빌딩 블록들의 각각의 차원에 대한 하나 이상의 OCS 스위치들을 포함하는 광학 네트워크를 포함할 수 있다. 차원에 대한 라우팅 데이터는 하나 이상의 OCS 스위치들에 대한 라우팅 테이블을 포함할 수 있다. 도 9를 참조하여 위에서 설명된 바와 같이, OCS 스위치들의 라우팅 테이블들은 각각의 차원을 따라 컴퓨트 노드들의 적절한 세그먼트들 사이에서 데이터를 라우팅하도록 구성될 수 있다.
[00116] 시스템은 워크로드 클러스터의 컴퓨트 노드들로 하여금 컴퓨팅 워크로드를 실행하게 한다(1040). 예컨대, 시스템은 워크로드 클러스터의 컴퓨팅 워크로드를 컴퓨팅 노드들에 제공할 수 있다. 컴퓨팅 워크로드가 실행되는 동안, 구성된 OCS 스위치들은 워크로드 클러스터의 빌딩 블록들 사이에서 데이터를 라우팅할 수 있다. 구성된 OCS 스위치들은, 마치 컴퓨팅 노드들이 타겟 어레인지먼트에서 물리적으로 연결되었지만 컴퓨팅 노드들이 그 어레인지먼트에서 물리적으로 연결되어 있지 않은 것처럼, 빌딩 블록들의 컴퓨팅 노드들 사이에서 데이터를 라우팅할 수 있다.
[00117] 예컨대, 차원의 각각의 세그먼트의 컴퓨트 노드들은, 마치 그 세그먼트의 컴퓨트 노드들이 단일 물리적 세그먼트에서 물리적으로 연결되었던 것처럼, 상이한 빌딩 블록들에 있는 그 세그먼트의 다른 컴퓨트 노드들에 OCS 스위치에 걸쳐 데이터를 통신할 수 있다. 이것은, 워크로드 클러스터의 이러한 구성이 중간에 패킷 교환 또는 버퍼링이 없는 트루 엔드-투-엔드 광 경로를 대응하는 세그먼트들 사이에 제공하므로 패킷 교환 네트워크들과 상이하다. 패킷 교환에서는 패킷들이 스위치에 의해 수신되고, 버퍼링되고, 다른 포트 상에서 다시 송신될 필요가 있으므로 추가적 레이턴시가 존재한다.
[00118] 컴퓨팅 워크로드가 완료된 이후에, 시스템은 예컨대, 빌딩 블록들의 상태를 이용가능한 상태로 업데이트하고, 더 이상 워크로드 클러스터의 빌딩 블록들 사이에서 데이터를 라우팅하지 않도록 라우팅 데이터를 업데이트함으로써, 다른 워크로드들에 대한 빌딩 블록들을 해제(release)할 수 있다.
[00119] 도 11은 실패한 빌딩 블록을 대체하기 위해 광학 네트워크를 재구성하기 위한 예시적 프로세스(1100)를 예시하는 흐름 다이어그램이다. 프로세스(1100)의 동작들은 하나 이상의 데이터 프로세싱 장치를 포함하는 시스템에 의해 수행될 수 있다. 예컨대, 프로세스(1100)의 동작들은 도 1의 프로세싱 시스템(130)에 의해 수행될 수 있다.
[00120] 시스템은 워크로드 클러스터의 컴퓨트 노드들로 하여금 컴퓨팅 워크로드를 실행하게 한다(1110). 예컨대, 시스템은 워크로드 클러스터를 생성할 수 있고, 컴퓨트 노드들로 하여금 도 10의 프로세스(1000)를 사용하여 컴퓨팅 워크로드를 실행하게 할 수 있다.
[00121] 시스템은 워크로드 클러스터의 빌딩 블록이 실패했음을 표시하는 데이터를 수신한다(1120). 예컨대, 빌딩 블록의 하나 이상의 컴퓨트 노드들이 실패하면, 다른 컴포넌트, 예컨대, 모니터링 컴포넌트는 빌딩 블록이 실패했다고 결정할 수 있고, 빌딩 블록이 실패했음을 표시하는 데이터를 시스템에 전송할 수 있다.
[00122] 시스템은 이용가능한 빌딩 블록을 식별한다(1130). 예컨대, 시스템은 워크로드 클러스터의 다른 빌딩 블록들과 동일한 슈퍼포드에서, 이용가능한 건전한 빌딩 블록을 식별할 수 있다. 시스템은 예컨대, 시스템에 의해 유지되는 빌딩 블록들에 대한 상태 데이터에 기초하여 이용가능한 건전한 빌딩 블록을 식별할 수 있다.
[00123] 시스템은 실패한 빌딩 블록을 식별된 이용가능한 빌딩 블록으로 대체한다(1140). 시스템은 실패한 빌딩 블록을 식별된 이용가능한 빌딩 블록으로 대체하기 위해 빌딩 블록들에 연결하는 광학 네트워크의 하나 이상의 OCS 스위치들의 라우팅 데이터를 업데이트할 수 있다. 예컨대, 시스템은 워크로드 클러스터의 다른 빌딩 블록들과 실패한 빌딩 블록 사이의 연결들을 제거하기 위해 하나 이상의 OCS 스위치들의 라우팅 테이블을 업데이트할 수 있다. 또한 시스템은 식별된 빌딩 블록을 워크로드 클러스터의 다른 빌딩 블록들에 연결하기 위해 하나 이상의 OCS 스위치들의 라우팅 테이블을 업데이트할 수 있다.
[00124] 시스템은 실패한 빌딩 블록 스팟의 논리적 스팟에서 식별된 빌딩 블록을 논리적으로 배열할 수 있다. 위에서 설명된 바와 같이, OCS 스위치의 라우팅 테이블은 빌딩 블록의 세그먼트에 연결된 OCS 스위치의 물리적 포트를 다른 빌딩 블록의 대응하는 세그먼트에 연결된 OCS 스위치의 물리적 포트에 맵핑할 수 있다. 이 예에서, 시스템은 실패한 빌딩 블록보다는 식별된 이용가능한 빌딩 블록의 대응하는 세그먼트들에의 맵핑을 업데이트함으로써 대체할 수 있다.
[00125] 예컨대, 실패한 빌딩 블록의 특정 x-차원 세그먼트에 대한 외부 입력 링크가 OCS 스위치의 제1 포트에 연결되고, 식별된 이용가능한 빌딩 블록의 대응하는 x-차원 세그먼트에 대한 외부 입력 링크가 OCS 스위치의 제2 포트에 연결된다고 가정해보자. 또한 라우팅 테이블이 제1 포트를 다른 빌딩 블록의 대응하는 x-차원 세그먼트에 연결된 OCS 스위치의 제3 포트에 맵핑한다고 가정해보자. 대체하기 위해, 시스템은 제1 포트를 제3 포트에 맵핑하기보다는 제2 포트를 제3 포트에 맵핑하도록 라우팅 테이블의 맵핑을 업데이트할 수 있다. 시스템은 실패한 빌딩 블록의 각각의 세그먼트에 대해 이것을 수행할 수 있다.
[00126] 본 명세서에서 설명된 청구 대상 및 동작들의 실시예들은, 본 명세서에서 개시된 구조들 및 이들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로, 또는 디지털 전자 회로로, 또는 이들 중 하나 이상의 것의 조합들로 구현될 수 있다. 본 명세서에서 설명된 청구 대상의 실시예들은 또한, 하나 이상의 컴퓨터 프로그램들, 즉, 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 저장 매체 상에서 인코딩되는 컴퓨터 프로그램 명령들의 하나 이상의 모듈들로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령들은 데이터 프로세싱 장치에 의한 실행을 위한 적합한 수신기 장치로의 송신을 위해 정보를 인코딩하기 위해 생성되는 인위적으로 생성된 전파된 신호, 예컨대, 머신-발생 전기, 광학 또는 전자기 신호 상에서 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능한 저장 디바이스, 컴퓨터 판독가능한 저장 기판, 랜덤 또는 시리얼 액세스 메모리 어레이 또는 디바이스 또는 이들 중 하나 이상의 것들의 조합일 수 있거나, 또는 이들 내에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체가 전파되는 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로(artificially) 생성된 전파되는 신호 내에서 인코딩되는 컴퓨터 프로그램 명령들의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한, 하나 이상의 별개의 물리적 컴포넌트들 또는 매체들(예컨대, 다수의 CD들, 디스크들 또는 다른 저장 디바이스들)일 수 있거나 또는 이들 내에 포함될 수 있다.
[00127] 본 명세서에서 설명된 동작들은 하나 이상의 컴퓨터 판독가능한 저장 디바이스들 상에 저장된 또는 다른 소스들로부터 수신된 데이터에 대해 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
[00128] "데이터 프로세싱 장치"라는 용어는, 예로서 프로그래밍가능한 프로세서, 컴퓨터, 시스템 온 어 칩(system on a chip) 또는 위의 것들 중 다수의 것들 또는 조합들을 포함하는, 데이터를 프로세싱하기 위한 모든 종류들의 장치, 디바이스들 및 머신들을 망라한다. 장치는 특수 목적 로직 회로망, 예컨대, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)를 포함할 수 있다. 장치는 또한, 하드웨어와 더불어, 해당(in question) 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 크로스-플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 것의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 다양한 상이한 컴퓨팅 모델 인프라구조들, 이를테면, 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라구조들을 실현할 수 있다.
[00129] 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로서 또한 알려짐)은 컴파일링되는 또는 해석되는 언어들, 선언형 또는 절차형 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 이는 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 오브젝트 또는 컴퓨팅 환경에 사용하기에 적합한 다른 유닛으로서의 형태를 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템에서의 파일에 대응할 수 있지만, 반드시 그러한 것은 아니다. 프로그램은 다른 프로그램들 또는 데이터(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부분에, 해당 프로그램에 전용되는 단일 파일에 또는 다수의 조정된 파일들(예컨대, 하나 이상의 모듈들, 서브 프로그램들 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 하나의 사이트에 로케이팅되거나 또는 다수의 사이트들에 걸쳐 분산되고 통신 네트워크에 의해 상호 연결되는 다수의 컴퓨터들 상에서 실행되도록 전개될 수 있다.
[00130] 본 명세서에서 설명된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하여 출력을 생성함으로써 동작들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 특수 목적 로직 회로망, 예컨대, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치는 또한, 이들로서 구현될 수 있다.
[00131] 컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 그리고 특수 목적 마이크로프로세서들 둘 다 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령들에 따라 동작들을 수행하기 위한 프로세서, 및 명령들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예컨대, 자기적, 마그네토 광학 디스크들 또는 광학 디스크들을 포함할 것이거나, 또는 이들로부터 데이터를 수신하거나 또는 이들에 데이터를 전달하거나 또는 둘 다를 수행하도록 동작적으로 커플링될 것이다. 그러나 컴퓨터는 그러한 디바이스들을 가질 필요가 없다. 더욱이, 컴퓨터는 다른 디바이스, 몇 가지만 말하자면, 예컨대, 모바일 전화, PDA(personal digital assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 디바이스(예컨대, USB(universal serial bus) 플래시 드라이브) 내에 임베딩될 수 있다. 컴퓨터 프로그램 명령들 및 데이터를 저장하기에 적합한 디바이스들은 예로서 반도체 메모리 디바이스들, 예컨대, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대, 내부 하드 디스크들 또는 탈착식(removable) 디스크들; 마그네토 광학 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로망에 의해 보충되거나 또는 이에 포함될 수 있다.
[00132] 사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 청구 대상의 실시예들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예컨대, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터, 및 사용자가 입력을 컴퓨터에 제공할 수 있게 하는 키보드 및 포인팅 디바이스, 예컨대, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호 작용을 제공하기 위해 또한 사용될 수 있고; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대, 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 어쿠스틱(acoustic), 음성 또는 촉각적 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 문서들을 사용자에 의해 사용되는 디바이스에 전송하고 사용자에 의해 사용되는 디바이스로부터 문서들을 수신함으로써, 예컨대, 웹 브라우저로부터 수신된 요청들에 대한 응답으로 웹 페이지들을 사용자의 클라이언트 디바이스 상의 웹 브라우저에 전송함으로써, 사용자와 상호 작용할 수 있다.
[00133] 본 명세서에서 설명된 청구 대상의 실시예들은 백 엔드 컴포넌트를, 예컨대, 데이터 서버로서 포함하거나, 또는 미들웨어 컴포넌트, 예컨대, 애플리케이션 서버를 포함하거나, 또는 프론트 엔드 컴포넌트, 예컨대, 사용자가 본 명세서에서 설명된 청구 대상의 구현과 상호 작용할 수 있게 하는 웹 브라우저 또는 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터를 포함하는 컴퓨팅 시스템, 또는 하나 이상의 그러한 백 엔드, 미들웨어 또는 프론트 엔드 컴포넌트들의 임의의 조합으로 구현될 수 있다. 시스템의 컴포넌트들은 임의의 형태 또는 매체의 디지털 데이터 통신, 예컨대, 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크들의 예들은 "LAN"(local area network) 및 "WAN"(wide area network), 인터-네트워크(예컨대, 인터넷) 및 피어-투-피어 네트워크들(예컨대, 애드 혹 피어-투-피어 네트워크들)을 포함한다.
[00134] 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있으며, 통상적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는, 개개의 컴퓨터들 상에서 실행되고 서로에 대해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다. 일부 실시예들에서, 서버는 (예컨대, 데이터를 클라이언트 디바이스로 디스플레이하고 클라이언트 디바이스와 상호 작용하는 사용자로부터 사용자 입력을 수신할 목적으로) 데이터(예컨대, HTML 페이지)를 클라이언트 디바이스에 송신한다. 클라이언트 디바이스에서 생성된 데이터(예컨대, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
[00135] 본 명세서는 많은 특정 구현 세부사항들을 포함하지만, 이들은 임의의 발명들의 범위 또는 청구될 수 있는 것의 범위에 대한 제한들로서가 아니라, 오히려 특정 발명들의 특정 실시예들에 특정한 특징들의 설명들로서 해석되어야 한다. 별개의 실시예들의 맥락에서 본 명세서에서 설명된 특정 특징들은 또한 단일 실시예에서 조합으로 구현될 수 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징들은 또한, 다수의 실시예들에서 개별적으로 또는 임의의 적합한 서브조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합들로 동작하는 것으로서 위에서 설명될 수 있고, 심지어 이와 같이 초기에 청구될 수 있지만, 청구되는 조합으로부터의 하나 이상의 특징들은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구되는 조합은 서브조합 또는 서브조합의 변형에 관련될 수 있다.
[00136] 유사하게, 동작들은 특정 순서로 도면들에 도시되지만, 이것은 바람직한 결과들을 달성하기 위해, 도시된 특정 순서로 또는 순차적 순서로 그러한 동작들이 수행되거나, 또는 모든 예시된 동작들이 수행되는 것을 요구하는 것으로서 이해되지 않아야 한다. 특정 환경들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 위에서 설명된 실시예들의 다양한 시스템 컴포넌트들의 분리는, 그러한 분리가 모든 실시예들에서 요구되는 것으로 이해되지 않아야 하며, 설명된 프로그램 컴포넌트들 및 시스템들이 일반적으로, 단일 소프트웨어 제품에 함께 통합될 수 있거나 또는 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.
[00137] 따라서, 청구 대상의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 일부 경우들에서, 청구항들에서 언급되는 동작들이 상이한 순서로 수행될 수 있으며, 여전히 바람직한 결과들을 달성할 수 있다. 또한, 첨부한 도면들에 도시되는 프로세스들이, 바람직한 결과들을 달성하기 위해, 도시되는 특정 순서를 또는 순차적 순서를 반드시 요구하는 것은 아니다. 어떤 구현들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.

Claims (20)

  1. 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법으로서,
    컴퓨팅 워크로드(workload)에 대해 요청된 컴퓨트 노드(compute node)들을 특정하는 요청 데이터를 수신하는 단계 ― 상기 요청 데이터는 상기 컴퓨트 노드들의 타겟 n-차원 어레인지먼트(arrangement)를 특정하며, n은 2 이상임 ― ;
    컴퓨트 노드들의 m-차원 어레인지먼트를 각각 포함하는 빌딩 블록들의 세트를 포함하는 슈퍼포드(superpod)로부터, 조합될 때 상기 요청 데이터에 의해 특정된 상기 타겟 n-차원 어레인지먼트와 매칭하는 상기 빌딩 블록들의 서브세트를 선택하는 단계 ― 상기 빌딩 블록들의 세트는 n-차원들 각각에 대한 하나 이상의 광학 회로 스위치들을 포함하는 광학 네트워크에 연결되고, m은 2 이상임 ― ;
    상기 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터를 생성하는 단계 ― 상기 생성하는 단계는,
    상기 워크로드 클러스터의 각각의 차원에 대해, 상기 차원에 대한 상기 하나 이상의 광학 회로 스위치들에 대한 개개의 라우팅 데이터를 구성하는 단계 ― 상기 워크로드 클러스터의 각각의 차원에 대한 상기 개개의 라우팅 데이터는 상기 워크로드 클러스터의 차원을 따라 컴퓨트 노드들 사이에서 상기 컴퓨팅 워크로드의 데이터가 어떻게 라우팅되는지를 특정함 ― 를 포함함 ― ; 및
    상기 워크로드 클러스터의 상기 컴퓨트 노드들로 하여금 상기 컴퓨팅 워크로드를 실행하게 하는 단계를 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  2. 제1 항에 있어서,
    상기 요청 데이터는 컴퓨트 노드들의 상이한 유형들을 특정하고; 그리고
    상기 빌딩 블록들의 서브세트를 선택하는 단계는, 상기 요청 데이터에 의해 특정된 컴퓨트 노드의 각각의 유형에 대해, 상기 특정된 유형의 하나 이상의 컴퓨트 노드들을 포함하는 빌딩 블록을 선택하는 단계를 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  3. 제1 항에 있어서,
    상기 슈퍼포드의 각각의 차원에 대한 상기 개개의 라우팅 데이터는 상기 하나 이상의 광학 회로 스위치들 중 하나에 대한 광학 회로 스위치 라우팅 테이블을 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  4. 제1 항에 있어서,
    상기 광학 네트워크는, n 차원들 각각에 대해, 상기 차원을 따라 컴퓨트 노드들 사이에서 데이터를 라우팅하는 상기 광학 네트워크의 하나 이상의 광학 회로 스위치들을 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  5. 제4 항에 있어서,
    각각의 빌딩 블록은 상기 빌딩 블록들의 각각의 차원을 따라 컴퓨트 노드들의 복수의 세그먼트들을 포함하고; 그리고
    상기 광학 네트워크는 각각의 차원의 각각의 세그먼트에 대해, 상기 워크로드 클러스터의 각각의 빌딩 블록의 컴퓨트 노드들의 대응하는 세그먼트들 사이에서 데이터를 라우팅하는 상기 광학 네트워크의 광학 회로 스위치를 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  6. 제1 항에 있어서,
    각각의 빌딩 블록은 컴퓨트 노드들의 3-차원 토러스(torus) 또는 컴퓨트 노드들의 메쉬(mesh) 중 하나를 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  7. 제1 항에 있어서,
    상기 슈퍼포드는 다수의 워크로드 클러스터들을 포함하고, 그리고
    각각의 워크로드 클러스터는 상기 빌딩 블록들의 상이한 서브세트를 포함하고, 서로 다른 워크로드 클러스터와 상이한 워크로드들을 실행하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  8. 제1 항에 있어서,
    상기 워크로드 클러스터의 주어진 빌딩 블록이 실패했음을 표시하는 데이터를 수신하는 단계; 및
    상기 주어진 빌딩 블록을 이용가능한 빌딩 블록으로 대체하는 단계를 더 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  9. 제8 항에 있어서,
    상기 주어진 빌딩 블록을 이용가능한 빌딩 블록으로 대체하는 단계는,
    상기 워크로드 클러스터의 주어진 빌딩 블록과 하나 이상의 다른 빌딩 블록들 사이에서 데이터를 라우팅하는 것을 중단하기 위해 상기 광학 네트워크의 하나 이상의 광학 회로 스위치들의 라우팅 데이터를 업데이트하는 단계; 및
    상기 워크로드 클러스터의 이용가능한 빌딩 블록과 하나 이상의 다른 빌딩 블록들 사이에서 데이터를 라우팅하기 위해 상기 광학 네트워크의 하나 이상의 광학 회로 스위치들의 라우팅 데이터를 업데이트하는 단계를 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  10. 제1 항에 있어서,
    조합될 때 상기 요청 데이터에 의해 특정된 상기 타겟 n-차원 어레인지먼트와 매칭하는 상기 빌딩 블록들의 서브세트를 선택하는 단계는,
    상기 요청 데이터에 의해 특정된 상기 n-차원 어레인지먼트가 상기 슈퍼포드의 제2 수량의 이용가능한 건전한(healthy) 빌딩 블록들을 초과하는 제1 수량의 빌딩 블록들을 요구한다고 결정하는 단계;
    상기 요청 데이터에 의해 특정된 상기 n-차원 어레인지먼트가 상기 슈퍼포드의 제2 수량의 건전한 이용가능한 빌딩 블록들을 초과하는 상기 제1 수량의 빌딩 블록들을 요구한다고 결정하는 것에 대한 응답으로:
    상기 컴퓨팅 워크로드보다 낮은 우선순위를 갖고 상기 슈퍼포드의 다른 빌딩 블록들에 의해 실행되고 있는 하나 이상의 제2 컴퓨팅 워크로드들을 식별하는 단계; 및
    상기 하나 이상의 제2 컴퓨팅 워크로드들의 하나 이상의 빌딩 블록들을 상기 컴퓨팅 워크로드를 위한 상기 워크로드 클러스터에 재할당하는 단계를 포함하며,
    상기 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터를 생성하는 단계는 상기 빌딩 블록들의 서브세트에 상기 하나 이상의 제2 컴퓨팅 워크로드들의 하나 이상의 빌딩 블록들을 포함시키는 단계를 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  11. 제10 항에 있어서,
    상기 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터를 생성하는 단계는, 상기 하나 이상의 제2 컴퓨팅 워크로드들의 하나 이상의 빌딩 블록들 각각이 상기 하나 이상의 제2 컴퓨팅 워크로드들의 빌딩 블록들보다는 상기 워크로드 클러스터의 다른 빌딩 블록들과 통신하도록, 상기 워크로드 클러스터의 각각의 차원에 대해, 상기 차원에 대한 상기 하나 이상의 광학 회로 스위치들에 대한 개개의 라우팅 데이터를 재구성하는 단계를 포함하는, 하나 이상의 데이터 프로세싱 장치에 의해 수행되는 방법.
  12. 데이터 프로세싱 장치; 및
    컴퓨터 프로그램으로 인코딩되는 컴퓨터 저장 매체를 포함하며,
    상기 프로그램은, 상기 데이터 프로세싱 장치에 의해 실행될 때 상기 데이터 프로세싱 장치로 하여금,
    컴퓨팅 워크로드에 대해 요청된 컴퓨트 노드들을 특정하는 요청 데이터를 수신하는 것 ― 상기 요청 데이터는 상기 컴퓨트 노드들의 타겟 n-차원 어레인지먼트를 특정하며, n은 2 이상임 ― ;
    컴퓨트 노드들의 m-차원 어레인지먼트를 각각 포함하는 빌딩 블록들의 세트를 포함하는 슈퍼포드로부터, 조합될 때 상기 요청 데이터에 의해 특정된 상기 타겟 n-차원 어레인지먼트와 매칭하는 상기 빌딩 블록들의 서브세트를 선택하는 것 ― 상기 빌딩 블록들의 세트는 n-차원들 각각에 대한 하나 이상의 광학 회로 스위치들을 포함하는 광학 네트워크에 연결되고, m은 2 이상임 ― ;
    상기 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터를 생성하는 것 ― 상기 생성하는 것은,
    상기 워크로드 클러스터의 각각의 차원에 대해, 상기 차원에 대한 상기 하나 이상의 광학 회로 스위치들에 대한 개개의 라우팅 데이터를 구성하는 것 ― 상기 워크로드 클러스터의 각각의 차원에 대한 상기 개개의 라우팅 데이터는 상기 워크로드 클러스터의 차원을 따라 컴퓨트 노드들 사이에서 상기 컴퓨팅 워크로드의 데이터가 어떻게 라우팅되는지를 특정함 ― 을 포함함 ― ; 및
    상기 워크로드 클러스터의 상기 컴퓨트 노드들로 하여금 상기 컴퓨팅 워크로드를 실행하게 하는 것을 포함하는 동작들을 수행하게 하는 데이터 프로세싱 장치 명령들을 포함하는, 시스템.
  13. 제12 항에 있어서,
    상기 요청 데이터는 컴퓨트 노드들의 상이한 유형들을 특정하고; 그리고
    상기 빌딩 블록들의 서브세트를 선택하는 것은, 상기 요청 데이터에 의해 특정된 컴퓨트 노드의 각각의 유형에 대해, 상기 특정된 유형의 하나 이상의 컴퓨트 노드들을 포함하는 빌딩 블록을 선택하는 것을 포함하는, 시스템.
  14. 제12 항에 있어서,
    상기 슈퍼포드의 각각의 차원에 대한 상기 개개의 라우팅 데이터는 상기 하나 이상의 광학 회로 스위치들 중 하나에 대한 광학 회로 스위치 라우팅 테이블을 포함하는, 시스템.
  15. 제12 항에 있어서,
    상기 광학 네트워크는, n 차원들 각각에 대해, 상기 차원을 따라 컴퓨트 노드들 사이에서 데이터를 라우팅하는 상기 광학 네트워크의 하나 이상의 광학 회로 스위치들을 포함하는, 시스템.
  16. 제15 항에 있어서,
    각각의 빌딩 블록은 상기 빌딩 블록들의 각각의 차원을 따라 컴퓨트 노드들의 복수의 세그먼트들을 포함하고; 그리고
    상기 광학 네트워크는 각각의 차원의 각각의 세그먼트에 대해, 상기 워크로드 클러스터의 각각의 빌딩 블록의 컴퓨트 노드들의 대응하는 세그먼트들 사이에서 데이터를 라우팅하는 상기 광학 네트워크의 광학 회로 스위치를 포함하는, 시스템.
  17. 제12 항에 있어서,
    각각의 빌딩 블록은 컴퓨트 노드들의 3-차원 토러스 또는 컴퓨트 노드들의 메쉬 중 하나를 포함하는, 시스템.
  18. 제12 항에 있어서,
    상기 슈퍼포드는 다수의 워크로드 클러스터들을 포함하고, 그리고 각각의 워크로드 클러스터는 상기 빌딩 블록들의 상이한 서브세트를 포함하고, 서로 다른 워크로드 클러스터와 상이한 워크로드들을 실행하는, 시스템.
  19. 제12 항에 있어서,
    상기 동작들은,
    상기 워크로드 클러스터의 주어진 빌딩 블록이 실패했음을 표시하는 데이터를 수신하는 것; 및
    상기 주어진 빌딩 블록을 이용가능한 빌딩 블록으로 대체하는 것을 포함하는, 시스템.
  20. 컴퓨터 프로그램으로 인코딩되는 비-일시적 컴퓨터 저장 매체로서,
    상기 프로그램은, 하나 이상의 데이터 프로세싱 장치에 의해 실행될 때 상기 하나 이상의 데이터 프로세싱 장치로 하여금,
    컴퓨팅 워크로드에 대해 요청된 컴퓨트 노드들을 특정하는 요청 데이터를 수신하는 것 ― 상기 요청 데이터는 상기 컴퓨트 노드들의 타겟 n-차원 어레인지먼트를 특정하며, n은 2 이상임 ― ;
    컴퓨트 노드들의 m-차원 어레인지먼트를 각각 포함하는 빌딩 블록들의 세트를 포함하는 슈퍼포드로부터, 조합될 때 상기 요청 데이터에 의해 특정된 상기 타겟 n-차원 어레인지먼트와 매칭하는 상기 빌딩 블록들의 서브세트를 선택하는 것 ― 상기 빌딩 블록들의 세트는 n-차원들 각각에 대한 하나 이상의 광학 회로 스위치들을 포함하는 광학 네트워크에 연결되고, m은 2 이상임 ― ;
    상기 빌딩 블록들의 서브세트를 포함하는 컴퓨트 노드들의 워크로드 클러스터를 생성하는 것 ― 상기 생성하는 것은,
    상기 워크로드 클러스터의 각각의 차원에 대해, 상기 차원에 대한 상기 하나 이상의 광학 회로 스위치들에 대한 개개의 라우팅 데이터를 구성하는 것 ― 상기 워크로드 클러스터의 각각의 차원에 대한 상기 개개의 라우팅 데이터는 상기 워크로드 클러스터의 차원에 따라 컴퓨트 노드들 사이에서 상기 컴퓨팅 워크로드의 데이터가 어떻게 라우팅되는지를 특정함 ― 을 포함함 ― ; 및
    상기 워크로드 클러스터의 상기 컴퓨트 노드들로 하여금 상기 컴퓨팅 워크로드를 실행하게 하는 것을 포함하는 동작들을 수행하게 하는 명령들을 포함하는, 컴퓨터 프로그램으로 인코딩되는 비-일시적 컴퓨터 저장 매체.
KR1020217011905A 2019-03-06 2019-12-18 광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들 KR102583771B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237032481A KR102625118B1 (ko) 2019-03-06 2019-12-18 광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들

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
KR1020237032481A Division KR102625118B1 (ko) 2019-03-06 2019-12-18 광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들

Publications (2)

Publication Number Publication Date
KR20210063382A true KR20210063382A (ko) 2021-06-01
KR102583771B1 KR102583771B1 (ko) 2023-09-27

Family

ID=72336372

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217011905A KR102583771B1 (ko) 2019-03-06 2019-12-18 광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들
KR1020237032481A KR102625118B1 (ko) 2019-03-06 2019-12-18 광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237032481A KR102625118B1 (ko) 2019-03-06 2019-12-18 광학 네트워크들을 사용하는 재구성가능한 컴퓨팅 포드들

Country Status (7)

Country Link
US (3) US11042416B2 (ko)
EP (1) EP3853732A1 (ko)
JP (2) JP7242847B2 (ko)
KR (2) KR102583771B1 (ko)
CN (2) CN117873727A (ko)
BR (1) BR112021007538A2 (ko)
WO (1) WO2020180387A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070086231A (ko) * 2004-11-17 2007-08-27 레이던 컴퍼니 고성능 컴퓨팅(hpc) 시스템에서의 스케쥴링
KR20130033898A (ko) * 2011-09-27 2013-04-04 성균관대학교산학협력단 3차원 네트워크 온 칩
KR101465420B1 (ko) * 2013-10-08 2014-11-27 성균관대학교산학협력단 네트워크 온 칩 및 네트워크 온 칩의 신호를 라우팅하는 방법

Family Cites Families (49)

* Cited by examiner, † Cited by third party
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
US7013084B2 (en) 2001-02-28 2006-03-14 Lambda Opticalsystems Corporation Multi-tiered control architecture for adaptive optical networks, and methods and apparatus therefor
WO2004052045A2 (en) 2002-12-04 2004-06-17 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 (ja) * 2005-02-03 2006-08-17 Fujitsu Ltd 情報処理システムおよび情報処理システムの制御方法
US8194638B2 (en) 2006-07-27 2012-06-05 International Business Machines Corporation Dual network types solution for computer interconnects
CN101330413B (zh) * 2007-06-22 2012-08-08 上海红神信息技术有限公司 基于环绕网络与超立方网络架构的混合多阶张量扩展方法
CN101354694B (zh) * 2007-07-26 2010-10-13 上海红神信息技术有限公司 基于mpu架构的超高扩展超级计算系统
WO2009055016A2 (en) 2007-10-23 2009-04-30 Hewlett-Packard Development Company, L.P. Integrated circuit with optical interconnect
EP2083532B1 (en) * 2008-01-23 2013-12-25 Comptel Corporation Convergent mediation system with improved data transfer
US7856544B2 (en) * 2008-08-18 2010-12-21 International Business Machines Corporation Stream processing in super node clusters of processors assigned with stream computation graph kernels and coupled by stream traffic optical links
US8296419B1 (en) 2009-03-31 2012-10-23 Amazon Technologies, Inc. Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US8270830B2 (en) 2009-04-01 2012-09-18 Fusion-Io, Inc. Optical network for cluster computing
US8619605B2 (en) * 2009-05-13 2013-12-31 Avaya Inc. Method and apparatus for maintaining port state tables in a forwarding plane of a network element
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
US8719415B1 (en) 2010-06-28 2014-05-06 Amazon Technologies, Inc. Use of temporarily available computing nodes for dynamic scaling of a cluster
US8873955B2 (en) 2010-10-25 2014-10-28 Polytechnic Institute Of New York University Distributed scheduling for an optical switch
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
EP2810451A1 (en) 2012-02-03 2014-12-10 Lightfleet Corporation 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
EP2923279B1 (en) 2012-11-21 2016-11-02 Coherent Logix Incorporated Processing system with interspersed processors; dma-fifo
US10394611B2 (en) 2012-11-26 2019-08-27 Amazon Technologies, Inc. Scaling computing clusters in a distributed computing system
CN103580771B (zh) * 2013-11-11 2016-01-20 清华大学 基于时间同步的全光时片交换方法
CN104731796B (zh) * 2013-12-19 2017-12-19 秒针信息技术有限公司 数据存储计算方法和系统
US11290524B2 (en) * 2014-08-13 2022-03-29 Microsoft Technology Licensing, Llc Scalable fault resilient communications within distributed clusters
US10158530B2 (en) 2014-08-18 2018-12-18 Advanced Micro Devices, Inc. Configuration of a cluster server using cellular automata
US10200292B2 (en) * 2014-08-25 2019-02-05 Intel Corporation Technologies for aligning network flows to processing resources
US9521089B2 (en) 2014-08-30 2016-12-13 International Business Machines Corporation Multi-layer QoS management in a distributed computing environment
JP6413634B2 (ja) 2014-10-30 2018-10-31 富士通株式会社 ジョブ管理プログラム、ジョブ管理方法、およびジョブ管理装置
US20160241474A1 (en) * 2015-02-12 2016-08-18 Ren Wang Technologies for modular forwarding table scalability
CA2990937C (en) * 2015-03-23 2021-01-12 Aeponyx Inc. Photonic switches, photonic switching fabrics and methods for data centers
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10389800B2 (en) * 2016-10-11 2019-08-20 International Business Machines Corporation Minimizing execution time of a compute workload based on adaptive complexity estimation
US10834484B2 (en) * 2016-10-31 2020-11-10 Ciena Corporation Flat, highly connected optical network for data center switch connectivity
US10243687B2 (en) * 2016-11-17 2019-03-26 Google Llc Optical network unit wavelength tuning
CN106851442B (zh) 2017-01-19 2019-05-21 西安电子科技大学 一种超级计算机中的光互连网络系统及通信方法
CN107094270A (zh) * 2017-05-11 2017-08-25 中国科学院计算技术研究所 可重构的互连系统及其拓扑构建方法
JP6885193B2 (ja) * 2017-05-12 2021-06-09 富士通株式会社 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
CN107241660B (zh) * 2017-06-26 2021-07-06 国网信息通信产业集团有限公司 面向智能电网业务的全光灵活粒度的交换网络架构及方法
US10552227B2 (en) * 2017-10-31 2020-02-04 Calient Technologies, Inc. Reconfigurable computing cluster with assets closely coupled at the physical layer by means of an optical circuit switch
US11042416B2 (en) * 2019-03-06 2021-06-22 Google Llc Reconfigurable computing pods using optical networks
US11122347B2 (en) * 2019-07-01 2021-09-14 Google Llc Reconfigurable computing pods using optical networks with one-to-many optical switches

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070086231A (ko) * 2004-11-17 2007-08-27 레이던 컴퍼니 고성능 컴퓨팅(hpc) 시스템에서의 스케쥴링
KR20130033898A (ko) * 2011-09-27 2013-04-04 성균관대학교산학협력단 3차원 네트워크 온 칩
KR101465420B1 (ko) * 2013-10-08 2014-11-27 성균관대학교산학협력단 네트워크 온 칩 및 네트워크 온 칩의 신호를 라우팅하는 방법

Also Published As

Publication number Publication date
CN112889032B (zh) 2024-02-06
US20210286656A1 (en) 2021-09-16
JP7242847B2 (ja) 2023-03-20
US11042416B2 (en) 2021-06-22
KR102625118B1 (ko) 2024-01-12
EP3853732A1 (en) 2021-07-28
CN117873727A (zh) 2024-04-12
US20230161638A1 (en) 2023-05-25
US20200285524A1 (en) 2020-09-10
CN112889032A (zh) 2021-06-01
KR20230141921A (ko) 2023-10-10
BR112021007538A2 (pt) 2021-07-27
WO2020180387A1 (en) 2020-09-10
JP2022522320A (ja) 2022-04-18
KR102583771B1 (ko) 2023-09-27
US11537443B2 (en) 2022-12-27
JP2023078228A (ja) 2023-06-06

Similar Documents

Publication Publication Date Title
US11537443B2 (en) Reconfigurable computing pods using optical networks
US11451889B2 (en) Reconfigurable computing pods using optical networks with one-to-many optical switches
CN107769956B (zh) 计算系统和冗余资源连接结构
KR101159386B1 (ko) 고성능 연산(hpc) 시스템에서의 온디맨드 인스턴스화
US10296392B2 (en) Implementing a multi-component service using plural hardware acceleration components
US10606651B2 (en) Free form expression accelerator with thread length-based thread assignment to clustered soft processor cores that share a functional circuit
EP3314542A1 (en) Convolutional neural networks on hardware accelerators
WO2017003837A1 (en) Deep neural network partitioning on servers
US20130073814A1 (en) Computer System
KR20070006906A (ko) Hpc 환경에서의 토폴로지-인식 작업 스케쥴링 및백필링을 위한 시스템 및 방법
EP3993359A1 (en) Enhanced reconfigurable interconnect network
CN111684421A (zh) 服务器系统
US20200235815A1 (en) Methods and sysems for reconfigurable network topologies
JP6036848B2 (ja) 情報処理システム
JP2019008648A (ja) 情報処理システム及び情報処理方法
JP2019028853A (ja) 情報処理システム、情報処理方法及びプログラム
Guo Data Center Networking: Network Topologies and Traffic Management in Large-Scale Data Centers
Zu et al. Resiliency at Scale: Managing Google’s TPUv4 Machine Learning Supercomputer

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant