KR102074468B1 - 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법 - Google Patents

계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법 Download PDF

Info

Publication number
KR102074468B1
KR102074468B1 KR1020197005913A KR20197005913A KR102074468B1 KR 102074468 B1 KR102074468 B1 KR 102074468B1 KR 1020197005913 A KR1020197005913 A KR 1020197005913A KR 20197005913 A KR20197005913 A KR 20197005913A KR 102074468 B1 KR102074468 B1 KR 102074468B1
Authority
KR
South Korea
Prior art keywords
booster
group
allocation
computational
calculation
Prior art date
Application number
KR1020197005913A
Other languages
English (en)
Other versions
KR20190025746A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=43831684&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR102074468(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 파르텍 클러스터 컴피턴스 센터 게엠베하 filed Critical 파르텍 클러스터 컴피턴스 센터 게엠베하
Publication of KR20190025746A publication Critical patent/KR20190025746A/ko
Application granted granted Critical
Publication of KR102074468B1 publication Critical patent/KR102074468B1/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/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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • H04L29/08081
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Electrotherapy Devices (AREA)
  • Complex Calculations (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 컴퓨터 클러스터 장치 및 이 컴퓨터 클러스터 장치를 작동시키기 위한 방법에 관한 것이다. 컴퓨터 클러스터 장치는 계산 노드(CN)들을 포함하며, 이들 계산 노드는 특정 계산 작업을 부스터(B)에 동적으로 위탁한다. 그러므로, 부스터(B)를 계산 노드(CN)에 할당하는 기술이 도입된다. 할당은 실행 시간에 동적으로 일어난다. 본 발명은 고성능 클러스터 기술에 이용될 수 있다.

Description

계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법{A COMPUTER CLUSTER ARRAGEMENT FOR PROCESSING A COMPUTATION TASK AND METHOD FOR OPERATION THEREOF}
본 발명은 컴퓨터 클러스터 장치에 관한 것이다. 특히, 본 발명은 확장가능한 계산 작업 및 복잡한 계산 작업을 처리하기 위한 계산 노드의 사용과 관련하여 개선된 리소스 관리를 갖는 컴퓨터 클러스터 장치에 관한 것이다. 본 발명은 특히 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이 컴퓨터 클러스터 장치를 작동시키기 위한 방법에 관한 것이다. 본 발명에 따른 컴퓨터 클러스터 장치는 가속화 기능을 이용하는데, 이 기능은 계산 노드가 주어진 계산 작업을 수행하는 것을 도와 준다. 본 발명은 또한 상기 방법을 실시하도록 되어 있는 컴퓨터 프로그램 제품 및 이 컴퓨터 프로그램 제품을 저장하기 위한 컴퓨터 판독 매체에 관한 것이다.
적어도 하나의 프로세서를 포함하는 계산 노드 및 높은 리소스 요건의 계산을 위탁하기 위해 계산 노드에 타이트하게 연결되는 가속기를 포함하는 컴퓨터 클러스터 장치가 업계에 알려져 있다. 가속기가 계산 노드에 타이트하게 연결되어 있음으로 해서, 정적 할당이 일어나고 또한 가속기의 초과 또는 과소 신청이 일어난다. 이렇게 되면, 리소스의 부족이 초래될 수 있거나 또는 리소스의 과도한 공급이 생길 수 있다. 또한, 계산 노드에 대한 가속기의 이러한 정적 할당은 가속기 고장시 내고장성을 제공하지 못하게 된다.
2010년 6월 28일 ∼ 7월 2일에 고성능 계산 및 시뮬레이션(HPCS)에 관한 국제 회의에서 Jose Duato, Rafael Mayo 등이 발표한 "rCUDA: reducing the number of GPU-based accelerators in high performance clusters" (224 면 ∼ 231 면)에는, 고성능 클러스터에서 원격 GPU 가속화를 가능하게 하여 클러스터에 설치되는 가속기의 수를 줄일 수 있는 프레임워크가 설명되어 있다. 이는 에너지, 획득, 유지 관리 및 공간 절감을 이룰 수 있다.
예루살렘 히브리 대학교의 컴퓨터 과학과 소속의 Amnon Barak 등이 발표한 "A package for open CL based heterogeneous computing on clusters with many GPU devices" 에는, 많은 GPU 장치를 갖는 클러스터에서 OpenMP, C++ 비수정 OpenCL 어플리케이션을 실행하기 위한 패키지가 설명되어 있다. 또한, 전체 클러스터 장치를 명확하게 이용하기 위해 한 호스팅 노드에 대한 어플리케이션을 가능케 해주는 OpenCL 명세 및 OpenMP API의 확장의 실행이 제공되어 있다.
도 1 은 종래 기술에 따른 컴퓨터 클러스터 장치를 나타낸다. 이 컴퓨터 클러스터 장치는 여러 개의 계산 노드(CN)를 포함하는데, 이들 계산 노드는 서로 연결되어 있고 계산 작업을 함께 수행한다. 각각의 계산 노드(CN)는 가속기(Acc)에 타이트하게 연결되어 있다. 도 1 에서 보는 바와 같이, 계산 노드(CN)는 마이크로프로세서(예컨대, 중앙 처리 유닛(CPU))과 함께 계산 노드(CN)에 가상적으로 결합되어 있는 가속기 유닛(ACC)을 포함한다. 전술한 바와 같이, 가속기(Acc)가 계산 노드(CN)에 고정적으로 연결되면, 계산 작업에 따라 가속기(Acc)의 과대 또는 과소 신청이 생기게 된다. 또한, 가속기(Acc)들 중의 하나의 고장시 내고장성이 제공되지 않는다. 도 1 에 따른 공지된 컴퓨터 클러스터 장치에서, 계산 노드(CN)는 어떤 기반을 통해 서로 통신하며, 가속기(Acc)들은 정보를 직접 교환하지 않고, 데이타 교환을 위해 상기 기반(IN)과 접속하는 계산 노드(CN)를 필요로 한다.
따라서, 본 발명의 목적은, 가속기와 계산 노드 간의 데이타 교환에 있어서의 통신 유연성 및 임의의 또한 각각의 가속기에 대한 계산 노드의 직접적인 접근을 가능하게 해주는 컴퓨터 클러스터 장치를 제공하는 것이다. 또한, 본 발명의 목적은 실행 시간에 계산 노드에 대한 가속기의 동적 연결을 제공하는 것이다.
상기 목적은 청구 범위 제 1 항에 따른 특징을 갖는 컴퓨터 클러스터 장치로 달성된다.
*이에 따라, 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치가 제공되는 바, 이 컴퓨터 클러스터 장치는,
- 각기 통신 기반과 접속하는 복수의 계산 노드 - 이들 계산 노드 중의 적어도 두 개는 상기 계산 작업의 적어도 제 1 부분을 함께 수행함;
- 상기 계산 작업의 적어도 제 2 부분을 수행하고 각기 상기 통신 기반과 접속하는 적어도 하나의 부스터; 및
- 상기 계산 작업의 상기 제 2 부분을 수행하기 위해 적어도 하나의 부스터를 상기 복수의 계산 노드들 중의 적어도 하나에 할당하는 리소스 매니저를 포함하며,
상기 할당은 미리 결정된 할당 메트릭(metric)에 따라 이루어진다.
이 컴퓨터 클러스터 장치에서, 가속화 기능은 독립적인 부스터에 의해 제공된다. 기술된 컴퓨터 클러스터 장치는 그들 부스터를 계산 노드에 느슨하게 연결할 수 있게 해준다. 그래서, 계산 노드들에 의한 가속기(여기서는 부스터의 형태로 되어 있음)의 공유가 가능하게 된다. 부스터를 계산 노드에 할당하기 위해, 리소스 매니저(리소스 매니저 모듈 또는 리소스 매니저 노드의 형태로 되어 있음)가 제공될 수 있다. 이 리소스 매니저는 계산 작업의 처리 시작시 정적 할당을 줄 수 있다. 대안적으로 또는 추가적으로, 상기 리소스 매니저는 실행 시간(계산 작업의 처리 중을 의미함)에 동적 할당을 줄 수도 있다.
상기 리소스 매니저는 적어도 하나의 계산 노드로부터 계산 작업을 일 부분을 적어도 하나의 부스터에 위탁하기 위해 할당 정보를 계산 노드에 제공한다. 리소스 매니저는 특정의 하드웨어 유닛 또는 가상의 유닛으로 이루어질 수 있고 또는 이들이 조합된 것일 수도 있다. 특히, 리소스 매니저는 마이크로프로세서, 하드웨어 요소, 가상화된 하드웨어 요소 또는 디먼(daemon) 중의 어느 하나로 형성될 수 있다. 또한, 리소스 매니저의 일부는 시스템에 분산될 수 있고 통신 기반을 통해 통신할 수 있다.
부스터들 간의 통신은 네크워크 규약을 통해 이루어진다. 그래서, 부스터 할당은 어플리케이션 요구에 따라 수행되는데, 이는 특정 계산 작업의 처리에 따른다는 것을 의미한다. 부스터 고장시에 내고장성이 제공되고 또한 확장 가능성이 만들어진다. 부스터가 계산 노드와는 독립적으로 제공되므로, 확장 가능성은 증분 시스템 개발의 지원으로 가능하게 된다. 그래서, 계산 노드의 수 및 제공되는 부스터의 수는 다를 수 있다. 따라서, 하드웨어 리소스를 제공하는데 있어 최대의 유연성이 얻어진다. 또한, 모든 계산 노드는 동일한 성장 능력을 공유한다.
계산 작업은 알고리즘, 소스 코드, 이진(binary) 코드로 규정될 수 있으며 또한 이들이 조합된 것일 수 있다. 계산 작업은 예컨대 시뮬레이션일 수 있는데, 이는 컴퓨터 클러스터 장치로 수행된다. 또한, 계산 작업은 여러 개의 하위 문제(하위 작업이라고도 함)를 포함할 수 있는데, 전체적으로 이들 하위 문제는 전체 계산 작업을 기술한다. 계산 작업을 여러 개의 부분, 예컨대 계산 작업의 적어도 제 1 부분 및 그 계산 작업의 적어도 제 2 부분으로 나눌 수 있다. 또한, 컴퓨터 클러스터 장치는 계산 작업의 상기 부분들을 병렬적으로 또는 연속적으로 해결할 수 있다.
각각의 계산 노드는 통신 기반(인터커넥트라고도 함)과 접속한다. 유사하게, 각각의 부스터도 통신 기반과 접속한다. 그래서, 계산 노드 및 부스터는 상기 통신 기반으로 상호 작용하게 된다. 그러므로, 계산 노드로부터 부스터로 데이타교환을 할 때 다른 통신 노드를 사용할 필요 없이, 노드 각각의 통신 노드는 통신 기반을 통해 각각의 부스터와 통신하게 된다. 따라서, 부스터에 대한 계산 노드의 동적 할당이 이루어지며, 이때 계산 노드는 계산 작업의 적어도 일 부분을 처리하고 한 계산 노드로부터 한 부스터로 정보를 전달하는데는 필요하지 않다. 그러므로, 종래 기술에서 일반적으로 사용되는 중간 계산 노드가 필요 없이 부스터를 통신 기반에 직접 연결할 수 있는 것이다.
부스터와 계산 노드 사이의 할당을 이루기 위해, 특정한 세트의 규칙이 요구된다. 그러므로, 할당 메트릭(metric)이 제공되는데, 이 할당 메트릭은 어느 부스터를 어느 계산 노드에 연결해야 할지를 결정하는 근거로서 역할한다. 상기 할당 메트릭은 리소스 매니저에 의해 관리될 수 있다. 할당 메트릭을 관리한다는 것은, 적어도 하나의 부스터(적어도 하나의 다른 지정된 계산 노드에 할당됨)를 지정하는 규칙을 수립하고 업데이트하는 것을 말한다. 그래서, 실행 시간에 할당 메트릭을 업데이트할 수 있다. 이러한 할당 규칙은 부하 균형잡기(load balancing)(컴퓨터 클러스터 장치, 특히 부스터의 작업 부하를 검출함)에 따라 만들어질 수 있다. 또한, 부스터의 계산 능력을 검출할 수 있으며 계산 작업 요건을 검출할 수 있고 또한 선택된 부스터(필요한 능력을 계산 노드에 제공함)를 할당할 수 있다. 계산 노드에 대한 부스터의 초기 할당을 결정하기 위해, 할당 메트릭이 미리 결정되지만 실행 시간에 변경될 수 있다. 그래서, 계산 작업의 처리 시작시에는 정적 할당이 제공되고 실행 시간에서는 동적 할당이 제공된다.
본 발명의 일 실시 형태에서, 상기 결정된 할당 메트릭은 일 그룹의 메트릭 명세 기술 중의 적어도 하나에 따라 형성되며, 그 그룹은 시간 논리, 할당 매트릭스, 할당 테이블, 확률 함수 및 비용 함수를 포함한다. 그래서, 부스터의 할당을 위해 일시적인 의존을 생각할 수 있다. 그러한 경우로서, 부스터에 대한 일시적인 오더가 규정될 수 있는데, 그 일시적인 오더에 의해, 다른 부스터가 계산 작업의 적어도 일 부분을 해결하는데 실패한 경우에 특정의 부스터가 항상 계산 노드에 할당된다. 그래서, 부스터들의 할당을 위해 이 부스터들 간의 계층제를 생각할 수 있다. 할당 메트릭은 계산 노드의 식별 인자를 지정할 수 있고 또한 할당될 수 있는 적합한 부스터의 식별 인자를 규정할 수 있다. 확률 함수는 예컨대, 특정의 부스터가 어떤 계산 작업을 수행하는데 실패한 경우 다른 부스터가 특정의 확률로 그 동일한 계산 작업을 해결할 수 있음을 나타낼 수 있다. 또한 비용 함수는 요구되는 리소스 능력의 평가 및 부스터의 제공된 계산 능력의 평가에 사용될 수 있다. 그래서, 어떤 요건의 계산 작업은 적절한 부스터에 보내질 수 있다.
동적 할당을 위해 계산 이력(계산 로그 기록이라고도 함)이 사용될 수 있다. 그래서, 적어도 하나의 제 1 부스터에서 계산하고 응답시간을 기록하고 또한 동일한 계산 작업을 적어도 하나의 다른 부스터에서 처리하고 응답 시간을 기록함으로써 계산 작업을 경험적으로 평가할 수 있다. 그래서, 부스터의 능력이 기록될 수 있고 경험적으로 평가될 수 있으며 그러므로 요구되는 능력과 그의 제공된 능력에 따라 계산 노드에 할당될 수 있다. 특정의 계산 작업은 우선권 정보를 포함할 수 있는데, 이 정보는 이 특정의 계산 작업을 얼마나 긴급하게 수행해야 하는지를 나타낸다. 그러한 경우로서, 특정의 계산 노드가 우선권을 줄 수 있는데, 이 우선권은 계산 작업 또는 계산 작업의 적어도 일 부분이 다른 계산 노드의 계산 작업의 다른 부분과 비교하여 얼마나 긴급한지를 나타낸다. 그래서, 계산 노드에 관한 우선권 정보 뿐만 아니라 계산 작업의 단일 부분에 관한 우선권 정보도 제공할 수 있다.
일단 부스터가 계산 노드에 할당되면, 그 부스터는 계산 작업의 특정 부분을 처리하게 된다. 이는 원격 처리 호출, 파라미터 이양 또는 테이타 전송으로 이루어질 수 있다. 계산 작업의 상기 부분의 복잡성은 파라미터 이양에 따라 평가될 수 있다. 파라미터가 매트릭스를 포함하는 경우, 파라미터 이양의 복잡성은 그 매트릭스 차원의 수로 평가될 수 있다.
통신 기반와 접속하기 위해, 접속(interfacing) 유닛이 제공될 수 있는데, 이 접속 유닛은 한 컴퓨터 노드와 통신 기반 사이에 배치된다. 제 1 접속 유닛과는 상이한 다른 접속 유닛이 부스터와 통신 기반 사이에 배치될 수 있다. 접속 유닛은 계산 노드와 다를 수 있고 또한 부스터와도 다르다. 접속 유닛은 계산 작업의 일 부분을 처리하지 않고 단지 네트워크 기능만 제공하는 것이다. 접속 유닛은 계산 작업의 관리 및 통신 문제에 대한 기능만 제공한다. 접속 유닛은 또한 계산 작업과 관련한 데이타의 라우팅(routing) 및 전송에 대한 기능만 제공할 수도 있다.
또한, 가속화는 적어도 하나의 부스터로부터 계산 작업의 적어도 일 부분을 적어도 하나의 계산 노드에 위탁하여 반대로 수행될 수도 있다. 그래서, 제어 및 정보 흐름은 전술한 본 발명의 양태에 대해 반대로 된다.
본 발명의 일 양태에 따르면, 미리 결정된 할당 메트릭은 일 그룹의 매트릭스 명세 기술 중의 적어도 하나에 따라 형성되며, 그 그룹은 시간 논리, 할당 매트릭스, 할당 테이블, 확률 함수 및 비용 함수를 포함한다. 이에 따라, 미리 결정된 할당 메트릭은 공식적인 또는 반공식적인 모델 또는 테이타 유형을 사용하여 형성될 수 있다는 이점이 얻어질 있다.
본 발명의 다른 양태에 따르면, 상기 미리 결정된 할당 메트릭은 일 그룹의 할당 파라미터들 중의 적어도 하나에 따라 특정되며, 그 그룹은 리소스 정보, 비용 정보, 복잡성 정보, 확장가능성 정보, 계산 로그 기록, 컴파일러 정보, 우선권 정보 및 시간 스탬프(stamp)를 포함한다. 이에 따라, 다른 실행 시간 파라미터를 고려하여 또한 특정의 계산 작업 특성에 응하여 실행 시간에 할당이 동적으로 수행될 수 있다는 이점이 얻어질 수 있다.
본 발명의 다른 양태에 따르면, 적어도 하나의 부스터가 상기 복수의 계산 노드들 중의 하나에 할당되어 일 그룹의 신호들 중의 적어도 하나가 촉발되고, 그 그룹은 원격 처리 호출, 파라미터 이양 및 데이타 전송을 포함한다. 이에 따라, 계산 작업의 적어도 일 부분이 한 계산 노드로부터 적어도 하나의 부스터에 보내질수 있다는 이점이 얻어질 수 있다.
본 발명의 다른 양태에 따르면, 각각의 계산 노드와 각각의 부스터는 접속 유닛을 통해 각각 상기 통신 기반과 접속하게 된다. 이에 따라, 중간 계산 노드가 필요 없이 데이타가 통신 기반을 통해 전달될 수 있다는 이점이 얻어질 수 있다. 그래서, 부스터를 계산 노드와 직접 연결할 필요가 없고 그럼에도 동적 할당이 이루어진다.
본 발명의 다른 양태에 따르면, 상기 접속 유닛은 일 그룹의 요소들 중의 적어도 하나를 포함하며, 그 그룹은 가상 인터페이스, 스터브(stub), 소켓, 네트워크 제어기 및 네트워크 장치를 포함한다. 이에 따라, 부스터는 물론 계산 노드 역시 통신 기반에 가상적으로 연결될 수 있다는 이점이 얻어질 수 있다. 또한, 기존의 통신 기반에 쉽게 접근할 수 있다.
본 발명의 다른 양태에 따르면, 상기 통신 기반은 일 그룹의 요소들 중의 적어도 하나를 포함하며, 그 그룹은 버스, 통신 링크, 스위칭 유닛, 라우터(router) 및 고속 네트워크를 포함한다. 이에 따라, 기존의 통신 기반을 사용할 수 있고 통상적으로 이용가능한 네트워크 장치로 새로운 통신 기반을 만들 수 있다는 이점이 얻어질 수 있다.
본 발명의 다른 양태에 따르면, 각각의 계산 노드는 일 그룹의 요소들 중의 적어도 하나를 포함하며, 그 그룹은 멀티코어 프로세서, 클러스터, 컴퓨터, 워크스테이션 및 다목적 프로세서를 포함한다. 이에 따라, 계산 노드가 높은 확장 가능성을 갖게 된다는 이점이 얻어질 수 있다.
본 발명의 다른 양태에 따르면, 상기 적어도 하나의 부스터는 일 그룹의 요소들 중의 적어도 하나를 포함하며, 그 그룹은 멀티코어 프로세서, 스칼라 프로세서, 코(co)프로세서, 그래픽 처리 유닛, 멀티코어 프로세서와 단체형(monolithic) 프로세서의 클러스터를 포함한다. 이에 따라, 부스터를 실행시켜 특정 문제를 고속으로 처리할 수 있는 이점이 얻어질 수 있다.
여러 개의 계산 작업을 동시에 처리해야 하므로 계산 노드는 일반적으로 큰 제어 유닛을 포함하는 프로세서를 이용한다. 부스터에 이용되는 프로세서는 계산 노드 프로세서와 비교해 볼 때 일반적으로 큰 산술 논리 유닛 및 단순한 제어 구조를 포함한다. 예컨대, SIMD(단일 지령 다중 테이타 컴퓨터라고도 함)이 부스터에 이용될 수 있다. 그래서, 계산 노드에 이용되는 프로세서는 프로세서 설계에 있어 부스터에 이용되는 프로세서와 비교하여 다르다.
본 발명의 다른 양태에 따르면, 상기 리소스 매니저는 상기 계산 작업의 적어도 일 부분을 수행하는 중에 상기 미리 결정된 할당 메트릭을 업데이트하게 된다. 이에 따라, 계산 노드에 대한 부스터의 할당이 실행 시간에 동적으로 수행될수 있는 이점이 얻어질 수 있다.
상기 목적은 컴퓨터 클러스터 장치를 작동시키기 위한 청구항 11 에 따른 방법으로도 달성된다.
따라서, 계산 작업을 처리하기 위하여 컴퓨터 클러스터 장치를 작동시키기 위한 방법이 제공되는데, 이 방법은,
- 각기 통신 기반과 접속하는 복수의 계산 노드들 중의 적어도 두개를 사용하여 계산 작업의 적어도 제 1 부분을 수행하는 단계;
- 각기 상기 통신 기반과 접속하는 적어도 하나의 부스터를 사용하여 상기 계산 작업의 적어도 제 2 부분을 수행하는 단계; 및
- 상기 계산 작업의 상기 제 2 부분을 수행하기 위해 적어도 하나의 부스터를 상기 복수의 계산 노드들 중의 하나에 할당하는 단계를 포함하며,
상기 할당은 미리 결정된 할당 메트릭에 따라 이루어진다.
또한, 전술한 방법을 실시하도록 되어 있는 컴퓨터 프로그램 제품 및 이 컴퓨터 프로그램 제품을 저장하기 위한 컴퓨터 판독 매체가 제공된다.
이제 본 발명을 첨부 도면을 참조하여 단지 실례로 설명하도록 한다.
도 1 은 종래 기술에 따른 컴퓨터 클러스터 장치를 나타낸다.
도 2 는 본 발명의 일 양태에 따른 컴퓨터 클러스터 장치를 개략적으로 나타낸 것이다.
도 3 은 본 발명의 다른 양태에 따른 컴퓨터 클러스터 장치를 개략적으로 나타낸 것이다.
도 4 는 본 발명의 일 양태에 따른 컴퓨터 클러스터 장치를 작동시키기 위한 방법을 개략적으로 나타낸 것이다.
도 5 는 본 발명의 다른 양태에 따른 컴퓨터 클러스터 장치를 작동시키기 위한 방법을 개략적으로 나타낸 것이다.
도 6 은 본 발명의 다른 양태에 따른 컴퓨터 클러스터 장치의 제어 흐름을 개략적으로 나타낸 것이다.
도 7 은 본 발명의 다른 양태에 따른 컴퓨터 클러스터 장치의 역방향 가속화를 실행하는 제어 흐름을 개략적으로 나타낸 것이다.
도 8 은 본 발명의 다른 양태에 따른 컴퓨터 클러스터 장치의 제어 흐름을 개략적으로 나타낸 것이다.
도 9 은 본 발명의 일 양태에 따른 컴퓨터 클러스터 장치의 네트워크 토폴로지를 개략적으로 나타낸 것이다.
이하, 별도의 언급이 없으면 동일한 개념은 동일한 참조 부호로 표시할 것이다.
도 2 는 클러스터(C)와 부스터 그룹(BG)을 포함하는 컴퓨터 클러스터 장치를 나타낸다. 본 실시 형태에서 클러스터는 4개의 계산 노드(CN) 및 3개의 부스터(B)를 포함한다. 계산 노드에 대한 부스터의 유연한 연결은 소위 인터커넥트와 같은 통신 기반(IN)에 의해 이루어진다. 이러한 종류의 통신 기반(IN)은 예컨대 infiniBAND를 사용하여 실현될 수 있다. 그래서, 각각의 부스터(B)는 계산 노드(CN)들 중의 어떤 것에 의해서도 공유될 수 있다. 또한, 클러스터 수준에서의 가상화(virtualization)가 이루어질 수 있다. 각각의 부스터 또는 부스터의 적어도 일 부분이 가상화될 수 있고 또한 계산 노드에 가상적으로 이용될 수 있다.
본 실시 형태에서, 계산 작업은 계산 노드(CN)들 중의 적어도 하나에 의해 처리되며, 계산 작업들 중의 적어도 일부는 부스터(B)들 중의 적어도 하나에 보내질 수 있다. 부스터(B)는 특정 문제를 계산하도록 되어 있고 특정의 처리 능력을 제공한다. 그래서, 문제들이 계산 노드(CN)들 중의 한 계산 노드로부터 부스터(B)에 위탁(outsourcing)되어 그 부스터에 의해 계산될 수 있고 결과가 계산 노드에 다시 전달될 수 있다. 계산 노드(CN)에 대한 부스터(ESB)의 할당은 리소스 매니저(RM)에 의해 이루어질 수 있다. 이 리소스 매니저는 제 1 할당을 초기화하고 이어서 계산 노드(CN)에 대한 부스터(B)의 동적 할당을 행하게 된다.
부스터와 계산 노드 간의 통신을 위해, 어플리케이션 프로그래밍 인터페이스(API)가 제공될 수 있다. 부스터(B)는 각각의 API 함수 호출을 통해 계산 노드에 의해 명확하게 제어될 수 있다. API는 부스터의 실제 원래의 프로그래밍 모델을 추출하여 향상시킨다. 또한, API는 부스터의 고장시에 내고장성을 위한 수단을 제공할 수 있다. API 호출에 관련되는 통신 규약은 통신층 위에 있을 수 있다. 이하, 본 발명의 일 양태에 따른 일 세트의 API 호출에 대해 간단히 설명하며, 여기서 파라미터 "가속기"는 어드레스드(addressed) 부스터를 특정할 수 있다:
- aanlnit(accelerator)
사용전에 부스터를 초기화한다
- aanFinalize(accelerator)
사용 후에 부스터에 대한 부기(bookkeeping) 정보를 제공한다
- aanMemAlloc(address, size, accelerator)
메모리의 크기 바이트를 피참조 부스터에 할당한다
할당된 디바이스 메모리의 어드레스를 반환한다
- aanMemFree(address, accelerator)
피참조 부스터 상의 주소에서 메모리 시작을 제공한다
- aanMemCpy(dst, src, size, direction, accelerator)
src-dst 메모리 어드레스로부터 크기 바이트를 복사한다
복사 작업의 방향은 다음과 같을 수 있다:
(i) 부스터에서 호스터로
(ⅱ) 호스트에서 부스터로
- aanKernelCreate(file_name, funct_name, kernel, accelerator)
피참조 부스터에서의 실행을 위해 파일 이름(file_name) 및 함수
이름(funt_name)으로 정의되는 커널(kernel)을 생성한다
핸들을 커널에 반환한다
- aanKernelSetArg(kernel, index, size, align, value)
인수(argument) 리스트내의 인덱스, 크기, 정렬 요건(align) 및 값을 사용 하여 커널 실행을 위한 인수를 정의한다
- aanKernelRun(kernel, grid_dim, block_dim)
acKernelCreate()에 대한 사전 호출로 커널과 관련된 부스터에서 커널 실행을 시작한다. 스레드(thread)의 수는 블럭 당 스레드의
수(block_dim) 및 그리드내의 블럭의 수(grid_dim)로 결정된다.
- aanKernelFree(kernel)
커널과 관련된 리소스를 제공한다
도 3 은 본 발명의 일 양태에 따른 다른 클러스터 장치를 나타낸다. 도시된 컴퓨터 클러스터 장치는 특히 고성능 클러스터 기술과 관련하여 과학적 계산 작업을 하도록 되어 있다. 과학적 고성능 클러스터 어플리케이션 코드의 포트폴리오의 특성을 좀더 면밀히 분석해 본 결과, 엑사스케일(Exascale)의 코드는 한편으로 엑사스케일링에 잘 적합한 코드 블럭 및 다른 한편으로는 확장가능하기에는 너무 복잡한 코드 블럭을 포함할 필요가 있는 것으로 나타났다. 이하, 고확장성과 복잡성 간의 구별은 코드 블럭의 수준에서 하도록 하며, 엑사스케일 코드 블럭(ECB)과 복잡한 코드 블럭(CCB)이라는 개념을 도입하기로 한다.
분명, 순수하게 고확장성인 코드는 없고 또한 엄격히 복잡한 코드도 없다. 각각의 코드는 고확장성 요소와 저확장성의 복잡한 요소를 갖고 있다. 사실, 양 극단 간에는 연속성이 있다. 흥미롭게도, 한 코드의 많은 저확장성 요소들은 고확장성을 필요로 하지 않고 대신에 큰 로컬 메모리를 필요로 한다. 또한, 올-투-올(all-to-all) 통신 요소들은 더 작은 유사성 하에서 높은 이점을 갖는 것이 분명하다.
메모리의 상대량(즉, 메모리의 상대량의 처리되는 자유도, 즉 ECB 대 CCB의 처리되는 자유도), 실행 시간 및 교환될 데이타에 있어서 ECB와 CCB 간의 적절한 균형이 주어지는 이러한 문제의 경우, 특정한 설계 방안에 의해 이 상황에 적응하게 된다. 이 방안은 타이트하게 연결된 부스터를 갖는 엑사스케일 부스터와 함께 전통적인 클러스터 컴퓨터 접근법으로 이루어지며 클러스터의 네트워크를 통해 클러스터와 연결된다. 이러한 이중적인 접근법은 순수한 엑사스케일 시스템의 예상되는 좁은 어플리케이션 필드를 상당히 확장시킬 수 있는 가능성이 있다.
조잡한 설계 모델이 나와 있는데, 여기서는 어플리케이션 코드의 고확장성 부분 또는 ECB가 병렬적인 멀티코어 아키텍쳐에서 실행되며, 이러한 아키텍쳐는 동적으로 접근되며, 반면 CCB는 세련된 동적 리소스 할당 시스템과의 접속 가능성을 포함하는 적절한 크기의 전통적인 클러스터 시스템에서 실행된다.
엑사스케일의 클러스터는 유연성과 신뢰성을 보장하기 위해 가상화 요소를 필요로 한다. 원리적으로 국부적(local) 가속기는 전체 시스템에서의 간단한 보기를 가능케 해주고 또한 특히 매우 높은 국부적 대역(bandwidth)을 이용할 수 있지만, 그 국부적 가속기는 파밍(farming) 및 마스터-슬레이브 병렬화에 잘 적합한 절대적으로 정적인 하드웨어 요소이다. 그래서, 가상화 소프트웨어 층에 국부적 가속기를 포함시키는 것은 어려울 것이다. 추가로, 가속기가 고장나면 내고장성이 없을 것이며 초과 신청 또는 과소 신청에 대한 허용 범위가 없을 것이다.
클러스터의 계산 노드(CN)는 내부적으로 표준 클러스터 인터커넥트, 예컨대 Mellanox InfiniBand에 의해 연결된다. 이 네트워크는 부스터(ESB)도 포함하도록 확장된다. 도면에는 3개의 그러한 부스터가 나타나 있다. 각각의 ESB는 대기 시간이 짧은 특정의 빠른 네트워크에 의해 연결되는 복수의 멀티코어 가속기로 이루어진다.
CN과 ESB 간의 이러한 연결은 매우 유연하다. 계산 노드들 간에 가속기 능력을 공유하는 것이 가능하게 된다. 클러스터 수준에서의 가상화는 모델에 의해 방해 받지 않으며 또한 완전한 ESB 병렬 처리를 이용할 수 있다. ESB-CN 할당은 동적 리소스 매니저(RM)에 의해 진행된다. 시작시의 정적 할당은 실행 시간에서는 동적으로 될 수 있다. 모든 CN-ESB 통신은 클러스터 네트워크 규약을 통해 진행된다. AC간 통신에는 새로운 방안들이 필요할 것이다. ESB 할당은 어플리케이션 요구를 따르며, 또한 모든 계산 노드들은 동일한 성장 능력을 공유하면서 가속기 고장시에는 내고장성이 보장된다.
부스터의 계산 요소로서는 인텔의 멀티코어 프로세서 Knight's Corner(KC)가 사용될 수 있다. KC-칩은 50개 이상의 코어로 이루어질 것이며, 칩당 1 Teraflop/s 이상의 DP 계산 능력을 제공할 것으로 예상된다. 10,000 개의 요소내에서는 10 Petaflop/s의 총 성능이 얻어질 것이다. 클러스터-부스터(CN-ESB) 개념을 연구하기 위해 PCle 기반 파일럿 시스템을 만드는 프로젝트에서는 KC 이전의 것, 즉 Knight's Ferry 프로세서(KF)가 사용될 것이다.
상기 KF의 계산 속도는 현재 상용되는 프로세서 보다 약 10 팩터 만큼 빠르기 때문에, ESB간 통신 시스템의 크기는 그에 따라 정해져야 한다. ESB의 통신 시스템은 카드(듀플렉스) 당 적어도 1 Terabit/s를 필요로 한다. 통신 시스템 EXTOLL은 버스 시스템의 실행 장치로서 사용될 수 있으며, 이는 카드 당 적어도 1.44 Terabit/s의 통신 속도를 제공한다. 이는 카드 당 6개의 링크를 제공하는 3차원 토폴로지를 실현한다. 단순성과 관련하여 이 토폴로지는 멀티코어 가속기에 기반하는 부스터에 적용될 수 있다. 심지어 단축 라우팅(cut-through routing)을 위해 지정되어 있는 두개의 방향으로도, EXTOLL은 데이타 속도에 관한 한 PCI 익스프레스 성능을 포화시킬 수 있다. 대기 시간은 ASIC 실현에 근거할 때 0.3 ㎲에 이를 수 있다. 현재, EXTOLL은 FPGA들로 실현된다.
도 4 는 본 발명에 따른 컴퓨터 클러스터 장치를 작동시키기 위한 방법의 일 양태를 설명하기 위한 흐름도를 나타낸다. 제 1 단계(100)에서, 계산 작업의 적어도 제 1 부분이 복수의 계산 노드(CN)들 중의 적어도 두개로 수행되며, 각각의 계산 노드(CN)는 통신 기반(IN)과 접속한다. 또한, 단계(101)에서 계산 작업의 적어도 제 2 부분이 적어도 하나의 부스터(B)에 의해 수행되고, 각각의 부스터는(B)는 통신 기반(IN)과 접속한다. 또한, 단계(102)에서는, 계산 작업의 제 2 부분의 수행을 위해 적어도 하나의 부스터(B)가 리소스 매니저(RM)에 의해 복수의 계산 노드(CN)들 중의 하나에 할당된다. 도 4 에 있는 우측 화살표는 제어 흐름이 단계(100)로 되돌아 갈 수도 있음을 나타낸다. 단계(102)에서 적어도 하나의 부스터(B)를 복수의 계산 노드(CN)들 중의 하나에 할당한 후에, 할당은 계산 노드(CN)에 전달될 수 있고, 그 계산 노드는 다른 위탁 단계에서 상기 전달된 할당을 사용하게 된다. 따라서, 단계(101)에서는 할당 단계(102)에 따라 계산 작업의 적어도 제 2 부분이 수행된다.
도 5 는 본 발명의 일 양태에 따른 컴퓨터 클러스터 장치를 작동시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다. 본 실시 형태에서는, 단계(202)에서 적어도 하나의 부스터(B)를 복수의 계산 노드(CN)들 중의 하나에 할당한 후에, 계산 작업의 적어도 제 2 부분을 수행하는 단계(201)가 실행된다. 따라서, 특정의 부스터(B)를 선택할 수 있고, 또한 단계(202)에서 이루어지는 할당에 근거하여 부스터(B)가 계산 작업의 적어도 제 2 부분을 수행하게 된다. 이는 계산 작업의 적어도 제 2 부분이 리소스 매니저(RM)에 보내지는 경우에 유리할 수 있는데, 그 리소스 매니저는 일 부스터(B)를 계산 작업의 제 2 부분에 할당한다. 그리고, 리소스 매니저(RM)는 계산 작업의 제 2 부분을 부스터(B)에 전달할 수 있으며, 이때 계산 노드(CN)는 부스터(B)와 직접 접촉할 필요가 없다.
도 4 및 5 를 참조하면, 당업자라면, 상기 단계들 중의 어떤 것도 반복적으로 다른 순서로 수행될 수 있고 또한 다른 하위 단계를 포함할 수 있음을 이해할 것이다. 예컨대, 단계(102)는 단계(101) 전에 수행될 수 있는데, 그러면 계산 작업의 제 1 부분이 수행되고 한 부스터가 한 계산 노드에 할당되며 그리고 마지막으로 계산 작업의 제 2 부분이 수행된다. 단계(102)는 계산 작업의 수행된 적어도 제 2 부분을 계산 노드(CN)에 되돌려 보내는 것과 같은 하위 단계를 포함할 수 있다. 그래서, 부스터(B)는 계산된 결과를 계산 노드(CN)에 돌려 보낸다. 이 계산 노드(CN)은 다른 계산 작업의 수행을 위해 그 돌려 받은 값을 사용할 수 있으며, 계산 작업의 적어도 다른 부분을 부스터(B)들 중의 적어도 하나에 다시 보낼 수 있다.
도 6 은 본 발명의 일 양태에 따른 컴퓨터 클러스터 장치의 제어 흐름의 블럭도를 나타낸다. 본 실시 형태에서, 계산 노드(CN)는 계산 작업을 받고 받은 계산 작업 중의 적어도 일 부분을 위탁하기 위해 부스터(B)를 요청한다. 그러므로, 리소스 매니저(RM)가 접근되고, 이 매니저는 계산 작업의 그 부분을 선택된 부스터(B)에 보내게 된다. 이 부스터(B)는 계산 작업의 상기 부분을 수행하고 결과를 돌려 보내며, 이 결과는 가장 우측의 화살표로 나타나 있다. 본 실시 형태의 다른 양태에 따르면, 복귀 값은 계산 노드(CN)에 전달될 수 있다.
도 7 은 본 발명의 일 양태에 따른 컴퓨터 클러스터 장치의 제어 흐름(역가속화를 실행함)의 블럭도를 나타낸다. 본 실시 형태에서, 적어도 하나의 부스터(B)에 의해 수행되는 계산 작업의 수행 가속화는 적어도 하나의 계산 노드(CN)를 적어도 하나의 부스터(B)에 할당하여 이루어진다. 그래서, 제어 및 정보 흐름은 도 6 에 나타나 있는 실시 형태와는 반대로 된다. 그러므로, 작업의 수행은 부스터(B)로부터 계산 작업를 적어도 하나의 계산 노드(CN)에 위탁하여 가속화될 수 있다.
도 8 은 본 발명의 다른 양태에 따른 컴퓨터 클러스터 장치의 제어 흐름의 블럭도를 나타낸다. 본 실시 형태에서, 리소스 매니저(RM)는 계산 작업의 적어도 일 부분을 부스터(B)에 전달하지 않지만, 계산 노드(CN)는 계산 작업의 특정한 적어도 일 부분을 수행하도록 되어 있는 부스터(B)의 어드레스 또는 다른 식별 인자를 요청하게 된다. 리소스 매니저(RM)는 요구되는 어드레스를 계산 노드(CN)에 되돌려 보낸다. 이제 계산 노드(CN)는 통신 기반(IN)에 의해 부스터(B)에 직접 접근할 수 있다. 본 실시 형태에서, 통신 기반(IN)은 접속(interfacing) 유닛을 통해 접근된다. 계산 노드(CN)는 접속 유닛(IU1)에 의해 통신 기반(IN)에 접근하며 부스터(B)는 접속 유닛(IU2)에 의해 통신 기반(IN)과 접속하게 된다.
또한, 리소스 매니저(RM)는 부스터(B)의 리소스 능력을 평가하고 또한 각 부스터(B)의 평가된 리소스 능력에 따라 할당(부스터(B)의 선택을 의미함)을 수행하게 된다. 이를 위해, 리소스 매니저(RM)는 할당 메트릭에 접근할 수 있으며, 이 할당 메트릭은 데이타베이스(DB) 또는 임의 종류의 데이타원에도 저장될 수 있다. 리소스 매니저(RM)는 할당 메트릭을 업데이트하게 되며, 이 업데이트는 데이타베이스 관리 시스템을 사용하여 수행될 수 있다. 데이타베이스(DB)는 어떤 종류의 기억 장치로서도 이루어질 수 있다. 데이타베이스는 예컨대 테이블, 레지스터 또는 캐시(cache) 메모리로 이루어질 수 있다.
도 9 는 본 발명의 일 양태에 따른 컴퓨터 클러스터 장치의 네트워크 토폴로지를 개략적으로 나타낸 것이다.
일 실시 형태에서, 계산 노드들은 공통의 제 1 통신 기반, 예컨대 중앙 스위칭 유닛(S)을 갖는 스타형 토폴로지를 공유한다. 계산 노드(CN)와 부스터 노드(BN) 간의 통신을 위한 다른 제 2 통신 기반이 제공된다. 부스터 노드(BN)들 사이의 통신을 위한 제 3 통신 기반이 제공된다. 그래서, 부스터 노드(BN)들 사이의 통신을 위한 고속 네트워크 인터페이스에는 특정의 BN-BN 통신 인터페이스가 제공될 수 있다. 이 BN-BN 통신 기반은 3차원 토폴로지로 이루어질 수 있다.
다른 실시 형태에서는 2개의 통신 기반이 제공되는데, 한 통신 기반은 계산 노드(CN)들 사이의 통신을 위한 것이고 다른 하나의 통신 기반은 부스터 노드(BN)들 사이의 통신을 위한 것이다. 양 통신 기반들은, 제 1 네트워크로부터 제 2 네트워크로 가거나 또는 제 2 네트워크로부터 제 1 네트워크로 가는 적어도 하나의 통신 링크에 의해 연결될 수 있다. 그래서, 선택된 한 계산 노드(CN) 또는 선택된 한 부스터 노드(BN)가 각각 다른 네트워크와 연결된다. 도 9 에서 한 부스터 노드(BN)는 스위칭 유닛(S)을 사용하여 계산 노드(CN)의 통신 기반과 연결된다.
다른 실시 형태에서, 부스터 그룹(BG) 자체는 계산 노드(CN)의 통신 기반 또는 중간 통신 기반에 연결될 수 있다.
통신 기반들은 일반적으로 다른 특성들 사이에서 토폴로지, 대역, 통신 규약, 처리량 및 메시지 교환에 있어서 다를 수 있다. 부스터(B)는 예컨대 1 ∼ 10,000 개의 부스터 노드(BN)를 포함할 수 있지만 이에 한정되지 않는다. 리소스 매니저(RM)는 일반적으로 부스터 노드(BN)의 일 부분을 관리할 수 있으며 그래서 부스터 노드(BN)의 전체 수를 분할할 수 있고 또한 상기 수의 부스터 노드(BN)로부터 부스터(B)를 동적으로 형성할 수 있다. 스위칭 유닛(S)은 스위치, 라우터 또는 임의의 네트워크 장치로 이루어질 수 있다.
당업자라면 컴퓨터 클러스터 장치의 다른 구성도 생각할 수 있을 것이다. 예컨대, 데이타베이스(DB)는 컴퓨터 클러스터 장치의 다른 요소들, 노드들에 의해 각각 접근될 수 있다. 도시된 계산 노드(CN)는 다른 많은 계산 노드(CN)들 중의 하나일 수 있고 또한 도시된 부스터 그룹(BG)은 많은 부스터 그룹(BG)들 중의 하나일 수 있으며, 이들은 리소스 매니저(RM) 및/또는 통신 기반(IN)에 접근한다. 또한, 가속화는 적어도 하나의 부스터(B)로부터 계산 작업의 적어도 일 부분을 적어도 하나의 계산 노드에 위탁하여 반대로 수행될 수도 있다.

Claims (11)

  1. 계산 작업을 처리하기 위한 컴퓨터 클러스터로서,
    - 각기 통신 기반(IN)과 접속하는 복수의 계산 노드(CN) - 이들 계산 노드 중의 적어도 두 개는 상기 계산 작업의 적어도 제 1 부분을 함께 수행함;
    - 상기 계산 작업의 적어도 제 2 부분을 수행하고 각기 상기 통신 기반(IN)과 접속하는 적어도 하나의 부스터(B); 및
    - 상기 계산 작업의 상기 제 2 부분의 계산을 위해 적어도 하나의 부스터(B)를 상기 복수의 계산 노드(CN)들 중 적어도 하나에 할당하도록 구성된 리소스 매니저(RM) - 상기 적어도 하나의 부스터(B)의 할당은 할당 메트릭의 함수로서 수행되고, 상기 할당 메트릭은 할당 파라미터의 그룹 중 적어도 하나의 할당 파라미터의 함수로서 특정됨 -를 포함하며,
    상기 리소스 매니저(RM)는 (ⅰ) 상기 계산 작업의 처리를 시작할 때 미리 결정된 할당 메트릭을 사용하여 할당을 수행하며, (ⅱ) 계산 작업의 처리 중에, (ⅱ-1) 할당을 초기화하고, (ⅱ-2) 미리 결정된 할당 메트릭을 변경하며, (ⅱ-3) 변경된 할당 메트릭을 사용하여 할당을 수행하도록 구성되는, 컴퓨터 클러스터.
  2. 제 1 항에 있어서,
    상기 할당 파라미터의 그룹은: 리소스 정보, 비용 정보, 복잡성 정보, 확장가능성 정보, 계산 로그 기록 및 우선권 정보를 포함하는, 컴퓨터 클러스터.
  3. 제 1 항 또는 제 2 항에 있어서,
    적어도 하나의 부스터(B)가 상기 복수의 계산 노드(CN)들 중의 하나에 할당되어 일 그룹의 신호들 중의 적어도 하나가 촉발되고, 그 그룹은 원격 처리 호출, 파라미터 이양 및 데이타 전송을 포함하는, 컴퓨터 클러스터.
  4. 제 1 항 또는 제 2 항에 있어서,
    각각의 계산 노드(CN)와 각각의 부스터(B)는 접속 유닛(IU1; IU2)을 통해 각각 상기 통신 기반(IN)과 접속하는, 컴퓨터 클러스터.
  5. 제 4 항에 있어서,
    상기 접속 유닛(IU1; IU2)은 일 그룹의 요소들 중의 적어도 하나를 포함하며, 그 그룹은 가상 인터페이스, 스터브(stub), 소켓, 네트워크 제어기 및 네트워크 장치를 포함하는, 컴퓨터 클러스터.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 통신 기반(IN)은 일 그룹의 요소들 중의 적어도 하나를 포함하며, 그 그룹은 버스, 통신 링크, 스위칭 유닛, 라우터(router) 및 고속 네트워크를 포함하는, 컴퓨터 클러스터.
  7. 제 1 항 또는 제 2 항에 있어서,
    각각의 계산 노드(CN)는 일 그룹의 요소들 중의 적어도 하나를 포함하며, 그 그룹은 멀티코어 프로세서, 클러스터, 컴퓨터, 워크스테이션 및 다목적 프로세서를 포함하는, 컴퓨터 클러스터.
  8. 제 1 항 또는 제 2 항에 있어서,
    상기 적어도 하나의 부스터(B)는 일 그룹의 요소들 중의 적어도 하나를 포함하며, 그 그룹은 멀티코어 프로세서, 스칼라 프로세서, 코(co)프로세서, 그래픽 처리 유닛, 멀티코어 프로세서와 단체형(monolithic) 프로세서의 클러스터를 포함하는, 컴퓨터 클러스터.
  9. 계산 작업을 처리하기 위한, 제 1 항 또는 제 2 항에 따른 컴퓨터 클러스터를 작동시키기 위한 방법으로서,
    - 각기 통신 기반(IN)과 접속하는 복수의 계산 노드(CN)들 중의 적어도 두개를 사용하여 계산 작업의 적어도 제 1 부분을 수행하는 단계(100);
    - 각기 상기 통신 기반(IN)과 접속하는 적어도 하나의 부스터(B)를 사용하여 상기 계산 작업의 적어도 제 2 부분을 수행하는 단계(101); 및
    - 적어도 하나의 부스터(B)를 리소스 매니저(RM)에 의해 상기 복수의 계산 노드(CN)들 중의 하나에 할당하는 단계(102) - 상기 적어도 하나의 부스터(B)의 할당은 할당 메트릭의 함수로서 수행되고, 상기 할당 메트릭은 할당 파라미터의 그룹 중 적어도 하나의 할당 파라미터의 함수로서 특정됨 -를 포함하고,
    상기 할당 단계는 상기 리소스 매니저(RM)에 의해, (ⅰ) 상기 계산 작업의 처리를 시작할 때 미리 결정된 할당 메트릭을 사용하여 적어도 하나의 부스터(B)를 할당하는 단계를 포함하며, 추가로 (ⅱ) 계산 작업의 처리 중에, (ⅱ-1) 할당을 초기화하는 단계, (ⅱ-2) 미리 결정된 할당 메트릭을 변경하는 단계, 및 (ⅱ-3) 상기 리소스 매니저(RM)에 의해, 변경된 할당 메트릭을 사용하여 할당을 수행하는 단계를 더 포함하는, 방법.
  10. 삭제
  11. 삭제
KR1020197005913A 2010-10-13 2011-10-13 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법 KR102074468B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10187436A EP2442228A1 (en) 2010-10-13 2010-10-13 A computer cluster arrangement for processing a computaton task and method for operation thereof
EP10187436.0 2010-10-13
PCT/EP2011/067888 WO2012049247A1 (en) 2010-10-13 2011-10-13 A computer cluster arrangement for processing a computation task and method for operation thereof

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187002295A Division KR102103596B1 (ko) 2010-10-13 2011-10-13 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법

Publications (2)

Publication Number Publication Date
KR20190025746A KR20190025746A (ko) 2019-03-11
KR102074468B1 true KR102074468B1 (ko) 2020-02-06

Family

ID=43831684

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020187002295A KR102103596B1 (ko) 2010-10-13 2011-10-13 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법
KR1020197005913A KR102074468B1 (ko) 2010-10-13 2011-10-13 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법
KR1020137011931A KR101823505B1 (ko) 2010-10-13 2011-10-13 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020187002295A KR102103596B1 (ko) 2010-10-13 2011-10-13 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020137011931A KR101823505B1 (ko) 2010-10-13 2011-10-13 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법

Country Status (18)

Country Link
US (4) US10142156B2 (ko)
EP (3) EP2442228A1 (ko)
JP (3) JP6494161B2 (ko)
KR (3) KR102103596B1 (ko)
CN (2) CN109491795A (ko)
CA (3) CA3027973C (ko)
CY (1) CY1122108T1 (ko)
DK (1) DK2628080T3 (ko)
ES (1) ES2743469T3 (ko)
HR (1) HRP20191640T1 (ko)
HU (1) HUE044788T2 (ko)
LT (1) LT2628080T (ko)
PL (1) PL2628080T3 (ko)
PT (1) PT2628080T (ko)
RS (1) RS59165B1 (ko)
RU (1) RU2597556C2 (ko)
SI (1) SI2628080T1 (ko)
WO (1) WO2012049247A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
WO2014188643A1 (ja) * 2013-05-24 2014-11-27 日本電気株式会社 スケジュールシステム、スケジュール方法、及び、記録媒体
JP2014078214A (ja) * 2012-09-20 2014-05-01 Nec Corp スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム
KR20140093595A (ko) * 2013-01-18 2014-07-28 서울대학교산학협력단 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템
US20160110221A1 (en) * 2013-05-22 2016-04-21 Nec Corporation Scheduling system, scheduling method, and recording medium
KR101594915B1 (ko) * 2014-01-23 2016-02-17 서울대학교산학협력단 매니코어 클러스터 시스템 상에서 병렬 프로그래밍을 수행하는 방법 및 매니코어 클러스터 시스템
US9576039B2 (en) 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US9501325B2 (en) 2014-04-11 2016-11-22 Maxeler Technologies Ltd. System and method for shared utilization of virtualized computing resources
US10715587B2 (en) 2014-04-11 2020-07-14 Maxeler Technologies Ltd. System and method for load balancing computer resources
US9584594B2 (en) 2014-04-11 2017-02-28 Maxeler Technologies Ltd. Dynamic provisioning of processing resources in a virtualized computational architecture
CN105681366A (zh) * 2014-09-26 2016-06-15 广西盛源行电子信息有限公司 一种把上万台北斗终端接入同一台服务器的算法
CN111865657B (zh) 2015-09-28 2022-01-11 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法
US10432450B2 (en) * 2016-06-30 2019-10-01 Microsoft Technology Licensing, Llc. Data plane API in a distributed computing network
DK3523723T3 (da) * 2016-10-05 2021-09-20 Partec Ag Højtydende computersystem og fremgangsmåde
US11049025B2 (en) * 2017-03-15 2021-06-29 Salesforce.Com, Inc. Systems and methods for compute node management protocols
KR101985899B1 (ko) * 2017-09-29 2019-06-04 주식회사 트레드링스 작업 할당 시스템, 방법, 및 컴퓨터 프로그램
CN111108474A (zh) * 2017-09-30 2020-05-05 英特尔公司 通过云资源管理器管理加速器资源的技术
HUE062986T2 (hu) 2018-01-23 2023-12-28 Partec Ag Heterogén számítási erõforrások alkalmazás futásidõ által meghatározott dinamikus allokálása
CN110390516B (zh) * 2018-04-20 2023-06-06 伊姆西Ip控股有限责任公司 用于数据处理的方法、装置和计算机存储介质
KR20210009311A (ko) 2018-05-15 2021-01-26 파르텍 클러스터 컴피턴스 센터 게엠베하 효율적인 병렬식 계산을 위한 장치 및 방법
EP3963449A1 (en) 2019-04-30 2022-03-09 Bernhard Frohwitter Apparatus and method to dynamically optimize parallel computations

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098447A1 (en) 2002-11-14 2004-05-20 Verbeke Jerome M. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
US20040257370A1 (en) 2003-06-23 2004-12-23 Lippincott Louis A. Apparatus and method for selectable hardware accelerators in a data driven architecture
US20050097300A1 (en) 2003-10-30 2005-05-05 International Business Machines Corporation Processing system and method including a dedicated collective offload engine providing collective processing in a distributed computing environment
JP2006277458A (ja) 2005-03-30 2006-10-12 Hitachi Ltd リソース割当管理装置およびリソース割当方法
JP2007328415A (ja) 2006-06-06 2007-12-20 Univ Waseda ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
US20090213127A1 (en) 2008-02-22 2009-08-27 International Business Machines Corporation Guided attachment of accelerators to computer systems

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744504A (ja) * 1993-07-27 1995-02-14 Hitachi Ltd Cpuと複数のpu,fpuから成る演算ユニット
EP1191457A2 (en) * 1994-03-22 2002-03-27 Hyperchip Inc. Monolithic systems with dynamically focused input/output
US7051188B1 (en) 1999-09-28 2006-05-23 International Business Machines Corporation Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment
US7418470B2 (en) * 2000-06-26 2008-08-26 Massively Parallel Technologies, Inc. Parallel processing systems and method
JP2002084302A (ja) * 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> ネットワークによる通信方法及び装置
RU2188451C2 (ru) * 2000-10-25 2002-08-27 Курский государственный технический университет Система взаимораспределения ресурсов
US7739398B1 (en) * 2000-11-21 2010-06-15 Avaya Inc. Dynamic load balancer
US6922832B2 (en) 2000-12-12 2005-07-26 Lockheed Martin Corporation Execution of dynamic services in a flexible architecture for e-commerce
US20030164842A1 (en) * 2002-03-04 2003-09-04 Oberoi Ranjit S. Slice blend extension for accumulation buffering
US8397269B2 (en) * 2002-08-13 2013-03-12 Microsoft Corporation Fast digital channel changing
US7137040B2 (en) 2003-02-12 2006-11-14 International Business Machines Corporation Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters
JP2006519441A (ja) * 2003-02-24 2006-08-24 ビーイーエイ システムズ, インコーポレイテッド サーバロードバランシング及びサーバアフィニティのためのシステム及び方法
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7996839B2 (en) 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
WO2007038445A2 (en) * 2005-09-26 2007-04-05 Advanced Cluster Systems, Llc Clustered computer system
US7490223B2 (en) 2005-10-31 2009-02-10 Sun Microsystems, Inc. Dynamic resource allocation among master processors that require service from a coprocessor
US7441224B2 (en) * 2006-03-09 2008-10-21 Motorola, Inc. Streaming kernel selection for reconfigurable processor
US8713574B2 (en) * 2006-06-05 2014-04-29 International Business Machines Corporation Soft co-processors to provide a software service function off-load architecture in a multi-core processing environment
US8589935B2 (en) 2007-05-08 2013-11-19 L-3 Communications Corporation Heterogeneous reconfigurable agent compute engine (HRACE)
US8250578B2 (en) * 2008-02-22 2012-08-21 International Business Machines Corporation Pipelining hardware accelerators to computer systems
US8615647B2 (en) 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US8434087B2 (en) * 2008-08-29 2013-04-30 International Business Machines Corporation Distributed acceleration devices management for streams processing
US9104617B2 (en) * 2008-11-13 2015-08-11 International Business Machines Corporation Using accelerators in a hybrid architecture for system checkpointing
FR2938943B1 (fr) * 2008-11-21 2010-11-12 Thales Sa Systeme multiprocesseur.
CN101441564B (zh) * 2008-12-04 2011-07-20 浙江大学 为程序定制的可重构加速器实现方法
US9588806B2 (en) * 2008-12-12 2017-03-07 Sap Se Cluster-based business process management through eager displacement and on-demand recovery
US8869160B2 (en) * 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
CN101763288B (zh) * 2010-01-19 2012-09-05 湖南大学 考虑硬件预配置因素的动态软硬件划分方法
US8875152B2 (en) * 2010-04-22 2014-10-28 Salesforce.Com, Inc. System, method and computer program product for dynamically increasing resources utilized for processing tasks
US8739171B2 (en) * 2010-08-31 2014-05-27 International Business Machines Corporation High-throughput-computing in a hybrid computing environment
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098447A1 (en) 2002-11-14 2004-05-20 Verbeke Jerome M. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
US20040257370A1 (en) 2003-06-23 2004-12-23 Lippincott Louis A. Apparatus and method for selectable hardware accelerators in a data driven architecture
US20050097300A1 (en) 2003-10-30 2005-05-05 International Business Machines Corporation Processing system and method including a dedicated collective offload engine providing collective processing in a distributed computing environment
JP2006277458A (ja) 2005-03-30 2006-10-12 Hitachi Ltd リソース割当管理装置およびリソース割当方法
JP2007328415A (ja) 2006-06-06 2007-12-20 Univ Waseda ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
US20090213127A1 (en) 2008-02-22 2009-08-27 International Business Machines Corporation Guided attachment of accelerators to computer systems

Also Published As

Publication number Publication date
CN103229146B (zh) 2018-12-11
HRP20191640T1 (hr) 2019-12-13
JP6494161B2 (ja) 2019-04-03
JP2019057303A (ja) 2019-04-11
SI2628080T1 (sl) 2019-10-30
WO2012049247A1 (en) 2012-04-19
CN103229146A (zh) 2013-07-31
CA2814309C (en) 2019-03-12
HUE044788T2 (hu) 2019-11-28
US20190089574A1 (en) 2019-03-21
EP2628080A1 (en) 2013-08-21
EP3614263A3 (en) 2021-10-06
JP2017216000A (ja) 2017-12-07
PT2628080T (pt) 2019-09-13
US20210194748A1 (en) 2021-06-24
CA3145494A1 (en) 2012-04-19
KR20180014185A (ko) 2018-02-07
KR101823505B1 (ko) 2018-02-01
CA2814309A1 (en) 2012-04-19
US20130282787A1 (en) 2013-10-24
US10142156B2 (en) 2018-11-27
PL2628080T3 (pl) 2019-11-29
US20240168823A1 (en) 2024-05-23
RU2597556C2 (ru) 2016-09-10
CA3027973C (en) 2022-03-22
DK2628080T3 (da) 2019-09-02
RU2013121560A (ru) 2014-11-20
CY1122108T1 (el) 2020-11-25
RS59165B1 (sr) 2019-10-31
CA3027973A1 (en) 2012-04-19
ES2743469T3 (es) 2020-02-19
KR102103596B1 (ko) 2020-04-23
JP2013539881A (ja) 2013-10-28
CN109491795A (zh) 2019-03-19
JP6433554B2 (ja) 2018-12-05
US10951458B2 (en) 2021-03-16
EP3614263A2 (en) 2020-02-26
JP6653366B2 (ja) 2020-02-26
US11934883B2 (en) 2024-03-19
EP2442228A1 (en) 2012-04-18
KR20140018187A (ko) 2014-02-12
LT2628080T (lt) 2019-10-10
EP2628080B1 (en) 2019-06-12
KR20190025746A (ko) 2019-03-11

Similar Documents

Publication Publication Date Title
KR102074468B1 (ko) 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법
US7958184B2 (en) Network virtualization in a multi-node system with multiple networks
US9052957B2 (en) Method and system for conducting intensive multitask and multiflow calculation in real-time
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
KR20190058619A (ko) 고성능 컴퓨팅 시스템 및 방법
US8516487B2 (en) Dynamic job relocation in a high performance computing system
JP2016541072A (ja) リソース処理方法、オペレーティング・システム、およびデバイス
US10404800B2 (en) Caching network fabric for high performance computing
US20200057679A1 (en) Hyperscale server architecture
Liu Fabric-centric computing
CN107660281B (zh) 同步分布式计算运行时间的系统和方法
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
Nunes et al. IPNoSys III: SDN Paradigm in a non-conventional NoC-based Processor
Misawa et al. Dynamic Reconfiguration of Computer Platforms at the Hardware Device Level for High Performance Computing Infrastructure as a Service
KR20230034195A (ko) 하이브리드 가상 머신 관리자의 시스템 및 동작 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right