KR20140093595A - 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템 - Google Patents

클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템 Download PDF

Info

Publication number
KR20140093595A
KR20140093595A KR1020130168079A KR20130168079A KR20140093595A KR 20140093595 A KR20140093595 A KR 20140093595A KR 1020130168079 A KR1020130168079 A KR 1020130168079A KR 20130168079 A KR20130168079 A KR 20130168079A KR 20140093595 A KR20140093595 A KR 20140093595A
Authority
KR
South Korea
Prior art keywords
workload
nodes
node
computing device
distributing
Prior art date
Application number
KR1020130168079A
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 KR20140093595A publication Critical patent/KR20140093595A/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템에 관한 것으로서, 본 발명의 일 실시예에 따르는, 각 노드가 하나 이상의 계산 디바이스를 포함하는 복수 개의 노드를 포함하는 클러스터 시스템의 계산 디바이스 가상화 방법은, OpenCL 어플리케이션을 적어도 하나의 노드에서 실행하는 단계; 상기 OpenCL 어플리케이션 실행에 따르는 워크로드를 상기 복수 개의 노드로 분배하는 단계; 및 상기 각 노드 내에서, 상기 분배된 워크로드를 상기 각 노드에 포함된 하나 이상의 계산 디바이스로 분배하여, 계산 디바이스를 가상화하는 단계;를 포함하는 것을 특징으로 한다. 이에 따라, 본 발명의 일 실시예는 하나의 노드를 타킷으로 하는 OpenCL 어플리케이션을 소스코드의 수정없이 자동으로 동종 매니코어 클러스터 환경에서 동작시킬 수 있다.

Description

