KR20140125893A - 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체 - Google Patents

가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체 Download PDF

Info

Publication number
KR20140125893A
KR20140125893A KR20130009055A KR20130009055A KR20140125893A KR 20140125893 A KR20140125893 A KR 20140125893A KR 20130009055 A KR20130009055 A KR 20130009055A KR 20130009055 A KR20130009055 A KR 20130009055A KR 20140125893 A KR20140125893 A KR 20140125893A
Authority
KR
South Korea
Prior art keywords
job
information
computing nodes
jobs
available resources
Prior art date
Application number
KR20130009055A
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 한국과학기술원
Priority to KR20130009055A priority Critical patent/KR20140125893A/ko
Publication of KR20140125893A publication Critical patent/KR20140125893A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B44DECORATIVE ARTS
    • B44CPRODUCING DECORATIVE EFFECTS; MOSAICS; TARSIA WORK; PAPERHANGING
    • B44C7/00Paperhanging
    • B44C7/02Machines, apparatus, tools or accessories therefor
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F21LIGHTING
    • F21VFUNCTIONAL FEATURES OR DETAILS OF LIGHTING DEVICES OR SYSTEMS THEREOF; STRUCTURAL COMBINATIONS OF LIGHTING DEVICES WITH OTHER ARTICLES, NOT OTHERWISE PROVIDED FOR
    • F21V33/00Structural combinations of lighting devices with other articles, not otherwise provided for
    • F21V33/008Leisure, hobby or sport articles, e.g. toys, games or first-aid kits; Hand tools; Toolboxes
    • F21V33/0084Hand tools; Toolboxes
    • AHUMAN NECESSITIES
    • A45HAND OR TRAVELLING ARTICLES
    • A45DHAIRDRESSING OR SHAVING EQUIPMENT; EQUIPMENT FOR COSMETICS OR COSMETIC TREATMENTS, e.g. FOR MANICURING OR PEDICURING
    • A45D40/00Casings or accessories specially adapted for storing or handling solid or pasty toiletry or cosmetic substances, e.g. shaving soaps or lipsticks
    • A45D40/24Casings for two or more cosmetics
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B44DECORATIVE ARTS
    • B44CPRODUCING DECORATIVE EFFECTS; MOSAICS; TARSIA WORK; PAPERHANGING
    • B44C7/00Paperhanging
    • B44C7/02Machines, apparatus, tools or accessories therefor
    • B44C7/04Machines, apparatus, tools or accessories therefor for applying adhesive

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 실시 예는 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체에 관한 것이다.
실시 예에 따른 가상화된 매니코어 서버의 작업분배 시스템은, 가상화 환경에서 자동으로 작업을 분배해주는 시스템에 있어서, 상기 작업을 분석하여 상기 작업의 정보를 생성하는 서비스 노드; 및 이용 가능한 자원의 정보를 상기 서비스 노드에 전달하는 복수의 컴퓨팅 노드;를 포함하고, 상기 서비스 노드는 상기 작업의 정보 및 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 파티셔닝하고, 상기 이용 가능한 자원의 정보를 이용하여 상기 파티셔닝된 작업을 그루핑하여 복수의 잡을 생성하고, 상기 생성된 복수의 잡을 상기 이용 가능한 자원의 정보를 이용하여 상기 복수의 컴퓨팅 노드로 분배한다.

Description

