KR101502225B1 - 컴퓨팅 장치에서의 가상머신 간의 성능간섭 감소를 위한 가상머신 할당 방법 - Google Patents

컴퓨팅 장치에서의 가상머신 간의 성능간섭 감소를 위한 가상머신 할당 방법 Download PDF

Info

Publication number
KR101502225B1
KR101502225B1 KR1020130090755A KR20130090755A KR101502225B1 KR 101502225 B1 KR101502225 B1 KR 101502225B1 KR 1020130090755 A KR1020130090755 A KR 1020130090755A KR 20130090755 A KR20130090755 A KR 20130090755A KR 101502225 B1 KR101502225 B1 KR 101502225B1
Authority
KR
South Korea
Prior art keywords
interference
virtual machine
virtual
virtual machines
processors
Prior art date
Application number
KR1020130090755A
Other languages
English (en)
Other versions
KR20150015137A (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 KR1020130090755A priority Critical patent/KR101502225B1/ko
Publication of KR20150015137A publication Critical patent/KR20150015137A/ko
Application granted granted Critical
Publication of KR101502225B1 publication Critical patent/KR101502225B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

본 발명의 일 실시예에 따르면, 각각이 적어도 하나의 코어를 갖는 복수개의 프로세서를 포함하는 컴퓨팅 장치에서의 가상머신 할당 방법에 있어서, 각 가상머신에 대한 간섭강도 및 간섭민감도를 계산하는 단계; 및 계산된 상기 간섭강도 및 간섭민감도에 기초하여, 간섭강도가 높은 가상머신과 간섭민감도가 낮은 가상머신을 동일한 프로세서에 할당하는 단계;를 포함하는 것을 특징으로 하는 가상머신 할당 방법을 제공할 수 있다.

Description

컴퓨팅 장치에서의 가상머신 간의 성능간섭 감소를 위한 가상머신 할당 방법{Virtual machine allocation method to minimize performance interference between virtual machines}
본 발명은 가상머신의 할당 방법에 관한 것으로, 보다 구체적으로는, 컴퓨팅 장치 내에서의 가상머신 간의 성능간섭을 최소로 하기 위한 가상머신 할당 방법에 관한 것이다.
서버 가상화 환경에서 여러 개의 가상머신들이 하나의 물리적인 서버에서 동시에 수행되는 경우 공유자원에 대한 성능 간섭은 피할 수 없는 현상이다. 특히 말단 캐시와 주기억장치 버스에 대한 경합은 하드웨어 수준에서 발생하기 때문에 운영체제나 시스템 소프트웨어 수준에서 제어할 수 있는 여지가 많지 않다는 문제가 있다.
하나의 가상머신마다 하나의 작업부하(예컨대 프로그램)가 실행된다고 전제할 경우, 일반적으로 하나의 가상머신만 실행되는 경우에 비해 물리적 자원을 공유하는 두 개의 가상머신이 동시에 실행될 때 각각의 가상머신은 동작 성능이 저하된다. 그런데 이 경우 한쪽 가상머신의 동작 성능은 이와 동시에 실행되는 다른쪽 가상머신의 특성에 따라 성능 저하의 정도가 달라진다. 예컨대 A라는 가상머신은 B라는 가상머신과 함께 실행될 때에 비해 C라는 가상머신과 함께 실행될 때 성능이 더 많이 저하될 수 있다.
따라서 물리적 자원을 공유하는 복수개의 가상머신을 동시에 실행해야 하는 상황이라면, 가능한 한 서로 성능 저하가 덜 되는 가상머신끼리 실행시키는 것이 실행속도를 더 빠르게 하고 결과적으로 전력소비량도 더 감소시킬 수 있을 것이다.
그러므로 가상머신의 특성을 규명하고 어떤 가상머신끼리 동일한 물리적 자원을 공유하도록 할당할 경우 서로간의 성능 간섭이 심해지는지를 예측하고 이 예측을 바탕으로 성능 간섭을 줄이는 가상머신 할당 기법의 필요성이 제기된다.
본 발명의 일 실시예에 따르면, 물리적 자원을 공유하는 복수개의 가상머신을 동시에 실행해야 하는 경우, 각각의 가상머신의 특성을 예측하고 가능한 한 서로 성능 저하가 덜 되는 가상머신끼리 하나의 프로세서에 할당하는 방법을 제공한다.
본 발명의 일 실시예에 따르면, 서로 성능 저하가 덜 되는 가상머신끼리 하나의 프로세서에 할당함으로써 컴퓨팅 장치의 전체 성능저하 비율을 최소화하고, 이에 따라 주어진 조건에서 최소 전력소비량을 갖도록 하는 가상머신 할당 방법을 제공한다.
본 발명의 일 실시예에 따르면, 각각이 적어도 하나의 코어를 갖는 복수개의 프로세서를 포함하는 컴퓨팅 장치에서의 가상머신 할당 방법에 있어서, 각 가상머신에 대한 간섭강도 및 간섭민감도를 계산하는 단계; 및 계산된 상기 간섭강도 및 간섭민감도에 기초하여, 간섭강도가 높은 가상머신과 간섭민감도가 낮은 가상머신을 동일한 프로세서에 할당하는 단계;를 포함하는 것을 특징으로 하는 가상머신 할당 방법을 제공할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 상기 할당하는 단계가, 적어도 일부의 가상머신의 각각에 대해, 계산된 상기 간섭강도에 기초하여 각 가상머신을 상기 복수개의 프로세서 중 하나에 할당하는 단계; 및 할당된 가상머신을 제외한 나머지 가상머신의 각각에 대해, 계산된 상기 간섭민감도에 기초하여 각 가상머신을 상기 복수개의 프로세서 중 하나에 할당하는 단계;를 포함하는 것을 특징으로 하는 가상머신 할당 방법을 제공할 수 있다.
또한 본 발명의 일 실시예에 따르면, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
본 발명의 일 실시예에 따르면, 물리적 자원을 공유하는 복수개의 가상머신을 동시에 실행해야 하는 경우, 각각의 가상머신의 특성을 예측하고 가능한 한 서로 성능 저하가 덜 되는 가상머신끼리 하나의 프로세서에 할당함으로써 컴퓨팅 장치의 전체 성능저하 비율을 최소화하는 이점이 있다.
또한 본 발명의 일 실시예에 따르면, 컴퓨팅 장치의 전체 성능저하 비율을 최소화함으로써 주어진 조건에서 전력소비량을 최소로 할 수 있는 이점이 있다.
도1은 가상머신이 동작가능한 컴퓨팅 장치의 계층구조를 도식화한 블록도,
도2는 일 실시예에 따라 가상머신을 할당할 수 있는 컴퓨팅 장치의 블록도,
도3은 일 실시예에 따라 가상머신을 할당하는 방법을 설명하기 위한 흐름도,
도4a 내지 도4d는 도3의 흐름도를 설명하기 위한 도면,
도5는 일 실시예에 따라 가상머신을 할당하는 방법을 구현하기 위한 의사코드를 설명하기 위한 도면,
도6은 프로세서에서 두 개의 프로그램을 동시에 실행할 때의 성능저하 비율을 설명하기 위한 도면,
도7은 4개의 프로그램을 2개의 프로세서에 할당할 때의 정규화된 성능저하 비율을 설명하기 위한 도면, 그리고,
도8은 29개의 프로그램을 4개의 프로세서에 할당할 때의 성능저하 비율을 설명하기 위한 도면이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다. 또한, 도면들에 있어서, 구성요소들의 두께는 기술적 내용의 효과적인 설명을 위해 과장된 것이다.
본 명세서에서 제1, 제2 등의 용어가 구성요소들을 기술하기 위해서 사용된 경우, 이들 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안 된다. 이들 용어들은 단지 어느 구성요소를 다른 구성요소와 구별시키기 위해서 사용되었을 뿐이다. 여기에 설명되고 예시되는 실시예들은 그것의 상보적인 실시예들도 포함한다.
본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprise)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하에서 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 또한 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
도1은 본 발명의 일 실시예에 따라 가상머신이 동작가능하도록 하는 컴퓨팅 장치의 계층구조를 도식화한 블록도이다.
도1을 참조하면, 컴퓨팅 장치는 메인 메모리(10), 프로세서(20), 가상머신 관리부(30), 및 복수의 가상머신(40-1, 40-2,.., 40-n)을 포함할 수 있다.
메인 메모리(10)는 랜덤 액세스 메모리(RAM)와 같은 휘발성 메모리로서 예컨대 SRAM 또는 DRAM으로 구현될 수 있으며, 이에 한정되지 않고 다양한 종류의 휘발성 메모리로 구현될 수 있다.
일 실시예에서 프로세서(20)는 복수개의 코어(201-1, 201-2,…, 201-n)을 포함하는 멀티코어 프로세서일 수 있다. 여기서 각각의 코어(201-1, 201-2,…, 201-n)는 중앙처리장치(CPU)를 포함하는 한 단위의 프로세싱 유닛을 의미한다. 도시하지 않았지만 일 실시예에서 각각의 코어(201-1, 201-2,…, 201-n)는 내부에 CPU 및 L1 캐시를 포함하며, 대안적 실시예에서 코어(201-1, 201-2,…, 201-n)의 각각은 CPU, L1 캐시 뿐만 아니라 L2 캐시도 포함할 수 있다.
프로세서(20)는 또한 말단 캐시(Last Level Cache: LLC)(202)를 포함한다. 각각의 코어(201-1, 201-2,…, 201-n)가 L1 캐시까지 포함할 때 말단 캐시는 L2 캐시를 의미하고, 각각의 코어(201-1, 201-2,…, 201-n)가 L1 및 L2 캐시를 포함하는 경우 말단 캐시는 L3 캐시를 의미한다. 말단 캐시(202)는 각각의 코어의 L2 캐시(L2 캐시가 없으면 L1 캐시)와 통신할 수 있고 또한 메인 메모리(10)와 통신할 수 있다.
가상머신 관리부(30)는 상위의 가상머신(40-1, 40-2,.., 40-n) 계층과 하위의 하드웨어 계층(즉, 프로세서(20) 계층) 사이의 인터페이스 역할을 하며, 예컨대 하이퍼바이저(hypervisor)로 구현될 수 있다. 가상머신 관리부(30)의 동작에 의해, 각각의 가상머신(40-1, 40-2,.., 40-n)은 하위의 하드웨어 계층의 구체적 하드웨어 종류나 사양에 관계없이 동작가능하게 된다.
가상머신(40-1, 40-2,.., 40-n)은 가상머신 관리부(30) 계층 위에서 임의의 작업부하(예컨대 프로그램)를 실행한다. 도시를 생략하였지만 각 가상머신(40-1, 40-2,.., 40-n)은 가상 CPU 및/또는 가상 디스크를 포함할 수 있다.
도면에 도시하지 않았지만 말단 캐시(202)와 메인 메모리(10) 사이에 메모리 제어기(Memory Controller)가 배치되어 말단 캐시(202)와 메모리(10) 사이의 통신을 제어하지만 도면에서는 설명의 간략화를 위해 생략하였다. 또한 컴퓨팅 장치는 하드 디스크와 같은 저장장치를 비롯하여 다른 다양한 하드웨어 및/또는 소프트웨어 기능부를 더 포함할 수 있으나 본 발명의 요지를 설명하는데 불필요하므로 생략하였음을 이해할 것이다.
도2는 일 실시예에 따라 가상머신을 할당할 수 있는 컴퓨팅 장치의 블록도이다.
도2를 참조하면, 컴퓨팅 장치는 복수개의 프로세서(20,21), 가상머신 관리부(30), 및 복수개의 가상머신(40-1, 40-2,…, 40-n)을 포함할 수 있다. 도1에서와 마찬가지로 도2의 컴퓨팅 장치도 메인 메모리를 포함하고 있으나 도2에서는 도시를 생략하였다. 즉 도1과 비교할 때 도2의 컴퓨팅 장치는 프로세서가 하나가 아니라 복수개를 포함하는 것만 다르며, 각 구성요소에 대한 상세한 설명은 생략하기로 한다.
도2에서 프로세서(20,21)의 각각은 복수개의 코어를 포함하는 멀티코어 프로세서이며, 도면에서는 예로서 프로세서(20,21)가 각각 2개의 코어를 포함하는 것으로 가정하였다. 그러나 실시 형태에 따라 각 프로세서(20,21)가 3개 이상의 코어를 가질 수도 있으며 하나의 코어만 갖는 싱글코어 프로세서일 수도 있다.
또한 도면에서는 컴퓨팅 장치가 2개의 멀티코어 프로세서(20,21)를 갖는 것으로 도시하였지만 이 구성도 일 예시일 뿐 실시 형태에 따라 3개 이상의 프로세서를 포함할 수도 있음을 이해할 것이다.
도2에서, 설명의 편의를 위해 가상머신(40-1, 40-2,…, 40-n)의 각각은 프로세서(20,21)의 각 코어(201-1,201-2, 211-1, 211-2)에 하나씩 대응하여 동작한다고 가정한다. 즉 가상머신(40-1, 40-2,…, 40-n)은 전체 프로세서(20,21)가 갖는 전체 코어(201-1,201-2, 211-1, 211-2)의 개수와 같거나 그 이하의 개수로 존재한다.
또한 도시된 실시예에서 하나의 가상머신에는 하나의 프로그램이 실행된다고 전제한다. 따라서 본 명세서의 이하의 설명에서 예컨대 "가상머신의 특성"은 이 가상머신 상에서 실행되는 특정 작업부하(예컨대 프로그램)의 특성을 의미하고, "가상머신을 실행한다"는 것은 이 가상머신 상에서 임의의 작업부하(프로그램)를 실행함을 의미한다. 즉 본 명세서에서 특별히 구별할 실익이 없는 한 "가상머신"과 "작업부하" 및 "프로그램"은 동일한 의미로 사용하기로 한다.
이러한 구성에서, 복수개의 가상머신이 동일한 물리적 자원, 즉 말단 캐시(202 또는 212)를 공유하는 상황을 가정한다. 즉 도2의 실시예에서 총 4개의 가상머신이 실행되어야 하는 경우, 두 개의 가상머신은 프로세서(20)의 코어1(201-1) 및 코어2(201-2) 상에서 각각 동작함으로써 말단 캐시(202)를 공유하고 나머지 두 개의 가상머신은 프로세서(21)의 코어1(211-1) 및 코어2(211-2) 상에서 각각 동작함으로써 말단 캐시(212)를 공유하게 될 것이다.
본 발명의 바람직한 일 실시예에 따르면 이와 같이 물리적 자원을 공유하는 복수개의 가상머신을 동시에 실행해야 하는 경우, 각각의 가상머신의 특성을 예측하고 가능한 한 서로 성능 저하가 덜 되는 가상머신끼리 하나의 프로세서(20,21)에 할당하여 실행시킴으로써 실행속도를 더 빠르게 하고 전력소비량도 감소시킬 수 있다.
가상머신은 그 위에서 수행되는 작업부하(프로그램)에 따라서 각기 다른 특성을 가진다. 예컨대 각 가상머신은 말단 캐시를 사용하는 패턴이나 메인 메모리에 접근 요청하는 비율 등에서 각기 다른 특성을 가질 수 있다. 이러한 가상머신의 특성은 예를 들어 성능 감시 계수기를 이용하여 각 가상머신 별로 특성을 추출할 수 있다.
이하에서 설명하는 본 발명의 일 실시예에서, 말단 캐시 비적중 속도(LLC Miss Rate)와 말단 캐시 비적중 비율(LLC Miss Ratio), 그리고 지연시간 비율(Stall Ratio)을 이용하여 가상머신의 간섭 강도(Interference Intensity)와 간섭 민감도(Interference Sensitivity)를 정의하고 이에 기초하여 가상머신을 할당하는 방법을 설명하기로 한다.
간섭 강도 ( Interference Intensity : I)
간섭 강도는 다른 가상머신이 사용중인 공유 자원을 빼앗음으로써 다른 가상머신의 성능을 얼마나 저하시키는지를 나타내는 척도이다. 일 실시예에서 간섭 강도는 말단 캐시 비적중 속도와 말단 캐시 적중 비율에 의해 표현된다.
여기서 말단 캐시 비적중 속도(LLC Miss Rate)는 정해진 시간 동안 얼마나 많은 말단 캐시 비적중(코어가 말단 캐시에 데이터를 요청하였으나 말단 캐시에 이 데이터가 없는 경우)이 발생하였는지 보여주는 척도이며 단위시간당 비적중 횟수로 표현된다. 높은 말단 캐시 비적중 속도를 가진 프로그램은 많은 캐시 라인 퇴출(Cache Line Eviction)을 발생시키기 때문에 다른 프로그램의 캐시 라인을 빼앗을 확률도 높아지게 된다. 그러므로 말단 캐시 비적중 속도가 높을수록 간섭 강도가 더 높다.
말단 캐시 비적중 비율(LLC Miss Ratio)은 말단 캐시를 참조한 횟수에 대한 비적중 횟수의 비율을 의미한다. 일반적으로 프로세서의 캐시 교체 정책(Cache Replacement Policy)은 시간 지역성(Temporal Locality)을 많이 활용하는데, 낮은 지역성을 가진 데이터보다 높은 지역성을 가진 데이터를 더 오래 유지하고자 하는 경향이 있다. 낮은 말단 캐시 비적중 비율은 높은 시간 지역성을 의미하기 때문에, 낮은 말단 캐시 비적중 비율을 가진 프로그램에서 말단 캐시 비적중이 발생했을 경우 다른 프로그램의 데이터가 저장된 캐시 라인이 퇴출될 확률이 더 높게 된다. 그러므로 말단 캐시 비적중 비율이 낮을수록 간섭 강도가 더 높아지게 된다.
따라서 말단 캐시 비적중 속도와 말단 캐시 비적중 비율에 따른 간섭 강도(I)는 아래 수식1과 같이 나타낼 수 있다.
Figure 112013069506510-pat00001
여기서, rLLC - miss는 말단 캐시 비적중 속도이고, RLLC - miss는 말단 캐시 비적중 비율을 나타낸다.
간섭 민감도 ( Interference Sensitivity : S)
간섭 민감도는 다른 프로그램에 의해서 자신의 성능이 얼마나 저하되는지를 나타내는 척도이다. 일 실시예에서 간섭 민감도는 말단 캐시 비적중 비율(LLC Miss Ratio) 및 지연시간 비율(Rstall)의 함수이다.
일 실시예에서 간섭 민감도는 말단 캐시 비적중 비율의 변동 범위에 의해 표현된다. 말단 캐시 비적중 비율이 변동하는 범위가 클수록 말단 캐시에 있는 자신의 데이터가 캐시 라인 퇴출에 의해 제거될 가능성이 크므로 더 많은 성능 저하가 발생될 수 있다. 따라서 말단 캐시 비적중 비율의 변동 범위가 클수록 간섭 민감도가 증가한다.
하지만 단순히 말단 캐시 비적중 비율만으로는 간섭 민감도를 온전히 표현할 수 없다. 예를 들어, 높은 말단 캐시 참조 횟수와 높은 말단 캐시 비적중 비율을 동시에 가진 가상머신이 낮은 말단 캐시 참조 횟수와 낮은 말단 캐시 비적중 비율을 동시에 가진 가상머신 보다 간섭에 더 민감할 수 있기 때문이다. 따라서 일 실시예에서, 작업부하의 총 실행시간에서 말단 캐시의 비적중으로 인한 지연 시간의 비율을 추가로 고려하는 것이 바람직하다.
일반적으로 프로세서가 프로그램을 실행하는 시간은 "계산상태 시간"과 "중지상태 시간"으로 구분될 수 있다. 계산상태 시간은 프로세서가 명령어를 처리하는데 소요되는 시간(클록 사이클)이며 중지상태 시간은 메인 메모리로부터 요청한 데이터를 기다리는데 소요되는 시간이다. 중지상태 시간은 말단 캐시 비적중 횟수와 밀접한 관련이 있기 때문에, 전체 프로그램 실행시간에 대한 중지상태 시간의 비율을 말단 캐시 비적중으로 인한 지연 시간의 비율로 사용할 수 있다.
이에 따라 간섭 민감도(S)는 아래 수식2와 같이 캐시 비적중 비율과 지연 시간 비율로 표현될 수 있다.
Figure 112013069506510-pat00002
여기서 RLLC - miss는 말단 캐시 비적중 비율이고, Rstall은 지연시간 비율이다. 이 때 지연시간 비율(Rstall)은 다음 수식3과 같이 정의될 수 있다.
Figure 112013069506510-pat00003
수식3에서 Ctotal은 주어진 프로그램의 실행에 필요한 전체 사이클 수이고, Cstall은 이 프로그램의 실행시 프로세서의 중지 상태의 사이클 수이다.
간섭 강도와 간섭 민감도를 이용한 가상머신 할당
이하에서 도3 내지 도5를 참조하여 간섭 강도와 간섭 민감도를 이용하여 각 가상머신을 프로세서에 할당하는 방법을 설명하기로 한다.
도3은 일 실시예에 따라 가상머신을 할당하는 방법을 설명하기 위한 흐름도이고 도4a 내지 도4d는 도3의 흐름도를 설명하기 위한 도면이다.
도시된 실시예의 가상머신 할당 방법에 따르면, 우선 각 가상머신의 간섭 강도와 간섭 민감도를 각각 산출하고, 그 후 이 산출된 간섭 강도와 간섭 민감도에 기초하여, 간섭 강도가 높은 가상머신과 간섭 민감도가 낮은 가상머신을 동일한 프로세서에 할당하는 방법을 포함하며, 이러한 할당 방법에 의해 모든 가상머신의 평균 성능저하 비율을 최소화할 수 있다.
도시된 실시예에 따른 가상머신 할당 방법을 구체적으로 살펴보면, 우선 단계(S110)에서 각 가상머신에 대한 간섭 강도를 계산한다. 이 때 각 가상머신에 대한 간섭 강도는 말단 캐시 비적중 속도(rLLC - miss) 및 말단 캐시 비적중 비율(RLLC - miss)을 구한 뒤 수식1을 적용함으로써 계산할 수 있다.
그 후 이 간섭 강도의 크기에 따라 가상머신의 정렬한다(단계 S120). 일 실시예에서 간섭 강도를 내림차순으로 정렬할 수 있으며, 이 경우 간섭 강도가 가장 큰 가상머신부터 순서대로 정렬하여 가상머신에 대한 제1 목록을 생성한다.
다음으로 단계(S130)에서 각 가상머신에 대한 간섭 민감도를 계산한다. 각 가상머신에 대한 간섭 민감도는 말단 캐시 비적중 비율(RLLC - miss) 및 지연시간 비율(Rstall)을 구한 뒤 수식2에 적용함으로써 계산할 수 있다.
그 후 단계(S140)에서 이 간섭 민감도의 크기에 따라 가상머신을 정렬한다. 일 실시예에서 간섭 민감도를 내림차순으로 정렬할 수 있으며, 이 경우 간섭 민감도가 가장 큰 가상머신부터 순서대로 정렬하여 가상머신에 대한 제2 목록을 생성한다.
한편 도시된 실시예에서는 간섭 강도의 계산과 정렬 및 간섭 민감도의 계산과 정렬의 순서로 실행하는 것으로 설명하였지만 이 실행순서는 실시 형태에 따라 달라질 수 있다. 예컨대 간섭 민감도를 먼저 계산하고 그 후 간섭 강도를 계산할 수도 있다. 또한 간섭 강도와 간섭 민감도를 먼저 계산한 후 간섭 강도와 간섭 민감도의 각각에 대한 정렬을 수행할 수도 있음은 물론이다.
상술한 단계(S110 내지 S140)를 도4a와 같이 도식적으로 표현할 수 있다. 도4a에서, 컴퓨팅 장치는 두 개의 멀티코어 프로세서(20,21)를 가지며 각각의 프로세서(20,21)는 적어도 2개 이상의 코어를 포함한다고 가정한다. 전체 4개의 가상머신(A, B, C, D)이 있다고 가정하면, 단계(S110 내지 S140)를 수행함으로써 도4a의 우측에 도시한 것처럼 4개의 가상머신(A, B, C, D)에 대해 간섭강도별 정렬 목록과 간섭민감도별 정렬 목록을 얻을 수 있다. 이 때 도면에서 간섭 강도와 간섭 민감도의 크기를 각 가상머신의 면적으로 표시하여 이해하기 쉽도록 도시하였다. 즉, 간섭 강도는 가상머신(D)가 가장 크고 가상머신(A)가 가장 작다. 그리고 간섭 민감도는 가상머신(A)가 가장 크고 가상머신(D)가 가장 작다고 전제한다.
다시 도3을 참조하면, 상술한 단계(S110 내지 S140)에서 계산된 간섭 강도와 간섭 민감도에 기초하여, 간섭 강도가 큰 가상머신과 간섭 민감도가 작은 가상머신을 동일한 프로세서에 할당하는 방식으로 가상머신을 할당한다.
이를 위한 구체적 방법으로, 단계(S150)에서, 적어도 일부의 가상머신의 각각에 대해, 간섭 강도에 기초하여 각 가상머신을 상기 복수개의 프로세서 중 하나에 할당한다. 구체적으로, 전체 n개(n은 2이상의 정수)의 가상머신 중 간섭강도가 가장 큰 순서로 정렬된 m개(단, m≤n)의 가상머신의 각각을 상기 복수개의 프로세서에 차례로 할당할 수 있다.
이와 관련하여 도4b를 참조하면, 전체 가상머신 개수(n)는 4이고, 간섭 강도의 크기에 따라 할당할 가상머신의 개수(m)는 2이다. 도4b에 도시한 것처럼 간섭 강도가 가장 큰 순서대로 차례로 2개의 가상머신(D, C)을 각각 프로세서(20,21)에 하나씩 할당한다.
이 때 전체 가상머신의 개수(n)는 전체 프로세서가 갖는 전체 코어의 개수와 동일하거나 이보다 작은 것이 바람직하다. 또한 간섭 강도에 기초하여 프로세서에 할당할 가상머신의 개수(m)는, 바람직하게는 프로세서의 개수와 같거나 프로세서의 개수의 배수인 것이 적절하지만 이에 한정되는 것은 아니며, 전체 가상머신의 개수(n) 보다 작은 임의의 정수일 수 있다.
다음으로, 도3의 단계(S160)에서, 할당된 가상머신을 제외한 나머지 가상머신의 각각에 대해, 계산된 상기 간섭 민감도에 기초하여 각 가상머신을 상기 복수개의 프로세서 중 하나에 할당한다. 일 실시예에서, 가장 높은 간섭 민감도를 가진 가상 머신을 골라서 가장 낮은 간섭 강도의 총합을 가진 프로세서에 배치한다.
구체적으로, 할당받은 가상머신의 간섭 강도의 총합에 따라 오름차순으로 정렬된 복수개의 프로세서에 대해, 단계(S150)에서 할당되지 않은 (n-m)개의 가상머신의 각각을 간섭 민감도가 가장 큰 순서로 차례로 상기 오름차순 정렬된 복수개의 프로세서에 할당할 수 있다.
이와 관련하여 도4b를 참조하면, 프로세서(20)에 할당된 가상머신(D)의 간섭 강도가 프로세서(21)에 할당된 가상머신(c)의 간섭 강도보다 크고 아직 할당되지 않은 가상머신(A, B) 중에서는 가상머신(A)의 간섭 민감도가 가상머신(B)의 민감도보다 크다. 따라서 도4c에 도시한 것처럼 간섭 민감도가 큰 가상머신(A)을 간섭 강도가 작은 가상머신(C)이 있는 프로세서(21)에 할당하고, 그 후 도4d에서와 같이, 간섭 민감도가 작은 가상머신(B)을 간섭 강도가 큰 가상머신(D)이 있는 프로세서(20)에 할당한다.
이상과 같이 각 가상머신의 간섭 강도와 간섭 민감도를 산출한 뒤, 간섭 강도가 높은 가상머신과 간섭 민감도가 낮은 가상머신을 동일한 프로세서에 할당함으로써, 전체 가상머신에 대한 평균 성능저하 비율을 최소화할 수 있다.
한편 일 실시예에서, 도3을 참조하여 상술한 가상머신 할당 방법은 가상머신 관리부(30)에 의해 수행될 수 있다. 그러나 도3의 단계들 중 적어도 일부는 컴퓨팅 장치의 운영체제(OS) 또는 이 운영체제 상에서 실행되는 임의의 응용 프로그램에 의해 수행되어도 무방할 것이다. 또한 대안적 실시예에서 도3의 모든 단계가 가상머신 관리부(30)가 아닌 다른 응용 프로그램이나 운영체제에서 실행될 수도 있음은 물론이다.
도5는 일 실시예에 따라 가상머신을 할당하는 방법을 구현하기 위한 의사코드를 설명하기 위한 도면이다.
도5를 참조하면, 의사코드의 6행 내지 9행은 각 가상머신에 대한 간섭 강도를 계산하고 이를 정렬하는 단계(S110, S120)에 대응하고, 의사코드의 12행 내지 15행은 각 가상머신에 대한 간섭 민감도를 계산하고 이를 정렬하는 단계(S130, S140)에 대응한다. 그리고 의사코드의 18행 내지 22행은 간섭 강도에 기초하여 가상머신을 복수개의 프로세서에 각각 할당하는 단계(S150)에 대응하고, 의사코드의 25행 내지 28행은 간섭 민감도에 기초하여 가상머신을 복수개의 프로세서에 각각 할당하는 단계(S160)에 대응함을 이해할 수 있을 것이다.
실험 결과
본 발명의 일 실시예에서와 같이 간섭 강도와 간섭 민감도를 함께 고려하여 가상머신을 프로세서에 할당함으로써 전체 컴퓨팅 장치의 성능저하 비율을 최소화할 수 있으며, 그 효과를 평가하기 위해 다음과 같이 실험을 수행하였다.
우선 두 개의 프로그램을 동시에 실행하는 경우에 대해 실험하기 위해, 12개의 프로그램들로 만들 수 있는 모든 프로그램 쌍에 대하여, 이 프로그램 쌍이 동시에 실행된 경우의 프로그램 수행시간을 직접 측정한다. 프로그램 별로 수행시간이 다르므로, 다른 프로그램이 한 번 끝나기 전에 먼저 끝난 프로그램은 곧바로 재시작된다. 실험은 각 프로그램이 최소 한 번 이상 실행되면 종료된다.
이 실험을 통하여 두 개의 프로그램이 함께 실행되는 모든 경우에 대한 성능 저하 비율을 구하였다. 이 때 성능저하 비율(Rperf)은 예컨대 다음 수식4와 같이 정의될 수 있다.
여기서 Ttotal , duo는 두 개의 프로그램이 동시에 실행될 때 소요되는 실행시간이고 Ttotal , solo는 하나의 프로그램만 실행될 때 소요되는 실행시간이다.
이와 같이 계산된 성능저하 비율을 도6에 나타내었다. 도6은 프로세서에서 두 개의 프로그램을 동시에 실행할 때의 성능저하 비율을 설명하기 위한 도표이며, 각각의 프로그램을 나타내는 12개의 행과 12개의 열이 있다. 공간을 절약하기 위하여 프로그램의 첫 두 글자만 나타내었다. 각각의 칸에 적힌 숫자는 행에 표시된 프로그램이 열에 표시된 프로그램과 함께 실행된 경우의 성능 저하 비율을 의미한다. 예를 들어, (gc, go) 에 있는 3.8 이라는 값은 "gcc"라는 프로그램의 실행시간이 "gobmk"라는 프로그램과 함께 실행된 경우 3.8% 만큼 실행시간이 늘어났음을 의미한다.
이제, 도6의 측정 결과를 이용하여 네 개의 프로그램이 두 개의 프로세서에서 실행될 때의 평균 성능저하 비율을 계산하여 본 발명의 일 실시예에 따른 경우와 비교해보기로 한다.
이 경우 각 프로세서는 최대 두 개의 가상 머신을 동작시킬 수 있으며, 두 종류(인텔 i7 쿼드-코어 CPU 및 제온(Xeon) E5 8-코어 CPU)의 프로세서에 대해 각각 실험을 행하였다. 각 벤치마크는 별도의 가상 머신에서 수행된다고 가정한다. 이 경우 가능한 조합은 총 1365개이며, 각 조합에 대하여 세 개의 배치가 가능하다. 예를 들어 lbm, mcf, gcc, bzip2의 네 개의 프로그램이 있는 경우라면, 다음과 같은 세 개의 배치가 가능하다: (1) (lbm, mcf), (gcc, bzip2); (2) (lbm, gcc), (mcf, bzip2); 및 (3) (lbm, bzip2), (mcf, gcc).
이 세가지 중 본 발명의 일 실시예에 따른 방법에 의해 선택된 배치와 최적, 최악, 및 임의의 배치에 따른 결과를 도7에 나타내었다.
도7은 4개의 프로그램을 2개의 프로세서에 할당할 때의 정규화된 성능저하 비율을 설명하기 위한 도면으로, 각 경우에 대한 정규화된 성능 저하 비율을 보여주고 있으며 1365개의 모든 경우에 대한 평균값을 나타내고 있다. 도7의 그래프에서 볼 수 있듯이, 본 발명의 할당 방법에 따른 결과가 최적의 경우와 거의 대등함을 확인할 수 있다.
특히 인텔 i7 프로세서에서 본 발명에 따른 방법은 전체 1365개의 경우 중 1138개에 대해서 최적의 배치를 선택하였으며(86.67%), 20개의 경우에 대해서는 최악의 배치를 선택하였다(1.5%). 한편 제온 E5 프로세서에서는 전체 1365개의 경우 중 992개에 대해서 최적의 배치를 선택하였으며(72.67%), 144개의 경우에 대해서 최악의 배치를 선택하였다(10.5%).
E5 프로세서에서 수행한 결과가 i7 프로세서보다 안 좋은 이유는 E5 프로세서에서의 성능 저하 비율이 i7 프로세서보다 전반적으로 작아서 본 발명에 따른 할당 방법의 정확도가 낮아졌기 때문으로 추정된다.
도8은 도6 및 도7과는 다른 실험예로서, 29개의 프로그램을 4개의 프로세서에 할당할 때의 성능저하 비율을 나타낸다. 이 실험에서는 29개의 가상머신을 각각 8-코어를 가진 E5 프로세서 4개에 할당하였다. 도8의 제일 위의 행에서 각 노드("Node")는 프로세서를 의미한다.
실험에서 각 가상머신은 서로 다른 SPECcpu 2006 벤치마크 프로그램을 실행하였다. 이 경우 한 프로세서에 함께 할당되는 가상머신의 개수는 최소 다섯 개부터 최대 여덟 개까지이며, 가능한 할당의 경우의 수는 1×1015개를 넘는다. 최적의 배치를 알아내려면 가능한 모든 경우에 대하여 직접 성능을 측정하여야 하지만 예상 시간이 많이 소요되므로 전체 경우의 수 중에서 임의의 4가지 경우에 대한 평균 성능저하 비율을 계산하여 도8에 나타내었다. 즉 도8에서 둘째 행은 본 발명의 일 실시예의 할당 방법에 따른 실험 결과이고, 그 아래의 할당-1("Alloc-1") 내지 할당-4("Alloc-4")는 임의의 4가지 경우의 할당 방법에 대한 성능저하 비율을 나타내고 있다.
도8에서 알 수 있듯이 할당-4(Alloc-4)를 제외하고는 본 발명의 할당 방법에 의한 가상머신 배치가 다른 세 가지 경우에 비하여 성능저하 비율이 낮음을 확인할 수 있다. 본 발명에 따른 할당 방법은 4가지 할당의 경우(할당-1 내지 할당-4) 중 가장 좋은 결과(할당-4)와 비교할 때 1.2% 차이만큼 성능이 떨어지지만 그에 반해 가장 나쁜 결과(할당-1)와는 7.8% 차이로 성능저하가 방지되었으므로, 본 발명의 할당 방법은 비록 모든 경우에 대해 가장 좋은 결과를 내지는 않았지만 대부분의 경우에 비해 성능저하 비율의 감소에 훨씬 효과적임을 알 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되지 않는다. 그러므로 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 상술한 기재로부터 다양한 수정 및 변형이 가능함을 이해할 것이다. 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 메인 메모리
20, 21: 프로세서
30: 가상머신 관리부
40-1,.., 40-n: 가상머신
201-1, 201-2, 211-1, 211-2: 코어
202, 212: 말단캐시

