현재까지 운영체제는 적은 수의 코어 또는 멀티코어 환경에서 발전하였고, 수백 코어 또는 수천 코어 이상의 매니코어(Many Core) 시스템 환경을 예상하여 코어 수 증가에 따라 운영체제(OS)의 성능도 증가하는 ‘매니코어 운영체제(OS)’에 관한 연구(더 자세한 소개)
【개발과제】
- 매니코어 동기화 알고리즘 API를 활용한 응용SW 개발
(예 : 여러 프로세스가 데이터를 공유하며 동작하는 응용SW 개발 등)
※ (장비지원 및 멘토링지원) 적은 수의 코어(적은 수의 프로세스)에서도 응용 개발 가능하며,필요시 원격
접속이 가능한 최대 16코어 시스템 제공(별도 문의/ 02-599-7917)
[매니코어 동기화 알고리즘 소개]
리눅스 RLU (Read-Log-Update) 성능을 개선한 ‘MV-RLU 알고리즘’
RLU(Read-Log-Update) 동기화 메커니즘은 직관적인 프로그래밍 모델과 읽기 작업 부하에 대한 탁월한 성능을 포함하여 많은 장점을 가지고 있다. 하지만 RLU의 성능은 많은 쓰기 작업 부하에서 현저하게 떨어지며, 코어 수가 많은 매니코어 아키텍쳐에서 그 현상은 더욱 뚜렷하다.
ETRI(한국전자통신연구원)은 과학기술정보통신부의 '매니코어 기반 초고성능 스케일러블 OS 기초 연구' 과제에서 미국 버지니아 공대 민창우 교수와 국제공동연구로 MV-RLU (Multi-Version Read-Log-Update) 알고리즘을 연구하여 이 문제를 해결했다. RLU의 문제는 두 가지 버전만 관리한다는 것이다. 이러한 한계를 극복하기 위해 다중 버전을 지원하도록 RLU를 확장하고, 다중 버전을 효율적으로 관리하기 위한 동시 자율적인 가비지 콜렉션 (concurrent autonomous garbage collection) 기법을 연구하였다. 이 새로운 가비지 콜렉션 기법으로 다중 버전의 주요 오버헤드인 버전 순회 (version traversal) 오버헤드를 줄일 수 있었다. 이 연구결과는 지난 4월 ASPLOS (ACM International Conference on Architectural Support for Programming Languages and Operating Systems) 2019 학회에서 발표하였고, 소스코드는 깃허브(https://github.com/oslab-swrc)에 공개하였다.
추가적으로 MV-RLU로 리스트, 트리 등 기존 자료구조들을 매니코어 환경에서 스케일러블한 자료구조로 활용할 수 있도록 개발하였다. 현재 비휘발성 메모리에서 버전 관리를 하도록 MV-RLU를 확장하여 시스템 장애가 발생하더라고 장애 이전 상태로 돌아갈 수 있도록 지원하는 기법을 연구하고 있다. 이 MV-RLU 동기화 기법을 데이터베이스 인덱스 연산에 활용하면 기존 기법들보다 우수한 성능을 기대할 수 있다.