가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체{VIRTUALIZED MANY-CORE ENVIRONMENT JOB DISTRIBUTION SYSTEM AND METHOD, AND RECORDING MEDIUM THEREOF}
실시 예는 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체에 관한 것이다.
가상화(virtualization) 환경은 하드웨어 리소스(hardware resource)를 멀티 플레싱(multiplexing)함으로써 하나의 물리 컴퓨터 상에서 다수의 OS(operating system)을 실행시킬 수 있도록 하는 환경이다.
가상화 환경을 제어하는 하이퍼바이저(hypervisor) 또는 가상 머신 모니터(virtual Machine Monitor, VMM)는 하드웨어 리소스를 멀티플레싱하여 각 게스트 OS에게 자신이 컴퓨터 리소스를 독점한 것과 같은 일루전(illusion)을 제공한다.
종래에는 게스트 OS를 이용하여 다수의 VM(Virtual Machine)을 사용하는데 있어서, 사용자가 수동적으로 작업을 할당하기 때문에 각 VM에 적합한 작업을 할당하기가 어려웠다.
따라서, 각 VM에 맞는 작업을 할당할 수 있는 기술의 연구가 필요하게 되었다.
[1] 한국등록특허 제10-0907563호(등록일: 2009.07.06) [2] 한국공개특허 제10-2010-0066346호(공개일: 2010.06.17)
[1]SLURM : Simple Linux Utility for Resource Management, JSSPP 2003, Andy B. Yoo, et. al
실시 예는 가상화 환경에서 자동으로 작업을 할당하는 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체를 제공한다.
또한, 우선순위를 고려하여 작업을 할당하는 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체를 제공한다.
실시 예에 따른 가상화된 매니코어 서버의 작업분배 시스템은, 가상화 환경에서 자동으로 작업을 분배해주는 시스템에 있어서, 상기 작업을 분석하여 상기 작업의 정보를 생성하는 서비스 노드; 및 이용 가능한 자원의 정보를 상기 서비스 노드에 전달하는 복수의 컴퓨팅 노드;를 포함하고, 상기 서비스 노드는 상기 작업의 정보 및 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 파티셔닝하고, 상기 이용 가능한 자원의 정보를 이용하여 상기 파티셔닝된 작업을 그루핑하여 복수의 잡을 생성하고, 상기 생성된 복수의 잡을 상기 이용 가능한 자원의 정보를 이용하여 상기 복수의 컴퓨팅 노드로 분배한다.
여기서, 상기 서비스 노드는, 상기 복수의 컴퓨팅 노드의 수가 복수의 잡의 수보다 적을 경우에는 상기 복수의 잡 중에서 우선순위가 낮은 잡을 보관하여 상기 복수의 잡 중에서 우선순위가 높은 잡을 먼저 분배하고, 상기 복수의 잡 중에서 사용가능신호를 전달 받으면 상기 우선순위가 낮은 잡을 분배할 수 있다.
여기서, 상기 서비스 노드는 게스트OS 및 마스터 페더레이션 모듈을 포함하고, 상기 마스터 페데레이션 모듈은, 상기 작업을 분석하여 상기 작업의 정보를 생성하는 잡 매니저; 상기 복수의 컴퓨팅 노드로부터 상기 이용 가능한 자원의 정보를 생성하는 노드 매니저; 및 상기 잡 매니저 및 상기 노드 매니저로부터 상기 작업의 정보 및 상기 이용 가능한 자원의 정보를 전송받고, 상기 작업의 정보 및 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 파티셔닝하고, 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 그루핑하여 상기 복수의 잡을 생성하고, 상기 생성된 복수의 잡을 상기 이용 가능한 자원의 정보를 이용하여 상기 복수의 컴퓨팅 노드로 분배하는 얼로케이션 모듈;을 포함할 수 있다.
여기서, 상기 컴퓨팅 노드는, 상기 이용 가능한 자원의 정보를 상기 서비스 노드에 전송하고, 상기 복수의 잡 중 하나의 잡을 컴퓨테이션하는 슬레이브 페더레이션 모듈; 및 하드웨어에 직접적인 명령을 하는 코어 커널;을 포함할 수 있다.
여기서, 상기 슬레이브 페더레이션 모듈은 상기 컴퓨테이션이 완료되면 사용가능신호를 생성하여 서비스 노드에 전달할 수 있다.
여기서, 상기 이용 가능한 자원의 정보는 상기 복수의 컴퓨팅 노드의 총 수, 상기 복수의 컴퓨팅 노드의 vCPU의 총 수 및 상기 복수의 컴퓨팅 노드의 vRAM의 양을 포함할 수 있다.
여기서, 상기 코어 커널은 코어 스케줄링, 메모리 관리, I/O관리 및 네트워크 관리를 하는 경량화된 커널일 수 있다.
한편, 실시 예의 다른 카테고리로서, 실시 예는 가상화된 매니코어 서버의 작업분배 방법은, 서비스 노드에서 복수의 컴퓨팅 노드로 작업을 분배해주는 방법에 있어서, 상기 작업을 분석하여 상기 작업의 정보를 생성하는 단계; 상기 복수의 컴퓨팅 노드의 이용 가능한 자원을 분석하여 상기 이용 가능한 자원의 정보를 생성하는 단계; 상기 작업의 정보와 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 파티셔닝하고, 상기 이용 가능한 자원의 정보를 이용하여 상기 파티셔닝된 작업을 그루핑하여 복수의 잡을 생성하는 단계; 및 상기 생성된 복수의 잡을 상기 복수의 컴퓨팅 노드로 분배하는 단계;를 포함한다.
여기서, 상기 복수의 컴퓨팅 노드의 수가 상기 복수의 잡의 수보다 적으면, 상기 복수의 잡 중에서 우선순위가 낮은 잡을 보관하는 단계; 및 사용가능신호를 전달 받으면 상기 우선순위가 낮은 잡을 분배하는 단계;를 더 포함할 수 있다.
여기서, 상기 컴퓨팅 노드의 자원 정보는 상기 복수의 컴퓨팅 노드의 총 수, 상기 복수의 컴퓨팅 노드의 vCPU의 총 수 및 상기 복수의 컴퓨팅 노드의 vRAM의 양을 포함할 수 있다.
한편 실시 예의 다른 카테고리로서, 실시 예는 가상화된 매니코어 서버의 작업분배 방법을 기록한 컴퓨터로 판독 가능한 기록매체를 제공한다.
실시 예에 따른 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체는 컴퓨팅 노드들의 자원을 분석하여 자동으로 작업을 할당할 수 있는 이점이 있다.
또한, 우선순위를 고려하여 컴퓨팅 노드들에게 작업을 할당할 수 있는 이점이 있다.
도 1은 실시 예에 따른 가상화된 매니코어 서버의 작업분배 시스템의 구성을 나타낸 도면.
도 2는 도 1에 도시된 서비스 노드를 상세하게 나타낸 도면.
도 3은 도 1에 도시된 컴퓨팅 노드를 상세하게 나타낸 도면.
도 4는 도 2에 도시된 잡 매니저의 작업을 분석하는 과정을 설명하기 위한 일 예.
도 5는 도 2에 도시된 노드 매니저의 동작을 설명하기 위한 개념도.
도 6은 도 2에 도시된 파티션 매니저의 파티셔닝 동작을 설명하기 위한 일 예.
도 7은 도 2에 도시된 파티션 매니저의 동작을 설명하기 위한 일 예.
도 8은 도 2에 도시된 얼로케이션 모듈의 동작을 설명하기 위한 일 예.
도 9는 실시 예에 따른 가상화된 매니코어 서버의 작업분배 방법을 설명하기 위한 순서도.
도면에서 각층의 두께나 크기는 설명의 편의 및 명확성을 위하여 과장되거나 생략되거나 또는 개략적으로 도시되었다. 또한 각 구성요소의 크기는 실제크기를 전적으로 반영하는 것은 아니다.
본 발명에 따른 실시 예의 설명에 있어서, 어느 한 element가 다른 element의 " 상(위) 또는 하(아래)(on or under)"에 형성되는 것으로 기재되는 경우에 있어, 상(위) 또는 하(아래)(on or under)는 두 개의 element가 서로 직접(directly)접촉되거나 하나 이상의 다른 element가 상기 두 element사이에 배치되어(indirectly) 형성되는 것을 모두 포함한다. 또한 “상(위) 또는 하(아래)(on or under)”으로 표현되는 경우 하나의 element를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시 예에 따른 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체를 설명한다.
<실시 예>
도 1은 실시 예에 따른 가상화된 매니코어 서버의 작업분배 시스템의 구성을 나타낸 도면이다.
도 1을 참조하면, 실시 예에 따른 가상화된 매니코어 서버의 작업분배 시스템은 서비스 노드(10)와 복수의 컴퓨팅 노드(20, 20-1, …, 20-N, N은 임의의 자연수)를 포함할 수 있다.
실시 예에 따른 가상화된 매니코어 서버의 작업분배 시스템이 적용되는 가상화 환경(600)은 VMM(Virtual Machine Monitor) 위에 복수의 가상머신(VM, Virtual Machine)이 존재하는 환경이다. 이때, 하나의 가상머신과 또 다른 하나의 가상머신 사이에는 네트워크를 통해 정보를 공유하는 inter-VM 커뮤니케이션(communication)이 일어날 수 있다. 또한, 가상화 환경(600)에서는 컴퓨팅 노드(Computing node)의 코어 커널(Core kernel)이 처리해야 할 I/O 작업들을 서비스 노드(Service node)의 게스트 OS(Guest OS)에게 대리 수행을 요청하는 오프-로딩(Off-loading)이 일어날 수 있다. 여기서, Off-loading은 코어 커널에서 발생하는 I/O 오버헤드(overhead)를 최대한 줄이기 위해 사용된다.
서비스 노드(10)는 작업을 분배할 수 있는 마스터(master) 역할의 노드(node)이다. 여기서, 작업은 하나의 어플리케이션(application) 또는 하나의 일(work)을 포함할 수 있다. 또한, 노드는 데이터 통신망에서, 데이터를 전송하는 통로에 접속되는 하나 이상의 기능 단위로써, 주로 통신망의 분기점이나 단말기의 접속점을 뜻한다.
서비스 노드(10)는 유/무선 통신 프로토콜에 따른 유/무선 네트워크를 통해 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)와 연결된다. 서비스 노드(10)는 사용자로부터 작업을 입력받아 상기 작업의 정보를 생성한다. 또한, 서비스 노드(10)는 컴퓨팅 노드들(20, 20-1, …, 20-N)의 이용 가능한 자원의 정보를 전달받는다. 그리고, 서비스 노드(10)는 복수의 잡을 생성하여 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)로 분배한다. 여기서, 서비스 노드(10)는 전체 시스템의 동작을 제어하는 통상 제어 콘솔로 리눅스(Linux)를 실행하는 IBM pSeries 서버(도시되지 않음)와 같은 소형 컴퓨터 시스템(mini computer system)일 수 있다.
복수의 컴퓨팅 노드(20, 20-1, …, 20-N)는 서비스 노드(10)로부터 작업을 분배 받아 실질적인 연산을 수행하는 슬레이브(slave)역할의 노드들이다. 여기서, 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)는 PC(Personal Computer), 워크스테이션, 서버, 라우터, 메인프레임, 블레이드 서버 또는 고밀도 서버 내의 모듈러 컴퓨터, PDA(Personal Digital Assistant), 엔터테인먼트 센터, 셋톱 박스 또는 모바일 장치 중 적어도 하나를 포함할 수 있다. 또한, 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 운영 시스템은 UNIX, Linux, Microsoft XP, AIX, IBM의 i5/OS 및 당업자들이 이해할 수 있는 다른 것들을 포함할 수 있다.
도 2는 도 1에 도시된 서비스 노드를 상세하게 나타낸 도면이고, 도 3은 도 1에 도시된 컴퓨팅 노드를 상세하게 나타낸 도면이다.
도 1 내지 도 3을 참조하여 서비스 노드(10)와 컴퓨팅 노드(20)를 설명하면, 먼저 서비스 노드(10)는 마스터 페더레이션 모듈(Master Federation module, 100) 및 게스트 OS(Guest OS, 200)를 포함할 수 있다.
마스터 페더레이션 모듈(100)은 사용자로부터 입력받은 작업을 분석할 수 있다. 또한, 마스터 페더레이션 모듈(100)은 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 이용 가능한 자원의 정보를 분석할 수 있다. 여기서, 이용 가능한 자원의 정보는 이용할 수 있는 컴퓨팅 노드들의 수, 컴퓨팅 노드들의 vCPU(가상 CPU)의 총 수 및 각 컴퓨팅 노드의 vRAM(가상 메모리)의 양을 포함할 수 있다. 이용 가능한 자원에 대해서는 이후에 자세히 설명하겠다.
마스터 페더레이션 모듈(100)은 사용자로부터 입력받은 작업을 복수의 잡(Job)으로 나누어 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)로 분배할 수 있다.
구체적으로 마스터 페더레이션 모듈(100)을 설명하면, 마스터 페더레이션 모듈(100)은 잡 매니저(110), 노드 매니저(120) 및 얼로케이션 모듈(130)을 포함할 수 있다.
잡 매니저(110)는 사용자로부터 입력받은 작업을 분석한다. 잡 매니저(110)는 작업들을 분석하기 편리하도록 사용자로부터 입력받은 작업을 다수의 워킹 셋(working set)으로 분리하여 데이터의 양이나 연산 회수를 파악할 수 있다. 또한, 잡 매니저(110)는 분리된 working set의 우선순위를 파악할 수 있다. 잡 매니저(110)는 분석된 정보를 얼로케이션 모듈(130)에 전달한다. 잡 매니저(110)의 자세한 설명은 도 4를 참조하여 설명하도록 한다.
노드 매니저(120)는 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 유틸리제이션(utilization)을 최대로 하기 위해 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 이용 가능한 자원의 정보를 분석한다. 노드 매니저(120)는 전달받은 이용 가능한 자원의 정보를 얼로케이션 모듈(130)에 전달한다. 노드 매니저(120)의 자세한 설명은 도 5를 참조하여 설명하도록 한다.
얼로케이션 모듈(130)은 잡 매니저(110)로부터 분석된 작업의 정보와 노드 매니저(120)로부터 분석된 이용 가능한 자원의 정보를 전송받아 사용자로부터 입력된 작업을 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)로 분배한다.
구체적으로 얼로케이션 모듈(130)을 설명하면, 얼로케이션 모듈(130)은 파티션 매니저(partition manager, 131), 잡 스케줄러(job scheduler, 132) 및 잡 큐(job queue, 133)를 포함할 수 있다.
파티션 매니저(131)는 잡 매니저(110)와 노드 매니저(120)로부터 전달받은 작업의 정보와 이용 가능한 자원의 정보를 고려하여 사용자로부터 입력받은 작업을 다수의 쓰레드(threads)로 파티셔닝(partitioning)한다. 여기서, 쓰레드는 특정 프로세스(process)내에서 실행되는 하나의 흐름을 나타내는 단위이다.
파티션 매니저(131)는 파티셔닝된 작업을 그루핑(grouping)하여 복수의 잡으로 나눈 후, 복수의 잡을 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)로 분배한다.
잡 스케줄러(132)는 컴퓨팅 노드(20)가 우선순위에 맞게 컴퓨테이션(computation)을 할 수 있도록 우선순위에 대한 정보를 컴퓨팅 노드(20)에 전달한다. 잡 스케줄러(132)는 컴퓨팅 노드(20)에 분배되는 임의의 잡에 대응하는 cpu 스케줄링 정책을 우선순위 대한 정보와 함께 컴퓨팅 노드(20)에 전달한다.
잡 큐(133)는 컴퓨팅 노드들(20, 20-1, …, 20-N)의 수가 복수의 잡의 수보다 적으면, 복수의 잡 중에서 우선순위가 낮은 잡을 보관한다. 이때, 콤퓨테이션되고 있는 복수의 컴퓨팅 노드(20, 20-1, …, 20-N) 중 어느 하나가 콤퓨테이션이 완료되어 사용가능신호를 서비스 노드(10)에 전달하면, 잡 큐(133)에 보관되었던 우선순위가 낮은 잡을 사용가능신호를 전달한 컴퓨팅 노드에 분배한다 .
게스트 OS(200)는 컴퓨팅 노드(20)에 포함되는 경량화 커널(kernel)인 코어 커널과 달리, 일반적인 UNIX, Linux, Microsoft XP, AIX, IBM의 i5/OS와 같은 general OS이다. 게스트 OS(200)는 하드웨어에 직접적인 명령을 하는 커널을 포함할 수 있다.
컴퓨팅 노드(20)는 도 1에서 설명한 복수의 컴퓨팅 노드(20, 20-1, …, 20-N) 중 하나이다. 컴퓨팅 노드(20)는 태스크(Task, 300), 슬레이브 페더레이션 모듈(400) 및 코어 커널(500)을 포함할 수 있다.
태스크(300)는 컴퓨팅 노드(20)에서 현재 처리되고 있는 작업 또는 잡일 수 있다. 여기서, 태스크(300)는 상황에 따라 컴퓨팅 노드(20)에 있을 수도 있고, 컴퓨팅 노드(20)에 없을 수도 있다. 이용 가능한 자원(vCPU, vRAM)은 이미 처리되고 있는 작업 또는 잡의 양에 따라 줄어들 수 있다.
슬레이브 페더레이션 모듈(400)은 이용 가능한 자원의 정보를 서비스 노드(10)의 노드 매니저(120)에 전달할 수 있다. 또한, 슬레이브 페더레이션 모듈(400)은 서비스 노드(10)로부터 분배받은 잡을 컴퓨테이션할 수 있다.
슬레이브 페더레이션 모듈(400)을 자세히 설명하면, 슬레이브 페더레이션 모듈(400)은 모니터 모듈(monitor module, 410), 컴퓨팅 모듈(computing module, 420) 및 정책 매니저(policy manager, 430)를 포함할 수 있다.
모니터 모듈(410)은 컴퓨팅 노드(20)의 이용 가능한 자원 정보를 서비스 노드(10)의 노드 매니저(120)에 전달한다. 여기서, 컴퓨팅 노드(20)의 이용 가능한 자원 정보는 컴퓨팅 노드(20)의 이용 가능한 vCPU의 수 및 컴퓨팅 노드(20)의 이용 가능한 vRAM의 양을 포함할 수 있다.
컴퓨팅 모듈(420)은 실질적인 컴퓨테이션하는 모듈로써, 마스터 페더레이션 모듈(100)에서 분배된 잡을 컴퓨테이션한다. 이때, 분배된 잡의 컴퓨테이션이 완료되면 컴퓨팅 노드(20)는 사용가능신호를 생성하여 서비스 노드(10)에 사용가능신호를 전달할 수 있다.
정책 매니저(430)는 서비스 노드(10)의 잡 스케줄러(132)로부터 전달받은 CPU 스케줄링 정책을 해당 코어 커널(500)에 요청한다. CPU 스케줄링 정책을 이용하는 방법은 도 8에서 설명하도록 한다.
코어 커널(500)은 컴퓨테이션을 수행하는 것 외에 필요하지 않은 OS의 무거운 부분으로 인한 성능 저하를 피하기 위해 필수적인 기능만 포함하는 경량화된 커널이다. 경량화된 코어 커널(220)은 코어 스케쥴링, 메모리 관리, I/O 관리 및 네트워크 관리 등과 같은 필수적인 요소들을 포함할 수 있다. 또한, 코어 커널(500)은 정책 매니저(430)로부터 전달받은 CPU 스케줄링 정책을 이용하여 우선순위가 높은 쓰레드를 먼저 컴퓨테이션한다.
도 4는 도 2에 도시된 잡 매니저의 작업을 분석하는 과정을 설명하기 위한 일 예이다.
도 2 및 도 4를 참조하여 실시 예에 따른 잡 매니저(120)의 작업을 분석하는 과정을 설명하면, 먼저, 서비스 노드(10)는 작업(one application or one work)을 분석(analysis)한다. 그리고, 잡 매니저(110)는 분석한 작업을 12개의 working set들로 분류한다. 여기서, working set의 개수는 설명의 편의와 이해의 증진을 위한 예시일 뿐 본 발명이 반드시 이에 한정되는 것은 아니다. 잡 매니저(110)의 working set의 분류 기준은 데이터(data)의 양 또는 연산 횟수일 수 있다. 여기서, 도 4에서는 데이터의 양이 많거나 연산 횟수가 많은 working set를 상대적으로 진하게 도시하였다. 분류된 working set는 얼로케이션 모듈(130)로 전송된다.
이와 같이, 도 4에 도시된 잡 매니저는 사용자로부터 입력받은 작업을 데이터의 양 또는 연산 횟수에 따라 분류할 수 있는 이점이 있다.
도 5는 도 2에 도시된 노드 매니저의 동작을 설명하기 위한 개념도이다.
도 5를 참조하여 설명하면, 서비스 노드(10)의 노드 매니저(120)는 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 컴퓨팅 노드들의 총 수, 이용 가능한 vCPU의 총 수 및 vRAM의 양을 수집(collect)할 수 있다.
노드 매니저(120)는 현재 이용할 수 있는 컴퓨팅 노드들(20, 20-1, …, 20-N)의 총 수를 파악한다. 여기서, 컴퓨팅 노드들의 총 수는 할당된 모든 컴퓨팅 노드들에서 이용할 수 없는 컴퓨팅 노드들의 수를 뺀 값일 수 있다. 노드 매니저(120)는 이용 가능한 vCPU를 파악한다. vCPU는 컴퓨팅 노드에 따라 최소 하나의 vCPU를 가질 수 있다. 또한, vCPU는 컴퓨팅 노드에 따라 M(M은 자연수)개의 vCPU를 이용할 수 있다. 노드 매니저(120)는 vRAM의 양을 파악한다. vRAM은 각 컴퓨팅 노드에서 할당되는 메모리의 양으로 유동적인 수치일 수 있다.
이와 같이, 도 5에 도시된 노드 매니저(120)는 이용 가능한 컴퓨팅 노드의 수, 이용 가능한 vCPU의 수 및 이용 가능한 vRAM을 수집할 수 있다.
도 6은 도 2에 도시된 파티션 매니저의 파티셔닝 동작을 설명하기 위한 일 예이다. 구체적으로, 도 6은 도 4에 도시된 working set들을 파티셔닝(partitioning)하여 쓰레드를 생성하는 일 예이다.
도 2, 도 3 및 도 6을 참조하여 실시 예에 따른 파티션 매니저(131)의 동작을 설명하면, 파티션 매니저(131)는 잡 매니저(110)로부터 분석된 working set들을 전달받는다. 또한, 파티션 매니저(131)는 노드 매니저(120)로부터 이용 가능한 자원의 정보를 전달받는다. 이때, 이용 가능한 컴퓨팅 노드(20)의 수는 6개일 수 있다. 파티션 매니저(131)는 이용 가능한 컴퓨팅 노드(20)의 수가 6개이기 때문에, 12개의 working set들을 6개의 쓰레드(thread)로 파티셔닝할 수 있다. 구체적으로, 파티션 매니저(131)는 데이터의 양이 많거나 연산 횟수가 많은 working set를 하나의 쓰레드로 생성한다. 또한, 파티션 매니저(131)는 데이터의 양이 작거나 연산 횟수가 작은 4개의 working set들을 하나의 쓰레드로 생성한다. 여기서, 쓰레드의 개수는 설명의 편의와 이해의 증진을 위한 예시일 뿐 본 발명이 반드시 이에 한정되는 것은 아니다.
이와 같이, 도 6에 도시된 파티션 매니저(131)는 사용자로부터 입력받은 working set들을 서로 비슷한 데이터양 또는 비슷한 연산 횟수의 쓰레드들을 생성할 수 있는 이점이 있다. 또한, 병렬로 나누어진 쓰레드들의 처리시간이 비슷할 수 있기 때문에 전체적인 기다림(waiting)없이 작업을 완료할 수 있는 이점이 있다.
도 7은 도 2에 도시된 파티션 매니저의 동작을 설명하기 위한 일 예이다.
도 2, 도 3 및 도 7을 참조하여 실시 예에 따른 파티션 매니저(131)의 동작을 설명하면, 파티션 매니저(131)은 잡 매니저(110)로부터 분석된 작업의 정보를 전달받는다. 또한, 파티션 매니저(131)는 노드 매니저(120)로부터 이용 가능한 자원의 정보를 전달받는다. 파티션 매니저(131)는 분석된 작업의 정보와 이용 가능한 자원의 정보를 고려하여 사용자로부터 입력받은 작업을 9개의 쓰레드들(threads)로 파티셔닝(partitioning)한다.
여기서, 파티션 매니저(131)는 다음 3가지를 고려하여 파티셔닝할 수 있다. 첫째, 파티션 매니저(131)는 쓰레드의 개수가 vCPU의 개수를 초과하지 않도록 할 수 있다. 구체적으로, 파티션 매니저(131)는 스케쥴링(scheduling) 및 작업전환(context switching)으로 인해 발생하는 부담(overhead)을 줄이기 위해 쓰레드의 개수를 vCPU의 개수를 초과하지 않도록 파티셔닝할 수 있다. 둘째, 파티션 매니저(131)는 쓰레드들의 연산량이 균등할 수 있도록 파티셔닝할 수 있다. 구체적으로, 파티셔닝된 쓰레드들의 연산량이 균등하면 전체적인 처리시간이 감소될 수 있기 때문에 파티션 매니저(131)는 쓰레드들의 연산량이 균등할 수 있도록 파티셔닝 할 수 있다. 셋째, 파티션 매니저(131)는 쓰레드들이 vRAM에서 처리할 수 있는 메모리 사이즈를 초과하지 않도록 파티셔닝될 수 있다. 구체적으로, 쓰레드들의 메모리 사이즈가 vRAM보다 높으면, 캐시 미스(cache miss)가 발생하여 에러(error)가 발생할 수 있다. 여기서, 캐시 미스는 할당받은 메모리보다 처리하려는 메모리가 크면 나타나는 현상이다.
파티션 매니저(131)는 분석된 작업의 정보와 이용 가능한 자원의 정보를 고려하여 9개의 쓰레드를 4개의 잡들(Job1, Job2, Job3, Job4)로 그루핑(grouping)한다. 여기서, 파티션 매니저(131)는 파티셔닝된 쓰레드들을 2가지를 고려하여 그루핑할 수 있다. 첫째, 파티션 매니저(131)는 잡들이 vRAM의 사이즈를 초과하지 않도록 그루핑을 할 수 있다. 구체적으로, 파티션 매니저(131)는 vRAM의 사이즈보다 잡들의 사이즈를 작게 그루핑하여 캐시 미스를 발생하지 않도록 한다. 둘째, 파티션 매니저(131)는 행렬 곱 연산과 같은 중복된 데이터를 둘 이상의 쓰레드들에서 필요한 경우에는 상기 둘 이상의 쓰레드들을 하나의 잡으로 그루핑한다. 구체적으로, 파티션 매니저(131)는 행렬 곱 연산과 같은 중복된 데이터들을 하나의 잡으로 그루핑하여 처리속도를 향상시킬 수 있다.
파티션 매니저(131)는 4개의 잡들(Job1, Job2, Job3, Job4)을 분석된 작업의 정보와 이용 가능한 자원의 정보를 고려하여 복수의 컴퓨팅 노드(20, 20-1, … 20-N, N은 4이상의 자연수)로 분배(distribution)한다. 여기서, 쓰레드들의 개수 및 잡들의 개수는 설명의 편의와 이해의 증진을 위한 예시일 뿐 본 발명이 반드시 이에 한정되는 것은 아니다.
도 8은 도 2에 도시된 얼로케이션 모듈의 동작을 설명하기 위한 일 예이다.
도 8은 현재 이용할 수 있는 컴퓨팅 노드들의 수가 변경되어 갑자기 부족할 때 우선순위를 적용하여 Job을 분배하는 일 예이다. 파티셔닝 또는 그루핑에 대한 설명은 도 6 및 도 7에서 설명하였으므로 생략한다.
도 2, 도 3 및 도 8을 참조하여 실시 예에 따른 얼로케이션 모듈(130)의 동작을 설명하면, 얼로케이션 모듈(130)의 파티션 매니저(131)는 사용자로부터 입력받은 작업을 파티셔닝하여 9개의 쓰레드들로 나눈다. 여기서, 진하게 도시된 쓰레드는 우선순위가 높은 쓰레드이다. 계속적으로, 파티션 매니저(131)는 쓰레드들을 4개의 잡들(Job1, Job2, Job3, Job4)로 그루핑한다. 이때, 컴퓨팅 노드들이 4개에서 3개로 변경되면 파티션 매니저(131)는 우선순위가 가장 낮은 Job2는 잡 큐(133)에 보관된다. 여기서, 컴퓨팅 노드들의 변경은 할당받은 컴퓨팅 노드가 중단되거나 오류로 인해 사용 불가능한 경우일 수 있다. 파티션 매니저(131)는 컴퓨팅 노드들(20, 20-1, 20-2)에 Job1, Job3, Job4를 각각 분배한다. 또한, 컴퓨팅 노드들(20, 20-1, 20-2) 중 가장먼저 완료되는 컴퓨팅 노드는 사용가능신호를 서비스 노드(10)에 전달하고, 잡 큐(133)는 사용가능신호를 전달한 컴퓨팅 노드에 Job2를 분배한다. 또한, Job1의 경우에는 우선순위가 다른 쓰레드들이 포함되어 있다. 이때, Job1을 전달받은 컴퓨팅 노드(20)는 잡 스케줄러(132)에서 CPU 스케줄링 정책을 전달받는다. CPU 스케줄링 정책을 전달받은 정책 매니저(430)는 Job1의 쓰레드들 중 우선순위가 높은 쓰레드를 우선 처리한다.
이와 같이, 도 1 내지 도 8에 도시된 가상화된 매니코어 서버의 작업분배 시스템을 이용하면, 서비스 노드(10)는 이용 가능한 컴퓨팅 노드들(20, 20-1, …, 20-N)의 vCPU 및 vRAM을 파악하여 사용자로부터 입력받은 작업을 신속하게 컴퓨테이션할 수 있는 이점이 있다. 또한, 이용 가능한 컴퓨팅 노드의 수가 적을 때는 우선순위를 확인하여 컴퓨테이션할 수 있는 이점이 있다.
도 9는 실시 예에 따른 가상화된 매니코어 서버의 작업분배 방법을 설명하기 위한 순서도이다. 도 1 내지 도 3을 함께 참조하여 설명하도록 한다.
도 1 내지 도 3 및 도 9를 참조하면, 먼저 서비스 노드(10)는 작업을 분석한다(S100). 구체적으로, 서비스 노드(10)는 사용자로부터 입력받은 작업(one application or one work)을 분석(analysis)한다. 그리고, 잡 매니저(110)는 분석한 작업을 working set들로 분류한다. 잡 매니저(110)의 working set의 분류 기준은 데이터(data)의 양 또는 연산 횟수일 수 있다. 분류된 working set는 얼로케이션 모듈(130)로 전송된다.
서비스 노드(10)는 이용 가능한 자원을 분석한다(S200). 구체적으로, 서비스 노드(10)의 노드 매니저(120)는 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 컴퓨팅 노드들의 총 수, 이용 가능한 vCPU의 총 수 및 vRAM의 양을 수집(collect)할 수 있다.
상세하게는, 노드 매니저(120)는 현재 이용할 수 있는 컴퓨팅 노드들(20, 20-1, …, 20-N)의 총 수를 파악한다. 여기서, 컴퓨팅 노드들의 총 수는 할당된 모든 컴퓨팅 노드들에서 이용할 수 없는 컴퓨팅 노드들의 수를 뺀 값일 수 있다. 노드 매니저(120)는 이용 가능한 vCPU를 파악한다. vCPU는 컴퓨팅 노드에 따라 최소 하나의 vCPU를 가질 수 있다. 또한, vCPU는 컴퓨팅 노드에 따라 M(M은 자연수)개의 vCPU를 이용할 수 있다. 노드 매니저(120)는 vRAM의 양을 파악한다. vRAM은 각 컴퓨팅 노드에서 할당되는 메모리의 양으로 유동적인 수치일 수 있다.
서비스 노드(10)는 작업을 파티셔닝 및 그루핑하여 잡을 생성한다(S300). 구체적으로, 서비스 노드(10)의 파티션 매니저(131)는 작업을 파티셔닝(partitioning)하거나 쓰레드(thread)들을 그루핑(grouping)할 수 있다.
먼저, 파티션 매니저(131)는 잡 매니저(110)로부터 분석된 working set들을 전달받는다. 또한, 파티션 매니저(131)는 노드 매니저(120)로부터 이용 가능한 자원의 정보를 전달받는다. 파티션 매니저(131)는 전달받은 working set의 정보와 전달받은 컴퓨팅 노드들의 자원 정보들을 이용하여 사용자로부터 입력받은 작업을 다수개의 쓰레드로 파티셔닝한다. 여기서, 쓰레드는 특정 프로세스(process)내에서 실행되는 하나의 흐름을 나타내는 단위이다.
여기서, 파티션 매니저(131)는 다음 3가지를 고려하여 파티셔닝할 수 있다. 첫째, 파티션 매니저(131)는 쓰레드의 개수가 vCPU의 개수를 초과하지 않도록 할 수 있다. 구체적으로, 파티션 매니저(131)는 스케쥴링(scheduling) 및 작업전환(context switching)으로 인해 발생하는 부담(overhead)을 줄이기 위해 쓰레드의 개수를 vCPU의 개수를 초과하지 않도록 파티셔닝할 수 있다. 둘째, 파티션 매니저(131)는 쓰레드들의 연산량이 균등할 수 있도록 파티셔닝할 수 있다. 구체적으로, 파티셔닝된 쓰레드들의 연산량이 균등하면 전체적인 처리시간이 감소될 수 있기 때문에 파티션 매니저(131)는 쓰레드들의 연산량이 균등할 수 있도록 파티셔닝 할 수 있다. 셋째, 파티션 매니저(131)는 쓰레드들이 vRAM에서 처리할 수 있는 메모리 사이즈를 초과하지 않도록 파티셔닝될 수 있다. 구체적으로, 쓰레드들의 메모리 사이즈가 vRAM보다 높으면, 캐시 미스(cache miss)가 발생하여 에러(error)가 발생할 수 있다. 여기서, 캐시 미스는 할당받은 메모리보다 처리하려는 메모리가 크면 나타나는 현상이다.
파티션 매니저(131)는 파티셔닝된 쓰레드들을 그루핑(grouping)할 수 있다. 여기서, 파티션 매니저(131)는 파티셔닝된 쓰레드들을 2가지를 고려하여 그루핑할 수 있다. 첫째, 파티션 매니저(131)는 잡들이 vRAM의 사이즈를 초과하지 않도록 그루핑을 할 수 있다. 구체적으로, 파티션 매니저(131)는 vRAM의 사이즈보다 잡들의 사이즈를 작게 그루핑하여 캐시 미스를 발생하지 않도록 한다. 둘째, 파티션 매니저(131)는 행렬 곱 연산과 같은 중복된 데이터를 둘 이상의 쓰레드들에서 필요한 경우에는 상기 둘 이상의 쓰레드들을 하나의 잡으로 그루핑한다. 구체적으로, 파티션 매니저(131)는 행렬 곱 연산과 같은 중복된 데이터들을 하나의 잡으로 그루핑하여 처리속도를 향상시킬 수 있다.
컴퓨팅 노드의 수와 생성된 잡의 수를 비교한다(S400). 구체적으로, 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 수와 복수의 잡의 수를 비교한다.
복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 수가 복수의 잡의 수보다 많거나 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 수가 복수의 잡의 수와 같으면, 서비스 노드(10)는 생성된 잡을 컴퓨팅 노드에 분배한다(S500). 구체적으로, 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 수가 복수의 잡의 수보다 많거나 복수의 컴퓨팅 노드(20, 20-1, …, 20-N)의 수가 복수의 잡의 수와 같으면, 파티션 매니저(131)는 복수의 잡을 분석된 작업의 정보와 이용 가능한 자원의 정보를 고려하여 복수의 컴퓨팅 노드(20, 20-1, … 20-N)로 분배한다.
또한, (S400)단계에서 컴퓨팅 노드들(20, 20-1, …, 20-N)의 수가 복수의 잡의 수보다 적으면, 서비스 노드(10)는 우선순위가 낮은 잡을 보관하고, 나머지 잡들을 컴퓨팅 노드에 분배한다(S600).
구체적으로, 잡 큐(133)는 컴퓨팅 노드들(20, 20-1, …, 20-N)의 수가 복수의 잡의 수보다 적으면, 복수의 잡 중에서 우선순위가 낮은 잡을 잡 큐(133)에 보관할 수 있다. 얼로케이션 모듈(130)은 잡 큐(133)에 보관된 잡을 제외한 복수의 잡을 분석된 작업의 정보와 이용 가능한 자원의 정보를 고려하여 복수의 컴퓨팅 노드(20, 20-1, … 20-N,)로 분배한다.
서비스 노드(10)는 보관되었던 잡을 컴퓨팅 노드에 분배한다(S700). 구체적으로, 컴퓨팅 노드들(20, 20-1, 20-2) 중 가장먼저 완료되는 컴퓨팅 노드는 사용가능신호를 서비스 노드(10)에 전달한다. 얼로케이션 모듈(130)은 잡 큐(133)에 보관되었던 우선순위가 낮은 잡을 사용가능신호를 전달한 컴퓨팅 노드에 분배한다.
도 9에서 설명한 실시 예는 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터로 판독가능한 기록매체에 기록될 수 있다. 상기 컴퓨터로 판독가능한 기록매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터로 판독가능한 기록매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터로 판독가능한 기록매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 실시 예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
10: 서비스 노드 20: 컴퓨팅 노드
100: 마스터 페더레이션 모듈 200: 게스트 OS
300: 태스크 400: 슬레이브 페더레이션 모듈
500: 코어 커널 600: 가상화 환경

