KR20210077466A - 동적 매니코어 파티셔닝 장치 및 방법 - Google Patents

동적 매니코어 파티셔닝 장치 및 방법 Download PDF

Info

Publication number
KR20210077466A
KR20210077466A KR1020190169137A KR20190169137A KR20210077466A KR 20210077466 A KR20210077466 A KR 20210077466A KR 1020190169137 A KR1020190169137 A KR 1020190169137A KR 20190169137 A KR20190169137 A KR 20190169137A KR 20210077466 A KR20210077466 A KR 20210077466A
Authority
KR
South Korea
Prior art keywords
cores
affinity
dynamic
core
input
Prior art date
Application number
KR1020190169137A
Other languages
English (en)
Other versions
KR102319718B1 (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
Application filed by 건국대학교 산학협력단, 국민대학교산학협력단 filed Critical 건국대학교 산학협력단
Priority to KR1020190169137A priority Critical patent/KR102319718B1/ko
Publication of KR20210077466A publication Critical patent/KR20210077466A/ko
Application granted granted Critical
Publication of KR102319718B1 publication Critical patent/KR102319718B1/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

본 발명은 동적 매니코어 파티셔닝(Many-core Partitioning) 장치 및 방법에 관한 것으로, 상기 장치는 매니코어(Many-core) 시스템을 구성하는 복수의 코어들 각각의 사용량을 주기적으로 모니터링하는 코어 모니터(Core Monitor), 상기 모니터링의 결과를 기초로 네트워크와 파일의 입출력에 관한 친화도 정보를 관리하는 친화도 정보 관리부 및 동적 코어 친화도 알고리즘에 따라 상기 네트워크와 상기 파일에 관한 입출력 각각에서 사용되는 상기 코어의 개수를 적응적으로 결정하는 동적 친화도 결정부를 포함한다.

Description

동적 매니코어 파티셔닝 장치 및 방법{DYNAMIC MANY-CORE PARTITIONING APPARATUS AND METHOD}
본 발명은 동적 매니코어 파티셔닝 기술에 관한 것으로, 보다 상세하게는, 시스템 상황을 모니터링하며 동적으로 시스템 호출과 이벤트 핸들러가 동작할 코어의 개수를 조절하는 동적 매니코어 파티셔닝 장치 및 방법에 관한 것이다.
매니코어(Many-core) 시스템에서 기존의 운영체제는 코어의 개수가 많아질수록 확장성을 가지고 시스템의 성능이 코어 개수에 비례하여 증가하기를 기대하였으나, 캐시 미스, 캐시 일관성 활동과 동기화 등의 문제로 인하여 코어 개수 증가에도 불구하고 확장성을 보이지 못하고 성능이 일정 수치까지 증가하다가 수렴하거나 심지어는 감소하는 소위 암달의 법칙(Amdahl's law)이라고 불리는 현상이 발생하였다.
이를 개선하기 위한 많은 연구들이 진행되었고, 그 중 코어 친화도를 이용하여 시스템 호출과 하드웨어의 이벤트 핸들러에 사용되는 코어를 지정하여 캐시 일관성 활동과 캐시 미스를 줄여 확장성을 향상시키려는 시도들이 있었다.
하지만 기존 연구들에서는 친화도를 지정할 코어의 개수를 고정적으로 설정하였기 때문에 시스템 환경이 변하거나 응용의 성격이 바뀔 때마다 최적의 코어 개수 조합을 다시 실험을 통하여 찾아 설정해 주어야 하는 한계가 존재하였다.
한국 공개특허공보 제10-2013-0033020(2013.04.03)호
본 발명의 일 실시예는 시스템 상황을 모니터링하며 동적으로 시스템 호출과 이벤트 핸들러가 동작할 코어의 개수를 조절하는 동적 매니코어 파티셔닝 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 응용이나 커널 코드의 수정 없이 사용 가능하고, 적응적으로 코어의 개수를 조절하므로 시스템이나 대상 응용이 바뀌어도 문제없이 적용 가능한 동적 매니코어 파티셔닝 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 시스템 호출과 이벤트 핸들러에 사용되는 코어의 개수를 각 코어의 사용량에 기반하여 적응적으로 조절함으로써 정적 코어 친화도에서 코어의 개수를 고정하였을 때 지정된 코어들의 사용량이 모두 높을 때와 낮을 때 생기는 자원 활용의 비효율성을 개선하는 동적 매니코어 파티셔닝 장치 및 방법을 제공하고자 한다.
실시예를 중에서, 동적 매니코어 파티셔닝 장치는 매니코어(Many-core) 시스템을 구성하는 복수의 코어들 각각의 사용량을 주기적으로 모니터링하는 코어 모니터(Core Monitor), 상기 모니터링의 결과를 기초로 네트워크와 파일의 입출력에 관한 친화도 정보를 관리하는 친화도 정보 관리부 및 동적 코어 친화도 알고리즘에 따라 상기 네트워크와 상기 파일에 관한 입출력 각각에서 사용되는 상기 코어의 개수를 적응적으로 결정하는 동적 친화도 결정부를 포함한다.
상기 코어 모니터는 상기 네트워크와 상기 파일에 관한 입출력 각각에 대해 코어당 사용량을 수집하는 모니터 타이머(Monitor timer)를 포함하고, 상기 친화도 정보 관리부는 상기 네트워크와 상기 파일에 관한 입출력 각각에서 사용되는 코어들의 시작 번호, 끝 번호 및 사용 개수를 상기 동적 친화도 결정부와의 연동을 통해 관리할 수 있다.
상기 동적 친화도 결정부는 매 주기마다 상기 네트워크와 상기 파일 중 어느 하나에 관한 입출력에 대해서만 상기 코어의 개수를 적응적으로 결정할 수 있다.
상기 동적 친화도 결정부는 상기 네트워크와 상기 파일 중 현재 주기의 대상이 되는 입출력 종류를 수신하는 단계, 상기 입출력 종류에서 현재 사용 중인 코어 사용 개수를 결정하는 단계, 상기 코어 사용 개수와 기 설정된 임계 값 간의 비교를 통해 조건 충족 여부를 결정하는 단계 및 상기 조건이 충족된 경우 상기 입출력 종류에서 사용되는 코어의 개수를 적응적으로 갱신하는 단계로 수행되는 알고리즘을 상기 동적 코어 친화도 알고리즘으로서 사용할 수 있다.
상기 동적 친화도 결정부는 상기 조건 충족 여부를 결정하는 단계에서, 상기 코어 사용 개수가 상한 임계 값을 초과한 경우 또는 상기 코어 사용 개수가 하한 임계 값 미만인 경우 상기 조건이 충족된 것으로 결정할 수 있다.
상기 동적 친화도 결정부는 상기 적응적으로 갱신하는 단계에서, 상기 코어 사용 개수가 상한 임계 값을 초과한 경우 상기 코어의 개수를 기 설정된 증가량만큼 증가시키고 상기 코어 사용 개수가 하한 임계 값 미만인 경우 상기 코어의 개수를 기 설정된 감소량만큼 감소시킬 수 있다.
상기 동적 친화도 결정부는 상기 적응적으로 결정된 코어의 개수에 따라 상기 네트워크와 상기 파일에 관한 입출력 대기열을 각각 재분배할 수 있다.
상기 동적 친화도 결정부는 상기 네트워크와 상기 파일 중 현재 주기의 대상이 되는 입출력 종류를 결정하는 동적 루틴 타이머(Dynamic Routine Timer), 상기 입출력 종류에 따라 상기 친화도 정보 관리부로부터 상기 친화도 정보를 수신하는 친화도 정보 페치(fetch) 모듈, 상기 친화도 정보를 기초로 상기 동적 코어 친화도 알고리즘에 따라 상기 코어의 개수를 적응적으로 결정하는 동적 코어 친화도 모듈, 상기 적응적으로 결정된 코어의 개수를 상기 친화도 정보 관리부에 제공하는 친화도 정보 갱신 모듈 및 상기 적응적으로 결정된 코어의 개수에 따라 상기 네트워크와 상기 파일에 관한 입출력 대기열을 각각 재분배하는 재분배 모듈을 포함할 수 있다.
실시예들 중에서, 동적 매니코어 파티셔닝 방법은 (a) 매니코어(Many-core) 시스템을 구성하는 복수의 코어들 각각의 사용량을 주기적으로 모니터링하는 단계, (b) 상기 모니터링의 결과를 기초로 네트워크와 파일의 입출력에 관한 친화도 정보를 관리하는 단계 및 (c) 동적 코어 친화도 알고리즘에 따라 상기 네트워크와 상기 파일에 관한 입출력 각각에서 사용되는 상기 코어의 개수를 적응적으로 결정하는 단계를 포함한다.
상기 (c) 단계는 매 주기마다 상기 네트워크와 상기 파일 중 어느 하나에 관한 입출력에 대해서만 상기 코어의 개수를 적응적으로 결정하는 단계를 포함할 수 있다.
상기 (c) 단계는 (c1) 상기 네트워크와 상기 파일 중 현재 주기의 대상이 되는 입출력 종류를 결정하는 단계, (c2) 상기 입출력 종류에 따라 상기 친화도 정보 관리부로부터 상기 친화도 정보를 수신하는 단계, (c3) 상기 친화도 정보를 기초로 상기 동적 코어 친화도 알고리즘에 따라 상기 코어의 개수를 적응적으로 결정하는 단계, (c4) 상기 적응적으로 결정된 코어의 개수를 상기 친화도 정보 관리부에 제공하는 단계 및 (c5) 상기 적응적으로 결정된 코어의 개수에 따라 상기 네트워크와 상기 파일에 관한 입출력 대기열을 각각 재분배하는 단계를 포함할 수 있다.
상기 (c3) 단계는 (c31) 상기 네트워크와 상기 파일 중 현재 주기의 대상이 되는 입출력 종류를 수신하는 단계, (c32)상기 입출력 종류에서 현재 사용 중인 코어 사용 개수를 결정하는 단계, (c33)상기 코어 사용 개수와 기 설정된 임계 값 간의 비교를 통해 조건 충족 여부를 결정하는 단계 및 (c34)상기 조건이 충족된 경우 상기 입출력 종류에서 사용되는 코어의 개수를 적응적으로 갱신하는 단계를 포함할 수 있다.
상기 (c33) 단계는 상기 코어 사용 개수가 상한 임계 값을 초과한 경우 또는 상기 코어 사용 개수가 하한 임계 값 미만인 경우 상기 조건이 충족된 것으로 결정하는 단계를 포함할 수 있다.
상기 (c33) 단계는 상기 코어 사용 개수가 상한 임계 값을 초과한 경우 상기 코어의 개수를 기 설정된 증가량만큼 증가시키고 상기 코어 사용 개수가 하한 임계 값 미만인 경우 상기 코어의 개수를 기 설정된 감소량만큼 감소시키는 단계를 포함할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 동적 매니코어 파티셔닝 장치 및 방법은 응용이나 커널 코드의 수정 없이 사용 가능하고, 적응적으로 코어의 개수를 조절하므로 시스템이나 대상 응용이 바뀌어도 문제없이 적용 가능할 수 있다.
본 발명의 일 실시예에 따른 동적 매니코어 파티셔닝 장치 및 방법은 시스템 호출과 이벤트 핸들러에 사용되는 코어의 개수를 각 코어의 사용량에 기반하여 적응적으로 조절함으로써 정적 코어 친화도에서 코어의 개수를 고정하였을 때 지정된 코어들의 사용량이 모두 높을 때와 낮을 때 생기는 자원 활용의 비효율성을 개선할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동적 매니코어 파티셔닝 장치의 물리적 구성을 설명하는 도면이다.
도 2는 도 1에 있는 동적 매니코어 파티셔닝 장치의 기능적 구성을 설명하는 도면이다.
도 3은 도 1에 있는 동적 매니코어 파티셔닝 장치에서 수행되는 동적 매니코어 파티셔닝 과정을 설명하는 순서도이다.
도 4는 본 발명에 따른 동적 매니코어 파티셔닝 장치의 구성을 설명하는 도면이다.
도 5는 본 발명에 따른 동적 코어 친화도 알고리즘에 관한 의사코드이다.
도 6은 본 발명에 따른 동적 코어 친화도 알고리즘을 설명하는 흐름도이다.
도 7은 본 발명에 따른 동적 코어 친화도의 수행시간을 비교한 도면이다.
도 8은 본 발명에 따른 동적 코어 친화도의 수행에 따른 코어 개수를 나타내는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
<코어 친화도>
코어 친화도는 응용, 이벤트 핸들러, 시스템 호출 등을 담당하는 코어를 지정하여 해당하는 코어에서만 동작하도록 설정할 수 있는 방법이다. 기존의 코어 친화도 연구들을 통하여 하드웨어적으로 NUMA 구조에서 PCI 버스가 가까운 노드의 코어에 네트워크, 블록 디바이스의 이벤트 핸들러와 시스템 호출을 수행하도록 하여 거쳐가는 버스를 최소화할 수도 있고, 특정 코어에서만 시스템 호출과 이벤트 핸들러를 수행하도록 하여 캐시 미스를 줄이고 캐시 일관성을 유지하는 작업에 드는 비용을 줄이는 등 캐시 메모리와 관련된 오버헤드를 줄일 수 있음을 확인하였다. 또한, NUMA 구조에서 다른 노드의 메모리에 접근하는 횟수를 크게 줄여 효율적인 메모리 자원의 사용이 가능해진다.
<시스템 호출 수준의 정적 코어 친화도>
시스템 호출 수준의 코어 친화도는 특정 시스템 콜이 동작할 수 있는 코어를 지정해 줄 수 있는 방법이다. 시스템 호출 수준의 코어 친화도를 지원하는 기존 연구는 메시지 기반의 시스템 호출을 이용하여 응용과 시스템 콜의 컨텍스트를 분리하여 코어 친화도를 적용하였고, 지역성을 향상시키고 캐시 오염을 줄여 아파치 웹 서버의 처리량을 48%, 하둡 맵 리듀스 응용의 수행 시간을 17%까지 향상시켰음을 보였다. 또 다른 연구에서는 커널에 시스템 호출을 수행하는 스레드를 생성해 두고 이를 공유 메모리를 통해 요청하고 반환 값을 받는 방법을 통해 트랩의 발생 빈도를 줄여 네트워크 처리량을 2배 가까이 향상시켰다.
<이벤트 핸들러 수준의 정적 코어 친화도>
이벤트 핸들러 수준의 코어 친화도는 하드웨어 레벨에서의 이벤트 핸들러의 코어 친화도를 지정하는 기법이다. 이벤트 핸들러 수준의 코어 친화도를 지원하는 기존 연구에서는 하드웨어 구조를 고려한 네트워크와 블록 디바이스의 이벤트 핸들러 수준의 코어 친화도 적용을 통해 하둡 파일시스템에 파일을 업로드 할 때 처리량을 최대 32%까지 향상시켰다. 또 이벤트 핸들러 수준의 코어 친화도가 캐시 일관성 활동에 영향을 주는 것을 확인하였다.
<기존 연구들의 한계점>
기존 연구들은 시스템 호출과 이벤트 핸들러에 코어 친화도를 적용하면서 지역성을 보장하고, 캐시 미스, 캐시 일관성 활동을 줄여 자원을 효율적으로 활용할 수 있도록 하였다. 하지만, 기존 연구들은 시스템 호출과 이벤트 핸들러가 동작하는 코어와 코어의 개수가 고정되어 변하지 않기 때문에 코어들의 사용량이 낮거나 높을 때 코어 자원을 비 효율적으로 사용하게 된다는 한계가 존재한다.
도 1은 본 발명의 일 실시예에 따른 동적 매니코어 파티셔닝 장치의 물리적 구성을 설명하는 도면이다.
도 1을 참조하면, 동적 매니코어 파티셔닝 장치(100)는 프로세서(110), 메모리(130), 사용자 입출력부(150) 및 네트워크 입출력부(170)를 포함하여 구현될 수 있다.
프로세서(110)는 동적 매니코어 파티셔닝 장치(100)의 각 동작을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(130)를 관리할 수 있으며, 메모리(130)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(110)는 동적 매니코어 파티셔닝 장치(100)의 동작 전반을 제어할 수 있고, 메모리(130), 사용자 입출력부(150) 및 네트워크 입출력부(170)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(110)는 동적 매니코어 파티셔닝 장치(100)의 CPU(Central Processing Unit)로 구현될 수 있으며, 경우에 따라 복수의 CPU들로 구현될 수 있다.
메모리(130)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 동적 매니코어 파티셔닝 장치(100)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.
사용자 입출력부(150)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(150)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(150)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 동적 매니코어 파티셔닝 장치(100)는 서버로서 수행될 수 있다.
네트워크 입출력부(170)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.
도 2는 도 1에 있는 동적 매니코어 파티셔닝 장치의 기능적 구성을 설명하는 도면이다.
도 2를 참조하면, 동적 매니코어 파티셔닝 장치(100)는 코어 모니터(210), 친화도 정보 관리부(230), 동적 친화도 결정부(250) 및 제어부(270)를 포함할 수 있다.
코어 모니터(210)는 매니코어(Many-core) 시스템을 구성하는 복수의 코어들 각각의 사용량을 주기적으로 모니터링할 수 있다. 이를 위하여 코어 모니터(210)는 복수의 코어들 각각과 연결될 수 있고, 주기적으로 관련 정보를 수집하여 저장할 수 있다. 동적 매니코어 파티셔닝 장치(100)는 코어 모니터(210)에 의한 모니터링의 주기를 설정할 수 있으며, 코어 모니터(210)는 설정된 주기에 따라 모니터링 동작을 수행할 수 있다.
일 실시예에서, 코어 모니터(210)는 네트워크와 파일에 관한 입출력 각각에 대해 코어당 사용량을 수집하는 모니터 타이머(Monitor timer)를 포함할 수 있다. 모니터 타이머는 모니터링 주기를 관리할 수 있고, 코어 모니터(210)가 주기별로 모니터링 정보를 수집하는 동작을 지원할 수 있다. 코어 모니터(210)는 커널 모듈을 통해 주기적으로 각 코어 별 커널 영역에서의 사용량에 관한 정보를 수집하여 친화도 정보 관리부(230)에게 제공할 수 있다.
친화도 정보 관리부(230)는 모니터링의 결과를 기초로 네트워크와 파일의 입출력에 관한 친화도 정보를 관리할 수 있다. 즉, 친화도 정보 관리부(230)는 네트워크와 파일의 입출력에 사용되는 코어의 개수와 번호를 친화도 정보로서 각각 관리할 수 있다. 한편, 친화도 정보 관리부(230)는 네트워크와 파일의 입출력에 대한 관리를 독립적으로 수행할 수 있으며, 각 동작을 처리하는 독립적인 모듈들을 포함하여 구현될 수 있다.
일 실시예에서, 친화도 정보 관리부(230)는 네트워크와 파일에 관한 입출력 각각에서 사용되는 코어들의 시작 번호, 끝 번호 및 사용 개수를 동적 친화도 결정부(250)와의 연동을 통해 관리할 수 있다. 보다 구체적으로, 친화도 정보 관리부(230)는 요청에 따라 현재 시점에서의 친화도 정보를 동적 친화도 결정부(250)에게 제공할 수 있고, 동적 친화도 결정부(250)에 의해 친화도 정보가 동적으로 갱신되면 해당 정보를 수신하여 현재의 친화도 정보를 갱신할 수 있다.
동적 친화도 결정부(250)는 동적 코어 친화도 알고리즘에 따라 네트워크와 파일에 관한 입출력 각각에서 사용되는 코어의 개수를 적응적으로 결정할 수 있다. 여기에서, 동적 코어 친화도 알고리즘은 현재 코어의 상태에 따라 코어의 개수를 동적으로 갱신하는 알고리즘에 해당할 수 있다. 동적 친화도 결정부(250)에 의해 코어의 개수가 결정된 경우, 동적 매니코어 파티셔닝 장치(100)는 결정된 코어의 개수를 기준으로 친화도 정책에 따라 각 태스크를 처리할 코어를 할당할 수 있다.
일 실시예에서, 동적 친화도 결정부(250)는 매 주기마다 네트워크와 파일 중 어느 하나에 관한 입출력에 대해서만 코어의 개수를 적응적으로 결정할 수 있다. 즉, 동적 친화도 결정부(250)는 시스템 환경의 급격한 변화를 방지하기 위하여 매 주기마다 하나의 종류의 입출력에 대해서만 코어의 개수를 결정할 수 있다. 예를 들어, 이번 주기에 네트워크의 입출력에 관한 코어의 개수가 동적으로 결정된 경우 다음 주기에는 파일의 입출력에 관한 코어의 개수가 동적으로 결정될 수 있다.
일 실시예에서, 동적 친화도 결정부(250)는 네트워크와 파일 중 현재 주기의 대상이 되는 입출력 종류를 수신하는 단계, 입출력 종류에서 현재 사용 중인 코어 사용 개수를 결정하는 단계, 코어 사용 개수와 기 설정된 임계 값 간의 비교를 통해 조건 충족 여부를 결정하는 단계 및 조건이 충족된 경우 입출력 종류에서 사용되는 코어의 개수를 적응적으로 갱신하는 단계로 수행되는 알고리즘을 동적 코어 친화도 알고리즘으로서 사용할 수 있다.
즉, 동적 코어 친화도 알고리즘은 현재 사용 중인 코어의 개수를 기 설정된 임계 값과 비교한 후 비교 결과에 따라 동적으로 코어의 개수를 결정할 수 있다. 또한, 현재 주기의 대상이 되는 입출력 종류는 이전 주기의 대상이 되는 입출력 종류에 따라 결정될 수 있다. 또한, 현재 사용 중인 코어 사용 개수는 네트워크 또는 파일의 입출력에 할당된 코어의 개수를 카운팅(counting) 하여 획득할 수 있으며, 이를 위하여 친화도 정보 관리부(230)를 통해 코어의 시작과 끝 번호가 관리될 수 있다.
일 실시예에서, 동적 친화도 결정부(250)는 조건 충족 여부를 결정하는 단계에서, 코어 사용 개수가 상한 임계 값을 초과한 경우 또는 코어 사용 개수가 하한 임계 값 미만인 경우 조건이 충족된 것으로 결정할 수 있다. 이 때, 현재의 코어 사용 개수가 상한 임계 값을 초과한 경우라면 해당 입출력 종류에 대한 코어 사용량이 높다는 것을 의미할 수 있고, 코어 사용 개수가 하한 임계 값 미만인 경우라면 코어 사용량이 낮다는 것을 의미할 수 있다. 동적 매니코어 파티셔닝 장치(100)는 코어 자원의 효율성 향상을 위해 매니코어 시스템의 운용 환경을 고려하여 임계 값을 설정할 수 있다.
일 실시예에서, 동적 친화도 결정부(250)는 적응적으로 갱신하는 단계에서, 코어 사용 개수가 상한 임계 값을 초과한 경우 코어의 개수를 기 설정된 증가량만큼 증가시키고 코어 사용 개수가 하한 임계 값 미만인 경우 코어의 개수를 기 설정된 감소량만큼 감소시킬 수 있다. 예를 들어, 동적 친화도 결정부(250)는 코어 사용 개수가 상한 임계 값을 초과하는 경우 코어의 개수를 1 만큼 증가시킬 수 있고, 코어 사용 개수가 하한 임계 값 미만인 경우 코어의 개수를 1 만큼 감소시킬 수 있다.
한편, 동적 친화도 결정부(250)는 코어의 개수를 변경하기 전 단계에서 현재 사용 가능한 코어 또는 현재 사용 중인 코어가 존재하는지를 검출할 수 있다. 즉, 코어의 개수를 증가시킬 필요가 있는 경우라 하더라도 사용 가능한 코어가 존재하지 않는 경우 동적 친화도 결정부(250)는 코어의 개수를 그대로 유지시킬 수 있다. 또한, 사용 중인 코어가 없는 경우라면 코어의 개수의 감소는 불가능할 수 있다. 동적 매니코어 파티셔닝 장치(100)는 매니코어 시스템의 운용 환경을 고려하여 코어 사용 개수의 증가량 및 감소량을 설정할 수 있다.
일 실시예에서, 동적 친화도 결정부(250)는 적응적으로 결정된 코어의 개수에 따라 네트워크와 파일에 관한 입출력 대기열을 각각 재분배할 수 있다. 매니코어 시스템은 각 코어 별로 할당된 태스크를 처리하기 위한 대기열(queue)를 포함할 수 있고, 갱신된 코어의 개수에 따라 기존 대기열의 태스크들을 재분배할 수 있다. 이 때, 동적 친화도 결정부(250)는 모든 코어에 대해 공평하게 분배되도록 재분배 동작을 처리할 수 있다.
일 실시예에서, 동적 친화도 결정부(250)는 네트워크와 파일 중 현재 주기의 대상이 되는 입출력 종류를 결정하는 동적 루틴 타이머(Dynamic Routine Timer), 입출력 종류에 따라 친화도 정보 관리부(230)로부터 친화도 정보를 수신하는 친화도 정보 페치(fetch) 모듈, 친화도 정보를 기초로 동적 코어 친화도 알고리즘에 따라 코어의 개수를 적응적으로 결정하는 동적 코어 친화도 모듈, 적응적으로 결정된 코어의 개수를 친화도 정보 관리부(230)에 제공하는 친화도 정보 갱신 모듈 및 적응적으로 결정된 코어의 개수에 따라 네트워크와 파일에 관한 입출력 대기열을 각각 재분배하는 재분배 모듈을 포함할 수 있다.
제어부(270)는 동적 매니코어 파티셔닝 장치(100)의 전체적인 동작을 제어하고, 코어 모니터(210), 친화도 정보 관리부(230) 및 동적 친화도 결정부(250) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 3은 도 1에 있는 동적 매니코어 파티셔닝 장치에서 수행되는 동적 매니코어 파티셔닝 과정을 설명하는 순서도이다.
도 3을 참조하면, 동적 매니코어 파티셔닝 장치(100)는 코어 모니터(210)를 통해 매니코어(Many-core) 시스템을 구성하는 복수의 코어들 각각의 사용량을 주기적으로 모니터링할 수 있다(단계 S310). 동적 매니코어 파티셔닝 장치(100)는 친화도 정보 관리부(230)를 통해 모니터링의 결과를 기초로 네트워크와 파일의 입출력에 관한 친화도 정보를 관리할 수 있다(단계 S330). 동적 매니코어 파티셔닝 장치(100)는 동적 친화도 결정부(250)를 통해 동적 코어 친화도 알고리즘에 따라 네트워크와 파일에 관한 입출력 각각에서 사용되는 코어의 개수를 적응적으로 결정할 수 있다(단계 S350).
도 4는 본 발명에 따른 동적 매니코어 파티셔닝 장치의 구성을 설명하는 도면이다.
도 4를 참조하면, 동적 매니코어 파티셔닝 장치(100)는 코어 모니터(210), 친화도 정보 관리부(230) 및 동적 친화도 결정부(250)를 포함할 수 있다. 코어 모니터(210)는 모니터 타이머(211)를 포함할 수 있으며, 모니터 타이머(211)는 네트워크 입출력에 대한 코어당 사용량(Per Core Utilization for Network I/O), 파일 입출력에 대한 코어당 사용량(Per Core Utilization for Block I/O)을 주기적으로 수집할 수 있다. 코어 모니터(210)는 수집된 정보를 친화도 정보 관리부(230)에게 제공할 수 있다.
한편, 친화도 정보 관리부(230)는 네트워크를 위한 코어들(Cores for Net)과 블록들을 위한 코어들(Cores for Blk)에 관한 친화도 상태 정보를 관리할 수 있다. 이 때, 친화도 상태 정보는 코어의 시작 번호(Net_start, Blk_start), 끝 번호(Net_end, Blk_end) 및 코어 사용 개수(Net_Util, Blk_Util)를 포함할 수 있다. 친화도 정보 관리부(230)는 코어 모니터(210)로부터 수신한 정보와 동적 친화도 결정부(250)로부터 수신한 정보를 기초로 친화도 상태 정보를 관리할 수 있다.
또한, 동적 친화도 결정부(250)는 동적 코어 친화도 알고리즘에 따라 네트워크와 파일에 관한 입출력 각각에서 사용되는 코어의 개수를 적응적으로 결정할 수 있으며, 동적 코어 친화도 알고리즘의 각 단계를 수행하는 독립적이 모듈들을 포함하여 구현될 수 있다.
보다 구체적으로, 동적 친화도 결정부(250)는 동적 루틴 타이머(Dynamic Routine Timer)(251), 친화도 정보 페치(fetch) 모듈(253), 동적 코어 친화도 모듈(255), 친화도 정보 갱신 모듈(257) 및 재분배 모듈(259)을 포함할 수 있다.
동적 루틴 타이머(2510)는 네트워크와 파일 중 현재 주기의 대상이 되는 입출력 종류를 결정하는 동작을 수행할 수 있고, 친화도 정보 페치 모듈(253)은 입출력 종류에 따라 친화도 정보 관리부(230)로부터 친화도 상태 정보를 가져오는 동작을 수행할 수 있으며, 동적 코어 친화도 모듈(255)은 친화도 정보를 기초로 코어의 개수를 적응적으로 결정하는 동작을 수행할 수 있다. 이 때, 동적 코어 친화도 모듈(255)은 네트워크 및 파일 각각에 대해 독립적으로 동작하는 모듈들로 구성될 수 있다.
또한, 친화도 정보 갱신 모듈(257)은 적응적으로 결정된 코어의 개수를 친화도 정보 관리부(230)에 제공하여 친화도 상태 정보를 갱신하는 동작을 수행할 수 있다. 재분배 모듈(259)은 적응적으로 결정된 코어의 개수에 따라 네트워크와 파일에 관한 입출력 대기열을 각각 재분배하는 동작을 수행할 수 있다.
도 5는 본 발명에 따른 동적 코어 친화도 알고리즘에 관한 의사코드이고, 도 6은 본 발명에 따른 동적 코어 친화도 알고리즘을 설명하는 흐름도이다.
도 5 및 6을 참조하면, 동적 매니코어 파티셔닝 장치(100)는 동적 친화도 결정부(250)를 통해 동적 코어 친화도 알고리즘(Algorithm for dynamic core affinity)에 따라 네트워크와 파일에 관한 입출력 각각에서 사용되는 코어의 개수를 적응적으로 결정할 수 있다.
도 5에서, 동적 코어 친화도 알고리즘은 if 문을 통해 변수 Turn의 값이 Net(네트워크)인지 또는 Blk(파일)인지 결정할 수 있고, 각 경우에 해당하는 동작 루틴에 따라 코어의 개수를 결정할 수 있다. 한편, 동적 코어 친화도 알고리즘은 코어의 시작 번호(NETstart, BLKstart)와 끝 번호(NETend, BLKend)를 이용하여 현재 사용 중인 코어 사용 개수(Util)를 산출할 수 있다. 도 6에서, 네트워크(Turn == Net)의 경우 변수 i를 NETstart로 설정하고 i가 NETend를 초과할 때까지 Util를 카운팅 할 수 있다. 또한, 파일(Turn != Net)의 경우 변수 i를 BLKend로 설정하고 i가 BLKstart 미만이 될 때까지 Util을 카운팅 할 수 있다.
또한, 동적 코어 친화도 알고리즘은 코어 사용 개수와 임계 값 간의 비교를 통해 조건 충족 여부를 결정할 수 있고, 조건 충족 여부에 따라 코어의 개수를 조정할 수 있다.
예를 들어, 네트워크(Net)의 경우 제1 조건 Util > Thi && BLKstart - NETend > 2 을 충족하는 경우 코어의 개수를 1 증가시킬 수 있고(NETend = NETend + 1), 제2 조건 Util < Tlow && NETend ≠ NETstart 을 충족하는 경우 코어의 개수를 1 감소시킬 수 있다(NETend = NETend - 1). 또한, 파일(Blk)의 경우 제1 조건 Util > Thi and BLKstart - NETend > 2 을 충족하는 경우 코어의 개수를 1 증가시킬 수 있고(BLKstart = BLKstart - 1), 제2 조건 Util < Tlow and BLKstart ≠ BLKend 을 충족하는 경우 코어의 개수를 1 감소시킬 수 있다(BLKstart = BLKstart + 1).
동적 매니코어 파티셔닝 장치(100)는 기본적으로 커널 모듈에서 네트워크와 블록 디바이스의 입출력에 사용될 코어의 시작과 끝 번호를 각각 start와 end로 저장하여 관리할 수 있다. 동적 매니코어 파티셔닝 장치(100)는 코어 모니터(210)에서 얻어진 계산 값을 기반으로 동적 친화도 결정부(250)에서 상한 임계 값을 넘었을 때와 하한 임계 값에 못 미치는 사용량이 관찰되었을 때 네트워크와 블록 디바이스의 입출력에 사용되는 코어의 개수를 적응적으로 조절할 수 있다. 동적 매니코어 파티셔닝 장치(100)는 시스템 환경의 급격한 변화를 막기 위하여 매 주기마다 하나의 종류의 입출력에 관여하는 코어의 개수만 변경할 수 있다.
도 7 및 8은 본 발명에 따른 동적 코어 친화도에 관한 실험 결과를 나타내는 도면이다. 보다 구체적으로, 도 7의 그림(a)는 본 발명에 따른 동적 코어 친화도에 관한 실험 조건을 설명하는 도면이고, 도 7의 그림 (b)는 본 발명에 따른 동적 코어 친화도의 수행시간을 비교한 도면이며, 도 8은 본 발명에 따른 동적 코어 친화도의 수행에 따른 코어 개수를 나타내는 도면이다.
도 7 및 8을 참조하면, 동적 코어 친화도에 관한 실험은 동적 코어 친화도 기법의 적용을 통한 매니코어 환경에서의 성능 향상을 아파치 하둡을 이용하여 측정하고 분석하였다. 성능 향상 정도는 하둡 파일시스템을 이용한 맵 리듀스 응용인 Selfjoin의 수행 시간을 이용하였고, 본 실험에서 구현한 동적 코어 친화도를 적용한 후의 맵 리듀스 응용 수행 시간과 기존의 정적 코어 친화도를 적용한 후의 수행 시간을 각각 측정하여 비교하였다.
하둡 맵 리듀스 응용을 실행하기 위해 도 7의 그림 (a)와 같은 시스템으로 1대의 Master Node(Name node)와 3대의 Slave Node(Data node)를 이용한 실험 환경을 구축하였다.
본 실험에서는 성능 분석을 위하여 하둡 맵 리듀스 응용 중 하나인 Selfjoin을 이용하여 기존의 정적 코어 친화도와 본 발명에 따른 동적 코어 친화도를 각각 적용한 후에 응용 수행에 걸리는 시간을 측정하고 비교하였다.
성능 측정 결과 동적 코어 친화도를 적용한 후 응용의 수행 시간이 정적 코어 친화도를 적용한 후의 수행 시간과 비교하였을 때 24.9% 감소한 것을 확인했고, 이를 통해 네트워크와 블록 디바이스의 입출력에 사용되는 코어의 개수를 적응적으로 조절하는 것이 결과적으로 응용이 수행되는데 걸리는 총 시간을 줄이는 것을 확인하였다.
또한, 동적 코어 친화도를 적용한 후 응용이 실행되는 동안 시간의 흐름에 따라 하나의 Slave node에서 실제로 어떻게 이벤트 핸들러에 사용되는 코어의 개수가 조절되는지를 도 8을 통해 동적 코어 친화도를 통하여 코어 자원의 사용량에 따라 적응적으로 코어의 개수를 조절함으로써 코어 친화도의 효과를 극대화하고 필요한 만큼의 코어 자원을 효율적으로 사용하게 되는 결과를 얻을 수 있음을 확인했다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 동적 매니코어 파티셔닝 장치
110: 프로세서 130: 메모리
150: 사용자 입출력부 170: 네트워크 입출력부
210: 코어 모니터 211: 모니터 타이머
230: 친화도 정보 관리부 250: 동적 친화도 결정부
251: 동적 루틴 타이머 253: 친화도 정보 페치 모듈
255: 동적 코어 친화도 모듈 257: 친화도 정보 갱신 모듈
259: 재분배 모듈 270: 제어부

Claims (14)

  1. 매니코어(Many-core) 시스템을 구성하는 복수의 코어들 각각의 사용량을 주기적으로 모니터링하는 코어 모니터(Core Monitor);
    상기 모니터링의 결과를 기초로 네트워크와 파일의 입출력에 관한 친화도 정보를 관리하는 친화도 정보 관리부; 및
    동적 코어 친화도 알고리즘에 따라 상기 네트워크와 상기 파일에 관한 입출력 각각에서 사용되는 상기 코어의 개수를 적응적으로 결정하는 동적 친화도 결정부를 포함하는 동적 매니코어 파티셔닝 장치.
  2. 제1항에 있어서,
    상기 코어 모니터는 상기 네트워크와 상기 파일에 관한 입출력 각각에 대해 코어당 사용량을 수집하는 모니터 타이머(Monitor timer)를 포함하고,
    상기 친화도 정보 관리부는 상기 네트워크와 상기 파일에 관한 입출력 각각에서 사용되는 코어들의 시작 번호, 끝 번호 및 사용 개수를 상기 동적 친화도 결정부와의 연동을 통해 관리하는 것을 특징으로 하는 동적 매니코어 파티셔닝 장치.
  3. 제1항에 있어서, 상기 동적 친화도 결정부는
    매 주기마다 상기 네트워크와 상기 파일 중 어느 하나에 관한 입출력에 대해서만 상기 코어의 개수를 적응적으로 결정하는 것을 특징으로 하는 동적 매니코어 파티셔닝 장치.
  4. 제1항에 있어서, 상기 동적 친화도 결정부는
    상기 네트워크와 상기 파일 중 현재 주기의 대상이 되는 입출력 종류를 수신하는 단계;
    상기 입출력 종류에서 현재 사용 중인 코어 사용 개수를 결정하는 단계;
    상기 코어 사용 개수와 기 설정된 임계 값 간의 비교를 통해 조건 충족 여부를 결정하는 단계; 및
    상기 조건이 충족된 경우 상기 입출력 종류에서 사용되는 코어의 개수를 적응적으로 갱신하는 단계로 수행되는 알고리즘을 상기 동적 코어 친화도 알고리즘으로서 사용하는 것을 특징으로 하는 동적 매니코어 파티셔닝 장치.
  5. 제4항에 있어서, 상기 동적 친화도 결정부는
    상기 조건 충족 여부를 결정하는 단계에서, 상기 코어 사용 개수가 상한 임계 값을 초과한 경우 또는 상기 코어 사용 개수가 하한 임계 값 미만인 경우 상기 조건이 충족된 것으로 결정하는 것을 특징으로 하는 동적 매니코어 파티셔닝 장치.
  6. 제5항에 있어서, 상기 동적 친화도 결정부는
    상기 적응적으로 갱신하는 단계에서, 상기 코어 사용 개수가 상한 임계 값을 초과한 경우 상기 코어의 개수를 기 설정된 증가량만큼 증가시키고 상기 코어 사용 개수가 하한 임계 값 미만인 경우 상기 코어의 개수를 기 설정된 감소량만큼 감소시키는 것을 특징으로 하는 동적 매니코어 파티셔닝 장치.
  7. 제1항에 있어서, 상기 동적 친화도 결정부는
    상기 적응적으로 결정된 코어의 개수에 따라 상기 네트워크와 상기 파일에 관한 입출력 대기열을 각각 재분배하는 것을 특징으로 하는 동적 매니코어 파티셔닝 장치.
  8. 제1항에 있어서, 상기 동적 친화도 결정부는
    상기 네트워크와 상기 파일 중 현재 주기의 대상이 되는 입출력 종류를 결정하는 동적 루틴 타이머(Dynamic Routine Timer);
    상기 입출력 종류에 따라 상기 친화도 정보 관리부로부터 상기 친화도 정보를 수신하는 친화도 정보 페치(fetch) 모듈;
    상기 친화도 정보를 기초로 상기 동적 코어 친화도 알고리즘에 따라 상기 코어의 개수를 적응적으로 결정하는 동적 코어 친화도 모듈;
    상기 적응적으로 결정된 코어의 개수를 상기 친화도 정보 관리부에 제공하는 친화도 정보 갱신 모듈; 및
    상기 적응적으로 결정된 코어의 개수에 따라 상기 네트워크와 상기 파일에 관한 입출력 대기열을 각각 재분배하는 재분배 모듈을 포함하는 것을 특징으로 하는 동적 매니코어 파티셔닝 장치.
  9. 동적 매니코어 파티셔닝 장치에서 수행되는 방법에 있어서,
    (a) 매니코어(Many-core) 시스템을 구성하는 복수의 코어들 각각의 사용량을 주기적으로 모니터링하는 단계;
    (b) 상기 모니터링의 결과를 기초로 네트워크와 파일의 입출력에 관한 친화도 정보를 관리하는 단계; 및
    (c) 동적 코어 친화도 알고리즘에 따라 상기 네트워크와 상기 파일에 관한 입출력 각각에서 사용되는 상기 코어의 개수를 적응적으로 결정하는 단계를 포함하는 동적 매니코어 파티셔닝 방법.
  10. 제9항에 있어서, 상기 (c) 단계는
    매 주기마다 상기 네트워크와 상기 파일 중 어느 하나에 관한 입출력에 대해서만 상기 코어의 개수를 적응적으로 결정하는 단계를 포함하는 것을 특징으로 하는 동적 매니코어 파티셔닝 방법.
  11. 제9항에 있어서, 상기 (c) 단계는
    (c1) 상기 네트워크와 상기 파일 중 현재 주기의 대상이 되는 입출력 종류를 결정하는 단계;
    (c2) 상기 입출력 종류에 따라 상기 친화도 정보 관리부로부터 상기 친화도 정보를 수신하는 단계;
    (c3) 상기 친화도 정보를 기초로 상기 동적 코어 친화도 알고리즘에 따라 상기 코어의 개수를 적응적으로 결정하는 단계;
    (c4) 상기 적응적으로 결정된 코어의 개수를 상기 친화도 정보 관리부에 제공하는 단계; 및
    (c5) 상기 적응적으로 결정된 코어의 개수에 따라 상기 네트워크와 상기 파일에 관한 입출력 대기열을 각각 재분배하는 단계를 포함하는 것을 특징으로 하는 동적 매니코어 파티셔닝 방법.
  12. 제11항에 있어서, 상기 (c3) 단계는
    (c31) 상기 네트워크와 상기 파일 중 현재 주기의 대상이 되는 입출력 종류를 수신하는 단계;
    (c32)상기 입출력 종류에서 현재 사용 중인 코어 사용 개수를 결정하는 단계;
    (c33)상기 코어 사용 개수와 기 설정된 임계 값 간의 비교를 통해 조건 충족 여부를 결정하는 단계; 및
    (c34)상기 조건이 충족된 경우 상기 입출력 종류에서 사용되는 코어의 개수를 적응적으로 갱신하는 단계를 포함하는 것을 특징으로 하는 동적 매니코어 파티셔닝 방법.
  13. 제12항에 있어서, 상기 (c33) 단계는
    상기 코어 사용 개수가 상한 임계 값을 초과한 경우 또는 상기 코어 사용 개수가 하한 임계 값 미만인 경우 상기 조건이 충족된 것으로 결정하는 단계를 포함하는 것을 동적 매니코어 파티셔닝 방법.
  14. 제12항에 있어서, 상기 (c33) 단계는
    상기 코어 사용 개수가 상한 임계 값을 초과한 경우 상기 코어의 개수를 기 설정된 증가량만큼 증가시키고 상기 코어 사용 개수가 하한 임계 값 미만인 경우 상기 코어의 개수를 기 설정된 감소량만큼 감소시키는 단계를 포함하는 것을 특징으로 하는 동적 매니코어 파티셔닝 방법.
KR1020190169137A 2019-12-17 2019-12-17 동적 매니코어 파티셔닝 장치 및 방법 KR102319718B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190169137A KR102319718B1 (ko) 2019-12-17 2019-12-17 동적 매니코어 파티셔닝 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190169137A KR102319718B1 (ko) 2019-12-17 2019-12-17 동적 매니코어 파티셔닝 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210077466A true KR20210077466A (ko) 2021-06-25
KR102319718B1 KR102319718B1 (ko) 2021-11-02

Family

ID=76629389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190169137A KR102319718B1 (ko) 2019-12-17 2019-12-17 동적 매니코어 파티셔닝 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102319718B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130033020A (ko) 2011-09-26 2013-04-03 삼성전자주식회사 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
KR20130088512A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
KR20180045347A (ko) * 2016-10-25 2018-05-04 에스케이텔레콤 주식회사 가상화 환경에서의 자원 관리 방법 및 이를 지원하는 장치
KR20190059048A (ko) * 2017-11-22 2019-05-30 건국대학교 산학협력단 매니코어 기반 코어 파티셔닝 장치 및 방법, 이를 저장하는 기록매체

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130033020A (ko) 2011-09-26 2013-04-03 삼성전자주식회사 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
KR20130088512A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
KR20180045347A (ko) * 2016-10-25 2018-05-04 에스케이텔레콤 주식회사 가상화 환경에서의 자원 관리 방법 및 이를 지원하는 장치
KR20190059048A (ko) * 2017-11-22 2019-05-30 건국대학교 산학협력단 매니코어 기반 코어 파티셔닝 장치 및 방법, 이를 저장하는 기록매체

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
김주호. 하둡 맵리듀스를 위한 매니코어 파티셔닝. 건국대학교 대학원. 2018.08.* *
엄준용 외 2명. 네트워크 성능향상을 위한 시스템 호출 수준 코어 친화도. 2017.01. *

Also Published As

Publication number Publication date
KR102319718B1 (ko) 2021-11-02

Similar Documents

Publication Publication Date Title
US11714686B2 (en) Resource oversubscription based on utilization patterns in computing systems
US9571561B2 (en) System and method for dynamically expanding virtual cluster and recording medium on which program for executing the method is recorded
US8190795B2 (en) Memory buffer allocation device and computer readable medium having stored thereon memory buffer allocation program
Chatzistergiou et al. Fast heuristics for near-optimal task allocation in data stream processing over clusters
CN106452818B (zh) 一种资源调度的方法和系统
TW201642130A (zh) 中央處理單元超量配置及雲端計算工作量排程機制
JP2008191949A (ja) マルチコアシステムおよびマルチコアシステムの負荷分散方法
US20200385726A1 (en) Oversubscription scheduling
JP2012118987A (ja) メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ)
US10560537B2 (en) Function based dynamic traffic management for network services
KR20120066189A (ko) 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법
US8914582B1 (en) Systems and methods for pinning content in cache
Min et al. Vmmb: Virtual machine memory balancing for unmodified operating systems
US9135064B2 (en) Fine grained adaptive throttling of background processes
US9934147B1 (en) Content-aware storage tiering techniques within a job scheduling system
US10360150B2 (en) Techniques for managing memory in a multiprocessor architecture
US8977752B2 (en) Event-based dynamic resource provisioning
KR102469927B1 (ko) 분할 메모리 관리장치 및 방법
US10628279B2 (en) Memory management in multi-processor environments based on memory efficiency
Noel et al. Taming performance hotspots in cloud storage with dynamic load redistribution
KR102319718B1 (ko) 동적 매니코어 파티셔닝 장치 및 방법
JP6158751B2 (ja) 計算機資源割当装置及び計算機資源割当プログラム
US9367439B2 (en) Physical memory usage prediction
KR20230063015A (ko) 가상화 서버에서 가상머신 cpu 자원을 관리하는 장치 및 방법
Hwang et al. CAVA: Exploring memory locality for big data analytics in virtualized clusters

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant