토픽 79 / 111·병렬 처리 (Parallel Processing)
NUMA (Non-Uniform Memory Access)
NUMA (Non-Uniform Memory Access)
멀티프로세서 시스템에서 각 프로세서가 로컬 메모리에는 빠르게, 원격 메모리에는 느리게 접근하는 메모리 아키텍처로, 대규모 SMP 시스템의 확장성을 해결
목적: 대규모 멀티프로세서 확장성, 메모리 대역폭 증대, 로컬 접근 최적화
특징: 비균일 접근시간, 로컬/원격 메모리, 노드 구조, 캐시 일관성
구조: 각 NUMA 노드 = CPU + 로컬 메모리 + I/O, 인터커넥트(QPI/Infinity Fabric/UPI)로 연결
성능: 로컬 메모리 ~100ns, 원격 메모리 ~200-300ns, 비율 2-3배
NUMA 인식: OS가 프로세스/메모리를 같은 노드에 할당, numactl/taskset, NUMA-aware 애플리케이션
장점: 높은 확장성(수십~수백 코어), 메모리 대역폭 증가, 로컬 접근 빠름
단점: 원격 접근 느림, 프로그래밍 복잡도, NUMA 최적화 필요, 캐시 일관성 오버헤드
적용사례: 서버(Intel Xeon, AMD EPYC), HPC, 데이터베이스, 대규모 멀티코어
비교: NUMA(로컬빠름/확장성) vs UMA(균일/단순/소규모)
연관: 멀티코어, SMP, 캐시 일관성, 메모리 아키텍처