멀티코어 캐시 분할과 작업 배정 최적화

멀티코어 캐시 분할과 작업 배정 최적화

초록

멀티코어 프로세서에서 캐시를 정적으로 나누고 작업을 코어에 할당해 전체 실행 시간을 최소화하는 문제를 이론적으로 분석한다. 가능한 캐시 분할을 정밀히 검토해 상수 배율 근사 알고리즘을 제시하고, 실용적인 특수 경우에는 2‑근사 알고리즘을 얻는다. 추가 캐시 사용을 허용하면 근사 비율을 더욱 개선할 수 있으며, 동적 캐시 분할·작업 배정이 제공하는 이점도 탐구한다. 또한, “강도 순서”가 부여된 비관련 기계 스케줄링 문제의 특수 형태를 정의하고, 단계 함수 형태의 작업 부하에 대해 다항식 시간 알고리즘을 제공한다.

상세 분석

본 논문은 임베디드 시스템 설계자가 직면하는 핵심 과제인 “멀티코어 공유 캐시 환경에서 작업들의 실행 시간을 예측 가능하게 최소화”하는 문제를 수학적으로 정형화한다. 저자들은 먼저 캐시를 코어마다 고정된 크기로 나누는 정적 파티셔닝 모델을 설정하고, 각 코어에 작업을 할당하는 결합 최적화 문제를 정의한다. 이 문제는 기존의 비관련 기계 스케줄링(Unrelated Machine Scheduling) 문제와 유사하지만, 캐시 파티션이라는 추가 제약이 존재한다는 점에서 차별화된다.

핵심 기여는 가능한 캐시 파티션을 “대표적인 형태”로 한정함으로써 탐색 공간을 크게 축소한 점이다. 구체적으로, 작업들의 실행 시간은 캐시 크기에 따라 단계 함수(step function) 형태로 변한다는 가정 하에, 캐시를 할당할 때는 각 코어에 대해 “임계 캐시 양”만 고려하면 충분함을 증명한다. 이를 통해 전체 문제를 “캐시 파티션 선택 → 작업 배정” 두 단계로 분리하고, 각 단계에 대해 기존의 근사 알고리즘을 적용할 수 있다.

첫 번째 주요 결과는 상수 배율 근사 알고리즘이다. 저자들은 모든 가능한 파티션을 탐색하지 않고, O(log C)개의 후보 파티션(여기서 C는 전체 캐시 용량)만 고려해도 최적 해와의 비율이 상수(예: 4) 이하임을 보인다. 이는 캐시 파티션이 연속적인 값이 아니라 정수 단위이므로, 로그 스케일로 후보를 추출하는 것이 가능하기 때문이다.

두 번째 결과는 실용적인 특수 경우에 대한 2‑근사 알고리즘이다. 여기서는 작업들의 실행 시간이 캐시 크기에 대해 단조 감소하고, 특정 임계값을 초과하면 더 이상 개선되지 않는 “계단형” 특성을 갖는다고 가정한다. 이 경우, 가장 큰 작업을 먼저 배정하고 남은 캐시를 균등하게 나누는 그리디 전략이 최적 해의 절반 이하의 비용을 보장한다.

또한, 추가 캐시를 허용하는 “ε‑augmentation” 모델을 도입해 근사 비율을 1 + ε 수준으로 끌어올릴 수 있음을 보인다. 즉, 알고리즘이 전체 캐시의 (1 + ε)배를 사용할 수 있다면, 기존 2‑근사보다 훨씬 더 정확한 해를 얻을 수 있다. 이는 실시간 시스템에서 약간의 캐시 여유를 두는 것이 허용될 때 유용한 설계 지침이 된다.

동적 캐시 파티셔닝과 작업 재배정에 대한 탐색도 수행한다. 동적 모델에서는 시간에 따라 캐시를 재분배하고 작업을 이동시킬 수 있으나, 그에 따른 오버헤드가 존재한다. 논문은 이론적으로 동적 모델이 정적 모델보다 최소 1/2 정도의 개선만을 제공한다는 하한을 제시하고, 실제 시뮬레이션을 통해 그 차이가 제한적임을 확인한다.

마지막으로, “강도 순서(strength ordering)”가 부여된 비관련 기계 스케줄링 문제를 정의하고, 고정된 캐시 파티션 하에서 작업 부하가 단계 함수인 경우 다항식 시간 알고리즘을 설계한다. 이는 기존의 NP‑hard 스케줄링 문제에 대한 새로운 특수 케이스 해법을 제공하며, 캐시 파티셔닝 문제와의 직접적인 연관성을 보여준다.

전반적으로 이 논문은 캐시 파티셔닝과 작업 배정을 동시에 고려한 최초의 이론적 근사 프레임워크를 제시하고, 실용적인 알고리즘 설계와 성능 한계 분석을 통해 임베디드 멀티코어 시스템 설계에 중요한 통찰을 제공한다.