클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템{METHOD AND SYSTEM FOR VIRTUALIZING COMPUTE DEVICES IN CLUSTER SYSTEMS}
본 발명은 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템에 관한 것으로, 보다 상세하게는 병렬 컴퓨팅 프레임워크를 기반으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템에 관한 것이다.
최근 들어, 일반적인 데스크톱에도 고성능 컴퓨팅을 위한 쿼드 혹은 헥사 코어 CPU (Central Processing Unit)가 장착되어 있다. 또한, 그래픽 처리 뿐만 아니라 일반적인 계산까지 가능한 GPU (Graphic Processing Unit)도 CUDA (Computer Unified Device Architecture)나 OpenCL (Open Computing Language)을 이용하여 고성능 컴퓨팅을 처리할 수 있게 되었다. 이와 같이 하드웨어를 고성능 컴퓨팅에 이용하고자 한다면, 그에 따른 병렬 프로그래밍 모델을 사용하여야 한다. OpenCL은 대표적인 병렬 프로그래밍 모델로서 최근 들어 각광받고 있다.
OpenCL은 개방형 범용 병렬 컴퓨팅 프레임워크로서, 다중 플랫폼(예를 들어, 복수 개의 CPU, GPU 등)에서 동작하는 프로그램 등을 작성할 수 있게 한다. OpenCL은 커널 코드를 작성하기 위한 C99 기반의 언어인 OpenCL C와 플랫폼을 정의하고 제어하기 위한 API를 포함하고 있다. OpenCL은 다수의 소프트웨어 업체들의 참여에 의해 3차원 컴퓨터 그래픽스 및 컴퓨터 오디오에 대한 산업계의 개방형 표준으로 발표되어 현재 널리 이용되고 있다. 이러한 OpenCL은 그래픽 처리 장치(GPU)의 역량을 그래픽 처리 이외의 영역(범용 GPU)으로 확장할 수 있도록 한다. 예를 들어, 비디오를 분석하고 렌더링하기 위하여 또 다른 프로세서인 비디오 카드의 GPU가 사용되도록 함으로써, 즉각적인 색 보정이 수행되거나 흔들리는 영상의 안정이 이루어질 수도 있다. 이러한 OpenCL은 다양한 하드웨어 제조업체에서 제조한 각각의 하드웨어에서 동작 가능하므로, 많은 제조업체는 OpenCL을 기반으로 하여 자신의 하드웨어에 맞는 프레임워크를 제작하고 있다.
한편, 공개특허공보 제10-2009-0063122호 (공개일 : 2009.6.17)에 기재되어 있는 바와 같이, 시스템의 워크로드를 관리하는 것은 시스템의 부하를 줄이고 프로세스 속도를 향상시키기 위한 중요한 방법이다.
다만, 제작된 OpenCL 어플리케이션은 하나의 노드에만 적용 가능하므로, 상기 OpenCL 어플리케이션을 클러스터 환경으로 확장하여 워크로드를 분배하고자 한다면 전체 일을 디바이스 별로 나누고, 디바이스 간 통신 및 노드 간 통신을 위한 MPI(Message Passing Interface)를 상기 OpenCL 어플리케이션에 추가하여야 한다. 병렬 프로그래밍의 특성상 OpenCL 어플리케이션에 MPI를 추가하는 것은 코딩의 복잡도를 향상시키며 결과적으로 프로그램 생산성을 떨어뜨리고, OpenCL의 활용도를 떨어뜨리는 문제점이 있다.
따라서 상술된 문제점을 해결하기 위한 기술이 필요하게 되었다.
본 발명의 일실시예는 한 개의 계산 디바이스를 위해 작성된 OpenCL 어플리케이션을, 소스 수정 없이 다수 개의 계산 디바이스로 구성된 클러스터에서 동작시키는 데에 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따르는 클러스터 시스템의 계산 디바이스 가상화 방법은, 각 노드가 하나 이상의 계산 디바이스를 포함하는 복수 개의 노드를 포함하는 클러스터 시스템의 계산 디바이스 가상화 방법에 있어서, OpenCL 어플리케이션을 적어도 하나의 노드에서 실행하는 단계; 상기 OpenCL 어플리케이션 실행에 따르는 워크로드를 상기 복수 개의 노드로 분배하는 단계; 및 상기 각 노드 내에서, 상기 분배된 워크로드를 상기 각 노드에 포함된 하나 이상의 계산 디바이스로 분배하는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 워크로드를 상기 복수 개의 노드로 분배하는 단계는 각 노드에 균등한 양의 워크로드를 분배하는 것을 특징으로 하며, 상기 하나 이상의 계산 디바이스로 분배하는 단계는 각 노드 내의 각 계산 디바이스에 균등한 양의 워크로드를 분배하는 것을 특징으로 한다.
또한, 상기 워크로드를 상기 복수 개의 노드로 분배하는 단계와 상기 하나 이상의 계산 디바이스로 분배하는 단계는, 상기 워크로드의 분배시 각 노드 간의 통신 또는 각 계산 디바이스 간의 통신이 최소화되도록 분배되는 것을 특징으로 한다.
또한, 상기 워크로드를 상기 복수 개의 노드로 분배하는 단계와 상기 하나 이상의 계산 디바이스로 분배하는 단계는, 각 노드 간의 통신 또는 각 계산 디바이스 간의 통신이 최소화되도록 컴파일러를 실행하는 것을 특징으로 한다.
또한, 상기 클러스터 시스템은 동종의 매니코어 클러스터 시스템인 것을 특징으로 한다.
또한, 상기 계산 디바이스는 그래픽 처리 기능을 포함하는 것을 특징으로 한다.
또한, 상기 계산 디바이스는 CPU, GPU 또는 OpenCL을 지원하는 모든 디바이스인 것을 특징으로 한다.
한편, 본 발명의 제 2 측면에 따르는 클러스터 시스템은, 각각이 하나 이상의 계산 디바이스를 포함하며, OpenCL 어플리케이션을 실행할 수 있는 복수 개의 노드;를 포함하는 클러스터 시스템에 있어서, 상기 복수 개의 노드 중 적어도 하나의 노드에서 실행된 OpenCL 어플리케이션에 의한 워크로드는 상기 복수 개의 노드로 분배되고, 상기 각 노드 내의 분배된 워크로드는 상기 각 노드에 포함된 하나 이상의 계산 디바이스로 분배되는 것을 특징으로 한다.
또한, 상기 워크로드는 상기 복수 개의 노드에 균등하게 분배되며, 상기 각 노드에 분배된 워크로드는 각 계산 디바이스에 균등하게 분배되는 것을 특징으로 한다.
또한, 상기 워크로드는 각 노드 간의 통신 또는 각 계산 디바이스 간의 통신이 최소화되도록 분배되는 것을 특징으로 한다.
또한, 각 노드 간의 통신 또는 각 계산 디바이스 간의 통신이 최소화되도록 상기 워크로드를 분배하는 컴파일러를 추가로 포함하는 것을 특징으로 한다.
또한, 상기 클러스터 시스템은 동종의 매니코어 클러스터 시스템인 것을 특징으로 한다.
또한, 상기 계산 디바이스는 그래픽 처리 기능을 포함하는 것을 특징으로 한다.
또한, 상기 계산 디바이스는 CPU, GPU 또는 OpenCL을 지원하는 모든 디바이스 인 것을 특징으로 한다.
한편, 본 발명의 제 3측면에 따르는 클러스터 시스템의 계산 디바이스 가상화 방법은 각 노드가 하나 이상의 계산 디바이스를 포함하는 복수 개의 노드를 포함하는 클러스터 시스템의 계산 디바이스 가상화 방법에 있어서, OpenCL 어플리케이션을 호스트 노드에서 실행하는 단계; 상기 OpenCL 어플리케이션 실행에 따르는 OpenCL 커널의 워크로드를 상기 복수 개의 노드로 분배하는 단계; 및 상기 각 노드 내에서, 상기 분배된 워크로드를 상기 각 노드에 포함된 하나 이상의 계산 디바이스로 분배하는 단계;를 포함하는 것을 특징으로 한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 본 발명의 일실시예는 한 개의 계산 디바이스를 위해 작성된 OpenCL 어플리케이션을, 소스 수정 없이 다수 개의 계산 디바이스로 구성된 클러스터에서 동작시킬 수 있다. 이로 인해 동종 매니코어 클러스터 환경을 용이하게 프로그래밍할 수 있고 이는 고성능 컴퓨팅을 제공할 수 있는 효과를 갖는다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일실시예에 따른 클러스터 시스템 구성도이다.
도 2는 본 발명의 일실시예에 따른 클러스터 시스템에서의 일 노드를 도시한 블록도이다.
도 3a 내지 도 3c는 본 발명의 일실시예에 따른 계산 디바이스 가상화 방법을 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시예에 따르는 계산 디바이스 가상화 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 클러스터 시스템 구성도이다.
클러스터 시스템(100)은, 동종 매니코어 클러스터 환경을 제공할 수 있는 시스템으로서, OpenCL 어플리케이션을 실행시킬 수 있다.
이와 같은 클러스터 시스템(100)은, 네트워크(10) 및 하나 이상의 노드(20)를 포함할 수 있다.
네트워크(10)는 인피니밴드 또는 이더넷 등과 같은 상호 접속 네트워크로 구현될 수 있다. 또한, 네트워크(10)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 개인 근거리 무선통신(Personal Area Network; PAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet), Mobile WiMAX, HSDPA(High Speed Downlink Packet Access) 또는 위성 통신망 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다. 이러한 네트워크(10)를 통해 하나 이상의 노드(20)는 OpenCL 어플리케이션의 동작을 위한 통신을 수행할 수 있다.
노드(20)는 데이터통신 시스템(또는 네트워크)에서 정보처리기능 및 통신 기능을 수행하는 장치로서, 노드는 데이터의 송신원, 수신처 또는 중계점 중 어느 하나에 해당한다. 노드(20)는 컴퓨터, 원격처리장치, 단말 장치 등 으로 구성될 수 있다.
도 2는 본 발명의 일실시예에 따른 클러스터 시스템에서의 일 노드를 도시한 블록도이다.
노드(20)는 하나 이상의 계산 디바이스(210)를 포함할 수 있으며, 하나 이상의 계산 디바이스를 이용하여 OpenCL 어플리케이션의 워크로드를 처리할 수 있다.
이때 계산 디바이스(210)는 그래픽 처리도 가능하며 그래픽 처리 이외에도 일반적인 계산이 가능할 수 있으며, 계산 디바이스(210)는 예를 들어, CPU(Central Processing Unit), GPU(Graphics Processing Unit) 등 일 수 있다. 관련하여 본 발명에서의 계산 디바이스(210)는 메인 메모리(220)와 통신하기 위한 인터페이스를 포함할 수 있다. 예를 들어, 디바이스가 GPU인 경우, GPU와 메인 메모리간의 통신을 위한 PCI-E(Peripheral component interconnect-Express) 또한 계산 디바이스의 일 구성요소로 포함할 수 있다.
상술된 바와 같은 하나 이상의 노드(20)를 포함하는 클러스터 시스템(100)은, 시스템을 구성하는 모든 노드에서 OpenCL 어플리케이션을 실행시킬 수 있으며, 특히 어플리케이션의 실행에 따른 워크로드를 각 노드 별로 균등하게 분배하고, 각 노드에 기(旣)분배된 워크로드를 노드에서의 계산 디바이스 별로 균등하게 분배할 수 있다.
관련하여, 도 3a 내지 도 3c는 본 발명의 일실시예에 따른 클러스터 시스템의 계산 디바이스 가상화 방법을 설명하기 위한 예시도이다.
먼저, 클러스터 시스템의 일 노드에서 하나의 계산 디바이스를 타깃으로 하는 OpenCL 어플리케이션이 실행된다. 이어서, 클러스터 시스템에서의 일 노드가 OpenCL 어플리케이션의 호스트 프로그램을 실행시킬 수 있으며, 설명의 편의상 상기 일 노드를 '호스트 노드'라 한다.
호스트 프로그램이 커널 커맨드를 실행하면, 호스트 노드는 커널의 워크로드를 클러스터의 모든 노드에 균등하게 배분될 수 있으며, 노드 간의 통신량이 최소화되도록 분배되며, 이를 위해 컴파일러가 실행될 수 있다. 컴파일러는 컴파일러 언어(예를 들어, 시스템 소프트웨어에 쓰이는 C/C++, 과학기술계산용으로 쓰이는 FORTRAN, ALGOL, 사무계산용으로 쓰이는 COBOL, 과학기술계산 및 사무 계산 겸용으로 쓰이는 PL/1 등)로 쓰여진 소스 프로그램을 번역해서 각각 목적의 기계가 해독할 수 있는 기계어로 고치기 위한 프로그램을 의미한다.
도 3a에서 도시된 바와 같이, OpenCL 어플리케이션 실행에 따른 워크로드(300)는 하나 이상으로 균등하게 나누어질 수 있다. 특히, 클러스터 시스템을 구성하는 노드의 전체 개수를 연산하고, 도 3b에서 도시된 바와 같이, 노드 각각에 대해 워크로드(310)를 균등하게 분배할 수 있다.
이와 같이 균등하게 분배된 워크로드를 갖는 각 노드에서도, 도 3c에서 도시된 바와 같이 계산 디바이스 별로 워크로드(320)가 균등하게 분배될 수 있다. 이때 각 계산 디바이스 간의 통신이 최소화되도록 워크로드(320)가 분배되며, 이때, 컴파일러가 실행될 수 있다.
이하, 도 4를 참조하여, 본 발명의 일 실시예에 따르는 방법에 대해서 구체적으로 설명한다.
먼저, 클러스터 시스템의 일 노드에서 하나의 계산 디바이스를 타깃으로 하는 OpenCL 어플리케이션이 실행된다(S101). 여기서 상기 일 노드를 호스트 노드라고 한다. 호스트 노드는 OpenCL 어플리케이션의 호스트 프로그램을 실행시킨다.
호스트 노드의 호스트 프로그램은 커널 커맨드를 실행한다(S102).
그에 따라, 호스트 노드는 커널의 워크로드를 클러스터의 모든 노드에 균등하게 배분한다(S103). 이때, 호스트 노드는 클러스터 시스템을 구성하는 노드의 전체 개수를 연산하고, 각 노드가 동일한 워크로드를 갖도록 분배한다. 또한, 노드 간의 통신량이 최소화되도록 분배되며, 이를 위해 컴파일러가 실행될 수 있다.
이어서, 호스트 노드로부터 워크로드를 분배받은 각 노드는 각 계산 디바이스 별로 워크로드를 균등하게 분배한다(S104). 이때 각 계산 디바이스 간의 통신이 최소화되도록 워크로드(320)가 분배되며, 이때, 컴파일러가 실행될 수 있다.
그 결과, 한 노드에서 실행된 OpenCL 어플리케이션에 의한 워크로드는 각각의 계산 디바이스로 균등하게 분배된다. 각각의 계산 디바이스는 각 노드 내에 포함된 메인 메모리와 연결되는데, 각 노드의 메인 메모리들은 하나의 가상 메모리로 동일시할 수 있다. 또한, 각각의 계산 디바이스를 통해 OpenCL 어플리케이션 적용을 위한 병렬 프로그래밍이 수행될 수 있으므로, 각 계산 디바이스는 하나의 계산 디바이스로 동일시할 수 있다. 따라서, 본 발명의 일 실시예에 의해 사용자는 각 노드의 계산 디바이스들을 하나의 계산 디바이스로 가상화함으로써, 하나의 클러스터 시스템을 하나의 계산 디바이스로 간주하여 이용할 수 있게 된다. 본 발명의 클러스터 시스템의 계산 디바이스 가상화 방법이 적용된 시스템은, 하나의 노드에서 클러스터 시스템 전체로 OpenCL 어플리케이션 실행에 의한 워크로드를 적절하게 분배할 수 있으며, 사용자는 하나의 노드에서 클러스터 시스템 전체를 하나의 시스템으로 인식하고 OpenCL 어플리케이션을 용이하게 제작할 수 있다. 이러한 방식으로 본 발명의 일 실시예는 복수 개의 노드로 구성된 클러스터 시스템을 하나의 시스템으로 가상화 할 수 있다.
반면, 상술된 실시예에 따른 클러스터 시스템의 계산 디바이스 가상화 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
100: 클러스터 시스템
20: 노드

