MORE (Manycore Oriented Resource Externalization) 연구

연구 배경

  1. (목표) 확장형 운영체제를 연구하는 기초 기술 연구로서 1,000코어 이상의 매니코어 시스템(a) 상에서 코어 수 증가에 따라 운영체제의 성능이 증가하는 매니코어 운영체제 기술을 연구한다.
  2. (매니코어시스템 환경) 매니코어 운영체제 연구를 위하여 현존하는 하드웨어 시스템으로 1,000코어 이상의 매니코어 시스템을 구현하기 위해서는 아직 매니코어를 포함하고 있는 하드웨어 컴퓨팅 환경이 정립되지 않았으며 시스템의 구축 비용, 목적에 따른 제한적인 구조 등 고정적인 하드웨어의 상황에 따라 여러 제약사항이 따른다. 매니코어 시스템의 하드웨어 형상을 소프트웨어만으로 시뮬레이션하는 것 또한 최적화된 환경을 마련하기 보다는 시스템의 상태를 파악하는 방법으로는 활용될 수 있으나, 운영체제와 같은 시스템 소프트웨어에서 해결해야 할 중요한 요소로서 실제 현실에서 일어날 수 있는 시스템 상황을 예측하기 어렵다. 그뿐만 아니라 유사한 하드웨어 환경을 제공하기 위해 시뮬레이션에 필요한 시간을 포함하여 높은 비용을 요구하므로 확장성 있는 매니코어 운영체제 기술을 연구함에 있어 여러 제약사항이 따른다.
  3. (매니코어 운영체제 연구환경) 이러한 하드웨어 및 소프트웨어 시뮬레이션의 제약사항을 해결하고자 본 연구에서는 현존하는 수십~수백 코어 수준의 하드웨어 시스템을 연결하여 현실적인 테스트베드 시스템(b)을 구축하고 구축된 시스템 환경을 매니코어 시스템 시뮬레이션으로 활용하여 매니코어 운영체제 기술을 연구하고 있다. 그러기 위해서 구축된 테스트베드 시스템을 대상으로 매니코어 시스템의 하드웨어 및 소프트웨어 구조를 설계하고 시뮬레이션 해야 할 대상을 고려하고 있다. 테스트베드로는 Intel Xeon 프로세서와 Xeon Phi 보조 프로세서 환경을 고려한다.

Fig1

매니코어 프로세서

단일 칩 매니코어 프로세서의 개략적인 구조로는 수십~수백 코어와 메모리가 밀겹합 된 타일(그룹)들의 set으로 전체 100~1,000 여개의 코어로 구성되며 프로세서 내 타일간 메모리는 빠른 인터커넥트로 접근 가능하다.

Fig2

  • (CPU) Many cores 100s~1,000s of cores integrated into a single processor chip
  • (Memory) Shared memory without cache coherent many-core processors are typically organized as tiles that can access memory and peripherals over an interconnect
  • (Network) High throughput communication network interface connects the components on each tile to the Network-on-Chip (NoC)

매니코어 운영체제

  • 매니코어 운영체제는 매니코어 시스템에서 자원을 효율적으로 스케줄링하여 동작하는 운영체제이다. 코어 수 증가에 따라 성능을 증가하기 위한 스케일러빌러티를 제공하기 위해 매니코어 운영체제(Manycore Operating System) 연구는 다음 그림과 같이 매니코어 시스템의 하드웨어 자원을 효율적으로 운영하여 문제를 해결하고자 한다.
  • 그러기 위해서 매니코어 자원 외현화(externalization) 연구의 MORE(Manycore Oriented Resource Externalization) 계층 부분과 이 계층을 통해 제공되는 매니코어 시스템의 특성을 인식(aware)하는 운영체제 계층의 연구가 필요하며 이 핵심 계층들이 매니코어 시스템에서 고려해야할 MOS(Manycore Operating System)로 정의할 수 있다.

Fig3

Manycore operating system 연구

  1. Intel Xeon Phi, Cavium ThunderX, Mellanox TILE processor, 그리고 Prinston University 의 David Wentzlaff가 이끄는 OpenPiton Project 등과 같은 General Programming model을 지원하는 프로세서와 large address space와 page faulting capability와 같이 점진적으로 풍부한 programming model 을 지원하는 Nvidia PASCAL 과 같은 micro-architecture 등 hardware scalability 연구 및 개발은 활발히 수행되고 있다.
  2. 현재의 manycore operating system 연구에서 요구되는 underlying hardware를 수행함에 있어서 large-scale hardware 연구의 의존성을 낮추고 연구의 병행을 위해서 Intel Omni-path, Infiniband EDR과 같은 fast fabric으로 internal node들을 연결하고 있는 rack-scale hardware를 대상으로 operating system에 대한 연구를 수행한다.
  3. 이를 위해서 매니코어 기반 운영체제 기술을 연구하고 병행되고 있는 multi-kernel operating system 연구의 complexity를 낮추며 또한 multi-kernel과의 co-design을 통해서 application에게 transparent large-scale hardware를 제공하는 것을 목표로 한다.

요구사항

  1. Transparency
  2. Utilization
  3. Manageability
  4. Commodity-driven system

Target workloads

workload의 선정은 temporal locality보다는 spatial locality를 갖는 응용들을 대상으로 thread간의 communication이 활발하지 않은 것을 우선 대상으로 한다.

  1. Data analytics
  2. Data caching (Key-value stores)
  3. Large-scale graph processing
  4. In-memory Analytics

Fig4

Resource disaggregation (or externalization)

CPU와 Memory와 같이 tightly coupled resource들의 decoupling 및 disaggregation을 수행하기 위해서 virtual machine으로부터 processor와 memory를 각각 분리하는 resource disaggregation 연구를 수행한다. 그림에서 나타난 바와 같이 Single rack에 포함된 cpu, memory의 logical pool을 생성하고 이로부터 할당받은 resource를 이용하여 임의의 VM instance를 생성한다. 이때 cpu와 memory간의 혹은 해당 자원의 host와 vm 간의 binding을 느슨하게 만듦으로써 resource의 utilization을 높일 수 있다.

Fig5

  1. vCPU externalization VM의 state와 context의 수행의 decoupling을 통해서 vCPU를 physical machine boundary 외에서 수행할 수 있는 환경을 제공한다. 이를 위해서 VM state에 대한 replication 과 synchronization 을 수행한다.
  2. vMemory externalization vCPU 및 state를 위해 유지되는 memory에 대해서 sharing에 따라 classify하고 이에 따라 memory의 access control 혹은 replication 등을 수행한다.