리눅스 재시작 가능한 시퀀스 기술 소개

원제: Restartable Sequences

왜 중요한가

128-192코어 프로세서 보급으로 락 없는 고성능 동기화 기술이 시스템 프로그래밍의 핵심으로 부상

시스템 프로그래머 justine이 리눅스 4.18부터 지원되는 rseq 기술을 소개했다. 이 기술은 락이나 아토믹 연산 없이 스레드 안전한 데이터 구조를 만들 수 있게 하며, 다중 코어 시스템에서 성능을 크게 향상시킨다.

재시작 가능한 시퀀스(rseq)는 2018년 리눅스 4.18에서 도입된 시스템 프로그래밍 기술이다. 현재 tcmalloc, jemalloc, glibc, cosmopolitan 등에서만 사용되지만 향후 모든 운영체제와 시스템 프로그래밍 언어에 도입될 것으로 전망된다. rseq는 커널이 제공하는 32바이트 TLS 메모리를 통해 작동한다. 스레드가 재스케줄링될 때마다 커널이 CPU 번호를 업데이트하고, 스레드가 다른 CPU로 이동할 때 지정된 어셈블리 명령어 시퀀스를 확인하여 중단 핸들러로 점프시킨다. 성능 개선 효과는 CPU 코어 수에 따라 극적으로 달라진다. 4코어 Raspberry Pi 5에서는 malloc() 구현이 3배 빨라지고, 128코어 Ampere Altra CPU에서는 34배, 96코어 AMD Threadripper Pro에서는 43배의 성능 향상을 보인다. 저자는 이런 고성능 워크스테이션이 없으면 시스템 프로그래머들이 뒤처질 것이라고 경고하며, 자신의 행렬 곱셈 최적화 작업과 AI 커뮤니티에서의 인지도 상승 사례를 언급했다.

출처

justine.lol — 원문 읽기 →