KR20220167391A - 분산 컴퓨팅 네트워크에서 통신 최적화 - Google Patents

분산 컴퓨팅 네트워크에서 통신 최적화 Download PDF

Info

Publication number
KR20220167391A
KR20220167391A KR1020227040200A KR20227040200A KR20220167391A KR 20220167391 A KR20220167391 A KR 20220167391A KR 1020227040200 A KR1020227040200 A KR 1020227040200A KR 20227040200 A KR20227040200 A KR 20227040200A KR 20220167391 A KR20220167391 A KR 20220167391A
Authority
KR
South Korea
Prior art keywords
computing
parameter
distributed computing
cluster
messages
Prior art date
Application number
KR1020227040200A
Other languages
English (en)
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 아브 이니티오 테크놀로지 엘엘시
Publication of KR20220167391A publication Critical patent/KR20220167391A/ko

Links

Images

Classifications

    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5022Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
    • 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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

컴퓨팅 시스템은 복수의 컴퓨팅 노드의 컴퓨팅 노드가 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크에 의해 상호접속된 복수의 컴퓨팅 노드를 포함하는 분산 컴퓨팅 클러스터를 포함한다. 상기 컴퓨팅 노드들은 상기 인터커넥트 네트워크를 통한 상기 컴퓨팅 노드들에 의한 메시지 전송을 관리하는 제1 파라미터로 설정된다. 상기 컴퓨팅 노드들은 상기 제1 파라미터에 따라 메시지 그룹으로서 전송을 위한 메시지를 누적하도록 구성되고, 상기 컴퓨팅 시스템은 제2 파라미터에 따라 상기 분산 컴퓨팅 클러스터로 컴퓨팅 요청의 주입을 제한하도록 구성된다. 제어기는 적어도 하나의 미리 결정된 서비스 레벨 요구사항을 수신하고 상기 적어도 하나의 서비스 레벨 요구사항을 준수하면서 상기 분산 컴퓨팅 클러스터의 계산 처리량을 제어하기 위해 상기 제1 파라미터의 값 및 상기 제2 파라미터의 값을 제어하도록 구성된다.

Description