Claims (11)

  1. 가상화 환경에서 자동으로 작업을 분배해주는 시스템에 있어서,
    상기 작업을 분석하여 상기 작업의 정보를 생성하는 서비스 노드; 및
    이용 가능한 자원의 정보를 상기 서비스 노드에 전달하는 복수의 컴퓨팅 노드;를 포함하고,
    상기 서비스 노드는 상기 작업의 정보 및 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 파티셔닝하고, 상기 이용 가능한 자원의 정보를 이용하여 상기 파티셔닝된 작업을 그루핑하여 복수의 잡을 생성하고, 상기 생성된 복수의 잡을 상기 이용 가능한 자원의 정보를 이용하여 상기 복수의 컴퓨팅 노드로 분배하는, 가상화된 매니코어 서버의 작업분배 시스템.
  2. 제1항에 있어서,
    상기 서비스 노드는, 상기 복수의 컴퓨팅 노드의 수가 복수의 잡의 수보다 적을 경우에는 상기 복수의 잡 중에서 우선순위가 낮은 잡을 보관하여 상기 복수의 잡 중에서 우선순위가 높은 잡을 먼저 분배하고, 상기 복수의 잡 중에서 사용가능신호를 전달 받으면 상기 우선순위가 낮은 잡을 분배하는, 가상화된 매니코어 서버의 작업분배 시스템.
  3. 제1항에 있어서,
    상기 서비스 노드는 게스트OS 및 마스터 페더레이션 모듈을 포함하고,
    상기 마스터 페데레이션 모듈은,
    상기 작업을 분석하여 상기 작업의 정보를 생성하는 잡 매니저;
    상기 복수의 컴퓨팅 노드로부터 상기 이용 가능한 자원의 정보를 생성하는 노드 매니저; 및
    상기 잡 매니저 및 상기 노드 매니저로부터 상기 작업의 정보 및 상기 이용 가능한 자원의 정보를 전송받고, 상기 작업의 정보 및 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 파티셔닝하고, 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 그루핑하여 상기 복수의 잡을 생성하고, 상기 생성된 복수의 잡을 상기 이용 가능한 자원의 정보를 이용하여 상기 복수의 컴퓨팅 노드로 분배하는 얼로케이션 모듈;을 포함하는, 가상화된 매니코어 서버의 작업분배 시스템.
  4. 제1항에 있어서,
    상기 컴퓨팅 노드는,
    상기 이용 가능한 자원의 정보를 상기 서비스 노드에 전송하고, 상기 복수의 잡 중 하나의 잡을 컴퓨테이션하는 슬레이브 페더레이션 모듈; 및
    하드웨어에 직접적인 명령을 하는 코어 커널;을 포함하는, 가상화된 매니코어 서버의 작업분배 시스템.
  5. 제4항에 있어서,
    상기 슬레이브 페더레이션 모듈은 상기 컴퓨테이션이 완료되면 사용가능신호를 생성하여 서비스 노드에 전달하는, 가상화된 매니코어 서버의 작업분배 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 이용 가능한 자원의 정보는 상기 복수의 컴퓨팅 노드의 총 수, 상기 복수의 컴퓨팅 노드의 vCPU의 총 수 및 상기 복수의 컴퓨팅 노드의 vRAM의 양을 포함하는, 가상화된 매니코어 서버의 작업분배 시스템.
  7. 제4항 또는 제5항에 있어서,
    상기 코어 커널은 코어 스케줄링, 메모리 관리, I/O관리 및 네트워크 관리를 하는 경량화된 커널인, 가상화된 매니코어 서버의 작업분배 시스템.
  8. 서비스 노드에서 복수의 컴퓨팅 노드로 작업을 분배해주는 방법에 있어서,
    상기 작업을 분석하여 상기 작업의 정보를 생성하는 단계;
    상기 복수의 컴퓨팅 노드의 이용 가능한 자원을 분석하여 상기 이용 가능한 자원의 정보를 생성하는 단계;
    상기 작업의 정보와 상기 이용 가능한 자원의 정보를 이용하여 상기 작업을 파티셔닝하고, 상기 이용 가능한 자원의 정보를 이용하여 상기 파티셔닝된 작업을 그루핑하여 복수의 잡을 생성하는 단계; 및
    상기 생성된 복수의 잡을 상기 복수의 컴퓨팅 노드로 분배하는 단계;를 포함하는, 가상화된 매니코어 서버의 작업분배 방법.
  9. 제8항에 있어서,
    상기 복수의 컴퓨팅 노드의 수가 상기 복수의 잡의 수보다 적으면, 상기 복수의 잡 중에서 우선순위가 낮은 잡을 보관하는 단계; 및
    사용가능신호를 전달 받으면 상기 우선순위가 낮은 잡을 분배하는 단계;를 더 포함하는, 가상화된 매니코어 서버의 작업분배 방법.
  10. 제8항에 있어서,
    상기 컴퓨팅 노드의 자원 정보는 상기 복수의 컴퓨팅 노드의 총 수, 상기 복수의 컴퓨팅 노드의 vCPU의 총 수 및 상기 복수의 컴퓨팅 노드의 vRAM의 양을 포함하는, 가상화된 매니코어 서버의 작업분배 방법.
  11. 제8항 내지 제 10항 중 어느 한 항에 따른 가상화된 매니코어 서버의 작업분배 방법을 기록한 컴퓨터로 판독 가능한 기록매체.
KR20130009055A 2013-01-28 2013-01-28 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체 KR20140125893A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130009055A KR20140125893A (ko) 2013-01-28 2013-01-28 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130009055A KR20140125893A (ko) 2013-01-28 2013-01-28 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체

Publications (1)

Publication Number Publication Date
KR20140125893A true KR20140125893A (ko) 2014-10-30

Family

ID=51995416

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130009055A KR20140125893A (ko) 2013-01-28 2013-01-28 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체

Country Status (1)

Country Link
KR (1) KR20140125893A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180013652A (ko) 2016-07-28 2018-02-07 단국대학교 산학협력단 매니코어에서 l1/l2 선반입 특성을 기반으로 응용의 워킹셋 크기를 파악하는 장치 및 방법
KR20190059048A (ko) 2017-11-22 2019-05-30 건국대학교 산학협력단 매니코어 기반 코어 파티셔닝 장치 및 방법, 이를 저장하는 기록매체
KR20190061241A (ko) * 2017-11-27 2019-06-05 주식회사 비디 리소스 통합관리를 위한 메소스 처리 장치 및 방법
US10503557B2 (en) 2016-12-27 2019-12-10 Samsung Electronics Co., Ltd. Method of processing OpenCL kernel and computing device therefor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180013652A (ko) 2016-07-28 2018-02-07 단국대학교 산학협력단 매니코어에서 l1/l2 선반입 특성을 기반으로 응용의 워킹셋 크기를 파악하는 장치 및 방법
US10503557B2 (en) 2016-12-27 2019-12-10 Samsung Electronics Co., Ltd. Method of processing OpenCL kernel and computing device therefor
KR20190059048A (ko) 2017-11-22 2019-05-30 건국대학교 산학협력단 매니코어 기반 코어 파티셔닝 장치 및 방법, 이를 저장하는 기록매체
KR20190061241A (ko) * 2017-11-27 2019-06-05 주식회사 비디 리소스 통합관리를 위한 메소스 처리 장치 및 방법

