매니코어 기반 초고성능 스케일러블 OS 기초연구

개요

차세대 OS 기초연구센터 과제는 코어 수 증가에 따라 운영체제의 성능도 증가하는 매니코어 운영체제를 연구한다. 지금까지 운영체제는 적은 수의 코어에 최적화되어 발전되어 왔다. 리눅스도 멀티코어 환경에서 개발되어 왔다. 하지만, 칩 벤더는 고성능 프로세서를 위해 적은 수의 코어에 동작속도(Hz)를 높이는 방식에서 코어의 수를 늘리는 방법을 선택하고 있다. 지금까지 수십 코어의 시스템이 출시되었고, 이러한 추세로 볼 때 몇 년 안에 수백 혹은 수천 코어 이상의 매니코어 시스템까지 예상하고 있다.

연구과제의 코드명은 담쟁이(아이비, Ivy)이며, 의미는 담쟁이가 높은 벽을 넘어 가듯이 성능의 벽을 극복한다는 의미를 담고 있다. 과제 로고는 다음과 같다.

LOGO

프로세서 발전 추이

먼저, 지난 30년간 프로세서의 발전 경향을 살펴보면, 2008년을 기준으로 회로의 집적도를 나타내는 트랜지스터의 수는 지속적으로 증가하고 있으며, 이에 따라 동작속도(Hz)와 단일 스레드 성능도 증가하고 있다. 2008년 이후에는 트랜지스터 집적도는 여전히 증가하지만 동작속도(Hz)의 상승이 어려워 단일 스레드 성능은 정체되어 있음을 알 수 있다. 반면에 코어 수는 2008년을 기점으로 크게 증가하는 경향을 볼 수 있다. 이는 프로세서의 기술발전이 최근에 코어 수를 증가시키는 데 있다고 볼 수 있다.

Processors

리눅스의 스케일러빌러티 (연구 배경)

초기 리눅스는 단일 프로세서용으로 개발되었다. 이후 커널 2.0에서 비로소 SMP(Symmetric multiprocessing) 기능을 갖추었지만, Big kernel lock으로 성능은 좋지 못하였다. 2.6.39 버전이 되면서 Fine-grained lock이라는 평가를 받게 되어 많은 성능 개선이 이루어졌다. 이러한 현재의 리눅스가 100코어 매니코어에서 어떤 성능을 보이는지 AIM7 벤치마크 도구로 실험하였다. AIM7 벤치마크의 워크로드는 계산 집약적인 워크로드와 입출력 집약적인 워크로드를 균등하게 구성하였다. 실험 결과, 먼저 native 경우, 디스크를 포함한 블록 IO 환경에서는 심각한 성능 문제를 확인할 수 있었고, ticket spinlock를 사용하는 4.1커널에서 블록 IO를 제거한 환경(tmpfs 환경)에서는 32코어까지 스케일러빌러티를 보였지만 이후부터 성능 저하 현상이 나타나서 60코어부터 현저한 성능 저하를 보였다. Big kernel lock이 개선되었지만 매니코어 환경에서 이 문제가 재현되었다. queue spinlock를 사용하는 4.5커널은 4.1커널보다 스케일러블한 성능 그래프를 보이지만 100코어 이후 성능이 둔화되어 140-50코어에서 성능 저하를 보였다. 가상화 환경 경우, tmpfs 경우, 4.1커널은 30코어 이후, 4.5커널은 50-60코어 이후 급격한 성능 저하 현상이 나타났다. 아래 실험은 리눅스 커널 4.1버전(ticket spinlock)에서 수행되는 AIM7 성능 그래프이다. 따라서 잠금 기법 자체의 문제(특히 가상화 환경에서), Big kernel lock 문제, 자원의 공유(sharing)와 공정한 배분(fairness) 개념으로 디자인된 전통적인 운영체제의 구조 등이 매니코어에서 리눅스 스케일러빌러티의 장애요인으로 뚜렷하게 나타났다.

LinuxScalability

연구팀 구성

차세대 OS 기초연구센터 과제는 운영체제의 성능한계 도전하기 위해서 한국정보과학회 컴퓨터시스템연구회 중심의 대학연구실과 ETRI, 그리고 조지아공대, 버지니아공대로 다음과 같이 구성하였다. 운영체제 연구는 리눅스 커뮤니티처럼 집단지성의 협업이 요구되어, 누구나 참여할 수 있는 개방적으로 운영하고 있다.

  • 건국대 진현욱교수 연구실
  • 국민대 임성수교수, 임은진교수, 주용수교수 연구실
  • 경성대 변석우교수
  • 버지니아공대 민창우교수 연구실
  • 부산대 우균교수 연구실
  • 상명대 신동하교수 & 손성훈교수 연구실 (2014, 2015)
  • 서강대 박성용교수, 김영재교수 연구실
  • 서울대 이재욱교수 연구실
  • 성균관대 서의성교수 연구실
  • 연세대 이경우교수 연구실
  • 조지아공대 김태수교수 연구실
  • 충북대 조희승교수 연구실
  • ETRI 차세대OS 기초연구센터

연구 방법

운영체제의 성능 한계 극복 연구는 두 가지 방향으로 추진되고 있다. 첫째, 기존의 모노리틱 구조를 개선하는 연구이며, 둘째는 새로운 운영체제를 연구하는 것이다. 모노리틱 구조의 운영체제는 기본적으로 사용자에게 자원을 공평하게 배분하는 철학으로 개발되어 왔다. 따라서 공유 자원에 대한 경쟁이 요구되며, 특히 코어가 많은 환경에서는 더욱 심한 경쟁이 발생된다. 이러한 문제를 해결하기 위해서 스케일러블 lock 기법, 공유하지 않는 커널 자료구조 개념, lock granularity, 그리고 스케일러빌러티를 고려한 커널 기능 디자인 등 많은 재고가 필요하다. 이러한 연구로 모노리틱 구조의 운영체제는 최대한 많은 코어까지 스케일러빌러티를 보장할 것이다. 두 번째는 새로운 구조인 멀티커널 구조이다. 스케일러블한 모노리틱 운영체제 연구를 통해서 아무리 많은 코어까지 성능을 보장하더라고, 그 한계는 존재할 것이고 이 문제를 멀티커널 개념으로 해결하고자 한다.

차세대 OS 기초연구센터 과제에서는 운영체제의 스케일러빌러티 연구뿐만 아니라, 매니코어 시스템에서 병렬 프레임워크도 다루고 있다.

How-to