Claims (15)

  1. 각 노드가 하나 이상의 계산 디바이스를 포함하는 복수 개의 노드를 포함하는 클러스터 시스템의 계산 디바이스 가상화 방법에 있어서,
    OpenCL 어플리케이션을 적어도 하나의 노드에서 실행하는 단계;
    상기 OpenCL 어플리케이션 실행에 따르는 워크로드를 상기 복수 개의 노드로 분배하는 단계; 및
    상기 각 노드 내에서, 상기 분배된 워크로드를 상기 각 노드에 포함된 하나 이상의 계산 디바이스로 분배하는 단계;
    를 포함하는 것을 특징으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법.
  2. 제 1 항에 있어서,
    상기 워크로드를 상기 복수 개의 노드로 분배하는 단계는 각 노드에 균등한 양의 워크로드를 분배하는 것을 특징으로 하며,
    상기 하나 이상의 계산 디바이스로 분배하는 단계는 각 노드 내의 각 계산 디바이스에 균등한 양의 워크로드를 분배하는 것을 특징으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법.
  3. 제 2 항에 있어서,
    상기 워크로드를 상기 복수 개의 노드로 분배하는 단계와 상기 하나 이상의 계산 디바이스로 분배하는 단계는,
    상기 워크로드의 분배시 각 노드 간의 통신 또는 각 계산 디바이스 간의 통신이 최소화되도록 분배되는 것을 특징으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법.
  4. 제 3 항에 있어서,
    상기 워크로드를 상기 복수 개의 노드로 분배하는 단계와 상기 하나 이상의 계산 디바이스로 분배하는 단계는,
    각 노드 간의 통신 또는 각 계산 디바이스 간의 통신이 최소화되도록 컴파일러를 실행하는 것을 특징으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법.
  5. 제 1 항에 있어서,
    상기 클러스터 시스템은 동종의 매니코어 클러스터 시스템인 것을 특징으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법.
  6. 제 1 항에 있어서,
    상기 계산 디바이스는 그래픽 처리 기능을 포함하는 것을 특징으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법.
  7. 제 6 항에 있어서,
    상기 계산 디바이스는 CPU, GPU 또는 OpenCL을 지원하는 디바이스 인 것을 특징으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법.
  8. 각각이 하나 이상의 계산 디바이스를 포함하며, OpenCL 어플리케이션을 실행할 수 있는 복수 개의 노드;를 포함하는 클러스터 시스템에 있어서,
    상기 복수 개의 노드 중 적어도 하나의 노드에서 실행된 OpenCL 어플리케이션에 의한 워크로드는 상기 복수 개의 노드로 분배되고, 상기 각 노드 내의 분배된 워크로드는 상기 각 노드에 포함된 하나 이상의 계산 디바이스로 분배되는 것을 특징으로 하는 계산 디바이스 가상화를 위한 클러스터 시스템.
  9. 제 8 항에 있어서,
    상기 워크로드는 상기 복수 개의 노드에 균등하게 분배되며, 상기 각 노드에 분배된 워크로드는 각 계산 디바이스에 균등하게 분배되는 것을 특징으로 하는 계산 디바이스 가상화를 위한 클러스터 시스템.
  10. 제 9 항에 있어서,
    상기 워크로드는 각 노드 간의 통신 또는 각 계산 디바이스 간의 통신이 최소화되도록 분배되는 것을 특징으로 하는 계산 디바이스 가상화를 위한 클러스터 시스템.
  11. 제 10 항에 있어서,
    각 노드 간의 통신 또는 각 계산 디바이스 간의 통신이 최소화되도록 상기 워크로드를 분배하는 컴파일러를 추가로 포함하는 것을 특징으로 하는 계산 디바이스 가상화를 위한 클러스터 시스템.
  12. 제 8 항에 있어서,
    상기 클러스터 시스템은 동종의 매니코어 클러스터 시스템인 것을 특징으로 하는 계산 디바이스 가상화를 위한 클러스터 시스템.
  13. 제 8 항에 있어서,
    상기 계산 디바이스는 그래픽 처리 기능을 포함하는 것을 특징으로 하는 계산 디바이스 가상화를 위한 클러스터 시스템.
  14. 제 13 항에 있어서,
    상기 계산 디바이스는 CPU, GPU 또는 OpenCL을 지원하는 디바이스 인 것을 특징으로 하는 계산 디바이스 가상화를 위한 클러스터 시스템.
  15. 각 노드가 하나 이상의 계산 디바이스를 포함하는 복수 개의 노드를 포함하는 클러스터 시스템의 계산 디바이스 가상화 방법에 있어서,
    OpenCL 어플리케이션을 호스트 노드에서 실행하는 단계;
    상기 OpenCL 어플리케이션 실행에 따르는 OpenCL 커널의 워크로드를 상기 복수 개의 노드로 분배하는 단계; 및
    상기 각 노드 내에서, 상기 분배된 워크로드를 상기 각 노드에 포함된 하나 이상의 계산 디바이스로 분배하는 단계;
    를 포함하는 것을 특징으로 하는 클러스터 시스템의 계산 디바이스 가상화 방법.