Claims (12)

  1. 각각이 적어도 하나의 코어를 갖는 복수개의 프로세서를 포함하는 컴퓨팅 장치에서의 가상머신 할당 방법에 있어서,
    각 가상머신에 대한 간섭강도 및 간섭민감도를 계산하는 단계; 및
    계산된 상기 간섭강도 및 간섭민감도에 기초하여, 간섭강도가 높은 가상머신과 간섭민감도가 낮은 가상머신을 동일한 프로세서에 할당하는 단계;를 포함하고,
    상기 간섭강도는 말단 캐시 비적중 속도(miss rate) 및 말단 캐시 비적중 비율(miss ratio)의 함수인 것을 특징으로 하는 가상머신 할당 방법.
  2. 제 1 항에 있어서, 상기 할당하는 단계는,
    적어도 일부의 가상머신의 각각에 대해, 계산된 상기 간섭강도에 기초하여 각 가상머신을 상기 복수개의 프로세서 중 하나에 할당하는 단계; 및
    할당된 가상머신을 제외한 나머지 가상머신의 각각에 대해, 계산된 상기 간섭민감도에 기초하여 각 가상머신을 상기 복수개의 프로세서 중 하나에 할당하는 단계;를 포함하는 것을 특징으로 하는 가상머신 할당 방법.
  3. 제 1 항에 있어서,
    상기 간섭강도는 다른 가상머신의 성능을 얼마나 저하시키는지에 대한 척도를 나타내고, 상기 간섭민감도는 다른 가상머신에 의해 성능이 얼마나 저하되는지에 대한 척도를 나타내는 것을 특징으로 하는 가상머신 할당 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 간섭강도(I)는 다음 식으로 정의되고,
    Figure 112014111521101-pat00004

    여기서, rLLC-miss는 말단 캐시 비적중 속도이고, RLLC-miss는 말단 캐시 비적중 비율인 것을 특징으로 하는 가상머신 할당 방법.
  6. 제 3 항에 있어서,
    상기 간섭민감도는 말단 캐시 비적중 비율 및 지연시간 비율(Rstall)의 함수이고,
    상기 지연시간 비율(Rstall)은 다음 식으로 정의되고,
    Figure 112013069506510-pat00005

    여기서, Ctotal은 주어진 프로그램의 실행에 필요한 전체 사이클의 수이고, Cstall은 이 프로그램의 실행시 프로세서의 중지 상태의 사이클 수인 것을 특징으로 하는 가상머신 할당 방법.
  7. 제 6 항에 있어서,
    상기 간섭민감도(S)는 다음 식으로 정의되고,
    Figure 112013069506510-pat00006

    여기서 RLLC - miss는 말단 캐시 비적중 비율인 것을 특징으로 하는 가상머신 할당 방법.
  8. 제 1 항에 있어서,
    상기 간섭강도 및 간섭민감도를 계산하는 단계는,
    각 가상머신에 대한 간섭강도를 계산하고 이 간섭강도 크기에 따라 가상머신의 목록을 정렬하는 단계; 및
    각 가상머신에 대한 간섭민감도를 계산하고 이 간섭민감도의 크기에 따라 가상머신의 목록을 정렬하는 단계;를 더 포함하는 것을 특징으로 하는 가상머신 할당 방법.
  9. 제 2 항에 있어서,
    상기 간섭강도에 기초하여 각 가상머신을 프로세서에 할당하는 단계는,
    전체 n개(n은 2이상의 정수)의 가상머신 중 간섭강도가 가장 큰 순서로 정렬된 m개(단, m≤n)의 가상머신의 각각을 상기 복수개의 프로세서에 차례로 할당하는 단계를 포함하는 것을 특징으로 하는 가상머신 할당 방법.
  10. 제 9 항에 있어서,
    상기 간섭민감도에 기초하여 각 가상머신을 프로세서에 할당하는 단계는,
    할당받은 가상머신의 간섭강도의 총합에 따라 오름차순으로 정렬된 상기 복수개의 프로세서에 대해, 상기 간섭강도에 기초하여 가상머신을 프로세서에 할당하는 단계에서 할당되지 않은 (n-m)개의 가상머신의 각각을, 간섭민감도가 가장 큰 순서로 차례로 상기 오름차순 정렬된 복수개의 프로세서에 할당하는 단계를 포함하는 것을 특징으로 하는 가상머신 할당 방법.
  11. 제 1 항에 있어서,
    상기 복수개의 프로세서의 각각은 적어도 2 이상의 코어를 갖는 멀티코어 프로세서이고,
    상기 각 가상머신은 가상 CPU를 하나씩 가지며, 상기 가상 CPU의 각각은 상기 코어의 각각에 대응하는 것을 특징으로 하는 가상머신 할당 방법.
  12. 제1항 내지 제3항 및 제5항 내지 제11항 중 어느 한 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020130090755A 2013-07-31 2013-07-31 컴퓨팅 장치에서의 가상머신 간의 성능간섭 감소를 위한 가상머신 할당 방법 KR101502225B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130090755A KR101502225B1 (ko) 2013-07-31 2013-07-31 컴퓨팅 장치에서의 가상머신 간의 성능간섭 감소를 위한 가상머신 할당 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130090755A KR101502225B1 (ko) 2013-07-31 2013-07-31 컴퓨팅 장치에서의 가상머신 간의 성능간섭 감소를 위한 가상머신 할당 방법

