매니코어 프로세서
단일 칩 매니코어 프로세서의 개략적인 구조로는 수십~수백 코어와 메모리가 밀겹합 된 타일(그룹)들의 set으로 전체 100~1,000 여개의 코어로 구성되며 프로세서 내 타일간 메모리는 빠른 인터커넥트로 접근 가능하다.
- (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)로 정의할 수 있다.
Manycore operating system 연구
- 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 연구 및 개발은 활발히 수행되고 있다.
- 현재의 manycore operating system 연구에서 요구되는 underlying hardware를 수행함에 있어서 large-scale hardware 연구의 의존성을 낮추고 연구의 병행을 위해서 Intel Omni-path, Infiniband EDR과 같은 fast fabric으로 internal node들을 연결하고 있는 rack-scale hardware를 대상으로 operating system에 대한 연구를 수행한다.
- 이를 위해서 매니코어 기반 운영체제 기술을 연구하고 병행되고 있는 multi-kernel operating system 연구의 complexity를 낮추며 또한 multi-kernel과의 co-design을 통해서 application에게 transparent large-scale hardware를 제공하는 것을 목표로 한다.
요구사항
- Transparency
- Utilization
- Manageability
- Commodity-driven system
Target workloads
workload의 선정은 temporal locality보다는 spatial locality를 갖는 응용들을 대상으로 thread간의 communication이 활발하지 않은 것을 우선 대상으로 한다.
- Data analytics
- Data caching (Key-value stores)
- Large-scale graph processing
- In-memory Analytics
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을 높일 수 있다.
- vCPU externalization VM의 state와 context의 수행의 decoupling을 통해서 vCPU를 physical machine boundary 외에서 수행할 수 있는 환경을 제공한다. 이를 위해서 VM state에 대한 replication 과 synchronization 을 수행한다.
- vMemory externalization vCPU 및 state를 위해 유지되는 memory에 대해서 sharing에 따라 classify하고 이에 따라 memory의 access control 혹은 replication 등을 수행한다.
2021-2022, manycoreos Revision
ffd455f