NUMA

NUMA(Non-Uniform Memory Access)는 컴퓨터 시스템의 메모리 아키텍처 중 하나로, 멀티프로세서 시스템에서 메모리 접근 시간이 프로세서 간에 다를 수 있는 구조를 의미한다. NUMA는 대칭형 멀티프로세서(SMP)와는 달리 각 프로세서가 자신의 지역 메모리에 더 빠르게 접근할 수 있도록 설계되어 있다. 이 구조에서는 전체 시스템의 메모리가 여러 개의 노드로 나뉘며, 각 노드는 하나 이상의 프로세서와 그에 연결된 메모리를 포함한다.

NUMA의 주요 장점은 스케일 아웃이 용이하다는 점이다. 프로세서를 추가할 때마다 해당 프로세서에 가까운 메모리를 할당하여 성능 저하를 최소화할 수 있다. 그러나 NUMA 아키텍처는 메모리 접근 시간이 각 프로세서와 메모리 간의 거리와 관련이 있기 때문에, 올바른 메모리 할당 및 데이터 접근 패턴이 중요하다. 잘못된 접근 패턴은 성능 저하를 초래할 수 있으며, 이를 해결하기 위한 다양한 프로그래밍 기법과 운영 체제의 지원이 필요하다.

NUMA는 데이터베이스, 서버, 고성능 컴퓨팅 등 다양한 분야에서 사용되며, 대규모 시스템의 성능 최적화를 위한 중요한 요소로 자리 잡고 있다. NUMA 아키텍처는 현대의 많은 서버와 슈퍼컴퓨터에서 기본 구조로 채택되고 있으며, 메모리 관리 기법과 스케줄링 전략이 NUMA의 성능에 미치는 영향은 상당하다.