Publications (2)

Publication Number Publication Date
KR20150015137A KR20150015137A (ko) 2015-02-10
KR101502225B1 true KR101502225B1 (ko) 2015-03-12

Family

ID=52571719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130090755A KR101502225B1 (ko) 2013-07-31 2013-07-31 컴퓨팅 장치에서의 가상머신 간의 성능간섭 감소를 위한 가상머신 할당 방법

Country Status (1)

Country Link
KR (1) KR101502225B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10203912B2 (en) 2015-07-22 2019-02-12 Samsung Electronics Co., Ltd. Storage device for supporting virtual machine, storage system including the storage device, and method of operating the same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101886317B1 (ko) * 2017-04-28 2018-08-08 울산과학기술원 가상 머신 배치 선택 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130074953A (ko) * 2011-12-27 2013-07-05 한국과학기술정보연구원 동적 가상 머신 배치 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130074953A (ko) * 2011-12-27 2013-07-05 한국과학기술정보연구원 동적 가상 머신 배치 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문: 한국정보과학회 *
카테고리: TTA *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10203912B2 (en) 2015-07-22 2019-02-12 Samsung Electronics Co., Ltd. Storage device for supporting virtual machine, storage system including the storage device, and method of operating the same

Also Published As

Publication number Publication date
KR20150015137A (ko) 2015-02-10