분산 컴퓨팅 네트워크에서 통신 최적화
본 출원은 본원에 참조로 포함되는 2020년 5월 19일자로 출원된 미국 출원 번호 제63/027,008호에 대한 우선권을 주장한다.
본 명세서는 분산 컴퓨팅 네트워크(distributed computing network)에서 통신의 관리 및 최적화에 관한 것이다.
분산 컴퓨팅 시스템은 계산 문제를 해결하기 위해 조정된 방식으로 함께 작동하는 컴퓨팅 노드들의 클러스터(cluster)를 사용한다. 컴퓨팅 노드는 일반적으로 상호 연결을 통해 통신하는 별도의 네트워크 컴퓨터에 위치한다. 작동시 계산 문제는 여러 작업으로 나뉘며 각 작업은 분산 컴퓨팅 시스템의 하나 이상의 컴퓨팅 노드에 의해 (별도로) 해결된다. 계산 문제에 대한 솔루션은 상호 연결을 통해 작업(및 컴퓨팅 노드) 간에 전달되는 메시지에 의해 조정된다. 메시지는 계산 결과를 다운스트림 작업에 제공하거나, 데이터를 복제하는 등 여러 가지 이유로 상호 연결을 통해 전달된다.
분산 컴퓨팅 시스템에서 네트워크의 노드 상태가 변경되면(예: 노드가 외부 소스로부터 명령을 수신하거나, 작업 결과가 노드에 의해 생성되는 경우), 분산 컴퓨팅 시스템의 다른 컴퓨팅 노드에게 변경을 알릴 수 있다. 다른 컴퓨팅 노드에 변경을 알리기 위해 네트워크 트랜잭션에 관련된 정보가 포함된 메시지가 노드 간에 통신된다. 컴퓨팅 노드 간의 메시지 통신은 빈번할 수 있으므로 메시지 통신 시 효율성과 높은 처리량(throughput)을 유지하는 것이 바람직하다.
효율성과 높은 처리량을 달성하기 위한 전략으로 서로 다른 트랜잭션의 여러 메시지를 함께 묶고 단일 네트워크 트랜잭션에서 상기 메시지 묶음을 보내는 것이 있다. 단일 메시지를 전송하기 위한 CPU 비용과 네트워크 오버헤드는 대부분 고정되어 있고 동일한 트랜잭션에서 후속 메시지를 전송하는 CPU 비용이 단일 메시지를 전송하는 CPU 비용에 비해 무시할 수 있기 때문에 상기 묶음(bundling) 전략은 상호 연결을 통한 처리량을 증가시킨다. 그러나 묶음 전략은 묶음을 전송하기 전에 메시지가 묶음을 채울 때까지 기다리는 시스템으로 인해 바람직하지 않은 큰 네트워크 레이턴시(latency)를 유발할 수도 있다. 분산 컴퓨팅 시스템에서 처리량과 레이턴시에 영향을 미치는 또 다른 파라미터는 분산 컴퓨팅 시스템에 요청을 주입하는 레이트이다. 예를 들어, 주입 레이트가 너무 높으면 정체가 발생하여 효율성이 감소하고/또는 레이턴시가 증가할 수 있다. 여기에 설명된 양태는 바람직한 전체 네트워크 성능을 달성하기 위해 레이턴시와 처리량의 균형을 맞추기 위해 분산 컴퓨팅 시스템의 상기 설명된 파라미터를 제어하는 전략에 관한 것이다.
일반적인 양태에서, 컴퓨팅 시스템은 복수의 컴퓨팅 노드의 컴퓨팅 노드가 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크(interconnect network)에 의해 상호접속된 복수의 컴퓨팅 노드를 포함하는 분산 컴퓨팅 클러스터를 포함한다. 컴퓨팅 노드들의 적어도 일부 각각은 인터커넥트 네트워크를 통한 컴퓨팅 노드에 의한 메시지의 전송을 통제하는 제1 파라미터로 설정된다. 적어도 일부 컴퓨팅 노드는 제1파라미터에 따라 메시지 그룹으로서 전송을 위한 메시지를 누적하도록(accumulate) 구성되고, 컴퓨팅 시스템은 제2 매개변수에 따라 분산 컴퓨팅 클러스터로 컴퓨팅 요청의 주입을 제한하도록 구성된다. 컴퓨팅 시스템은 또한 적어도 하나의 미리 결정된 서비스 레벨 요구사항을 수신하고 적어도 하나의 서비스 레벨 요구사항 를 준수하면서 분산 컴퓨팅 클러스터의 계산 처리량을 제어하기 위해 제2 파라미터의 값 및 제1 파라미터의 값을 제어하도록 구성된 제어기를 포함한다.
양태에는 다음 기능 중 하나 이상이 포함될 수 있다.
컴퓨팅 시스템은 각각이 입력 데이터를 수신하고, 입력 데이터를 처리하기 위해 분산 컴퓨팅 클러스터에 요청을 주입하고, 분산 컴퓨팅 클러스터로부터 처리 결과를 수신하고, 처리 결과로부터 출력 데이터를 생성하도록 구성된 하나 이상의 인터페이스 구성요소를 포함할 수 있다. 인터페이스 구성요소는 제2 파라미터에 따라 분산 컴퓨팅 시스템으로의 요청 주입 레이트를 제한하도록 구성될 수 있다. 하나 이상의 인터페이스 구성요소 중 적어도 일부는 분산 컴퓨팅 클러스터가 실행되는 시스템과 별개의 클라이언트 시스템에서 실행할 수 있다. 수신된 입력 데이터의 적어도 일부는 우선순위 레벨과 연관될 수 있고, 하나 이상의 인터페이스 구성요소는 우선순위 레벨에 따라 분산 데이터 클러스터로의 입력 데이터의 주입을 관리하도록 구성될 수 있다.
분산 컴퓨팅 클러스터는 제2 파라미터에 따라 분산 컴퓨팅 시스템으로의 요청 주입 레이트를 제한하도록 구성된 레이트 제한기를 포함할 수 있다. 하나 이상의 서비스 레벨 요구사항의 각 서비스 레벨 요구사항은 분산 컴퓨팅 클러스터가 요청을 이행하거나 응답해야 하는 최대 시간 구간을 지정할 수 있다. 컴퓨팅 시스템은 분산 컴퓨팅 클러스터의 계산 처리량 및 분산 컴퓨팅 시스템의 처리 레이턴시를 관찰하도록 구성된 모니터를 포함할 수 있다. 관찰된 계산 처리량은 하나 이상의 컴퓨팅 노드의 CPU 부하를 모니터링함으로써 측정될 수 있다.
관찰된 계산 처리량은 인터커넥트 네트워크내 여러 메시지로부터 추론할 수 있다. 관찰된 레이턴시는 서비스 요청 레벨에서 측정될 수 있다. 관찰된 레이턴시는 분산 컴퓨팅 클러스터로 요청을 주입하는 것과 분산 컴퓨팅 클러스터로부터 요청에 대한 응답을 수신하는 것 사이의 시간차로써 결정함으로써 측정될 수 있다. 분산 컴퓨팅 클러스터로 주입된 요청과 분산 컴퓨팅 클러스터의 결과 출력은 모니터를 통과할 수 있다.
제어기는 제2 파라미터의 값 및 제1 파라미터의 값을 조정하기 위해 분산 컴퓨팅 클러스터의 관찰된 계산 처리량 및 관찰된 처리 레이턴시를 처리하도록 구성될 수 있다. 분산 컴퓨팅 클러스터가 요청을 처리하는 동안 제2 파라미터의 값 및 제1 파라미터의 값을 조정하기 위해, 제어기는 분산 컴퓨팅 클러스터의 관찰된 계산 처리량 및 관찰된 레이턴시를 반복적으로 처리할 수 있다. 제2 파라미터의 값 및 제1 파라미터의 값을 조정하기 위해, 제어기는 분산 컴퓨팅 클러스터의 관찰된 계산 처리량 및 관찰된 처리 레이턴시를 처리하기 위한 피드백 루프를 구현할 수 있다. 제어기는 최적화 알고리즘을 사용하여 제1 파라미터의 값을 제어할 수 있다.
제1 파라미터는 인터커넥트 네트워크를 통한 컴퓨팅 노드에 의한 메시지 전송 사이의 최소 시간 간격을 제어하는 지연 파라미터(delay parameter)를 포함할 수 있다. 적어도 일부 컴퓨팅 노드는 최소 시간 간격 동안 메시지 그룹으로서 전송을 위해 메시지를 누적하도록 구성될 수 있다. 제2 파라미터는 분산 컴퓨팅 클러스터로의 컴퓨팅 요청의 주입 레이트를 제한하도록 구성된 입력 파라미터의 레이트를 포함할 수 있다. 적어도 하나의 서비스 레벨 요구 사항을 준수하면서 분산 컴퓨팅 클러스터의 계산 처리량을 제어하는 것은 적어도 하나의 서비스 레벨 요구 사항 중 어느 것도 위반하지 않으면서 분산 컴퓨팅 클러스터의 계산 처리량을 최대화하는 것을 포함할 수 있다. 제1 파라미터는 인터커넥트 네트워크를 통한 컴퓨팅 노드에 의한 메시지 전송 사이에 누적된 메시지의 수를 제어할 수 있다.
다른 일반적인 양태에서, 방법은 제2 파라미터에 따라 분산 컴퓨팅 클러스터로의 컴퓨팅 요청의 주입을 제한하는 것을 포함하고, 여기서 분산 컴퓨팅 시스템은 복수의 컴퓨팅 노드의 컴퓨팅 노드가 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크에 의해 상호접속된 복수의 컴퓨팅 노드를 포함한다. 컴퓨팅 노드의 적어도 일부 각각은 인터커넥트 네트워크를 통한 컴퓨팅 노드에 의한 메시지의 전송을 통제하는 제1 파라미터로 설정된다. 방법은 적어도 일부 컴퓨팅 노드에서 제1 파라미터에 따라 메시지 그룹으로서 전송하기 위한 메시지를 누적하고, 제어기에서 적어도 하나의 미리 결정된 서비스 레벨 요구사항을 수신하고, 및 제어기를 사용하여 적어도 하나의 서비스 레벨 요구사항을 준수하면서 분산 컴퓨팅 클러스터의 계산 처리량을 최대화하기 위한 제2 파라미터의 값 및 제1 파라미터의 값을 제어하는 것을 더 포함한다.
다른 일반적인 양태에서, 컴퓨터 판독가능 매체 상의 비일시적 형태로 저장된 소프트웨어는 컴퓨팅 시스템이 제2 파라미터에 따라 분산 컴퓨팅 클러스터로의 컴퓨팅 요청의 주입 레이트를 제한하게 하기 위한 명령을 포함한다. 분산 컴퓨팅 시스템은 복수의 컴퓨팅 노드의 컴퓨팅 노드가 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크에 의해 상호접속된 복수의 컴퓨팅 노드를 포함한다. 컴퓨팅 노드의 적어도 일부 각각은 인터커넥트 네트워크를 통한 컴퓨팅 노드에 의한 메시지의 전송을 통제하는 제1 파라미터로 설정된다. 명령은 컴퓨팅 시스템이 적어도 일부 컴퓨팅 노드에서 제1 파라미터에 따라 메시지 그룹으로서 전송하기 위한 메시지를 누적하고, 제어기에서 적어도 하나의 미리 결정된 서비스 레벨 요구사항을 수신하고, 및 제어기를 사용하여 적어도 하나의 서비스 레벨 요구사항을 준수하면서 분산 컴퓨팅 클러스터의 계산 처리량을 최대화하기 위한 제2 파라미터의 값 및 제1 파라미터의 값을 조정하는 것을 더 포함한다.
다른 일반적인 양태에서, 컴퓨팅 시스템은 제2 파라미터에 따라 분산 컴퓨팅 클러스터로의 컴퓨팅 요청의 주입 속도를 제한하기 위한 수단을 포함한다. 분산 컴퓨팅 시스템은 복수의 컴퓨팅 노드의 컴퓨팅 노드가 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크에 의해 상호 연결된 복수의 컴퓨팅 노드를 포함하며, 컴퓨팅 노드의 적어도 일부 각각은 인터커넥트 네트워크를 통한 컴퓨팅 노드에 의한 메시지의 전송을 통제하는 제1 파라미터로 설정된다. 상기 컴퓨팅 시스템은 적어도 일부 컴퓨팅 노드에서 제1 파라미터에 따라 메시지 그룹으로서 전송하기 위한 메시지를 누적하기 위한 수단, 제어기에서 적어도 하나의 미리 결정된 서비스 수준 계약을 수신하기 위한 수단, 및 제어기를 사용하여 적어도 하나의 서비스 레벨 요구사항을 준수하면서 분산 컴퓨팅 클러스터의 계산 처리량을 최대화하기 위한 제2 파라미터의 값 및 제1 파라미터의 값을 제어하는 수단을 더 포함한다.
양태는 다음 장점 중 하나 이상을 포함할 수 있다.
많은 상호 연결된 컴퓨팅 노드를 포함하는 분산 컴퓨팅 클러스터는 상당한 양의 정보를 수신 및 처리할 수 있으며, 처리된 정보를 네트워크 외부에서 후속적으로 통신할 수 있다. 일반적으로 분산 컴퓨팅 클러스터에 들어가는 작업은 "높은 우선 순위" 또는 "낮은 우선 순위"로 지정할 수 있지만 컴퓨팅 클러스터 내부에는 모든 정보가 동일하게 처리되는 "우선 순위"라는 개념이 거의 없다. 분산 컴퓨팅 클러스터에 들어가는 작업과 관련된 "우선 순위"의 개념은 원하는 SLA(service level agreement, 서비스 레벨 계약)와 관련이 있다. 그러나 SLA를 충족하려면 우선 순위에 따라 시스템에 들어오는 작업을 제어할 뿐만 아니라 컴퓨팅 클러스터 내부에서 작업의 처리량과 레이턴시를 제어해야 한다. 처리량 또는 레이턴시 중 하나를 제어하는 것은 비교적 간단하지만 SLA를 충족하기 위해 둘 다 제어하는 것은 어려울 수 있다.
처리량과 레이턴시를 모두 제어하는 데 있어 한 가지 어려운 점은 주어진 시간에 시스템에 들어가는 작업의 양을 선험적으로 알 수 있는 방법이 없기 때문이다. 컴퓨팅 클러스터가 주어진 시간에 입력되는 작업의 양에 적응하도록 하면 시스템에서 작업이 넘쳐날 가능성을 제거하여 컴퓨팅 클러스터가 시스템에서 처리되는 작업의 내부 처리량과 레이턴시를 제어할 수 있을 뿐만 아니라 이 작업의 SLA를 충족할 수 있다-간단히 말해서, 시스템이 들어오는 작업의 특정 SLA를 충족할 수 없는 경우 컴퓨팅 클러스터에서 이를 수락하지 않는다.
분산 컴퓨팅 클러스터 내부의 작업 처리 측면에서 SLA를 충족하는 시스템 기능은 시스템 내부의 작업 레이턴시와 처리량의 균형을 잘못 관리하여 방해받을 수 있다. 실제로 한 번에 항상 높은 처리량과 낮은 레이턴시를 항상 달성할 수는 없다. 분산 컴퓨팅 클러스터 내에서 높은 처리량을 달성하기 위한 간단한 접근 방식은 해당 버퍼의 내용을 다른 노드로 전달하기 전에 컴퓨팅 노드의 버퍼에 많은 수의 메시지를 수집하는 것이다. 그러면 높은 처리량을 달성하지만 버퍼를 채우는 데 오랜 시간이 걸리므로 높은 레이턴시가 발생하는 문제가 발생한다. 유사하게, 낮은 레이턴시를 달성하기 위해 메시지가 수신되는 즉시 전송하도록 컴퓨팅 클러스터를 구성할 수 있지만 이는 또한 낮은 처리량을 야기한다. 이하에서 기술되는 양태는 작업에 필요한 SLA가 충족되는 방식으로 원하는 처리량과 레이턴시의 균형을 맞추어 문제를 해결하도록 구성된다.
일부 양태에서, 분산 컴퓨팅 네트워크에서 최적화된 통신은 분산 컴퓨팅 클러스터로의 작업을 위한 진입점에서 게이트키퍼(gatekeeper) 역할을 하는 "호출 클러스터 구성요소(call cluster component)"를 구현한다. 해당 작업과 관련된 SLA를 충족할 수 없는 경우 양태는 시스템에 작업이 입력되는 것을 방지하기 위해 호출 클러스터 구성 요소를 사용한다. 또한, 일부 예들에서, 호출 클러스터 구성요소는 유리하게는 낮은 우선순위 작업보다 높은 우선순위 작업을 시스템에 허용하는 선호도를 나타낸다. 일단 시스템 내부에서 작업에 "우선순위"라는 개념이 없다는 점을 감안할 때 높은 우선순위 작업이 SLA를 놓치는 방법은 시스템이 낮은 우선순위 작업으로 넘쳐나는 경우이다. 시스템에 진입할 때 높은 우선순위 작업에 선호도를 주면 해당 작업에 대해 시스템이 SLA를 달성할 가능성이 높아진다.
특정 양태는 분산 컴퓨팅 클러스터의 모든 컴퓨팅 노드에 걸쳐 동기화되는 내부 클록을 유리하게 구현한다. SLA와 관련하여 시스템 내부 작업에 대한 바람직한 처리량 및 레이턴시를 달성하기 위해 시스템은 내부 클록에 표시된 대로 특정 시간 간격 후에 해당 컴퓨팅 노드에 다른 컴퓨팅 노드와 해당 내용을 통신하도록 지시한다. 이를 통해, 시스템은 레이턴시가 미리 결정된 시간 간격을 결코 초과하지 않도록 보장하면서 바람직한 처리량을 달성할 수 있다.
본 발명의 다른 특징 및 이점은 하기 상세한 설명 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 데이터 처리 시스템이다.
도 2는 분산 컴퓨팅 클러스터 및 제어기를 포함하는 실행 환경을 나타내는 도면이다.
도 3은 제어기에 의해 구현되는 제어 알고리즘의 예이다.
도 4는 실행 환경의 작동에 대한 첫번째 예에서 도 2의 실행 환경의 초기 상태를 나타낸다.
도 5는 도2의 실행 환경의 동작의 제1 예에서 제1 단계이다.
도 6은 도2의 실행 환경의 동작의 제1 예에서 제2 단계이다.
도 7은 도2의 실행 환경의 동작의 제1 예에서 제3 단계이다.
도 8은 도2의 실행 환경의 동작의 제1 예에서 제4 단계이다.
도 9는 도2의 실행 환경의 동작의 제1 예에서 제6 단계이다.
도 10은 실행 환경의 작동에 대한 두번째 예에서 도 2의 실행 환경의 초기 상태를 나타낸다.
도 11은 도2의 실행 환경의 동작의 제2 예에서 제1 단계이다.
도 12는 도2의 실행 환경의 동작의 제2 예에서 제2 단계이다.
도 13은 도2의 실행 환경의 동작의 제2 예에서 제3 단계이다.
도 1은 통신 최적화 기술이 사용될 수 있는 데이터 처리 시스템(100)의 예를 나타낸다. 시스템(100)은 저장 장치 또는 온라인 데이터 스트림에 대한 연결과 같은 하나 이상의 데이터 소스를 포함할 수 있는 데이터 소스(102)를 포함하며, 이들 각각은 다양한 형식(예: 데이터베이스 테이블, 스프레드시트 파일, 일반 텍스트 파일 또는 메인프레임에서 사용하는 기본 형식)의 데이터로 저장되거나 제공될 수 있다.
실행 환경(execution environment, 104)은 하나 이상의 클라이언트 시스템(106)에 의해 사용 가능한 분산 컴퓨팅 클러스터(distributed computing cluster, 112)("액티브 데이터 클러스터(active data cluster)"로 지칭될 수 있음)를 포함하여 아래에서 더 상세히 설명되는 바와 같이 계산 작업을 수행한다. 분산 컴퓨팅 클러스터의 한 예는 미국 특허 출원 번호 제16/175,133호에 설명된 분산 컴퓨팅 클러스터이며, 이는 참조로 여기에 포함된다. 실행 환경(104)은 예를 들어, UNIX 운영 체제의 버전과 같은 적절한 운영 체제의 제어하에 하나 이상의 범용 컴퓨터에서 호스팅될 수 있다. 예를 들어, 실행 환경(104)은 다중 CPU(central processing unit) 또는 프로세서 코어, 또는 로컬 (예: SMP(symmetric multi-processing) 컴퓨터와 같은 다중 프로세서 시스템) 또는 로컬 분산(예: 클러스터 또는 MPP(massively parallel processing) 시스템로 연결된 다중 프로세서, 또는 원격 또는 원격 분산(예: LAN(Local Area Network) 및/또는 WAN(wide-area network)을 통해 연결된 다중 프로세서)) 또는 이들의 조합을 사용하는 컴퓨터 시스템의 구성을 포함하는 다중 노드 병렬 컴퓨팅 환경(multiple-node parallel computing environment)을 포함할 수 있다.
일부 예에서, 실행 환경(104)은 데이터 소스(102)로부터 데이터를 판독하고 결과를 데이터 소스(102)에 다시 저장하거나 추가 처리를 위해 다른 다운스트림 시스템에 결과를 제공한다. 데이터 소스(102)를 제공하는 저장 장치는 실행 환경(104)에 대해 로컬일 수 있고, 예를 들어 실행 환경(104)을 호스팅하는 컴퓨터에 연결된 저장 매체(를 들어, 하드 드라이브(108))에 저장되거나, 실행 환경에 대해 원격일 수 있다. 예를 들어, 원격 연결(예를 들어, 클라우드 컴퓨팅 인프라스트럭처에 의해 제공됨)을 통해 실행 환경(104)을 호스팅하는 컴퓨터와 통신하는 원격 시스템(예를 들어, 메인프레임(110))에서 호스팅된다.
데이터 저장 시스템(116)은 또한 개발자(120)가 실행 환경(예를 들어, 하나 이상의 클라이언트 시스템(106)을 통해 분산 컴퓨팅 클러스터(112)에 의해) 에서 실행하기 위한 컴퓨터 프로그램을 지정할 수 있는 개발 환경(development environment, 118)에 액세스할 수 있다. 일부 구현에서, 개발 환경(118)은 정점 사이의 지시된 링크(작업 요소, 즉 데이터의 흐름을 나타냄)에 의해 연결된 정점(vertex)(데이터 처리 구성요소 또는 데이터세트를 나타냄)을 포함하는 데이터 흐름 그래프로서 애플리케이션을 개발하기 위한 시스템이다. 예를 들어, 이러한 환경은 "Managing Parameters for Graph-Based Applications"라는 제목의 미국 공개 번호 제2007/0011668호에 더 자세히 설명되어 있으며, 참조로 여기에 포함된다. 이러한 그래프 기반 계산을 실행하기 위한 시스템은 본 명세서에 참고로 포함된 "EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS"라는 제목의 미국 특허 제5,966,072호에 설명되어 있다. 이 시스템에 따라 만들어진 데이터 흐름 그래프는 그래프 구성 요소로 표시되는 개별 프로세스 안팎으로 정보를 가져오고 프로세스 간에 정보를 이동하고 프로세스의 실행 순서를 정의하는 방법을 제공한다. 이 시스템은 사용 가능한 모든 방법에서 프로세스 간 통신 방법을 선택하는 알고리즘을 포함한다(예: 그래프의 링크에 따른 통신 경로는 TCP/IP 또는 UNIX 도메인 소켓을 사용하거나 공유 메모리를 사용하여 프로세스 간에 데이터를 전달할 수 있음).
일부 예에서, 데이터 소스(102)는 임의의 수의 상이한 형태의 데이터베이스 시스템에서 데이터를 유지한다. 데이터는 null 값을 포함하여 각 필드에 대한 값을 갖는 레코드(records)("속성(attributes)" 또는 "열(columns)"이라고도 함)로 구성될 수 있다. 데이터 소스로부터 데이터를 처음 읽을 때, 실행 모듈(104)은 일반적으로 해당 데이터 소스의 레코드에 대한 일부 초기 형식 정보로 시작한다. 어떤 상황에서는 데이터 소스의 기록 구조가 처음에는 알려지지 않을 수 있으며 대신 데이터 소스 또는 데이터의 분석 후에 결정될 수 있다. 레코드에 대한 초기 정보에는 예를 들어 특정 값을 나타내는 비트 수, 레코드 내의 필드 순서, 비트가 나타내는 값 유형(예: 문자열, 부호 있는/부호 없는 정수)이 포함될 수 있다.
1. 실행 환경 개요(Execution Environment Overview)
도 2를 참조하면, 실행 환경(104)의 한 예의 일반적인 개요는 분산 컴퓨팅 클러스터(112), 제어기(110), 쓰로틀(throttle, 117), 및 모니터(119)를 포함한다. 일반적으로, 제어기(110) 및 분산 컴퓨팅 클러스터(112)는 클러스터(112)로 주입되는 업스트림 구성요소(upstream componen)(예를 들어, "호출 클러스터 구성요소" 또는 "인터페이스 구성요소", 도시되지 않음)에 의해 제공되는 입력 컴퓨팅 요청(111)의 스트림을 처리하고 출력 데이터 요소(113)의 스트림을 생성하는 피드백 루프에서 동작한다. 출력 데이터 요소(113)의 스트림은 분산 컴퓨팅 클러스터(112)와 관련된 임의의 서비스 레벨 계약 또는 요구 사항을 준수하면서 분산 컴퓨팅 클러스터(112)의 계산 처리량을 최대화하는 방식으로 분산 컴퓨팅 클러스터(112)에 주입된 컴퓨팅 요청(111)에 대한 응답으로 분산 컴퓨팅 클러스터(112)의 노드(105)에 의해 생성된 응답이다.
일부 예들에서, 제어기(110)는 모니터(119)로부터 분산 컴퓨팅 클러스터(112)와 연관된 처리 레이턴시 및 출력 레이트(Rout)를 특징짓는 정보를 수신한다. 제어기(110)는 처리 레이턴시 및 출력 레이트(Rout)를 사용하여 분산 컴퓨팅 클러스터(112) 내에서 전송된 메시지의 통신 지연(d)(또는, "제1 파라미터"로 지칭됨) 및 분산 컴퓨팅 클러스터(112)로의 요청 주입 레이트(Rin)(또는, "제2 파라미터"로 지칭됨)를 결정한다. 출력 레이트는 클러스터(112)가 출력 데이터 요소(113)를 출력하는 레이트일 수 있으며, 이는 주입된 요청(111)에 대한 노드(105)의 응답일 수 있다. 클러스터(112)의 계산 처리량은 모니터(119)에 의한 출력 레이트(Rout)의 측정에 의해 관찰될 수 있다. 통신 지연(d)는 분산 컴퓨팅 클러스터(112)로 제공되고, 아래에서 더 자세히 설명되는 바와 같이 분산 컴퓨팅 클러스터에서 컴퓨팅 노드(105)를 구성하는 데 사용된다. 요청 주입 레이트(Rin)는 쓰로틀(117)로 제공되고 분산 컴퓨팅 클러스터(112)로의 새로운 요청 주입 레이트를 제한하는 데 사용된다.
일부 예들에서, 입력 요청들(111)은 분산 컴퓨팅 클러스터(112) 외부의 구성요소(예를 들어, 호출 클러스터 구성요소)에 정의된 절차에 따라 데이터를 처리하기 위한 요청을 포함한다. 분산 컴퓨팅 클러스터(112)는 입력 요청(111)을 처리하고 처리의 결과(113)(주입된 컴퓨팅 요청(111)에 대한 노드(105)의 응답)를 분산 컴퓨팅 클러스터(112) 외부의 구성요소(예를 들어, 호출 클러스터 구성요소로 다시)에 제공한다.
쓰로틀(117)은 분산 컴퓨팅 클러스터(112)에 대한 요청의 주입 레이트(Rin)를 제한하도록 구성된다. 일반적으로, 이러한 요청들이 요청과 관련된 SLA에서 지정한 시간 내에 완료될 가능성이 낮으면, 요청 파라미터의 주입 레이트는 요청이 분산 컴퓨팅 클러스터(112)에 주입되지 않도록 조정 가능하다.
2. 분산 컴퓨팅 클러스터(Distributed Computing Cluster)
분산 컴퓨팅 클러스터(112)는 인터커넥트 네트워크(107)(또는 단순히 "인터커넥트(interconnect)")에 의해 서로 연결된 다수의 컴퓨팅 노드(105)를 포함한다. 인터커넥트(107)는 분산 방식으로 데이터를 처리하기 위해 컴퓨팅 노드(105) 사이의 데이터 통신을 용이하게 한다. 예를 들어, 인터커넥트(107)는 IP(internet protocol) 기반 및/또는 이더넷 기반 네트워크를 포함한다. 일반적으로, 처리 요청은 하나 이상의 외부 구성요소(도시되지 않음)에 의해 분산 컴퓨팅 클러스터(112)로 주입된다. 분산 컴퓨팅 클러스터(112)는 외부 구성요소에 다시 제공되는 결과 데이터(예를 들어, 주입된 컴퓨팅 요청에 대한 노드(105)의 응답)를 생성하기 위해 컴퓨팅 노드(105) 및 인터커넥트 네트워크(107)를 사용하여 요청을 처리한다.
요청을 처리하는 과정에서, 메시지는 인터커넥트(107)를 통해 컴퓨팅 노드(105) 사이에서 자주 전달된다. 통신 지연(d)은 분산 컴퓨팅 클러스터(112)의 컴퓨팅 노드(105)가 인터커넥트(107)를 통해 서로에게 메시지를 전송하는 사이에 대기하는 시간을 나타낸다. 통신 지연의 더 큰 값은 컴퓨팅 노드(105)가 전송 사이에 더 오랜 기간을 기다리게 한다. 컴퓨팅 노드들(105)이 대기하는 동안, 이들은 나중의 전송(예를 들어, 단일 네트워크 패키지에서)을 위해 메시지 그룹을 누적한다. 따라서, 통신 지연의 더 큰 값은 전송당 더 많은 메시지가 전송되는 것과 연관되어, 분산 컴퓨팅 클러스터(112)에 대한 더 큰 처리량을 초래한다(즉, 패킷 형성과 관련된 네트워크 오버헤드의 감소로 인해). 그러나 오랜 시간 동안 기다리면 더 큰 컴퓨팅 레이턴시가 초래된다. 유사하게, 통신 지연(d)의 더 작은 값은 분산 컴퓨팅 클러스터에 대한 더 적은 처리량(즉, 형성되는 패킷의 증가된 수와 관련된 증가된 네트워크 오버헤드로 인해)과 연관되지만 또한 더 작은 컴퓨팅 레이턴시와 연관된다.
3. 제어기(Controller)
위에서 언급한 바와 같이, 제어기(110)는 요청과 관련된 서비스 레벨 계약(SLA) 또는 다른 약속의 준수를 보장하면서 분산 컴퓨팅 클러스터(112)에서 처리량을 최대화하기 위한 피드백 제어 메커니즘을 구현한다. 제어기(110)는 모니터(119)를 사용하여 분산 컴퓨팅 클러스터(112)와 관련된 처리 레이턴시 및 출력의 레이트(Rout)를 모니터링한다. 제어기(110)는 레이턴시, 출력의 레이트(Rout) 및 SLA를 입력으로 수신하고, 분산 컴퓨팅 클러스터(112)에 대한 입력 레이트(Rin) 및 통신 지연(d)을 결정하기 위해 이러한 입력을 처리한다.
제어기(110)에 의해 결정된 입력 레이트(Rin)은 Rin에서 분산 컴퓨팅 클러스터(112)로의 요청(111)의 주입 레이트를 유지하는 쓰로틀(117)에 제공된다. 제어기(110)에 의해 결정된 통신 지연(d)은 통신 지연(d)에 따라 분산 컴퓨팅 클러스터(112)의 인터커넥트(107)를 통한 메시지 전송 사이의 시간 간격을 유지하는 분산 컴퓨팅 클러스터(112)에 제공된다.
3.1 제어 알고리즘(Control Algorithm)
도 3을 참조하면, 제어기(110)에 의해 구현된 제어 알고리즘의 일 예는 while 루프를 시작함으로써 라인 1에서 시작한다. 3행에서, while 루프에 구현된 프로시저의 첫번째 작업은 adjust(d) 함수를 호출하는 것이다. 13-16행에 정의된 adjust(d) 함수는 d가 증가하더라도 Rout이 증가하지 않는 d의 가장 낮은 값인 d* 값에 도달하는 것을 목표로 출력 레이트(Rout)를 모니터링하는 동안 통신 지연 값(d)를 수정한다.
adjust(d) 함수가 반환된 후 제어기(110)에 의해 구현된 알고리즘은 분산 컴퓨팅 클러스터로부터의 출력 레이트(Rout)가 분산 컴퓨팅 클러스터로의 요청의 주입 레이트(Rin)과 같은지 여부(즉, 분산 컴퓨팅 클러스터에 현재 유지하기에 충분한 처리량이 있는가?) 및 SLA와 레이턴시 간의 차이가 0보다 큰지(즉, 분산 컴퓨팅 클러스터가 SLA를 초과하는가?)를 결정하기 위한 테스트가 수행되는 라인 4로 진행한다
알고리즘의 라인 5에서, 라인 4에 명시된 조건이 충족되면, 제어기(110)는 요청의 주입 레이트(Rin)를 양(δ)만큼 증가시킨다. 알고리즘의 라인 6에서, 알고리즘의 라인 4에 명시된 조건 중 하나 이상이 충족되지 않으면, 제어기(110)는 요청의 주입 레이트(Rin)를 양(δ)만큼 감소시킨다. 즉, 분산 컴퓨팅 클러스터(112)가 SLA를 현재 유지하거나 초과하는 경우, 알고리즘은 입력 레이트(Rin)을 증가시키려고 시도한다. 그렇지 않고, 분산 컴퓨팅 클러스터(112)가 처리 부하를 따라가지 못하거나 SLA를 충족하지 못하는 경우, 제어기(110)는 입력 레이트(Rin)를 감소시킨다.
그런 다음 루프는 루프의 이전 반복에서 업데이트된 Rin의 버전으로 반복된다. 루프의 현재 반복에서 adjust(d) 함수 호출은 d를 추가로 증가시켜도 Rin의 업데이트된 버전에 대한 Rout은 증가하지 않는 d의 가장 낮은 값에 도달하도록 d를 수정한다. adjust(d) 함수로 인해 Rout이 Rin의 업데이트된 값과 같게 하고, SLA와 레이턴시 간의 차이가 0보다 커지게 하는 d 값이 생성되면, 알고리즘은 다시 Rin을 증가시킨다. 그렇지 않으면, 알고리즘이 Rin을 감소시킨다.
분산 컴퓨팅 클러스터(112)의 레이턴시 및 처리량을 모니터링함으로써, 도3의 알고리즘은 요청과 관련된 SLA 또는 다른 약속이 위반되지 않는 것을 보장하면서 분산 컴퓨팅 클러스터(112)에서 처리량을 최대화한다.
4. 예제 1
도 4 내지 도 9를 참조하면, 실행 모듈(104)의 제1 예시적인 동작은 제어기(110)에 의한 분산 컴퓨팅 클러스터(112)의 제어를 나타낸다.
도 4를 참조하면, 초기 상태에서 분산 컴퓨팅 클러스터(112)에 대한 요청의 주입 레이트(Rin)은 2000 (예: 메시지/초)이고 분산 컴퓨팅 클러스터(112)의 출력 레이트(Rout)은 2000 (예: 메시지/초)이다. Rin 및 Rout이 동일하다는 것은 분산 컴퓨팅 클러스터(112)가 요청의 주입 레이트(Rin)를 유지하기에 충분한 처리량을 가짐을 나타낸다. 분산 컴퓨팅 클러스터(112)의 모니터링된 레이턴시는 40ms이고 통신 지연(d)는 20ms와 같다. 제어기(110)는 요청(111)에 대해 70ms SLA를 유지해야 한다.
도 5를 참조하면, 제어 알고리즘의 첫번째 반복에서, 제어기(110)는 제어 알고리즘의 라인 2에서의 adjust(d) 함수를 실행하고, d는 d가 더 증가해도 Rout이 증가하지 않는 가장 낮은 값에 이미 있는 것으로 결정된다. 그 다음 제어기(110)는 제어 알고리즘의 라인 4로 진행하여, Rout이 Rin과 같고 (즉, 2000 = 2000), 레이턴시가 SLA보다 작다 (즉, 40ms < 70ms)라고 결정한다. 라인 4의 조건이 만족되기 때문에, 제어기(110)는 제어 알고리즘의 라인 5로 진행하여, Rin을 2000에서 3000으로 증가시킨다. Rin의 증가는 Rout을 2500으로 증가시킨다 (즉, 분산 컴퓨팅 클러스터(112)의 현재 구성은 요청의 증가된 주입 레이트(Rin)을 유지할만큼 처리량이 충분하지 않다).
도 6을 참조하면, 제어 알고리즘의 두번째 반복에서, 제어기(110)는 제어 알고리즘의 라인 2에서 adjust(d) 함수를 실행하고, d를 29ms로 증가시켜 Rout을 3000으로 증가시킨다. d 증가 후, 분산 컴퓨팅 클러스터(112)는 요청의 증가된 주입 레이트(Rin)를 유지하기에 충분한 처리량을 갖도록 구성된다. d가 증가하면 분산 컴퓨팅 클러스터의 레이턴시도 60ms로 증가한다.
도 7을 참조하면, 제어 알고리즘의 두번째 반복은 제어 알고리즘의 라인 4로 진행되어, Rout이 Rin과 같고 (즉, 3000 = 3000), 레이턴시가 SLA보다 작은 것(즉, 60ms < 70ms)으로 결정된다. Line 4의 조건이 만족되기 때문에, 제어기(110)는 제어 알고리즘의 Line 5로 진행하여, Rin을 3000에서 4000으로 증가시킨다. Rin의 증가는 Rout을 3500 으로 증가시킨다 (즉, 분산 컴퓨팅 클러스터(112)의 현재 구성이 요청의 증가된 주입 레이트를 유지할만큼 처리량이 충분하지 않다).
도 8을 참조하면, 제어 알고리즘의 세번째 반복에서, 제어기(110)는 adjust(d) 함수를 실행하고, d를 38ms로 증가시켜 Rout을 4000으로 증가시킨다. d의 증가 후에 분산 컴퓨팅 클러스터(112)가 요청의 증가된 주입 레이트(Rin)를 유지하기에 충분한 처리량을 갖도록 설정된다. d가 증가하면 분산 컴퓨팅 클러스터의 레이턴시도 80ms로 증가한다.
도 9를 참조하면, 제어 알고리즘의 세번째 반복에서, 제어기(110)는 제어 알고리즘의 라인 4로 진행하여, Rout이 Rin과 같고 (즉, 3000 = 3000), 레이턴시가 SLA보다 커서(즉, 80ms > 70ms) SLA를 위반하는 것으로 결정한다. 라인 4의 조건이 만족되지 않기 때문에, 제어기(110)는 제어 알고리즘의 라인 8로 진행하고, Rin을 4000에서 3000으로 감소시킨다. Rout은 300으로 감소하고, 레이턴시는 60ms로 감소한다 (더 이상 SLA를 위반하지 않음). 제어 알고리즘의 네번째 반복에서, 제어기(110)는 라인 3으로 진행하여, adjust(d) 함수를 실행하고, d를 29ms로 감소시킨다.
요청(111)과 관련된 SLA이 위반되지 않는 것을 보장하면서 분산 컴퓨팅 클러스터(112)에서 처리량을 최대화하기 위해 위에서 설명된 바와 같이 제어기(110)는 도 3의 알고리즘을 계속해서 실행한다.
5. 예제 2
도 10 내지 도 13을 참조하면, 제2 예에서, 분산 컴퓨팅 클러스터(112)의 구성이 변경되고, 구성의 변경에 적응하기 위해 제어기(110)는 도 3의 알고리즘을 실행한다. 예를 들어, 도 10을 참조하면, 컴퓨팅 노드(105) 중 2개에 장애가 발생하여 분산 컴퓨팅 클러스터(112)에 대한 컴퓨팅 능력이 감소한다.
분산 컴퓨팅 클러스터(112)의 컴퓨팅 노드(105)의 수가 5개에서 3개로 감소함에 따라, 출력 레이트(Rout)는 3000에서 2000으로 감소하는 반면 입력 레이트(Rin)는 3000으로 유지된다. 레이턴시는 85ms로 증가한다.
도 11을 참조하면, 제어기(110)는 제어 알고리즘의 라인 3을 실행하여, adjust(d) 함수를 실행하고 d를 100ms로 증가시키며, 이는 Rout을 2500으로 증가시킨다. d의 증가 후에도 분산 컴퓨팅 클러스터(112)는 여전히 요청의 증가된 주입 레이트를 따라잡을 수 있는 충분한 처리량을 가지고 있지 않다. d가 증가하면 분산 컴퓨팅 클러스터의 레이턴시도 120ms로 증가한다.
도 12를 참조하면, 제어기(110)는 제어 알고리즘의 라인 4로 진행하여, Rout이 Rin과 동일하지 않고 (즉, 2500!=3000), 지연 시간이 SLA보다 커서 (즉, 120ms > 70ms) SLA를 위반하는 것으로 결정한다. 라인 4의 조건이 만족되지 않기 때문에, 제어기(110)는 제어 알고리즘의 라인 8로 진행하고, Rin을 3000에서 2000으로 감소시킨다. Rout은 2000으로 감소한다 (즉, 분산 컴퓨팅 클러스터(112)의 현재 구성은 요청의 증가된 주입 레이트(Rin)를 유지할 수 있는 충분한 처리량을 가지고 있다). 레이턴시는 90ms로 감소한다.
도 13을 참조하면, while 루프의 후속 반복에서, 제어기(110)는 adjust(d) 함수를 실행하는 제어 알고리즘의 라인 3을 실행하여, 다시 d에 대해 40ms의 값에 도달하고 Rout은 2000으로 유지한다. 도 13의 분산 컴퓨팅 클러스터의 구성은 요청의 감소된 주입 레이트를 따라잡기에 충분한 처리량을 가지고 있다. 분산 컴퓨팅 클러스터의 레이턴시는 60ms로 감소된다.
도 13의 구성에서, 요청(111)과 연관된 SLA이 위반되지 않는 것을 보장하면서 분산 컴퓨팅 클러스터(112)의 새로운 구성에서 처리량을 최대화하도록 제어기(110)가 시스템을 적응시킨다.
6. 변형예(Alternatives)
도 6 내지 도 13의 설명에서, 제어기(110)는 요청(111)과 연관된 SLA이 위반되지 않는 것을 보장하면서 분산 컴퓨팅 클러스터(112)의 새로운 구성에서 처리량을 최대화하도록 시스템을 적응시킨다. 그러나 분산 컴퓨팅 클러스터(112)가 요청의 주입 레이트(Rin)를 유지하기에 충분한 처리량을 가지고 있는 것을 나타내기 위해, 처리량을 최대화하는 대신, 서비스 레벨 배열이 위반되지 않았음을 결정할 때와 Rin과 Rout이 동일하다고 결정할 때 처리량의 추가 증가가 수행되지 않는 것과 같이 처리량이 단순히 제어될 수 있다 (예: 도 5에 예시된 시나리오에서).
또한, 도 3의 제어 알고리즘은 예시일 뿐이고, 대략적인 그래뉼래리티(granularity)로 Rin 및 d를 조정하지만, 일부 예에서 제어 알고리즘은 더 미세한 그래뉼래리티 조정을 사용하거나, 일부 경우에는 Rin 및 d를 조정하기 위해 가변 그래뉼래리티를 사용할 수 있다.
위에서 설명한 adjust(d) 함수는 알려진 여러 최적화 기술(예: 경사하강법(gradient descent) 또는 확률론적 최적화 기술) 중 어느 하나를 사용하여 구현될 수 있다.
위에서 설명한 예는 분산 데이터 클러스터와 상호 작용하는 단일 외부 구성 요소(예: 호출 클러스터 구성 요소)로부터의 요청의 주입을 보여주지만, 여러 외부 구성 요소가 분산 데이터 클러스터와 동시에 상호 작용할 수 있다. 이경우, 제어기는 대부분 또는 모든 외부 구성 요소의 레이턴시와 처리량을 모니터링하고, 분산 데이터 클러스터의 리소스에 대한 액세스의 균형을 조정하여 처리량이 최대화되고 외부 구성 요소로부터의 요청들의 SLA들이 충족되는지 확인할 수 있다 .
일부 예에서, 외부 구성요소(예를 들어, 호출 클러스터 구성요소)에 도착하는 입력 데이터가 우선순위화되고, 요청은 우선순위 레벨에 따라 주입된다.
일부 예에서, 레이턴시는 서비스 요청 레벨(예: 원격 프로시저 호출 레이턴시)에서 또는 단순히 요청을 분산 데이터 클러스터에 주입하고 응답을 수신하는 데 걸리는 시간으로 측정된다.
일부 예에서, 처리량은 CPU 부하 또는 "진행 중인(in flight)" 메시지의 수를 모니터링하여 측정된다.
일부 예에서, 각 컴퓨팅 노드는 타이머를 유지하고, 타이머 및 통신 지연(d)에 기반하여 인터커넥트를 통해 언제 메시지를 전송할지를 결정한다. 다른 예에서, 중앙 집중식 클록은 주기적으로 트리거 신호를 분배하며, 여기서 주기는 통신 지연(d)으로 정의된다. 컴퓨팅 노드에서 수신된 트리거 신호는 컴퓨팅 노드가 메시지를 전송하도록 한다.
도면에는 도시되지 않았지만, 일부 예들에서, 쓰로틀(117)의 출력은 분산 컴퓨팅 클러스터(112)의 처리 레이턴시를 결정하는 것을 돕기 위해 모니터(119)를 통해 공급된다.
위에서 언급한 바와 같이, 분산 컴퓨팅 클러스터는 하나 이상의 외부 구성 요소(때로는 "호출 클러스터 구성 요소" 또는 "인터페이스 구성 요소"라고도 함)와 상호 작용한다. 외부 구성 요소는 해당 데이터 처리 절차와 연관될 수 있다. 일부 예에서, 외부 구성요소는 해당 데이터 처리 절차에 따라 처리하기 위해 입력 데이터를 수신한다. 외부 구성 요소는 입력 데이터를 사용하여 처리 요청을 형성하고 처리 요청을 분산 컴퓨팅 클러스터에 제공한다. 분산 컴퓨팅 클러스터는 위에서 설명한 제어 방식을 사용하여 요청을 처리하고 출력을 생성한다. 출력은 외부 구성 요소에 다시 제공된다. 외부 구성 요소는 출력을 처리하여 출력 데이터를 생성하고, 이를 하나 이상의 다운스트림 구성 요소로 전송한다.
7. 구현(Implementations)
위에서 설명된 접근 방식은 예를 들어 적절한 소프트웨어 명령을 실행하는 프로그래밍 가능한 컴퓨팅 시스템을 사용하여 구현될 수 있거나, FPGA(field-programmable gate array)와 같은 적절한 하드웨어 또는 일부 하이브리드 형태로 구현될 수 있다. 예를 들어, 프로그래밍된 접근 방식에서 소프트웨어는 각각 다음을 포함하는 하나 이상의 프로그래밍되거나 프로그래밍 가능한 컴퓨팅 시스템 (분산, 클라이언트/서버 또는 그리드와 같은 다양한 아키텍처일 수 있음)에서 실행되는 하나 이상의 컴퓨터 프로그램의 절차를 포함할 수 있다. 각각은 적어도 하나의 프로세서, 적어도 하나의 데이터 저장 시스템(휘발성 및/또는 비휘발성 메모리 및/또는 저장 요소 포함), 적어도 하나의 사용자 인터페이스(적어도 하나의 입력 장치 또는 포트를 사용하여 입력을 수신하고, 출력을 제공하기 위한 적어도 하나의 출력 장치 또는 포트)를 포함한다. 소프트웨어는 예를 들어 데이터 흐름 그래프의 설계, 구성 및 실행과 관련된 서비스를 제공하는 더 큰 프로그램의 하나 이상의 모듈을 포함할 수 있다. 프로그램의 모듈(예: 데이터 흐름 그래프의 요소)은 데이터 저장소에 저장된 데이터 모델을 준수하는 데이터 구조 또는 기타 조직화된 데이터로 구현될 수 있다.
소프트웨어는 일정 기간(예를 들어, 동적 RAM과 같은 동적 메모리 장치의 리프레시 주기 사이의 시간) 동안 매체의 물리적 특성(예: 표면 피트 및 랜드, 자구(magnetic domains) 또는 전하)을 사용하여 휘발성 또는 비휘발성 저장 매체, 또는 기타 비일시적 매체로 구현되는 것과 같은 비일시적 형태로 저장될 수 있다. 명령을 로드하기 위한 준비로, 소프트웨어는 CD-ROM 또는 기타 컴퓨터 판독 가능 매체(예: 범용 또는 특수 목적 컴퓨팅 시스템 또는 장치로 판독 가능)와 같은 유형의 비일시적 매체에 제공될 수 있고, 네트워크의 통신 매체를 통해 그것이 실행되는 컴퓨팅 시스템의 비일시적 매체로 전달될 수 있다 (예를 들어, 전파되는 신호로 인코딩됨). 처리의 일부 또는 전부는 특별한 목적의 컴퓨터에서 수행되거나, 보조 프로세서 또는 FPGA(Field-Programmable Gate Array) 또는 전용 ASIC(application-specific integrated circuit)와 같은 특별한 목적의 하드웨어를 사용하여 수행될 수 있다. 처리는 소프트웨어에 의해 지정된 계산의 다른 부분이 다른 계산 요소에 의해 수행되는 분산 방식으로 구현될 수 있다. 저장 장치 매체가 여기에 설명된 처리를 수행하기 위해 컴퓨터에 의해 판독될 때 상기 컴퓨터를 구성하거나 및 작동하기 위해, 이러한 각각의 컴퓨터 프로그램은 범용 또는 특별 목적의 프로그램 가능한 컴퓨터에 의해 액세스 가능한 저장 장치의 컴퓨터 판독 가능한 저장 매체(예: 솔리드 스테이트 메모리 또는 매체, 자기 또는 광학 매체)에 저장되거나 다운로드될 수 있다. 본 발명의 시스템은 또한 컴퓨터 프로그램으로 구성된 유형의 비일시적 매체로서 구현되는 것으로 간주될 수 있으며, 상기 매체는 컴퓨터가 여기서 기술된 처리 단계 중 하나 이상을 수행하기 위해 특정하고 미리 정의된 방식으로 작동하게 하도록 설정된다.
본 발명의 다수의 실시예가 설명되었다. 그럼에도 불구하고, 전술한 설명은 예시를 위한 것이며 다음 청구범위의 범위에 의해 정의되는 본 발명의 범위를 제한하려는 것이 아님을 이해해야 한다. 따라서, 다른 실시예도 다음 청구범위의 범위 내에 있다. 예를 들어, 본 발명의 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있다. 또한, 위에 설명된 단계 중 일부는 순서 독립적일 수 있으므로 설명된 것과 다른 순서로 수행될 수 있다.

Claims (22)

  1. 컴퓨팅 시스템(104)에 있어서,
    복수의 컴퓨팅 노드의 컴퓨팅 노드들이 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크(interconnect network)(107)에 의해 상호 연결된 복수의 컴퓨팅 노드(105)를 포함하는 분산 컴퓨팅 클러스터(112)를 포함하되, 상기 컴퓨팅 노드들의 적어도 일부 각각은 상기 인터커넥트 네트워크를 통한 상기 컴퓨팅 노드들에 의한 메시지 전송을 관리하는 제1 파라미터로 설정되고,
    싱기 적어도 일부 컴퓨팅 노드들은 상기 제1 파라미터에 따라 메시지 그룹으로서 전송을 위해 메시지들을 누적하도록 설정되고; 및
    상기 컴퓨팅 시스템은 제2 파라미터에 따라 상기 분산 컴퓨팅 클러스터로 컴퓨팅 요청의 주입을 제한하도록 설정되고,
    상기 컴퓨팅 시스템은 적어도 하나의 미리 결정된 서비스 레벨 요구사항을 수신하고, 상기 적어도 하나의 서비스 레벨 요구사항을 준수하면서 상기 분산 컴퓨팅 클러스터의 계산 처리량을 제어하기 위해 제1 파라미터의 값 및 제2 파라미터의 값을 제어하도록 구성된 제어기(110)를 포함하는 컴퓨팅 시스템.
  2. 제1항에 있어서, 상기 분산 컴퓨팅 클러스터는 상기 제2 파라미터에 따라 상기 분산 컴퓨팅 시스템으로의 상기 컴퓨팅 요청의 주입 레이트를 제한하도록 설정된 레이트 제한기(rate limiter)(117)를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  3. 제1 항 또는 제2항에 있어서, 상기 하나 또는 그이상의 서비스 레벨 요구 사항의 각 서비스 레벨 요구 사항은 컴퓨팅 요청을 상기 분산 컴퓨팅 클러스터에 주입하는 것과 상기 주입된 컴퓨팅 요청에 대한 응답을 상기 분산 컴퓨팅 클러스터로부터 수신하는 사이의 최대 허용 시간 차이를 지정하는 것을 특징으로 하는 컴퓨팅 시스템.
  4. 제1항 내지 제3항 중 어느 한항에 있어서, 상기 분산 컴퓨팅 클러스터의 아웃풋 레이트 및 상기 분산 컴퓨팅 시스템의 처리 레이턴시(processing latency)을 관찰하도록 설정된 모니터(119)를 더 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  5. 제4항에 있어서, 상기 관찰된 처리 레이턴시는 컴퓨팅 요청을 상기 분산 컴퓨팅 클러스터에 주입하는 것과 상기 주입된 컴퓨팅 요청에 대한 응답을 분산 컴퓨팅 클러스터로부터 수신하는 것 사이의 시간 차이를 결정함으로써 측정되는 것을 특징으로 하는 컴퓨팅 시스템.
  6. 제4항에 있어서, 상기 분산 컴퓨팅 클러스터에 주입된 요청과 상기 분산 컴퓨팅 클러스터에 출력되는 결과는 상기 모니터를 거치는 것을 특징으로 하는 컴퓨팅 시스템.
  7. 제4항에 있어서, 상기 계산 처리량은 상기 모니터가 클러스터에 의해 출력된 데이터 요소의 레이트를 측정함으로써 관찰되는 것을 특징으로 하는 컴퓨팅 시스템.
  8. 제4항에 있어서, 상기 제어기는 상기 제1 파라미터의 값 및 상기 제2 파라미터의 값을 조정하기 위해 상기 관찰된 분산 컴퓨팅 클러스터의 계산 처리량 및 상기 관찰된 처리 레이턴시를 처리하도록 설정되는 것을 특징으로 하는 컴퓨팅 시스템.
  9. 제 8 항에 있어서, 상기 제어기는 상기 분산 컴퓨팅 클러스터가 주입된 컴퓨팅 요청을 처리하는 동안 상기 제1 파라미터의 값과 상기 제2 파라미터의 값을 조정하기 위해 상기 분산 컴퓨팅 클러스터의 상기 관찰된 계산 처리량 및 상기 관찰된 처리 레이턴시를 반복적으로 처리하는 것을 특징으로 하는 컴퓨팅 시스템.
  10. 제 8 항에 있어서, 상기 제어기는 상기 제1 파라미터의 값 및 상기 제2 파라미터의 값을 조정하기 위해 상기 분산 컴퓨팅 클러스터의 상기 관찰된 계산 처리량 및 상기 관찰된 처리 레이턴시를 처리하기 위해 상기 분산 컴퓨팅 클러스터와 함께 피드백 루프를 구현하는 것을 특징으로 하는 컴퓨팅 시스템.
  11. 제1항 내지 제10항 중 어느 한항에 있어서, 상기 제어기는 상기 적어도 하나의 서비스 레벨 요구 사항을 준수하면서 상기 분산 컴퓨팅 클러스터의 계산 처리량을 최대화하기 위해 상기 제1 및/또는 상기 제2 파라미터의 값을 제어하기 위한 최적화 알고리즘을 사용하는 것을 특징으로 하는 컴퓨팅 시스템.
  12. 제1항 내지 제11항 중 어느 한항에 있어서, 상기 제1 파라미터는 상기 인터커넥트 네트워크를 통한 상기 컴퓨팅 노드에 의한 메시지들의 전송 사이의 최소 시간 간격을 관리하는 지연 파라미터를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  13. 제12항에 있어서, 상기 적어도 일부 컴퓨팅 노드는 상기 최소 시간 간격 동안 메시지 그룹으로서 전송을 위해 메시지들을 누적하도록 설정되는 것을 특징으로 하는 컴퓨팅 시스템.
  14. 제1항 내지 제13항 중 어느 한항에 있어서, 상기 제2 파라미터는 상기 분산 컴퓨팅 클러스터로의 컴퓨팅 요청의 주입 레이트를 제한하도록 설정된 입력 파라미터의 레이트를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  15. 제1항 내지 제14항 중 어느 한항에 있어서, 상기 적어도 하나의 서비스 레벨 요구 사항을 준수하면서 상기 분산 컴퓨팅 클러스터의 계산 처리량을 제어하는 것은 상기 적어도 하나의 서비스 레벨 요구 사항 중 어느 것도 위반하지 않고 상기 분산 컴퓨팅 클러스터의 계산 처리량을 최대화하는 것을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  16. 제1항 내지 제15항 중 어느 한항에 있어서, 상기 제1 파라미터는 상기 인터커넥트 네트워크를 통한 컴퓨팅 노드에 의한 메시지 전송 사이에 누적된 메시지들의 수를 관리하는 것을 특징으로 하는 컴퓨팅 시스템.
  17. 제1항 내지 제16항 중 어느 한항에 있어서, 하나 이상의 인터페이스 구성요소를 더 포함하되, 각각은 입력 데이터를 수신하고, 상기 입력 데이터를 처리하기 위해 상기 분산 컴퓨팅 클러스터에 컴퓨팅 요청을 주입하고, 상기 분산 컴퓨팅 클러스터로부터 처리 결과를 수신하고, 상기 처리 결과로부터 출력 데이터를 생성하도록 구성되며, 상기 인터페이스 구성요소는 상기 제2 파라미터에 따라 상기 분산 컴퓨팅 시스템으로 컴퓨팅 요청의 주입 레이트를 제한하는 것을 특징으로 하는 컴퓨팅 시스템.
  18. 제17항에 있어서, 상기 하나 이상의 인터페이스 구성요소 중 적어도 일부는 상기 분산 컴퓨팅 클러스터가 실행되는 시스템과 별개의 클라이언트 시스템(106)에서 실행되는 것을 특징으로 하는 컴퓨팅 시스템.
  19. 제17항에 있어서, 상기 수신된 입력 데이터의 적어도 일부는 우선순위 레벨들과 연관되고, 상기 하나 이상의 인터페이스 구성요소는 상기 우선순위 레벨들에 따라 상기 분산 데이터 클러스터로의 상기 입력 데이터의 주입을 관리하도록 설정되는 것을 특징으로 하는 컴퓨팅 시스템.
  20. 방법에 있어서,
    제2 파라미터에 따라 분산 컴퓨팅 클러스터로 컴퓨팅 요청의 주입을 제한하는 단계, - 상기 분산 컴퓨팅 시스템은 복수의 컴퓨팅 노드의 컴퓨팅 노드들이 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크(107)에 의해 상호 연결된 복수의 컴퓨팅 노드(105)를 포함하고, 상기 컴퓨팅 노드들의 적어도 일부 각각은 상기 인터커넥트 네트워크를 통한 상기 컴퓨팅 노드에 의한 메시지 전송을 관리하는 제1 파라미터로 설정됨-;
    상기 적어도 일부 컴퓨팅 노드에서, 상기 제1 파라미터에 따라 메시지 그룹으로서 전송을 위한 메시지를 누적하는 단계;
    제어기(115)에서 적어도 하나의 미리 결정된 서비스 레벨 요구사항을 수신하는 단계;
    상기 제어기를 사용하여, 상기 적어도 하나의 서비스 레벨 요구사항을 준수하면서 상기 분산 컴퓨팅 클러스터의 계산 처리량을 제어하기 위해 상기 제1 파라미터의 값 및 상기 제2 파라미터의 값을 제어하는 단계를 포함하는 방법.
  21. 비일시적 형태의 소프트웨어를 저장하는 컴퓨터 판독 가능 매체로서, 상기 소프트웨어는 컴퓨팅 시스템이 다음 기능을 수행하도록 하기 위한 명령을 포함하고, 상기 기능은:
    제2 파라미터에 따라 분산 컴퓨팅 클러스터로 컴퓨팅 요청의 주입을 제한하고 - 상기 분산 컴퓨팅 시스템은 복수의 컴퓨팅 노드의 컴퓨팅 노드들이 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크(107)에 의해 상호 연결된 복수의 컴퓨팅 노드(105)를 포함하고, 상기 컴퓨팅 노드들의 적어도 일부 각각은 상기 인터커넥트 네트워크를 통한 상기 컴퓨팅 노드에 의한 메시지 전송을 관리하는 제1 파라미터로 설정됨-;
    상기 적어도 일부 컴퓨팅 노드에서, 상기 제1 파라미터에 따라 메시지 그룹으로서 전송을 위한 메시지를 누적하고;
    제어기(115)에서 적어도 하나의 미리 결정된 서비스 레벨 요구사항을 수신하고;
    상기 제어기를 사용하여, 상기 적어도 하나의 서비스 레벨 요구사항을 준수하면서 상기 분산 컴퓨팅 클러스터의 계산 처리량을 제어하기 위해 상기 제1 파라미터의 값 및 상기 제2 파라미터의 값을 제어하는 것을 포함하는 컴퓨터 판독 가능 매체.
  22. 컴퓨팅 시스템에 있어서,
    제2 파라미터에 따라 분산 컴퓨팅 클러스터로 컴퓨팅 요청의 주입을 제한하는 수단 - 상기 분산 컴퓨팅 시스템은 복수의 컴퓨팅 노드의 컴퓨팅 노드들이 메시지를 전달함으로써 서로 통신하는 인터커넥트 네트워크(107)에 의해 상호 연결된 복수의 컴퓨팅 노드(105)를 포함하고, 상기 컴퓨팅 노드들의 적어도 일부 각각은 상기 인터커넥트 네트워크를 통한 상기 컴퓨팅 노드에 의한 메시지 전송을 관리하는 제1 파라미터로 설정됨-;
    상기 적어도 일부 컴퓨팅 노드에서, 상기 제1 파라미터에 따라 메시지 그룹으로서 전송을 위한 메시지를 누적하는 수단;
    제어기(115)에서 적어도 하나의 미리 결정된 서비스 레벨 요구사항을 수신하는 수단; 및
    상기 제어기를 사용하여, 상기 적어도 하나의 서비스 레벨 요구사항을 준수하면서 상기 분산 컴퓨팅 클러스터의 계산 처리량을 제어하기 위해 상기 제1 파라미터의 값 및 상기 제2 파라미터의 값을 제어하는 수단을 포함하는 컴퓨팅 시스템.