Similar Documents

Publication Publication Date Title
US10467725B2 (en) Managing access to a resource pool of graphics processing units under fine grain control
EP3254196B1 (en) Method and system for multi-tenant resource distribution
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
US9471390B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
KR100834340B1 (ko) 서버 최적화 방법과 시스템 및 컴퓨터 판독 가능한 저장매체
Mohapatra et al. A comparison of four popular heuristics for load balancing of virtual machines in cloud computing
WO2016078178A1 (zh) 一种虚拟cpu调度方法
Sidhu Comparative analysis of scheduling algorithms of Cloudsim in cloud computing
JP6753999B2 (ja) 分散データベースシステム及び分散データベースシステムのリソース管理方法
WO2023050819A1 (zh) 片上系统、虚拟机任务处理方法及设备、存储介质
KR20140125893A (ko) 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
Tan et al. A virtual multi-channel GPU fair scheduling method for virtual machines
KR101656706B1 (ko) 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법
KR20150092492A (ko) 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법
Rajak et al. Load balancing techniques in cloud platform: A systematic study
Gouasmi et al. Cost-efficient distributed MapReduce job scheduling across cloud federation
US20140245300A1 (en) Dynamically Balanced Credit for Virtual Functions in Single Root Input/Output Virtualization
KR20170094899A (ko) 컴퓨팅 리소스 관리 시스템 및 방법
Aliyu et al. Performance analysis of a hybrid approach to enhance load balancing in a heterogeneous cloud environment
Priya et al. An Experimental Evaluation of Load Balancing Policies Using Cloud Analyst
Kousalya et al. A comparative study of parallel job scheduling algorithms in cloud computing
Shirinbab et al. Performance implications of over-allocation of virtual cpus
Aluvalu et al. Performance evaluation of clustering algorithms for dynamic VM allocation in cloud computing
Aluri et al. Priority based non-preemptive shortest job first resource allocation technique in cloud computing

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
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20140723

Effective date: 20150514