멀티스레드 워크로드를 위한 OS 스케줄링 최적화

멀티스레드 워크로드를 위한 OS 스케줄링 최적화
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 다중소켓·다중코어 서버 환경에서 멀티스레드 애플리케이션의 성능을 저해하는 원격 캐시 간 전송과 원격 DRAM 접근을 최소화하도록 운영체제 스케줄러를 재설계한다. 각 스케줄링 퀀텀마다 스레드별 로컬·원격 캐시‑캐시 전송 패턴과 메모리 접근 패턴을 관찰하고, 이를 기반으로 캐시 친화성을 유지하면서 다음 퀀텀의 스레드 배치를 새롭게 결정한다. 캐시‑캐시 전송 최적화를 위한 두 가지 알고리즘(단순 알고리즘·복합 알고리즘)과 원격 DRAM 접근 최적화를 위한 두 가지 알고리즘을 제안하고, 합성 워크로드와 지연 민감도 분석을 통해 최대 16.79%의 전체 지연 감소를 입증한다.

상세 분석

이 연구는 현대 서버가 직면한 두 가지 핵심 병목 현상을 동시에 해결하려는 시도이다. 첫 번째는 코어 간 캐시 일관성 프로토콜에 의해 발생하는 원격 캐시‑캐시 전송이다. 멀티소켓 시스템에서는 동일 소켓 내 코어 간 전송보다 소켓 간 전송이 수배 높은 지연을 갖는다. 두 번째는 NUMA(Non‑Uniform Memory Access) 구조에서 원격 DRAM 접근이 로컬 DRAM 접근보다 크게 느리다는 점이다. 기존 상용 OS 스케줄러는 주로 로드 밸런싱과 응답 시간 최소화에 초점을 맞추어, 이러한 비균등 메모리·캐시 비용을 고려하지 않는다.

논문은 먼저 “스레드‑전송 프로파일링” 단계에서 각 스레드가 현재 퀀텀 동안 발생시킨 로컬·원격 캐시‑캐시 전송 횟수와 로컬·원격 DRAM 접근 횟수를 수집한다. 이 데이터는 스레드‑스레드 간 상호작용 그래프와 스레드‑노드 별 메모리 접근 히트맵으로 변환된다. 이후 두 종류의 최적화 알고리즘을 적용한다.

① 캐시‑캐시 전송 최적화 알고리즘

  • 단순 알고리즘은 전송 빈도가 높은 스레드 쌍을 동일 소켓에 배치하는 그리디 방식이다. 복합 알고리즘은 전송 빈도와 전송량을 가중치로 삼아, 전체 전송 비용을 최소화하는 NP‑Hard 문제를 근사적으로 해결하기 위해 힐 클라이밍 + 지역 탐색을 사용한다.
    ② 원격 DRAM 접근 최적화 알고리즘
  • 첫 번째는 “메모리 친화적 배치”로, 각 스레드가 가장 많이 접근한 메모리 노드와 동일한 소켓에 배치한다. 두 번째는 “혼합 비용 최소화”로, 캐시 전송 비용과 DRAM 접근 비용을 가중합한 목표 함수를 정의하고, 이를 최소화하도록 스레드‑소켓 매핑을 탐색한다.

알고리즘들은 매 퀀텀마다 재실행되며, 스레드 이동에 따른 캐시 친화성 손실을 최소화하기 위해 “캐시 친화도 보존” 제약을 추가한다. 실험에서는 세 가지 합성 워크로드(대규모 행렬 곱, 그래프 탐색, 키‑값 저장소)를 사용했으며, 원격 캐시 전송 지연을 1030 사이클, 원격 DRAM 지연을 80120 사이클로 변동시켜 민감도 분석을 수행했다. 결과는 가장 복합적인 알고리즘 조합이 평균 12.4%의 실행 시간 감소를, 단순 조합이 최대 16.79%의 지연 감소를 달성함을 보여준다. 특히, 원격 DRAM 접근이 지연에 크게 기여하는 워크로드에서는 DRAM 최적화 알고리즘이 주도적인 효과를 보였으며, 캐시 전송 최적화는 원격 캐시 전송 비중이 높은 경우에 유의미한 개선을 제공한다.

이 논문은 OS 스케줄러가 단순히 CPU 사용률을 균등하게 맞추는 수준을 넘어, 메모리·캐시 계층의 비균등성을 정량적으로 모델링하고, 동적 프로파일링 기반으로 실시간 재배치를 수행한다는 점에서 혁신적이다. 또한, 알고리즘 복잡도와 성능 이득 사이의 트레이드오프를 명확히 제시함으로써, 실제 운영체제 구현 시 선택 가능한 설계 포인트를 제공한다.


댓글 및 학술 토론

Loading comments...

의견 남기기