KR1020227040200A 2020-05-19 2021-05-18 분산 컴퓨팅 네트워크에서 통신 최적화 KR20220167391A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063027008P 2020-05-19 2020-05-19
US63/027,008 2020-05-19
PCT/US2021/032919 WO2021236605A1 (en) 2020-05-19 2021-05-18 Optimizing communication in distributed computing network

Publications (1)

Publication Number Publication Date
KR20220167391A true KR20220167391A (ko) 2022-12-20

Family

ID=76306058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227040200A KR20220167391A (ko) 2020-05-19 2021-05-18 분산 컴퓨팅 네트워크에서 통신 최적화

Country Status (8)

Country Link
US (1) US11916759B2 (ko)
EP (1) EP4154478A1 (ko)
JP (1) JP2023526747A (ko)
KR (1) KR20220167391A (ko)
CN (1) CN115668881A (ko)
AU (1) AU2021275032B2 (ko)
CA (1) CA3175395A1 (ko)
WO (1) WO2021236605A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114819321B (zh) * 2022-04-18 2023-04-07 郑州大学 一种面向分布式机器学习的参数传输通信优化方法
CN115118727B (zh) * 2022-08-26 2022-11-29 北京数牍科技有限公司 分布式计算架构的数据传输方法、装置、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367523A (en) * 1993-08-26 1994-11-22 International Business Machines Corporation Adaptive rate-based congestion and flow control in packet communications networks
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US7656799B2 (en) * 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US20080239953A1 (en) * 2007-03-28 2008-10-02 Honeywell International, Inc. Method and apparatus for minimizing congestion in gateways
US8738986B2 (en) * 2010-03-05 2014-05-27 Microsoft Corporation Remote presentation over lossy transport with forward error correction
US9749174B1 (en) * 2012-04-06 2017-08-29 Appcelerator, Inc. System and method for dynamic allocation of cloud resources
US9112809B2 (en) * 2012-11-21 2015-08-18 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for controlling utilization in a horizontally scaled software application
KR101594915B1 (ko) * 2014-01-23 2016-02-17 서울대학교산학협력단 매니코어 클러스터 시스템 상에서 병렬 프로그래밍을 수행하는 방법 및 매니코어 클러스터 시스템
US10623281B1 (en) * 2017-04-18 2020-04-14 EMC IP Holding Company LLC Dynamically scheduled checkpoints in distributed data streaming system
US11659061B2 (en) * 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance

Also Published As

Publication number Publication date
AU2021275032A1 (en) 2022-11-17
WO2021236605A1 (en) 2021-11-25
AU2021275032B2 (en) 2023-11-23
EP4154478A1 (en) 2023-03-29
CA3175395A1 (en) 2021-11-25
US11916759B2 (en) 2024-02-27
US20210367861A1 (en) 2021-11-25
JP2023526747A (ja) 2023-06-23
CN115668881A (zh) 2023-01-31

Similar Documents

Publication Publication Date Title
Peng et al. A generic communication scheduler for distributed DNN training acceleration
US10592298B2 (en) Method for distributing load in a multi-core system
Yan et al. ACC: Automatic ECN tuning for high-speed datacenter networks
US7388839B2 (en) Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
US7908605B1 (en) Hierarchal control system for controlling the allocation of computer resources
Gotin et al. Investigating performance metrics for scaling microservices in cloudiot-environments
US11916759B2 (en) Optimizing communication in distributed computing network
US20140297833A1 (en) Systems And Methods For Self-Adaptive Distributed Systems
Zhang et al. {SHEPHERD}: Serving {DNNs} in the wild
US10498817B1 (en) Performance tuning in distributed computing systems
CN110233802A (zh) 一种构建一主链多侧链的区块链架构的方法
CN113364701B (zh) 基于rtt的结合比例积分微分控制的拥塞控制方法及设备
Hellerstein et al. Control engineering for computing systems-industry experience and research challenges
Alvarez et al. Specializing the network for scatter-gather workloads
Pluzhnik et al. Concept of feedback in future computing models to cloud systems
Tsenos et al. Amesos: A scalable and elastic framework for latency sensitive streaming pipelines
Xing et al. Charon: A Framework for Microservice Overload Control
Nguyen et al. Micro-Services Internal Load Balancing for Ultra Reliable Low Latency 5G Online Charging System
Castillo et al. Predictive and distributed routing balancing, an application-aware approach
US11233738B1 (en) Dynamic performance configuration for data traffic workflows
Mickos Design of a Network Library for Continuous Deep Analytics
EP2963875A1 (en) Method for processing data streams including time-critical messages of a power network
Peng Elasticity and resource aware scheduling in distributed data stream processing systems
Oseghale Leveraging proactive flow to improve scalability in software defined networking/Oseghale Osemudiamen Victor
Victor Leveraging Proactive Flow to Improve Scalability in Software Defined Networking

Legal Events

Date Code Title Description
E902 Notification of reason for refusal