KR20190058619A - 고성능 컴퓨팅 시스템 및 방법 - Google Patents
고성능 컴퓨팅 시스템 및 방법 Download PDFInfo
- Publication number
- KR20190058619A KR20190058619A KR1020197012927A KR20197012927A KR20190058619A KR 20190058619 A KR20190058619 A KR 20190058619A KR 1020197012927 A KR1020197012927 A KR 1020197012927A KR 20197012927 A KR20197012927 A KR 20197012927A KR 20190058619 A KR20190058619 A KR 20190058619A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- module
- nodes
- communication
- mcal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Paper (AREA)
- Jib Cranes (AREA)
- Hardware Redundancy (AREA)
Abstract
본 발명은 고성능 컴퓨팅(HPC) 기술 분야에 관한 것이다. 특히, 본 발명은 계산 업무를 함께 처리하도록 자유롭게 할당될 수 있는 서로 다른 모듈들을 포함하는 컴퓨팅 시스템에 관한 것이다. 모듈 컴퓨팅 추상화 계층(MCAL)으로도 지칭되는 제어 엔티티가 제공되어, 서로 다른 모듈들에 의해 제공되는 다양한 리소스의 동적 할당을 가능하게 한다. 컴퓨팅에서의 다양한 요구사항의 조정에서의 유연성으로 인해, 본 발명은 또한 주로 인터넷을 통해서 수요에 따라 컴퓨터 및 다른 장치에 공유 컴퓨터 프로세싱 리소스 및 데이터를 제공하는 클라우드 컴퓨팅 서비스를 제공하기 위한 기본 시스템으로도 적용가능하다.
Description
본 발명은 고성능 컴퓨팅(HPC)의 기술 분야에 관한 것이다. 특히, 본 발명은 이종 컴퓨팅 시스템, 특히 컴퓨팅 작업을 함께 프로세싱하도록 자유롭게 할당될 수 있는 서로 다른 모듈들을 포함하는 컴퓨팅 시스템에 관한 것이다. 모듈 컴퓨팅 추상화 계층(MCAL)이라고도 하는 제어 엔티티가 제공되어 서로 다른 모듈들에 의해 제공되는 다양한 리소스를 동적으로 할당할 수 있다. 컴퓨팅에서의 다양한 수요에 대한 조정의 유연성으로 인해, 본 발명은 주로 인터넷을 통해서 수요에 따라 컴퓨터 및 다른 장치에 공유 컴퓨터 프로세싱 리소스 및 데이터를 제공하는 클라우드 컴퓨팅 서비스를 제공하기 위한 기본 시스템으로도 적용 가능하다.
HPC 시스템용 응용 프로그램은 광범위한 기술 영역을 커버한다. 몇 가지 예를 들자면 인간의 뇌를 시뮬레이션하는 것으로부터 날씨 및 기후 예측, 전산 유체 공학, 지진 영상, 라디오 천문학 및 데이터 분석에 이른다. 고성능 컴퓨팅에 대한 수요는 갈수록 증가하고 있다.
현재, 우세한 HPC 아키텍처는 클러스터 컴퓨터 및 대규모 병렬 처리(MPP) 시스템이다. 클러스터 컴퓨터는 표준 네트워크 기술을 사용하여 서로 통신하는 복수의 클러스터 노드를 포함한다. 개별 클러스터 노드에는 기성 범용 프로세서가 장착되어 있다. MPP(대규모 병렬 처리) 시스템에서, 다수의 프로세서가 동시에, 따라서 병렬로 계산을 수행한다. 그들은 또한 일반적으로 기성 범용 프로세서를 사용한다. 그러나 이들 프로세서는 독점적인 네트워크 기술 및 특히 통신에 적합한 소프트웨어를 사용하는 경향이 있다.
더 높은 계산 능력에 대한 갈증을 해소하기 위해, 최근 수 년간 컴퓨터 클러스터 및 MPP 시스템 내의 클러스터 노드의 수가 크게 증가하였다. 그러나 단지 기성 범용 프로세서를 사용하고 시스템에서 그 수를 증가시키는 것이 해결책이 아님은 이미 알 수 있다.
기성 범용 프로세서는 의심의 여지 없이 긍정적인 측면을 가지고 있다. 이들은 높은 단일 스레드 성능을 가진다. 이들은 멀티-코어 프로세서의 경우 프로세서 또는 코어당 대용량 메모리를 가진다. 표준 프로그래밍을 사용하여 응용 프로그램을 시스템에 보다 쉽게 포트할 수 있다. 그러나 이 기술은 한계에 도달하고 있다. 기성 범용 프로세서의 경우, 이들의 클럭 속도(주파수)는 지난 10년 동안 실질적으로 증가하지 않았다. 이것은 에너지 소비와 밀접하게 관련되며, 특히 시스템 냉각으로 인해 위험한 상태에 도달하기 전에 칩당 100와트를 넘지 않아야 한다. 또한, 이들 프로세서는 비교적 비싸고 낮은 에너지 효율을 가진다.
높은 확장 가능성을 가진 응용 프로그램 부분을 계산하는데 사용될 수 있는 가속기를 사용하는 솔루션이 존재한다. 높은 확장 가능성이란 응용 프로그램이 보다 비용 효율적인 방법으로 더 많은 리소스를 추가함으로써 더욱 큰 부하를 다룰 수 있는 것이다. 병렬로 계산될 수 없는 코드의 순차 부분은 일반적으로 확장 가능성의 가장 중요한 제한 요소 중 하나이다.
둘 이상의 종류의 프로세서를 사용하는 시스템을 이종(heterogeneous) 컴퓨터 시스템이라고 한다. 서로 다른 가속기들이 범용 프로세서, 즉 다수의 코어 프로세서 및 GPU(그래픽 처리 장치)와 함께 사용될 수 있다. 다수의 코어 프로세서는 50개의 코어를 가진다. GPU는 수백 가지의 단순한 컴퓨팅 코어를 가진다. 두 유형의 프로세서 모두 에너지 효율적이다.
이종 컴퓨터 시스템에서, 각 클러스터 노드에는 하나 이상의 멀티코어 프로세서 또는 GPU로 구성된 가속기가 장착된다. 가속기는 기본적으로 클러스터 노드의 주 프로세서의 기능을 보완하는 보조 프로세서로 작동한다. 클러스터 노드는 구성요소가 상호접속 스위치를 통해 서로 데이터를 전달하는 패브릭을 통해 통신한다. "패브릭(fabric)"이라는 용어는 고성능 컴퓨팅 분야에서 시스템 토폴로지를 나타 내기 위해 사용되는 용어이다. 상호접속이라는 용어는 클러스터 노드 간의 통신 인프라에도 사용되며, 별개의 장치들을 접속시키는 전기 또는 광학적 접속 또는 케이블을 지칭한다. 가속기를 각 노드에 부착하는 것의 주요 문제점은 정적 할당이다. 범용 프로세서와 GPU 간의 비율은 시스템 설계시에 고정되어 있다.
국제 출원 WO2012-049247A 1은 도입된 컴퓨터 클러스터 구성의 동작을 위한 컴퓨터 클러스터 구성 및 방법으로 이러한 단점을 해결한다. 컴퓨터 클러스터 구성은 특정 계산 작업을 부스터 B에 동적으로 아웃소싱하는 계산 노드 CN을 포함한다. 따라서, 계산 노드 CN에 대한 부스터 B의 할당 기술이 도입된다. 할당은 런타임에 동적으로 발생한다. 이러한 아키텍처에서 부스터를 형성하는 클러스터 노드와 가속기 노드는 하나의 패브릭 내에 배치된다. 프로세싱 가속화를 위해 클러스터 노드에 부스터를 할당하는 것은 프로세스를 시작할 때 수행될 수 있기 때문에 이는 가속화된 클러스터 노드와 비교하여 유연성이 향상된다. 이러한 구성은 제 42 회 International Conference on Parallel Processing에서 2013년에 공개된 Norbert Eicker 외 다수에 의한 "The DEEP project Pursuing cluster-computing in the many-core era"의 885-892페이지 및 Concurrency and Computation: Practice and Experience, 28에서 2015년에 공개된 "The DEEP Project An alternative approach to heterogenous cluster-computing in the many-core era"의 2394-2411페이지에 추가로 기술되었다.
하나의 응용 프로그램이 클러스터 부스터 유형과 같은 이종 시스템에 의해 계산될 때, 개별 컴퓨팅 작업은 다수의 서로 다른 클러스터 노드에서 프로세싱될 뿐만 아니라, 두 개의 서로 다른 아키텍처, 즉 컴퓨터 클러스터 및 가속기에서 처리되어야 한다. 클러스터 컴퓨터와 부스터 사이에서뿐만 아니라 클러스터 컴퓨터 및 부스터 내의 효율적인 통신이 보장되어야 한다. 또한, 구성요소의 개수가 증가하면 개별 부품의 높은 신뢰도에도 불구하고 구성요소에 오류가 일어나는 위험이 발생할 수 있다. 따라서 시스템은 높은 복원력을 보장해야 하며, 즉 개별 구성요소의 장애를 견디면서 기능을 유지할 수 있어야 한다.
본 발명은 모듈식 컴퓨팅 시스템을 제공한다. 모듈식 컴퓨팅 시스템은 클러스터 모듈, 부스터 모듈, 저장 모듈, 신경구조 모듈, 데이터 분석 모듈, 그래픽 모듈, 양자 컴퓨팅 모듈 등과 같은 서로 다른 모듈들을 포함한다. 각각의 모듈은 복수의 노드를 포함할 수 있다. 클러스터 모듈은 복수의 클러스터 노드를 포함하고, 부스터 모듈은 복수의 부스터 노드를 포함하며, 저장 모듈은 복수의 저장 노드를 포함하는 식이다.
개별 노드는 모두 하나의 패브릭에 접속된다. 서로 다른 모듈들은 서로 다른 상호접속을 가질 수 있다. 클러스터 모듈은 예로서 InfiniBand 상호접속을 사용하는 반면, 부스터 모듈은 특수 인터페이스 노드를 통해 InfiniBand 상호접속에 접속되는 Intel사의 Omni-Path 패브릭을 사용한다. 이는 다른 유형의 모듈에도 동일하게 적용된다.
서로 다른 모듈들을 하나의 시스템에 결합하기 위해 모듈식 컴퓨팅 추상화 계층(MCAL)이 제공된다. MCAL은 통신 기능 및 관리 기능을 제공한다. Par Tec Cluster Competence Center GmbH의 Para Station은 아래에서 기술되는 기능 및 속성을 갖춘 MCAL을 구현하기 위한 출발점이 될 수 있다.
MCAL은 모듈내(intra module) 통신으로 지칭되는 모듈 내에서의 통신 및 모듈간(inter module) 통신으로 지칭되는 모듈 사이에서의 통신을 허용한다. 이를 위해 MCAL은 개별 패브릭에 인터페이스를 제공하며, 전체 시스템에 대해 하나의 패브릭 또는 예로서 클러스터 모듈용 InfiniBand 및 부스터 모듈용 Intel Omni-Path 패브릭과 같이, 모듈마다 전용 패브릭을 제공한다. 이더넷, 10G, 기가비트 또는 공유 메모리 통신과 같은 다른 상호접속도 가능하다. MCAL은 임의의 종류의 통신을 사용할 수 있으며 가용성, 응용 프로그램에 의한 표시, 성능 또는 비용 고려에 기초하여 구체적인 통신 방식을 선택한다.
공유 메모리 통신은 둘 이상의 프로세스가 통신할 수 있는 매우 빠르고 효율적인 방법을 제공한다. 서로 다른 유형의 공유 메모리 통신을 MCAL에서 사용할 수 있다. 병렬 작업의 두 개 이상의 프로세스가 공유 메모리를 가진 동일한 물리 노드에서 실행되는 경우, 이러한 공유 메모리는 이들 프로세스 간의 공유 메모리 통신에 사용될 수 있다. 이것은 일반적으로 CPU당 하나의 프로세스가 생성되는 SMP 노드에서 가능하다. 대칭형 멀티프로세싱(SMP)은 둘 이상의 동일한 프로세서가 하나의 공유 메인 메모리에 접속되는 아키텍처를 지칭한다. MCAL은 프로세스 및 처리되는 노드에 대해 인지하므로, MCAL은 이러한 상황에서 공유 메모리 통신을 설정할 수 있다.
그러나 공유 메모리 통신은 SMP 상황에 제한되지 않는다. 프로세스가 하나의 모듈 내의 서로 다른 노드들 또는 서로 다른 모듈들에 속한 노드들에서 실행되는 경우, MCAL은 공유 가상 주소 공간 통신을 설정한다. 공유 가상 주소 공간 통신을 사용하면 더 큰 메시지가 메시지의 메타 데이터와 데이터 자체의 가상 주소를 공유함으로써 노드 간에 전달된다. 실제 메시지는 할당된 가상 주소 공간을 통해 프로세스에서 액세스할 수 있다. 이를 통해 빠른 통신이 가능하다. MCAL은 통신에 관련된 프로세스 또는 노드가 직접 공유하는 메모리 영역을 설정함으로써 가상 주소 공간 통신을 설정한다.
이러한 예에서 알 수 있듯이, MCAL은 통신 기능을 제공할 뿐만 아니라 통신 방법을 선택하여 성능과 효율성을 높인다. MCAL은 예를 들어 프로세스를 생성하는 동안, 즉 새로운 자식 프로세스를 생성 및 실행하는 동안 통신을 위해 어떤 상호접속이 사용될 수 있는지를 결정할 수 있다. 동시에 MCAL은 현재 프로세스를 모니터링하고 자식 프로세스가 종료되는지를 관찰하거나 또는 비동기식으로 계속 실행할 수 있다.
MCAL이 제공하는 두 번째 주요 기능은 관리이다. 관리 기능은 노드 관리, 모듈 관리, 프로세스 관리 및 리소스 관리와 같은 다양한 측면을 커버한다.
노드 관리는 위에서 언급된 시스템 내에 존재하는 다른 유형의 모듈에 관한 클러스터 모듈의 클러스터 노드, 부스터 모듈의 부스터 노드, 저장 모듈의 저장 노드 등과 같은 개별 노드에 관련된다. 이용가능한 노드는 사용할 준비가 된 노드이다. 이것은 예로서 온도, 이용가능한 메모리 등과 같은 시스템 파라미터 및 시간에 걸친 이들 속성의 변화에 기초하여 오작동 노드 또는 오작동에 가까운 노드를 식별하도록 구성된 MCAL을 포함한다. MCAL은 따라서 내결함성을 구현하므로 높은 탄력성을 보장한다.
MCAL은 가상 노드 개념을 사용하여 이를 수행한다. 가상 노드는 클러스터 노드, 부스터 노드, 저장 노드 등과 같은 실제 하드웨어를 나타내지만, MCAL은 노드를 동적으로 매핑하도록 자유도를 가진다. 예를 들어, 만약 응용 프로그램이 X 클러스터 노드, Y 부스터 노드 및 Z 저장 노드를 필요로 하는 경우이다(X, Y, Z는 정수이다). MCAL은 이용가능한 모든 리소스에서 노드를 제공할 수 있다. 노드가 고장나거나 시스템에 추가되는 경우, MCAL은 가상 노드와 실제 노드 간의 매핑을 변경하여 신속하게 대응할 수 있다. 오작동하는 노드는 전체 시스템에 장애를 일으키지 않고 이용가능한 노드 목록에서 제거될 수 있다.
MCAL은 또한 도달 가능성, 대기시간 또는 물리적 배치와 같은 요소에 따라 특정 노드를 선택할 수도 있다. 이것은 실행중인 응용 프로그램에 완전히 투명하게 수행할 수 있다.
MCAL은 전반적인 시스템 뷰를 가지며 각 노드의 상태를 일정하게 유지하고 각각의 상호접속 상태를 최신으로 유지한다. MCAL은 노드당 이용가능한 CPU의 수, 실행중인 서비스, 이용가능한 저장, 상호접속 대역폭, 사용가능 메모리, 온도, 시스템 클럭 속도 등과 같은 각 노드 및 상호접속의 구체적인 속성에 대해 항상 통지를 받는다.
다른 기능은 모듈 관리이다. 모듈 관리는 노드 관리와 유사하며, 특정 모듈에 대한 노드 관리를 포함할 수 있지만 모듈 특정 측면을 고려한다. 모듈 관리는 모듈이 다른 모듈들과 통신하게 하는 인터페이스 노드(제공되는 경우)의 상태와 같은 모듈 특정 측면에 중점을 둔다. 노드와 마찬가지로, MCAL은 모듈의 사용률을 높이기 위해 모듈의 상태를 모니터링한다.
MCAL은 또한 프로세스 관리를 담당한다. 각각의 실행중인 응용 프로그램은 시작, 분산 및 모니터링되어야 하는 복수의 개별 프로세스로 분할된다. 동시에 계산 능력 및 저장을 위한 프로세스의 필요성에 대응하는 리소스를 할당해야 한다. 프로세스가 특정 프로세싱을 필요로 하는 경우, MCAL은 하나 이상의 부스터 노드 또는 개별 모듈로부터의 신경구조 노드, 데이터 분석 노드, 그래픽 노드 또는 양자 컴퓨팅 노드와 같은 보다 구체적인 노드를 할당한다.
이를 위해서, MCAL은 프로세스와 필요조건 사이의 종속성을 인지 및 제어하도록 구성된다. 이것에 기초하여, MCAL은 부스터 모듈 또는 클러스터 모듈의 경우에는 노드에서 프로세스를 생성하거나, 또는 저장 모듈의 경우에는 저장을 할당한다. 프로세스는 모니터링되고 종속 프로세스가 그룹으로서 처리되어, 병렬 작업 중 임의의 하나에서 발생하는 오류에 신속하게 대응할 수 있다. 이는 프로세스가 즉시 재시작되어 실행중인 응용 프로그램에 대한 전체적인 지연이 최소화되게 한다.
MCAL이 모듈식 컴퓨팅 시스템에서 수행하는 다른 작업은 리소스 관리이다. 리소스 관리의 일환으로 MCAL은 오프로딩 메커니즘을 구현하며, 즉 예로서 클러스터 모듈 상에서 실행중인 프로세스가 부스터 모듈로부터의 일부 부스터 노드를 필요로 할 수 있다. 이러한 경우 MCAL은 동시 작업을 실행하기 위해 선택된 부스터 노드에서 프로세스를 생성할 수 있다.
오프로딩의 일부로서 하나의 부스터 상에서 실행중인 하나의 프로세스가 생성될 수 있지만, 호스트 프로세서가 간섭하지 않고 모듈 통신 패브릭을 사용하여 서로 직접 통신하는 다수의 프로세스가 생성될 수도 있다.
리소스 관리는 또한 서로 다른 프로세스들 간의 접속 수를 감소시킴으로써 메모리 소비를 감소시킨다. 필요한 경우, 이것은 실제로 확립되는 주문형 접속만을 사용하여 수행된다. 이것은 접속당 메모리 소비를 크게 감소시킨다. 따라서, 노드와 같은 리소스가 가상 방식으로 처리될 뿐만 아니라, 가상 할당이 또한 물리적 네트워크에도 적용된다.
리소스를 할당할 때, MCAL은 하나의 프로세스에 의한 요청 뿐만 아니라, 다른 프로세스의 요청도 고려한다. 이는 통합 제어를 기반으로 통신 인프라의 변화에 유연하게 대응할 수 있게 한다.
통합 제어는 MCAL이 제공하는 다른 기능적 측면이다. 통합 제어는 통신을 제어하기 위한 관리 기능으로부터 MCAL에 의해 수집된 정보의 사용, 또는 그 반대를 의미한다. 따라서 통신 기능과 관리 기능은 분리되지 않고 통합되어 전체 시스템 성능을 더욱 최적화한다.
모든 모듈 내의 모든 노드의 모든 서로 다른 측면 및 모든 상호접속, 모듈내 통신 및 모듈간 통신의 상태에 대한 MCAL의 지식은 시스템을 실행하는데에 사용된다. 이는 시스템의 변화하는 행동뿐만 아니라 시스템에서 실행중인 응용 프로그램의 변화하는 요구사항에 동적으로 적응할 수 있게 한다.
통합 제어는 실제 시스템 상태 및 응용 프로그램 요구사항를 고려할 뿐만 아니라, 다가오는 모듈 또는 상호접속 사용의 필요조건을 예측한다.
시스템 상태의 정보는 노드의 동적 할당에 사용된다.이것은 리소스의 할당이 할당 결정에 광범위한 영향을 갖는 피드백 루프 등록 시스템을 사용하여 수행되는 것을 포함하며, 그에 따라 미래의 할당이 그에 따라 조정된다. 또한 시스템은 이러한 정보를 저장하여 향후 사례에 대한 할당 결정을 스스로 학습하는 방식으로 개선한다.
응용 프로그램의 주요 부분이 클러스터 모듈에서 정상적으로 시작되더라도, MCAL은 응용 프로그램의 어느 부분이 클러스터 모듈 또는 부스터 모듈 상에서 실행되는지를 식별한다. 결정의 근거는 예를 들어 실행중에 코드 수행 관찰의 응용 프로그램 코드 자체에 의한 표시이다. 이는 응용 프로그램을 계산하는 동안 할당을 조정할 수 있게 한다.
MCAL의 구현과 관련하여, MCAL은 전체 시스템에 분산되며 각 노드 상에 구현된 노드 관리자(NM)를 포함한다. 노드 관리자는 예를 들어 개별 노드에서 실행중인 데몬 프로세스로서 하드웨어 또는 소프트웨어로 구현될 수 있다. 노드 관리자는 모듈 및 전체 시스템에 대한 전역 보기를 구축하기 위해 지속적으로 정보를 수집한다. 시스템에서 실행중인 응용 프로그램은 관리 기능과의 통신 또는 개별 노드 관리자와의 직접 통신을 통해 이러한 정보를 사용할 수 있다. 이는 하드웨어 또는 API(응용 프로그래밍 인터페이스)일 수 있는 특정 인터페이스에 의해 구현된다. 따라서, MCAL은 응용 프로그램에서 정보를 얻을 뿐만 아니라 응용 프로그램이 개별 노드 관리자를 통해 MCAL에 의해 수집된 정보를 사용할 수 있다.
노드 관리자의 통신 트래픽은 모듈내 및 모듈간 통신과 엄격하게 구분된다. 이를 통해 모듈내 및 모듈간 통신은 관리 기능에 의해 중단 없이 고속으로 실행된다. 또한 이러한 분리를 통해 시스템 보안이 더욱 강화될 수 있다.
실제 통신 네트워크의 사용은 메시지 전달 인터페이스(MPI)를 통해 응용 프로그램에 그러한 기능을 제공하는 MCAL에 의해 제어된다. MCAL의 일부는 각 모듈에 대한 MPI 스택 및 시스템 전역 MPI이다. 개별 MPI는 예를 들어 컴퓨터 클러스터 모듈, 부스터 모듈, 저장 모듈 등을 위해 구현된다.
MCAL의 통신은 관리 네트워크를 사용한다. 관리 네트워크는 모듈내 및 모듈간 통신에 사용되는 물리적 네트워크와 동일하거나 다른 물리적 네트워크일 수 있다. 예를 들어, 모듈내 및 모듈간 통신은 InfiniBand, Myrinet 등일 수 있으며, 관리 네트워크는 노드 관리자에 접속시키는 이더넷으로 구성될 수 있다.
시스템을 실행하기 위한 관리 작업 또는 제어 기능을 가능하게 하는 프론트 엔드를 제공하기 위한 특수 노드가 시스템에 포함될 수 있다. 프론트 엔드는 통신 네트워크에 접속될 필요가 없으며, 통신 네트워크에만 접속된다. 예를 들어 워크 스테이션 컴퓨터, 개인 컴퓨터(PC), 랩탑 컴퓨터 또는 임의의 스마트 컴퓨팅 장치에 의해 형성될 수 있는 프론트 엔드 노드를 통해 모듈식 컴퓨팅 시스템이 관리될 수 있다. 모듈식 컴퓨팅 시스템에서 실행중인 응용 프로그램은 스케줄링, 시작, 중지 및 모니터링될 수 있다. 이는 일괄 처리에 의해서 수행될 수 있으며, 즉 수동 개입 없이, 따라서 상호작용 없이 모듈식 컴퓨팅 시스템 상에서 일련의 작업을 실행함으로써 수행될 수 있다.
수동 개입 없이 모듈식 컴퓨팅 시스템 상에서 일련의 작업을 수행하는 것 외에도, MCAL은 모듈식 컴퓨팅 시스템 상에서 실행중인 응용 프로그램이 실행될 때 사람의 입력을 수용하는 상호작용 컴퓨팅을 제공할 수 있다. 이러한 입력은 워크 스테이션 컴퓨터, 개인 컴퓨터(PC), 랩톱 컴퓨터 또는 임의의 스마트 컴퓨팅 장치를 통해 제공될 수 있다. 그러한 시나리오에서 모듈식 컴퓨팅 시스템은, 예를 들어 랩톱 컴퓨터를 통해 접근가능하며, 랩탑 컴퓨터는 모듈식 컴퓨팅 시스템의 계산 능력을 가질 것이다. 이는 사용자가 즉각적인 또는 현재 감지하는 시간 프레임 내에 응답해야만 하는 실시간 응용 프로그램에서 매우 유용한다. 또한 정보를 마이닝(mining)하기 위해 접근가능한 광대한 양의 구조화된 정보를 만드는 빅데이터 응용 프로그램, 반구조화된 정보 및 구조화되지 않은 정보 또한 이러한 배치를 사용할 수 있다. 이것은 계산 능력 및 저장의 제공을 위한 기본 리소스로서 모듈식 컴퓨팅 시스템을 갖는 클라우드 컴퓨팅 서비스에도 해당된다.
MCAL과 시스템 사이의 긴밀한 통합으로 인해 통신 대기시간이 감소되고 기술된 모듈식 컴퓨팅 시스템에서의 통신이 향상되는 것이 가능해진다.
도 1은 본 발명에 따른 모듈식 컴퓨팅 시스템의 기능도를 도시한다.
도 2는 본 발명에 따른 모듈식 컴퓨팅 시스템의 제 1 실시예를 도시한다.
도 3은 본 발명에 따른 모듈식 컴퓨팅 시스템의 제 2 실시예를 도시한다.
도 2는 본 발명에 따른 모듈식 컴퓨팅 시스템의 제 1 실시예를 도시한다.
도 3은 본 발명에 따른 모듈식 컴퓨팅 시스템의 제 2 실시예를 도시한다.
도 1은 본 발명에 따른 모듈식 컴퓨팅 시스템(100)의 기능도를 도시한다. 응용 프로그램 계층(110)은 모듈식 컴퓨팅 시스템의 상부를 형성한다. 응용 프로그램 계층에서, 소프트웨어 프로그램과 같은 응용 프로그램은 모듈식 컴퓨팅 시스템(100)에서 실행될 수 있다. 모듈식 컴퓨팅 추상화 계층(120)(MCAL)은 응용 프로그램 계층(110)이 시스템 리소스에 액세스할 수 있게 한다. 시스템의 리소스는 클러스터 모듈(130), 부스터 모듈(140), 저장 모듈(50), 데이터 분석 모듈(160) 및 예를 들어 신경구조 모듈, 그래픽 모듈, 양자 컴퓨팅 모듈 중 하나 이상인 그 외의 모듈(170)과 같은 다양한 모듈에 의해 형성된다. 동일한 종류의 다수의 모듈을 가질 수도 있다.
MCAL(120)은 모듈내 통신으로 지칭되는 모듈 내의 통신 및 모듈간 통신으로 지칭되는 모듈들 사이의 통신을 허용한다. MCAL(120)은 임의의 종류의 통신을 사용할 수 있으며 가용성, 응용 프로그램에 의한 표시, 성능 또는 비용 고려사항을 기반으로 구체적인 통신 방식을 선택한다.
또한 MCAL(120)은 관리 기능을 제공한다. 관리 기능은 노드 관리, 모듈 관리, 프로세스 관리 및 리소스 관리와 같은 다양한 측면을 커버한다. 노드 관리는 개별 노드에 관한 것으로, 도 2 및 3을 참조하여 추가로 설명될 것이다.
MCAL(120)은 전반적인 시스템 뷰를 가지며 각 모듈(130, 140, 150, 160, 170)의 상태를 최신으로 유지한다. MCAL(120)은 이용가능한 프로세서의 수, 실행중인 서비스, 이용가능한 저장, 상호접속 대역폭, 사용가능 메모리, 온도, 시스템 클록 속도 등과 같은 모듈(130, 140, 150, 160, 170)의 특정 속성에 대해 항상 통보 받는다. MCAL(120)은 모듈 관리 기능을 제공한다. 모듈 관리는 모듈 특정 측면을 고려한다. 따라서 MCAL은 클러스터 모듈(130), 부스터 모듈(140), 저장 모듈(150), 데이터 분석 모듈(160) 및 그외의 모듈(170)을 관리하도록 특별히 설계된 기능들을 포함한다. 각각의 실행중인 응용 프로그램(110)은 시작, 분산 및 모니터링될 필요가 있는 복수의 개별 프로세스로 분할된다. 동시에 계산 능력 및 저장을 위한 프로세스의 필요성에 대응하는 리소스를 할당해야 한다. 프로세스가 특정 프로세싱을 요구하면, MCAL(120)은 각각의 모듈로부터 하나 이상의 부스터 노드 또는 신경구조 노드, 데이터 분석 노드, 그래픽 노드 또는 양자 컴퓨팅 노드와 같은 더욱 특정한 노드를 할당한다. 이를 위해, MCAL(120)은 프로세스들과 그 요구사항 간의 의존성을 인식하고 제어하도록 구성된다. 리소스 관리는 MCAL(120)이 모듈식 컴퓨팅 시스템에서 수행하는 또 다른 작업이다. 리소스 관리의 일부로서, MCAL(120)은 오프로드 메커니즘, 즉 프로세스를 실현한다. 클러스터 모듈(130) 상에서 동작하는 MCU(120)는 부스터 모듈(140)로부터의 소정의 부스터 노드를 필요로 할 수 있다. 이러한 경우, MCAL(120)은 부스터 모듈(140)로부터 선택된 부스터 노드에 프로세스를 생성하여 동시에 작업을 실행할 수 있다.
통합 제어는 MCAL(120)에 의해 제공되는 또 다른 기능적 측면이다. 통합 제어는 MCAL(120)에 의해 통신을 제어하기 위한 관리 기능으로부터 수집된 정보의 사용을 의미하며, 그 반대의 경우도 마찬가지이다. 따라서 통신 기능과 관리 기능은 분리되지 않고 통합되어 전체 시스템 성능을 더욱 최적화한다. 이를 통해 시스템의 변화하는 행동뿐만 아니라 시스템에서 실행되는 응용 프로그램의 변화하는 요구에 동적으로 적응할 수 있다. 통합 제어는 실제 시스템 상태와 응용 프로그램 요구 사항을 고려할 뿐만 아니라 다가오는 모듈 또는 상호접속 사용 요구를 예측한다.
도 2는 본 발명에 따른 모듈식 컴퓨팅 시스템(200)의 제 1 실시예를 도시한다. 모듈식 컴퓨팅 시스템(200)은 클러스터 모듈(202), 부스터 모듈(204) 및 저장 모듈(206)을 포함한다.
클러스터 모듈(202)은 복수의 클러스터 노드(208)(CN)를 포함한다. 각각의 클러스터 노드(208)에는 다른 노드 관리자(209)와 협력하여 모듈식 컴퓨팅 시스템(200)에 통신 및 관리 기능을 제공하는 노드 관리자(209)(NM)가 제공된다. 각각의 부스터 노드(210)에는 노드 관리자(209)가 제공되며, 이는 노드 관리자(209)와 협력하여 모듈식 컴퓨팅 시스템(200)에 통신 및 관리 기능을 제공한다. 저장 모듈(206)은 복수의 저장 노드(212)를 포함한다. 각 저장 노드(212)에는 노드 관리자(209)가 제공되며, 노드 관리자(209)는 다른 노드 관리자(209)와 협력하여 모듈식 컴퓨팅 시스템(200)에 통신 및 관리 기능을 제공한다.
클러스터 노드는 Intel Xeon 프로세서, 메모리, 네트워크 카드와 같은 인터페이스와 같은 범용 마이크로 프로세서를 갖는 컴퓨터에 의해 형성될 수 있다. 부스터 노드는 GPU 또는 다수의 코어 프로세서, 메모리 및 네트워크 카드와 같은 인터페이스가 장착된 처리 시스템에 의해 형성될 수 있다. 저장 노드는 RAM(랜덤 액세스 메모리) 및 플래쉬 메모리와 같은 비휘발성 메모리, SSD(고체 상태 디스크), 하드 디스크일 수 있는 메모리를 포함하고, 추가로 저장 노드는 네트워크 카드와 같은 마이크로프로세서 및 인터페이스와 같은 노드 컨트롤러를 포함한다.
두 가지 서로 다른 네트워킹 인프라구조가 제공된다. 첫째, 클러스터 노드(208), 부스터 노드(210) 및 저장 노드(212)가 통신할 수 있도록 모든 노드(208, 210, 212)를 서로 접속시키는 통신 네트워크(220)가 있다.
둘째, 다양한 노드(208, 210, 212)에 제공된 모든 노드 관리자(209)를 접속시키는 관리 네트워크(224)가 제공된다. 관리 네트워크(224)에는 전체 모듈식 컴퓨팅 시스템을 제어할 수 있는 프론트 엔드(230)가 부착된다. 프론트 엔드(230)는 또한 노드 관리자(209)를 포함하는데, 이는 다른 노드 관리자(209)와의 실제 통신을 수행한다.
서로 다른 모듈들을 하나의 시스템에 결합하기 위해, 도 1을 참조하여 설명된 바와 같이 모듈식 컴퓨팅 추상화 계층(MCAL)이 제공된다. MCAL은 통신 기능 및 관리 기능을 제공한다. ParTec Cluster Competence Center GmbH의 ParaStation은 여기에 설명된 기능 및 속성을 갖춘 MCAL 구현을 위한 출발점이 될 수 있다.
MCAL은 개별 노드 상의 노드 관리자들(209)에 의해 구현되고, 모듈내 통신으로 지칭되는 모듈 내에서의 통신 및 모듈간 통신으로 지칭되는 모듈들 사이의 통신을 허용한다. 이를 수행하기 위해 노드 관리자는 개별 패브릭에 대해 인터페이스를 제공하며, 예를 들어 클러스터 모듈(202)을 위한 InfiniBand 및 부스터 모듈(204)을 위한 Intel Omni-Path 패브릭과 같이, 전체 시스템에 대해 하나의 패브릭을 또는 모듈당 전용 패브릭을 제공한다. 이더넷, 10G, 기가비트 또는 공유 메모리 통신과 같은 다른 상호접속이 또한 가능하다. 노드 관리자(309)는 임의의 종류의 통신을 사용할 수 있고 가용성, 응용 프로그램 프로그램에 의한 표시, 성능 또는 비용 고려사항에 기초하여 구체적인 통신 방식을 선택한다.
공유 메모리 통신 및 공유 가상 주소 공간 통신을 사용하여 둘 이상의 프로세스가 통신할 수 있는 매우 빠르고 효율적인 방법이 제공될 수 있다.
노드 관리부(209)는 집합적으로 노드 관리를 제공한다. 노드 관리는 클러스터 모듈(202)의 클러스터 노드(208), 부스터 모듈(204)의 부스터 노드(210), 저장 모듈(206)의 저장 노드(212)와 같은 개별 노드와 관련된다.
또한, 노드 관리자(209)는 도달 가능성, 대기시간 또는 물리적 배치와 같은 요인에 따라 특정 노드를 선택한다. 이는 실행중인 응용 프로그램에 완전히 투명하게 수행할 수 있다. 그들은 전체 시스템에 대한 정보를 수집하고 교환하며 각 노드와 각 상호접속의 상태를 최신 상태로 유지한다. 이는 노드 관리자(309)가 노드당 이용가능한 CPU의 수, 실행중인 서비스, 이용가능한 저장 장치, 상호접속 대역폭, 여유 메모리, 온도, 시스템 클록 속도 등과 같은 각 노드 및 상호접속의 특정 속성에 대해 항상 알 수 있게 한다.
노드 관리자에 의해 구현되는 다른 기능은 모듈 관리이다. 모듈 관리는 노드 관리와 유사하며 특정 모듈에 대한 노드 관리를 포함할 수 있지만, 모듈 특정 측면을 고려한다. 모듈 관리는 모듈이 다른 모듈들과 통신하게 하는 인터페이스 노드(제공되는 경우)의 상태와 같은 모듈 특정 측면에 중점을 둔다. 노드와 유사하게, 노드 관리자(309)는 모듈의 활용도를 증가시키도록 모듈의 상태를 모니터링한다.
리소스 관리는 노드 관리자(209)가 모듈식 컴퓨팅 시스템(200)에서 수행하는 또 다른 작업이다. 리소스 관리의 일부로서, 그들은 오프로드 메커니즘, 즉 프로세스를 실현한다. 클러스터 모듈(202) 상에서 실행되는 부스터 노드(210)는 부스터 모듈(204)로부터의 부스터 노드(210)를 필요로 할 수 있다. 이러한 경우 노드 관리자는 병렬로 작업을 실행하기 위해 선택된 부스터 노드(210) 상에서 프로세스를 생성할 수 있다.
통합 제어는 노드 관리자에 의해 구현되는 또 다른 기능적 측면이다. 통합 제어는 통신을 제어하기 위한 관리 기능에서 노드 관리자가 수집한 정보의 사용을 말하며 그 반대의 경우도 마찬가지이다. 따라서 통신 기능과 관리 기능은 분리되지 않고 통합되어 전체 시스템 성능을 더욱 최적화한다.
모든 모듈 내의 모든 노드의 모든 서로 다른 측면 및 모든 상호접속, 모듈내 통신 및 모듈간 통신의 상태에 대한 노드 관리자(209)의 지식은 시스템을 실행하는데에 사용된다. 이는 시스템의 변화하는 행동뿐만 아니라 시스템에서 실행중인 응용 프로그램의 변화하는 요구사항에 동적으로 적응할 수 있게 한다.
통합 제어는 실제 시스템 상태 및 응용 프로그램 요구사항를 고려할 뿐만 아니라, 다가오는 모듈 또는 상호접속 사용의 필요조건을 예측한다.
노드 관리자들(209)은 하드웨어 또는 소프트웨어로 구현될 수 있다. 각각의 노드에서 실행중인 데몬 프로세스이다. 노드 관리자(209)는 모듈 및 전체 시스템에 대한 전역 보기를 만들기 위해 지속적으로 정보를 수집한다. 시스템에서 실행중인 응용 프로그램은 관리 기능과의 통신 또는 개별 노드 관리자(209)와의 직접 통신을 통해 이러한 정보를 사용할 수 있다. 이것은 하드웨어 또는 API(응용 프로그램 프로그래밍 인터페이스)일 수 있는 특정 인터페이스에 의해 실현된다.
노드 관리자(209)의 통신 트래픽은 모듈내 및 모듈간 통신과 엄격하게 구분된다. 이를 통해 모듈내 및 모듈간 통신은 관리 기능에 의해 중단 없이 고속으로 실행된다. 또한 이러한 분리를 통해 시스템 보안을 더욱 강화할 수 있다.
실제 통신 네트워크(220)의 사용은 메시지 전달 인터페이스(MPI)를 통해 응용 프로그램에 그러한 기능을 제공하는 노드 관리자(209)에 의해서 제어된다.
노드 관리자(209)는 관리 네트워크(224)를 사용하여 서로 통신한다. 관리 네트워크(224)는 여기에서 통신 네트워크(220)로 지칭되는 모듈내 및 모듈간 통신을 위해 사용된 물리적 네트워크와 동일하거나 서로 다른 물리적 네트워크일 수 있다. 예를 들어, 모듈내 및 모듈간 통신은 InfiniBand, Myrinet 등일 수 있고 관리 네트워크는 노드 관리자(209)를 접속시키는 이더넷에 의해 형성될 수 있다.
시스템을 실행하기 위한 관리 작업 또는 제어 기능을 가능하게 하는 프론트 엔드(230)를 제공하기 위한 특수 노드가 시스템에 포함될 수 있다. 프론트 엔드는 통신 네트워크(220)에 접속될 필요가 없으며, 통신 네트워크(220)에만 접속된다. 예를 들어 워크 스테이션 컴퓨터, 개인 컴퓨터(PC), 랩탑 컴퓨터 또는 임의의 스마트 컴퓨팅 장치에 의해 형성될 수 있는 프론트 엔드 노드를 통해 모듈식 컴퓨팅 시스템이 관리될 수 있다. 모듈식 컴퓨팅 시스템에서 실행중인 응용 프로그램은 스케줄링, 시작, 중지 및 모니터링될 수 있다. 이는 일괄 처리에 의해서 수행될 수 있으며, 즉 수동 개입 없이, 따라서 상호작용 없이 모듈식 컴퓨팅 시스템 상에서 일련의 작업을 실행함으로써 수행될 수 있다.
수동 개입 없이 모듈식 컴퓨팅 시스템(200) 상에서 일련의 작업을 수행하는 것 외에도, 노드 관리자(309)는 모듈식 컴퓨팅 시스템(200) 상에서 실행중인 응용 프로그램이 실행될 때 사람의 입력을 수용하는 상호작용 컴퓨팅을 제공할 수 있다. 이러한 입력은 워크 스테이션 컴퓨터, 개인 컴퓨터(PC), 랩톱 컴퓨터 또는 임의의 스마트 컴퓨팅 장치를 통해 제공될 수 있다. 그러한 시나리오에서 모듈식 컴퓨팅 시스템(200)은, 예를 들어 랩톱 컴퓨터를 통해 접근가능하며, 랩탑 컴퓨터는 모듈식 컴퓨팅 시스템(200)의 계산 능력을 가질 것이다. 이는 사용자가 즉각적인 또는 현재 감지하는 시간 프레임 내에 응답해야만 하는 실시간 응용 프로그램에서 매우 유용한다. 또한 정보를 마이닝(mining)하기 위해 접근가능한 광대한 양의 구조화된 정보를 만드는 빅데이터 응용 프로그램, 반구조화된 정보 및 구조화되지 않은 정보 또한 이러한 배치를 사용할 수 있다. 이것은 계산 능력 및 저장의 제공을 위한 기본 리소스로서 모듈식 컴퓨팅 시스템(200)을 갖는 클라우드 컴퓨팅 서비스에도 해당된다.
도 3은 본 발명에 따른 모듈식 컴퓨팅 시스템(300)의 제 2 실시예를 도시한다. 모듈식 컴퓨팅 시스템(300)은 클러스터 모듈(302), 부스터 모듈(304) 및 저장 모듈(306)을 포함한다.
클러스터 모듈(302)은 복수의 클러스터 노드(310)(CN)를 포함한다. 각각의 클러스터 노드(310)에는 노드 관리자(309(N))가 제공되며, 다른 노드 관리자(309)와 협력하여 모듈식 컴퓨팅 시스템(300)에 통신 및 관리 기능을 제공한다. 클러스터 노드(310)는 클러스터 상호접속부(312)를 통해 서로 접속된다.
부스터 모듈(304)은 복수의 부스터 노드(320)(BN)를 포함한다. 각 부스터 노드(320)에는 노드 관리자(309)가 제공되며, 이는 노드 관리자(309)와 협력하여 모듈식 컴퓨팅 시스템(300)에 통신 및 관리 기능을 제공한다. 부스터 노드(320)는 부스터 상호접속부(322)를 통해 서로 접속된다.
저장 모듈(306)은 복수의 저장 노드(330)(SN)를 포함한다. 각각의 저장 노드(330)에는 노드 관리자(309)가 제공되며, 이는 노드 관리자(309)와 협력하여 모듈식 컴퓨팅 시스템(300)에 통신 및 관리 기능을 제공한다. 저장 노드(330)는 저장 상호접속부(332)를 통해 서로 접속된다.
클러스터 노드는 Intel Xeon 프로세서, 메모리, 네트워크 카드와 같은 인터페이스와 같은 범용 마이크로 프로세서를 갖는 컴퓨터에 의해 형성될 수 있다. 부스터 노드는 GPU 또는 다수의 코어 프로세서, 메모리 및 네트워크 카드와 같은 인터페이스가 장착된 처리 시스템에 의해 형성될 수 있다. 저장 노드는 RAM(랜덤 액세스 메모리) 및 플래쉬 메모리와 같은 비휘발성 메모리, SSD(고체 상태 디스크), 하드 디스크일 수 있는 메모리를 포함하고, 또한 저장 노드는 네트워크 카드와 같은 마이크로프로세서 및 인터페이스와 같은 노드 컨트롤러를 포함한다.
클러스터 모듈(302)은 클러스터 상호접속부(312)와 저장 상호접속부(332)를 접속시키는 인터페이스 노드(340)를 통해 저장 모듈(306)과 통신할 수 있다. 저장 모듈(306)은 저장 상호접속부(332)를 부스터 모듈(304)은 부스터 상호접속(322)를 클러스터 상호접속(312)와 접속시키는 인터페이스 노드(344)를 통해 클러스터 모듈(302)과 통신할 수 있다.
클러스터 모듈(302)은 예를 들어 InfiniBand 상호접속을 사용하는 반면, 부스터 모듈(304)은 인터페이스 노드(344)를 통해 InfiniBand 상호접속에 접속되는 Intel Omni-Path 패브릭을 사용한다. 각 인터페이스 노드는 성능 및 처리량을 증가시키기 위해 복수의 노드에 의해 형성될 수 있다. 이는 다른 유형의 모듈에도 동일하게 적용된다.
다양한 노드(310, 310, 312)에 제공된 모든 노드 관리자(309)는 동일한 통신 인프라구조를 사용한다. 클러스터 상호접속부(312)에는 프론트 엔드(350)가 부착되어 전체 모듈식 컴퓨팅 시스템을 제어할 수 있다. 프론트 엔드(350)는 또한 다른 노드 관리자(309)에 대한 실제 통신을 수행하는 노드 관리자(309)를 포함한다.
서로 다른 모듈들을 하나의 시스템에 결합하기 위해, 도 1을 참조하여 설명된 바와 같이 모듈식 컴퓨팅 추상화 계층(MCAL)이 제공된다. MCAL은 통신 기능 및 관리 기능을 제공한다. ParTec Cluster Competence Center GmbH의 ParaStation은 다음에서 설명하는 기능 및 속성을 갖춘 MCAL 구현을 위한 시작점이될 수 있다.
MCAL은 각 노드의 노드 관리자(309)에 의해 구현되며, 통신 링크는 제공된 통신 링크를 처리하기 위한 프로세스에 사용할 수 있다.
전술된 바와 같이, 노드 관리자(309)는 또한 노드 관리를 제공한다. 노드 관리는 클러스터 모듈(302)의 클러스터 노드(310), 부스터 모듈(304)의 부스터 노드(320), 저장 모듈(306)의 저장 노드(330)와 같은 개별 노드에 관련된다. 노드 관리자(309)는 도달 가능성, 대기시간 또는 물리적 배치와 같은 요인에 따라 특정 노드를 선택한다. 이는 실행중인 응용 프로그램에 완전히 투명하게 수행할 수 있다. 그들은 전체 시스템에 대한 정보를 수집하고 교환하며 각 노드와 각 상호접속의 상태를 최신 상태로 유지한다. 이는 노드 관리자(309)가 노드당 이용가능한 CPU의 수, 실행중인 서비스, 이용가능한 저장 장치, 상호접속 대역폭, 여유 메모리, 온도, 시스템 클록 속도 등과 같은 각 노드 및 상호접속의 특정 속성에 대해 항상 알 수 있게 한다.
이들이 구현하는 또 다른 기능은 모듈 관리이다. 모듈 관리는 노드 관리와 유사하며, 특정 모듈에 대한 노드 관리를 포함할 수 있지만 모듈 특정 측면을 고려한다. 모듈 관리는 모듈이 다른 모듈들과 통신하게 하는 인터페이스 노드(제공되는 경우)의 상태와 같은 모듈 특정 측면에 중점을 둔다.
노드 관리자(309)는 또한 프로세스 관리를 구현한다. 각각의 실행중인 응용 프로그램은 시작, 분산 및 모니터링되어야 하는 복수의 개별 프로세스로 분할된다. 동시에 계산 능력 및 저장을 위한 프로세스의 필요성에 대응하는 리소스를 할당해야 한다. 이들은 프로세스와 이들의 필요조건 간의 종속성을 인식하고 제어하도록 구성된다. 이를 기반으로, 노드 관리자(309)는 부스터 모듈(304) 또는 클러스터 모듈(302)의 경우에 노드에 프로세스를 생성하거나 저장 모듈(306)의 경우에 저장을 할당한다. 프로세스는 모니터링되고 종속 프로세스가 그룹으로서 처리되어, 병렬 작업 중 임의의 하나에서 발생하는 오류에 신속하게 대응할 수 있다. 이는 프로세스가 즉시 재시작되어 실행중인 응용 프로그램에 대한 전체적인 지연이 최소화되게 한다.
리소스 관리는 노드 관리자(309)가 모듈식 컴퓨팅 시스템(300)에서 구현하는 또 다른 작업이다. 리소스 관리의 일부로서, 그들은 오프로드 메커니즘, 즉 프로세스를 실현한다. 클러스터 모듈(302)상에서 실행되는 부스터 노드(320)는 부스터 모듈(304)로부터의 부스터 노드(320)를 필요로 할 수 있다. 이러한 경우, 노드 관리자(309)는 병렬로 작업을 실행하기 위해 선택된 부스터 노드(320) 상에서 프로세스를 생성한다.
오프로드의 일부로서, 하나의 부스터 상에서 실행되는 하나의 프로세스가 생성될 수 있지만, 호스트 프로세서가 간섭하지 않고 모듈 통신 패브릭을 사용하여 서로 직접 통신하는 다수의 프로세스가 생성될 수 있다.
리소스 관리는 또한 서로 다른 프로세스들 간의 접속 수를 감소시킴으로써 메모리 소비를 감소시킨다. 필요한 경우, 이것은 실제로 확립되는 주문형 접속만을 사용하여 수행된다. 이것은 접속당 메모리 소비를 크게 감소시킨다. 따라서, 노드와 같은 리소스가 가상 방식으로 처리될 뿐만 아니라, 가상 할당이 또한 물리적 네트워크에도 적용된다.
리소스를 할당할 때, 관리자(309)는 하나의 프로세스에 의한 요청 뿐만 아니라, 다른 프로세스의 요청도 고려한다. 이는 통합 제어를 기반으로 통신 인프라의 변화에 유연하게 대응할 수 있게 한다.
통합 제어는 노드 관리자(309)에 의해 제공되는 또 다른 기능적 측면이다. 통합 제어는 통신을 제어하기 위한 관리 기능으로부터 MCAL에 의해 수집된 정보의 사용, 또는 그 반대를 의미한다. 따라서 통신 기능과 관리 기능은 분리되지 않고 통합되어 전체 시스템 성능을 더욱 최적화한다.
모든 모듈에서 모든 노드의 모든 다른 측면에 대한 노드 관리자의 지식과 모든 상호접속, 모듈내 통신 및 모듈간 통신의 상태가 시스템을 실행하는 데 사용된다. 이를 통해 시스템의 변화하는 행동뿐만 아니라 시스템에서 실행되는 응용 프로그램의 변화하는 요구에 동적으로 적응할 수 있다.
통합 제어는 실제 시스템 상태 및 응용 프로그램 요구사항를 고려할 뿐만 아니라, 다가오는 모듈 또는 상호접속 사용의 필요조건을 예측한다. 시스템 상태의 정보는 노드의 동적 할당에 사용된다.이것은 리소스의 할당이 할당 결정에 광범위한 영향을 갖는 피드백 루프 등록 시스템을 사용하여 수행되는 것을 포함하며, 그에 따라 미래의 할당이 그에 따라 조정된다. 또한 시스템은 이러한 정보를 저장하여 향후 사례에 대한 할당 결정을 스스로 학습하는 방식으로 개선한다.
응용 프로그램의 주요 부분이 클러스터 모듈(302) 상에서 정상적으로 시작되더라도, 노드 관리자는 응용 프로그램의 어느 부분이 클러스터 모듈(302) 또는 부스터 모듈(304) 상에서 실행되는지를 식별한다. 결정의 근거는 예를 들어 실행중에 코드 수행 관찰의 응용 프로그램 코드 자체에 의한 표시이다. 이는 응용 프로그램을 계산하는 동안 할당을 조정할 수 있다.
노드 관리자(309)는 예를 들어 개별 노드에서 실행중인 데몬 프로세스로서 하드웨어 또는 소프트웨어로 구현될 수 있다. 노드 관리자(309)는 모듈 및 전체 시스템에 대한 전역 보기를 구축하기 위해 지속적으로 정보를 수집한다. 시스템에서 실행중인 응용 프로그램은 관리 기능과의 통신 또는 개별 노드 관리자(309)와의 직접 통신을 통해 이러한 정보를 사용할 수 있다. 이는 하드웨어 또는 API(응용 프로그래밍 인터페이스)일 수 있는 특정 인터페이스에 의해 구현된다.
노드 관리자의 통신 트래픽은 모듈내 및 모듈간 통신과 엄격하게 구분된다. 이를 통해 모듈내 및 모듈간 통신은 관리 기능에 의해 중단 없이 고속으로 실행된다. 또한 이러한 분리를 통해 시스템 보안이 더욱 강화될 수 있다.
실제 통신 네트워크의 사용은 메시지 전달 인터페이스(MPS)를 통해 응용 프로그램에 그러한 기능을 제공하는 노드 관리자(309)에 의해 제어된다. 노드 관리자(309)는 관리 네트워크(도시되지 않음)를 사용한다. 관리 네트워크(도시되지 않음)는 모듈내 및 모듈간 통신에 사용되는 물리적 네트워크와 동일하거나 서로 다른 물리적 네트워크일 수 있다. 예를 들어, 모듈내 및 모듈간 통신은 InfiniBand, Myrinet 등일 수 있고 관리 네트워크(도시되지 않음)는 노드 관리자(309)를 접속시키는 이더넷에 의해 형성될 수 있다.
시스템을 실행하기 위한 관리 작업 또는 제어 기능을 가능하게 하는 프론트 엔드를 제공하기 위한 특수 노드가 시스템에 포함될 수 있다. 프론트 엔드(350)는 통신 네트워크에 접속될 필요가 없으며, 통신 네트워크에만 접속된다. 예를 들어 워크 스테이션 컴퓨터, 개인 컴퓨터(PC), 랩탑 컴퓨터 또는 임의의 스마트 컴퓨팅 장치에 의해 형성될 수 있는 프론트 엔드(350) 노드를 통해 모듈식 컴퓨팅 시스템(300)이 관리될 수 있다. 모듈식 컴퓨팅 시스템(300) 상에서 실행중인 응용 프로그램은 스케줄링, 시작, 중지 및 모니터링될 수 있다. 이는 일괄 처리에 의해서 수행될 수 있으며, 즉 수동 개입 없이, 따라서 상호작용 없이 모듈식 컴퓨팅 시스템(300) 상에서 일련의 작업을 실행함으로써 수행될 수 있다.
수동 개입 없이 모듈식 컴퓨팅 시스템(300) 상에서 일련의 작업을 수행하는 것 외에도, 노드 관리자는 모듈식 컴퓨팅 시스템(300) 상에서 실행중인 응용 프로그램이 실행될 때 사람의 입력을 수용하는 상호작용 컴퓨팅을 제공할 수 있다. 이러한 입력은 워크 스테이션 컴퓨터, 개인 컴퓨터(PC), 랩톱 컴퓨터 또는 임의의 스마트 컴퓨팅 장치를 통해 제공될 수 있다. 그러한 시나리오에서 모듈식 컴퓨팅 시스템(300)은, 예를 들어 랩톱 컴퓨터를 통해 접근가능하며, 랩탑 컴퓨터는 모듈식 컴퓨팅 시스템(300)의 계산 능력을 가질 것이다. 이는 사용자가 즉각적인 또는 현재 감지하는 시간 프레임 내에 응답해야만 하는 실시간 응용 프로그램에서 매우 유용한다. 또한 정보를 마이닝하기 위해 접근가능한 광대한 양의 구조화된 정보를 만드는 빅데이터 응용 프로그램, 반구조화된 정보 및 구조화되지 않은 정보 또한 이러한 배치를 사용할 수 있다. 이것은 계산 능력 및 저장의 제공을 위한 기본 리소스로서 모듈식 컴퓨팅 시스템(300)을 갖는 클라우드 컴퓨팅 서비스에도 해당된다.
Claims (11)
- 각각이 복수의 노드를 포함하는 서로 다른 모듈들을 포함하는 응용 프로그램 프로그램의 계산을 수행하기 위한 모듈식 컴퓨팅 시스템으로서,
상기 모듈식 컴퓨팅 시스템은 노드들에 걸쳐 분산되어 서로 다른 모듈들의 노드에 대해 모듈내 및 모듈간 통신 그리고 관리 기능을 제공하는 모듈식 컴퓨팅 추상화 계층을 더 포함하는, 모듈식 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 서로 다른 모듈들은 적어도 클러스터 모듈, 부스터 모듈 및 저장 모듈에 의해 형성되는 것으로 특징지어지는, 모듈식 컴퓨팅 시스템. - 제 1 항 또는 제 2 항에 있어서,
상기 모듈식 컴퓨팅 추상화 계층은 노드에 제공된 노드 관리자에 의해 구현되는 것으로 특징지어지는, 모듈식 컴퓨팅 시스템. - 제 3 항에 있어서,
상기 노드 관리자는 관리 네트워크를 통해 서로 통신하는 것으로 특징지어지는, 모듈식 컴퓨팅 시스템.
- 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
상기 복수의 노드는 통신 네트워크를 통해 통신하는 것으로 특징지어지는, 모듈식 컴퓨팅 시스템. - 제 5 항에 있어서,
상기 통신 네트워크는 공유 메모리 통신을 이용하여 구현되는 것으로 특징지어지는, 모듈식 컴퓨팅 시스템. - 제 3 항에 있어서,
노드 관리자들 간의 통신은 모듈들 간의 통신과 분리되는, 모듈식 컴퓨팅 시스템. - 제 3 항에 있어서,
상기 노드 관리자는 각 노드의 상태에 관한 정보의 세트를 각각 유지하도록 정보를 교환하며 각각이 노드들 사이에서 상호접속시키는, 모듈식 컴퓨팅 시스템. - 제 8 항에 있어서,
상기 정보의 세트는 상기 정보의 세트에 따라 노드에 리소스를 할당함으로써 상기 시스템의 동작을 동적으로 조정하도록 사용되는, 모듈식 컴퓨팅 시스템. - 서로 다른 모듈들을 포함하는 응용 프로그램 프로그램의 계산을 수행하기 위한 모듈식 컴퓨팅 시스템을 관리하는 방법으로서,
각각의 모듈은 복수의 노드를 가지고 상기 모듈식 컴퓨팅 시스템은 노드들에 걸쳐 분산된 모듈식 컴퓨팅 추상화 계층을 가지며,
상기 모듈식 컴퓨팅 추상화 계층을 이용하여 서로 다른 모듈들의 노드에 대해 모듈내 및 모듈간 통신 그리고 관리 기능을 제공하는 단계를 포함하는, 모듈식 컴퓨팅 시스템의 관리 방법. - 제 10 항에 있어서,
노드 관리자를 더 포함하고, 상기 노드 관리자가 노드의 상태에 관한 정보를 수집하고 상기 수집된 상태 정보에 따라 노드에 리소스를 할당하는 단계를 더 포함하는, 모듈식 컴퓨팅 시스템의 관리 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020217036512A KR102464616B1 (ko) | 2016-10-05 | 2017-10-05 | 고성능 컴퓨팅 시스템 및 방법 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16192430 | 2016-10-05 | ||
EP16192430.3 | 2016-10-05 | ||
PCT/EP2017/075375 WO2018065530A1 (en) | 2016-10-05 | 2017-10-05 | High performance computing system and method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217036512A Division KR102464616B1 (ko) | 2016-10-05 | 2017-10-05 | 고성능 컴퓨팅 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190058619A true KR20190058619A (ko) | 2019-05-29 |
KR102326474B1 KR102326474B1 (ko) | 2021-11-15 |
Family
ID=57083209
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197012927A KR102326474B1 (ko) | 2016-10-05 | 2017-10-05 | 고성능 컴퓨팅 시스템 및 방법 |
KR1020217036512A KR102464616B1 (ko) | 2016-10-05 | 2017-10-05 | 고성능 컴퓨팅 시스템 및 방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217036512A KR102464616B1 (ko) | 2016-10-05 | 2017-10-05 | 고성능 컴퓨팅 시스템 및 방법 |
Country Status (18)
Country | Link |
---|---|
US (1) | US11494245B2 (ko) |
EP (2) | EP3523723B8 (ko) |
JP (2) | JP7066694B2 (ko) |
KR (2) | KR102326474B1 (ko) |
CN (1) | CN109791509B (ko) |
CA (1) | CA3035459C (ko) |
CY (1) | CY1124626T1 (ko) |
DK (1) | DK3523723T3 (ko) |
ES (1) | ES2886491T3 (ko) |
HR (1) | HRP20211436T1 (ko) |
HU (1) | HUE056042T2 (ko) |
LT (1) | LT3523723T (ko) |
PL (1) | PL3523723T3 (ko) |
PT (1) | PT3523723T (ko) |
RS (1) | RS62402B1 (ko) |
RU (1) | RU2733058C1 (ko) |
SI (1) | SI3523723T1 (ko) |
WO (1) | WO2018065530A1 (ko) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102231357B1 (ko) | 2019-11-04 | 2021-03-24 | 주식회사 이노그리드 | 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 소프트웨어 정의 서버 배포 스케줄링 방법 |
KR102231358B1 (ko) | 2019-11-04 | 2021-03-24 | 주식회사 이노그리드 | 고성능 클라우드 서비스를 위한 단일 가상화 방법 시스템 |
KR102231359B1 (ko) | 2019-11-04 | 2021-03-24 | 주식회사 이노그리드 | 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 프로세스 스케줄링 방법 |
KR102378817B1 (ko) | 2020-09-25 | 2022-03-29 | 주식회사 이노그리드 | 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스의 네트워크 격리를 위한 동적 클러스터 구성 방법 및 시스템 |
KR20220041577A (ko) | 2020-09-25 | 2022-04-01 | 주식회사 이노그리드 | 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 프로세스 그룹 관리 방법 및 그 시스템 |
KR20220041576A (ko) | 2020-09-25 | 2022-04-01 | 주식회사 이노그리드 | 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 전력효율을 위한 로드 밸런싱 방법 및 그 시스템 |
KR20220041575A (ko) | 2020-09-25 | 2022-04-01 | 주식회사 이노그리드 | 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스를 제공하는 단일 가상화 시스템을 위한 소프트웨어 정의 서버 배포 스케줄링 방법 및 그 시스템 |
KR20230025152A (ko) | 2021-08-13 | 2023-02-21 | 주식회사 이노그리드 | 메타버스를 위한 고성능 클라우드 서비스 시스템 및 방법 |
KR20230068055A (ko) | 2021-11-10 | 2023-05-17 | 주식회사 이노그리드 | Arm 프로세서 컴퓨팅 노드 기반의 보드형 고성능 클라우드 시스템 및 운영방법 |
KR20230068054A (ko) | 2021-11-10 | 2023-05-17 | 주식회사 이노그리드 | 단일 포트를 이용한 다중 서브넷에 대한 외부 트래픽 모니터링을 수행하는 hpc 시스템 및 방법 |
KR20230068477A (ko) | 2021-11-10 | 2023-05-18 | 주식회사 이노그리드 | 보드형 컴퓨팅 노드들을 이용한 고성능 클라우드 분리 운영 방법 및 그 시스템 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
PL3743812T3 (pl) | 2018-01-23 | 2024-01-22 | Partec Ag | Dynamiczna alokacja heterogenicznych zasobów obliczeniowych określona przez czas wykonywania aplikacji |
US11315013B2 (en) * | 2018-04-23 | 2022-04-26 | EMC IP Holding Company LLC | Implementing parameter server in networking infrastructure for high-performance computing |
WO2020184982A1 (ko) * | 2019-03-11 | 2020-09-17 | 서울대학교산학협력단 | 이종클러스터 시스템에서 실행되는 프로그램을 실행시키는 방법 및 컴퓨터 프로그램 |
KR102338729B1 (ko) * | 2019-03-11 | 2021-12-14 | 서울대학교산학협력단 | 이종클러스터 시스템에서 실행되는 프로그램을 실행시키는 방법 및 컴퓨터 프로그램 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020049845A1 (en) * | 2000-03-16 | 2002-04-25 | Padmanabhan Sreenivasan | Maintaining membership in high availability systems |
JP2008159068A (ja) * | 2001-12-20 | 2008-07-10 | Microsoft Corp | 分散アプリケーションのスケーリングおよび配信 |
US20130124597A1 (en) * | 2011-08-11 | 2013-05-16 | Huawei Technologies Co., Ltd. | Node aggregation system for implementing symmetric multi-processing system |
KR20130088512A (ko) * | 2012-01-31 | 2013-08-08 | 한국전자통신연구원 | 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법 |
KR20140018187A (ko) * | 2010-10-13 | 2014-02-12 | 파르텍 클러스터 컴피턴스 센터 게엠베하 | 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법 |
US20140156862A1 (en) * | 2012-12-04 | 2014-06-05 | International Business Machines Corporation | Clustering Support Across Geographical Boundaries |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058858B2 (en) * | 2001-04-23 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Systems and methods for providing automated diagnostic services for a cluster computer system |
WO2004081762A2 (en) * | 2003-03-12 | 2004-09-23 | Lammina Systems Corporation | Method and apparatus for executing applications on a distributed computer system |
US7516221B2 (en) * | 2003-08-14 | 2009-04-07 | Oracle International Corporation | Hierarchical management of the dynamic allocation of resources in a multi-node system |
US20050080982A1 (en) * | 2003-08-20 | 2005-04-14 | Vasilevsky Alexander D. | Virtual host bus adapter and method |
US7711977B2 (en) * | 2004-04-15 | 2010-05-04 | Raytheon Company | System and method for detecting and managing HPC node failure |
US9178784B2 (en) * | 2004-04-15 | 2015-11-03 | Raytheon Company | System and method for cluster management based on HPC architecture |
US7685319B2 (en) * | 2004-09-28 | 2010-03-23 | Cray Canada Corporation | Low latency communication via memory windows |
EP1715405A1 (en) * | 2005-04-19 | 2006-10-25 | STMicroelectronics S.r.l. | Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment |
US7819345B2 (en) * | 2007-09-17 | 2010-10-26 | Shoap Stephen D | Method and system for fluid transmission along significant distances |
US9163618B2 (en) * | 2008-06-24 | 2015-10-20 | Agilent Technologies, Inc. | Automated conversion between SFC and HPLC |
US8869160B2 (en) | 2009-12-24 | 2014-10-21 | International Business Machines Corporation | Goal oriented performance management of workload utilizing accelerators |
JP5276632B2 (ja) | 2010-08-25 | 2013-08-28 | 日本電信電話株式会社 | クラスタシステムおよびソフトウェアデプロイ方法 |
US9203900B2 (en) * | 2011-09-23 | 2015-12-01 | Netapp, Inc. | Storage area network attached clustered storage system |
JP5884578B2 (ja) | 2012-03-16 | 2016-03-15 | 富士通株式会社 | アクセラレータ管理装置、アクセラレータ管理方法および入出力装置 |
US9298490B2 (en) | 2012-12-20 | 2016-03-29 | Vmware, Inc. | Managing a data structure for allocating graphics processing unit resources to virtual machines |
CN103207814B (zh) * | 2012-12-27 | 2016-10-19 | 北京仿真中心 | 一种去中心化的跨集群资源管理与任务调度***与调度方法 |
EP3031268B1 (en) * | 2013-08-09 | 2023-10-04 | Telefonaktiebolaget LM Ericsson (publ) | Resource allocation for mobile terminal configured for dual connectivity |
EP2960791A1 (en) * | 2014-06-27 | 2015-12-30 | Fujitsu Limited | Method of executing an application on a distributed computer system, a resource manager and a distributed computer system |
US9521089B2 (en) * | 2014-08-30 | 2016-12-13 | International Business Machines Corporation | Multi-layer QoS management in a distributed computing environment |
US10409810B2 (en) * | 2015-05-08 | 2019-09-10 | International Business Machines Corporation | Generating multilingual queries |
-
2017
- 2017-10-05 CA CA3035459A patent/CA3035459C/en active Active
- 2017-10-05 KR KR1020197012927A patent/KR102326474B1/ko active IP Right Grant
- 2017-10-05 ES ES17777304T patent/ES2886491T3/es active Active
- 2017-10-05 US US16/335,485 patent/US11494245B2/en active Active
- 2017-10-05 CN CN201780060432.3A patent/CN109791509B/zh active Active
- 2017-10-05 KR KR1020217036512A patent/KR102464616B1/ko active IP Right Grant
- 2017-10-05 HU HUE17777304A patent/HUE056042T2/hu unknown
- 2017-10-05 WO PCT/EP2017/075375 patent/WO2018065530A1/en unknown
- 2017-10-05 RU RU2019112299A patent/RU2733058C1/ru active
- 2017-10-05 DK DK17777304.1T patent/DK3523723T3/da active
- 2017-10-05 EP EP17777304.1A patent/EP3523723B8/en active Active
- 2017-10-05 JP JP2019518274A patent/JP7066694B2/ja active Active
- 2017-10-05 SI SI201730912T patent/SI3523723T1/sl unknown
- 2017-10-05 PL PL17777304T patent/PL3523723T3/pl unknown
- 2017-10-05 LT LTEPPCT/EP2017/075375T patent/LT3523723T/lt unknown
- 2017-10-05 EP EP21179407.8A patent/EP3944084A1/en active Pending
- 2017-10-05 PT PT177773041T patent/PT3523723T/pt unknown
- 2017-10-05 RS RS20211127A patent/RS62402B1/sr unknown
-
2021
- 2021-09-14 CY CY20211100810T patent/CY1124626T1/el unknown
- 2021-09-15 HR HRP20211436TT patent/HRP20211436T1/hr unknown
-
2022
- 2022-01-06 JP JP2022001010A patent/JP7405876B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020049845A1 (en) * | 2000-03-16 | 2002-04-25 | Padmanabhan Sreenivasan | Maintaining membership in high availability systems |
JP2008159068A (ja) * | 2001-12-20 | 2008-07-10 | Microsoft Corp | 分散アプリケーションのスケーリングおよび配信 |
KR20140018187A (ko) * | 2010-10-13 | 2014-02-12 | 파르텍 클러스터 컴피턴스 센터 게엠베하 | 계산 작업을 처리하기 위한 컴퓨터 클러스터 장치 및 이를 작동시키기 위한 방법 |
US20130124597A1 (en) * | 2011-08-11 | 2013-05-16 | Huawei Technologies Co., Ltd. | Node aggregation system for implementing symmetric multi-processing system |
KR20130088512A (ko) * | 2012-01-31 | 2013-08-08 | 한국전자통신연구원 | 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법 |
US20140156862A1 (en) * | 2012-12-04 | 2014-06-05 | International Business Machines Corporation | Clustering Support Across Geographical Boundaries |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102231357B1 (ko) | 2019-11-04 | 2021-03-24 | 주식회사 이노그리드 | 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 소프트웨어 정의 서버 배포 스케줄링 방법 |
KR102231358B1 (ko) | 2019-11-04 | 2021-03-24 | 주식회사 이노그리드 | 고성능 클라우드 서비스를 위한 단일 가상화 방법 시스템 |
KR102231359B1 (ko) | 2019-11-04 | 2021-03-24 | 주식회사 이노그리드 | 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 프로세스 스케줄링 방법 |
KR102378817B1 (ko) | 2020-09-25 | 2022-03-29 | 주식회사 이노그리드 | 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스의 네트워크 격리를 위한 동적 클러스터 구성 방법 및 시스템 |
KR20220041577A (ko) | 2020-09-25 | 2022-04-01 | 주식회사 이노그리드 | 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 프로세스 그룹 관리 방법 및 그 시스템 |
KR20220041576A (ko) | 2020-09-25 | 2022-04-01 | 주식회사 이노그리드 | 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스 시스템에서의 전력효율을 위한 로드 밸런싱 방법 및 그 시스템 |
KR20220041575A (ko) | 2020-09-25 | 2022-04-01 | 주식회사 이노그리드 | 복수의 컴퓨팅 노드를 이용한 고성능 클라우드 서비스를 제공하는 단일 가상화 시스템을 위한 소프트웨어 정의 서버 배포 스케줄링 방법 및 그 시스템 |
KR20230025152A (ko) | 2021-08-13 | 2023-02-21 | 주식회사 이노그리드 | 메타버스를 위한 고성능 클라우드 서비스 시스템 및 방법 |
KR20230068055A (ko) | 2021-11-10 | 2023-05-17 | 주식회사 이노그리드 | Arm 프로세서 컴퓨팅 노드 기반의 보드형 고성능 클라우드 시스템 및 운영방법 |
KR20230068054A (ko) | 2021-11-10 | 2023-05-17 | 주식회사 이노그리드 | 단일 포트를 이용한 다중 서브넷에 대한 외부 트래픽 모니터링을 수행하는 hpc 시스템 및 방법 |
KR20230068477A (ko) | 2021-11-10 | 2023-05-18 | 주식회사 이노그리드 | 보드형 컴퓨팅 노드들을 이용한 고성능 클라우드 분리 운영 방법 및 그 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20190243694A1 (en) | 2019-08-08 |
CN109791509B (zh) | 2023-11-28 |
EP3523723B8 (en) | 2021-07-28 |
CA3035459A1 (en) | 2018-04-12 |
SI3523723T1 (sl) | 2021-11-30 |
PL3523723T3 (pl) | 2021-12-20 |
DK3523723T3 (da) | 2021-09-20 |
CA3035459C (en) | 2023-02-21 |
RS62402B1 (sr) | 2021-10-29 |
EP3944084A1 (en) | 2022-01-26 |
RU2733058C1 (ru) | 2020-09-29 |
EP3523723B1 (en) | 2021-06-16 |
HRP20211436T1 (hr) | 2021-12-10 |
HUE056042T2 (hu) | 2022-01-28 |
JP7066694B2 (ja) | 2022-05-13 |
CN109791509A (zh) | 2019-05-21 |
KR102326474B1 (ko) | 2021-11-15 |
CY1124626T1 (el) | 2022-07-22 |
JP2022050541A (ja) | 2022-03-30 |
LT3523723T (lt) | 2021-10-11 |
JP7405876B2 (ja) | 2023-12-26 |
KR20210136179A (ko) | 2021-11-16 |
KR102464616B1 (ko) | 2022-11-09 |
ES2886491T3 (es) | 2021-12-20 |
PT3523723T (pt) | 2021-09-20 |
WO2018065530A1 (en) | 2018-04-12 |
EP3523723A1 (en) | 2019-08-14 |
US11494245B2 (en) | 2022-11-08 |
JP2019533249A (ja) | 2019-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102464616B1 (ko) | 고성능 컴퓨팅 시스템 및 방법 | |
US11934883B2 (en) | Computer cluster arrangement for processing a computation task and method for operation thereof | |
US11455187B2 (en) | Computing system for hierarchical task scheduling | |
Zanella et al. | A Hierarchical Approach for Resource Management in Heterogeneous Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |