Browse

비대칭 멀티코어 아키텍처용 공정성 보장 및 에너지 효율적인 스케줄링
Fair-share and Energy-efficient Scheduling in Performance-asymmetric Multicore Architecture

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors
김명선
Advisor
홍성수
Major
공과대학 전기·컴퓨터공학부
Issue Date
2016-02
Publisher
서울대학교 대학원
Keywords
비대칭 멀티코어태스크 스케줄링멀티코어 부하분산저전력 스케줄링빅리틀 아키텍처
Description
학위논문 (박사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2016. 2. 홍성수.
Abstract
최근 우수한 사용자 체감과 질적으로 향상된 수준의 서비스를 위하여 스마트폰, 태블릿과 같은 임베디드 시스템에서 비대칭 멀티코어 아키텍처의 사용이 크게 증가되고 있다. 이는, 이러한 아키텍처가 임베디드 시스템의 제한된 면적과 소비전력 환경하에서 주는 하드웨어적 이점 때문이다. 임베디드 시스템에 사용되는 비대칭 멀티코어 아키텍처는 서로 다른 특성을 가지는 두 가지 타입의 코어들로 이루어진다. 첫 번째 타입의 코어는 높은 성능과 낮은 에너지 효율성을 특징으로 하고, 두 번째 타입의 코어는 낮은 성능 대신 높은 에너지 효율성을 특징으로 한다.
비대칭 멀티코어 아키텍처를 운용하는 방법에는, 각 코어들을 사용하는 방법에 따라서 두 가지 종류가 있다. (1) 한 개의 높은 성능 코어와 한 개의 에너지 효율적인 코어를 하나의 pair로 형성한 후, 그 중 한 개의 코어만 동작하게 하는 코어 타입 선택 방식과 (2) 시스템의 모든 코어를 동시에 사용할 수 있는 전체 코어 사용 방식으로 운용된다. Linux kernel은 이러한 비대칭 멀티코어 아키텍처에 가장 널리 쓰이는 운영체제이며, CFS(completely fair scheduler)를 사용하여 태스크들을 스케줄링 한다. 또한, CFS는 비대칭 멀티코어 아키텍처의 코어 타입 선택 방식과 전체 코어 사용 방식에 맞는 스케줄링 프레임웍을 제공하고 있다.
하지만 현재 제공되고 있는 두 가지 코어 사용 방식을 위한 스케줄링 프레임웍에는 다음과 같은 문제점이 있다. 첫째, 코어 타입 선택 방식에서의 스케줄링 프레임웍은 비대칭 멀티코어간 부하분산 시 태스크의 가중치(weight)만 고려하여 부하분산을 수행한다. 이로 인하여 필요이상으로 코어의 동작 주파수를 상승시키거나, 에너지 효율적인 코어에서 수행해도 충분한 태스크가 고성능 코어에서 운용되어 소비전력을 크게 증가시키는 문제점을 야기시킨다.
둘째, Linux kernel의 CFS는 virtual runtime을 통하여, 태스크들에게 가중치에 비례하는 CPU 사용 시간을 부여한다. 이때, 태스크의 virtual runtime 산정 시, 현재 태스크를 수행하는 코어의 상태(코어 타입 혹은 동작 주파수 등)를 고려하지 않는다. 이로 인하여 공정한 CPU 사용 시간을 태스크들에게 부여하지 못한다. 또한, CFS는 태스크들의 virtual runtime을 동일하게 만들려고 노력한다. 이는 태스크들의 상대적인 수행 정도를 비슷하게 유지시키기 위해서이다. 하지만 이는 개별 코어에서는 유지되나, 시스템 전체적으로 비슷하게 유지 되지 않는다. 이는 시간이 지남에 따라서 태스크간 virtual runtime 차이를 증가시켜, 태스크간 상대적인 수행 정도 차이가 더욱 더 커지게 하는 문제점을 발생시킨다.
본 학위논문은 비대칭 멀티코어 아키텍처가 지원하는 코어 타입 선택 방식과 전체 코어 사용 방식에 최적화된 스케줄링 기법을 제안한다. 첫째, 본 연구는 코어 타입 선택 방식의 저전력 운용 목적에 맞는 스케줄링 기법을 제안한다. 이를 위하여 먼저, Linux kernel이 비대칭 멀티코어 아키텍처를 위하여 제공하는 DVFS(Dynamic Voltage and Frequency Scaling) 정책을 정확히 분석한다. 분석된 결과를 토대로 정확한 동작을 모델링하고, 이를 제안하는 스케줄링 기법에 반영한다. 이 기법은 부하분산 시 태스크의 가중치뿐만 아니라, 코어의 사용률을 고려하여 부하를 분산시킨다. 이를 통하여 성능 저하를 최소화 하면서 주파수 상승을 억제하고, 동시에 고성능 코어를 최대한 적게 사용하는 저전력, 에너지 효율적인 스케줄링을 수행한다.
둘째, 본 연구는 전체 코어 사용 방식에 적합한 공정할당 스케줄링 방식을 제안한다. 이는 코어의 상태를 반영한 스케일된 CPU 시간을 구한다. 이를 CFS의 virtual runtime에 반영하고, SVR (scaled virtual runtime)로 확장한다. 또한 각각의 고성능 코어로 이루어진 클러스터와 에너지 효율적인 코어로 이루어진 클러스터 내부에서, 모든 태스크들의 SVR 차이를 일정한 상수 크기로 제한시킨다. 이를 통하여 클러스터 내부의 모든 태스크들의 상대적 진척 정도를 비슷하게 유지시킨다. 결과적으로, 시스템 전체적인 공정할당 스케줄링을 수행하도록 한다.
본 연구에서 제안하는 두 가지 스케줄링 기법들의 효용성을 입증하기 위해서, 실제 상용으로 출시된 비대칭 멀티코어 아키텍처 기반 제품에 이들을 구현하였다. ARM사의 빅리틀 아키텍처를 대상 시스템으로 하였으며, 이는 임베디드 시스템에서 가장 대표적으로 사용되는 비대칭 멀티코어 아키텍처이다. 저전력 스케줄링 기법은 코어 타입 선택 방식이 지원되는 Galaxy S4 Android 스마트폰에 구현되었다. CPU-intensive한 부하를 사용하여 실험한 결과, 기존 대비 최대 11.35%의 에너지 소비가 감소하였다. 또한 Android 응용프로그램을 이용하여 실험 시, 기존 대비 동일한 QoS를 유지하면서 7.35% 에너지 소비가 감소하였다. 이러한 실험 결과는 비대칭 멀티코어에서 제안된 스케줄링 기법이 에너지 효율적임을 증명한다.
공정할당 스케줄링 기법은, 전체 코어 사용 방식이 지원되는 ARM사의 Versatile Express TC2 board에 구현하였다. 실험 결과, 클러스터 내부의 태스크간 SVR 차이가 상수 값 이내로 제한됨을 확인하였다. 또한 SVR 차이를 작게 만드는 것이 공정할당 스케줄링에 어떠한 영향을 실질적으로 미치는지 알기 위해서, 동일한 태스크를 여러 개 생성한 후 그들의 완료시간 표준 편차를 측정하였다. 실험 결과, 기존 대비 완료시간 표준편차가 56% 줄어 들었다. 이러한 실험 결과는 본 논문에서 제안된 스케줄링 기법이 태스크들에게 더 공정한 CPU 시간을 부여함을 직관적으로 알 수 있게 한다.
Language
Korean
URI
https://hdl.handle.net/10371/119141
Files in This Item:
Appears in Collections:
College of Engineering/Engineering Practice School (공과대학/대학원)Dept. of Electrical and Computer Engineering (전기·정보공학부)Theses (Ph.D. / Sc.D._전기·정보공학부)
  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Browse