|
【 과제 소개 】 |
|
|
||
|
|
||||
|
★ 매니코어 기반 초고성능 스케일러블 OS 기초연구(☞ 더 자세한 소개)
국내 제1호 공개SW 과제(과기정통부, ‘14. 04 ~ ‘22. 02(95개월))로 코어 수 증가에 따른 OS 성능 증가를 목표로 ETRI + 12개 국내외대학연구실 + 2개 기업 + 공개SW협회가 참여 하고 있으며, 국내 최초의 공개SW(오픈소스) 방식의 과제 |
||||
연구과제의 코드명은 담쟁이(아이비, Ivy)이며, 담쟁이가 높은 벽을 넘어 가듯이 성능의 벽을 극복한다는 의미
|
리눅스 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 동기화 기법을 데이터베이스 인덱스 연산에 활용하면 기존 기법들보다 우수한 성능을 기대할 수 있다.
MV-RLU 소개
|