ManycoreOS

매니코어OS
Sogang dcclab (토론 | 기여)님의 2017년 3월 31일 (금) 11:01 판 (연구팀 구성)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

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

개요

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

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

Logo.png

프로세서 발전 추이

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

Processor trends.jpg

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

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


Aim7 linux.png

연구팀 구성

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

 

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

연구 방법

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

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

연구접근방식.png

연구 내용 및 결과

매니코어 운영체제구조 연구

모노리틱 구조의 매니코어 OS 연구

분할형 구조의 매니코어 OS 연구

병렬 프레임워크 연구

오픈 소스 소프트웨어 활동

차세대 OS 기초연구센터 과제는 리눅스 기술을 개선하는 연구 방향과 새로운 구조의 운영체제를 연구하는 방향으로 진행한다. 리눅스의 개선 기술은 리눅스 커뮤니티 a및 Github 등에 공개되며, 새로운 구조의 운영체제는 오픈 프로젝트(2017년)를 계획하고 있다. 오픈 프로젝트 개설을 위해서 다음의 문헌을 참조한다.

상기 문헌은 오픈소스 프로젝트를 구성, 운영할 때 고려해야 할 사항을 제시하고 있다. 아래 문서에서는 상기 문헌의 주요 내용을 간략히 정리하였다.

기타 자료

매니코어 체험 시스템

 

 하나의 매니코어 시스템을 원격지의 누구나 제어하며 사용할 수 있는 시스템이다.

RTENOTITLE​​​​​​​


개발자는 web을 이용하여 제공되는 웹 페이지를 통해 별도의 장비 없이 매니코어 시스템에서 컴파일하고 콘솔을 통해

결과를 확인 할 수 있다.

  • 매니코어 체험 시스템 구성
매니코어
다양한 형태가 있으며 고가의 장비를 각자 구입하기 어려운 개발자들을 위해 공유하여 사용된다.
imja
임베디드 개발시 구축 하여야 하는 복잡한 개발환경을 손쉽고 빠르게 구축할 수 있도록 최적화된 개발 환경을 제공한다. 에프에이리눅스에서는 다양한 데이터 수집을 위한 프로토콜을 지원한다.
webconn

Web API 만으로 제어가 되는 임베디드 리눅스 기반의 IoT 용 디바이스 플랫폼이다. SSH 를 통한 접속으로 보안성 및 신뢰성이 우수하며, 다중 접속을 통해 작업자의 화면을 모니터링 할 수 있다.



  • web Page 제공

RTENOTITLE​​​​​​​

원격 개발자를 위한 콘솔창과 control, tool 창을 제공한다.


 - 콘솔창을 이용하여 컴파일 결과 및 매니코어 시스템의 제어를 확인 할 수 있다.

 - Control 에서는 전원과 led, camera 등 원격으로 제어할 수 있는 것들을 표시한다.

 - Tool 에서는 컴파일 한 타겟을 다운로드 하는 일 등을 할 수 있다.

결과물

논문

특허

  • 출원
    • 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법
    • 동적 열적 마진을 이용하는 반도체 프로세서 장치를 위한 열 관리 방법 및 장치
    • DVFS를 지원하는 멀티코어 플랫폼에서의 전력할당 방법 및 장치
    • 반도체 장치를 위한 실시간 온도 예측 장치 및 방법
    • 불균일 기억 장치 접근(NUMA)구조에서 메모리 정책기반 쓰레드 재배치방법
    • 클라우드 환경에서 네트워크 기능 가상화의 서비스 기능 체이닝을 위한 가상 네트워크 기능 배치 및 재구성 방법
    • 동시멀티스레딩(SMT)을 고려한 프로세서 간 통신 장치 및 방법
    • 매니코어 시스템에서 쓰레드를 스케줄링 하는 방법 및 그 장치
    • 매니코어 시스템 및 이의 동작방법
    • 매니코어 클라우드 가상환경에서 성능 확장성 보장을 위해 개선된 반가상 기회 스핀락 알고리즘
  • 등록
    • DVFS를 지원하는 멀티코어 플랫폼에서의 전력할당 방법 및 장치

소프트웨어

  • 가상화 환경에서 스케일러빌러티를 위한 oticket lock
  • 시맨틱 상호비교 도구(Juxta)
  • 파일 시스템 스케일러빌러티 벤치마크(Fxmark)
  • Vbench 성능 측정 도구
  • 매니코어 운영체제를 위한 싱글코어용 마이크로커널
  • 매니코어 운영체제를 위한 멀티코어용 마이크로커널
  • 매니코어 운영체제를 위한 지온 파이용 마이크로 커널
  • 지온 파이 환경에서 노드간 원격 아이피씨 통신 소프트웨어
  • 지온 파이 환경에서의 마이크로커널 모니터링 소프트웨어
  • 프로세서 소모 전력 및 예측 온도 모니터
  • 프로세서 온도 예측도구
  • 다중 프로그램의 상호비교를 통한 의미적 프로그램 버그 추출기
  • 엑스(x)86 및 암(ARM) 용 커널의 수행 사이클 측정 도구
  • 병렬 프로그램의 맞춤형 병목 분석을 위한 프로파일러

기대 효과 및 활용 방안

차세대 OS 기초연구센터 과제의 목적은 다음과 같으며,

  • 미래의 매니코어 운영체제 기술 확보
  • 매니코어 시스템 소프트웨어 전문인력 양성
  • 그리고 산학연 인적 생태계 구축

기초연구 결과는 다음과 같이 활용될 전망이다.

  • 매니코어용 리눅스 요소기술은 HPC 클라우드, 대규모 데이터기반 응용, 매니코어기반 하둡 응용에 활용 및 리눅스 커뮤니티에 기여
  • 분할형 운영체제 : KISTI 슈퍼컴 테스트베드 OS로 활용하여 대규모 데이터기반 고속처리 응용에 적용
  • 오토튜너 기술 : 딥러닝 신경망 학습 병렬화 응용에 활용