KR1020130168079A 2013-01-18 2013-12-31 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템 KR20140093595A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130005664 2013-01-18
KR20130005664 2013-01-18

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160040901A Division KR101682113B1 (ko) 2013-01-18 2016-04-04 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR20140093595A true KR20140093595A (ko) 2014-07-28

Family

ID=51739742

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020130168079A KR20140093595A (ko) 2013-01-18 2013-12-31 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템
KR1020160040901A KR101682113B1 (ko) 2013-01-18 2016-04-04 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020160040901A KR101682113B1 (ko) 2013-01-18 2016-04-04 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템

Country Status (1)

Country Link
KR (2) KR20140093595A (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101040117B1 (ko) * 2007-12-13 2011-06-09 한국전자통신연구원 다중 시스템 워크로드 관리 시스템 및 방법
CN102486739B (zh) * 2009-11-30 2015-03-25 国际商业机器公司 高性能计算集群中分发数据的方法和系统
US20110161495A1 (en) * 2009-12-26 2011-06-30 Ralf Ratering Accelerating opencl applications by utilizing a virtual opencl device as interface to compute clouds
EP2442228A1 (en) 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof

Also Published As

Publication number Publication date
KR101682113B1 (ko) 2016-12-02
KR20160042848A (ko) 2016-04-20

Similar Documents

Publication Publication Date Title
KR101594915B1 (ko) 매니코어 클러스터 시스템 상에서 병렬 프로그래밍을 수행하는 방법 및 매니코어 클러스터 시스템
CN109032706B (zh) 智能合约执行方法、装置、设备和存储介质
CN112583883A (zh) 在边缘环境中聚合遥测数据的方法和装置
US10365936B2 (en) Idle processor management by guest in virtualized systems
US10318331B2 (en) Method and apparatus for live-migrating virtual machines
US11157302B2 (en) Idle processor management in virtualized systems via paravirtualization
US11520633B2 (en) Thread associated memory allocation and memory architecture aware allocation
US9201823B2 (en) Pessimistic interrupt affinity for devices
US9003094B2 (en) Optimistic interrupt affinity for devices
US20150227192A1 (en) Virtual machine switching based on processor power states
CN104536937A (zh) 基于cpu-gpu异构集群的大数据一体机实现方法
KR102174221B1 (ko) 제공자 네트워크에서의 그래픽 처리 가상화
CN110832457A (zh) 用于虚拟化加速处理装置的提前虚拟化上下文切换
US20150347169A1 (en) Scheduler limited virtual device polling
DE102021123338A1 (de) Vorausschauende steuerung unter verwendung eines oder mehrerer neuralen netze
Varghese et al. Acceleration-as-a-service: Exploiting virtualised GPUs for a financial application
KR101682113B1 (ko) 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템
DE102022120925A1 (de) Automatisierte kabelreparatur vor ort
DE102022126283A1 (de) Nichtflüchtiger Speicher und Schnittstelle
US9189448B2 (en) Routing image data across on-chip networks
CN106155804A (zh) 对gpu云计算资源统一管理服务的方法和系统
US20210089423A1 (en) Flexible multi-user graphics architecture
US9021509B1 (en) Datacenter managed thread and multi-processing support
KR101592375B1 (ko) 클러스터 시스템 및 클러스터 시스템에서의 통신 방법
US10439960B1 (en) Memory page request for optimizing memory page latency associated with network nodes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
A107 Divisional application of patent