Similar Documents

Publication Publication Date Title
Li et al. Utility-based hybrid memory management
US8429665B2 (en) Cache performance prediction, partitioning and scheduling based on cache pressure of threads
Das et al. Application-to-core mapping policies to reduce memory system interference in multi-core systems
US9009384B2 (en) Virtual machine memory management in systems with asymmetric memory
Peng et al. Exploring the performance benefit of hybrid memory system on HPC environments
JP2008191949A (ja) マルチコアシステムおよびマルチコアシステムの負荷分散方法
US8516226B1 (en) Executing a prefetching policy responsive to entry into an execution phase of an application
JP6166616B2 (ja) 情報処理方法、情報処理装置及びプログラム
US9684600B2 (en) Dynamic process/object scoped memory affinity adjuster
US20170371777A1 (en) Memory congestion aware numa management
JP6149595B2 (ja) キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
Liu et al. Rethinking memory management in modern operating system: Horizontal, vertical or random?
Peng et al. Characterizing the performance benefit of hybrid memory system for HPC applications
Sohal et al. A closer look at intel resource director technology (rdt)
Meswani et al. Toward efficient programmer-managed two-level memory hierarchies in exascale computers
US8490071B2 (en) Shared prefetching to reduce execution skew in multi-threaded systems
Jahre et al. GDP: Using dataflow properties to accurately estimate interference-free performance at runtime
KR101502225B1 (ko) 컴퓨팅 장치에서의 가상머신 간의 성능간섭 감소를 위한 가상머신 할당 방법
da Silva et al. Smart resource allocation of concurrent execution of parallel applications
Guo et al. Mira: A program-behavior-guided far memory system
Gupta et al. Timecube: A manycore embedded processor with interference-agnostic progress tracking
Maggioni et al. An architecture-aware technique for optimizing sparse matrix-vector multiplication on GPUs
Albericio et al. ABS: A low-cost adaptive controller for prefetching in a banked shared last-level cache
Park et al. Towards optimal scheduling policy for heterogeneous memory architecture in many-core system
Seo et al. {MLB}: A Memory-aware Load Balancing for Mitigating Memory Contention

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180222

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200302

Year of fee payment: 6