저도 이 방면으로는 겉핥기식의 지식 밖에 없습니다.
NUMA 모델을 이야기 하자면 UMA(Uniform Memory Accescc)모델을 우선 설명해야합니다.
NUMA, UMA하는 모델들은 컴퓨터의 병렬 프로세싱 관련된 내용으로 멀티 코어 프로세서가 메모리에
접근하는 방식을 설명하고 있습니다.
UMA 모델은 모든 프로세서가 버스를 통하여 주기억장치에 엑세스하며 각 프로세스는 주 기억장치의
어느영역이든 엑세스 할 수 있으며, 엑세스에 소비하는 시간은 동일한 특성을 보이지만 프로세서 수가 늘어날
수록 공유자원에 대한 경합이 높아지므로 프로세서 수를 늘여 성능을 올리는데 한계가 발생합니다.
NUMA는 UMA모델의 한계를 극복하기위한 모델로 다수의 UMA 모델이 전역 BUS를 통해 자원을 공유하게
됩니다. 때문에 메모리 엑세스 시간은 메모리의 위치에 따라 달라지는 특성이 있습니다.
아래는 텀즈 ( http://www.terms.co.kr/NUMA.htm ) 에서 인용한 NUMA의 뜻입니다.
NUMA[누마]는 멀티프로세싱 시스템에서 지역적으로는 메모리를 공유하며, 성능을 향상시키고,
시스템 확장성이 있도록 마이크로프로세서 클러스터를 구성하기 위한 방법이다. NUMA는 SMP 시스템에서
사용된다. SMP 시스템은 서로 밀접하게 결합되어, 모든 것을 공유하는 시스템으로서, 다중 프로세서들이
하나의 단일 운영체계 하에서 공통의 버스를 통해 각자의 메모리를 액세스한다. 보통, SMP의 한계는
마이크로프로세서가 추가됨에 따라, 공유 버스나 데이터 경로가 과중한 부하가 생기게 되어, 성능에
병목현상이 일어나는데 있다. NUMA는 몇 개의 마이크로프로세서들 간에 중간 단계의 공유메모리를
추가함으로써, 모든 데이터 액세스가 주버스 상에서 움직이지 않아도 되도록 한다.NUMA는 하나의 상자
속에 있는 클러스터로 생각할 수 있다. 클러스터는 대체로 마더보드 상의 하나의 공유 메모리 (L3 캐시라고도
부른다)로 향하는 로컬버스에, 서로 연결된 네 개의 마이크로프로세서들로 구성된다. 이 유니트는 모든
클러스터들을 서로 연결하는 공용 버스 내에서 SMP를 구성하기 위하여 비슷한 유니트에 추가될 수 있다.
이러한 시스템은 대체로 16~256개의 마이크로프로세서를 가지고 있다. SMP 시스템에서 실행되는
응용프로그램에게는, 모든 개별 프로세서 메모리들이 하나의 단일 메모리인 것처럼 비쳐진다.프로세서가
어떤 메모리 주소에 있는 데이터를 찾을 때, 그것은 마이크로프로세서 그 자체에 붙어 있는 L1 캐시를 먼저
찾은 다음, 근처에 있는 다소 큰 L2 캐시칩을 찾는다. 그 다음에는 다른 마이크로프로세서 인근에 있는 원격
메모리의 데이터를 찾기 전에, NUMA 구성에 의해 제공되는 제3의 캐시를 찾는다. NUMA에게는, 이러한
클러스터들 각각이 서로 연결된 네트웍 내에 있는 하나의 노드들 처럼 비쳐진다. NUMA는 모든 노드들 상에
있는 데이터를 계층 체계로 유지한다.
NUMA SMP 시스템의 클러스터들 사이에 있는 버스에서는 SCI (scalable coherent interface) 기술을
사용하여 데이터가 움직인다. SCI는 다중 클러스터의 노드에 걸쳐 캐시 일관성이라고 불리는 것과
대등하다.SMP와 NUMA 시스템은 대체로 공통의 데이터베이스 상에 집단적으로 작업하는 많은 수의
프로세서들에게, 작업 처리를 분담시킬 수 있는 데이터 마이닝과 의사결정 시스템 등과 같은 분야에 사용된다.
시퀀트, 데이터제너럴, NCR 등이 NUMA SMP 시스템을 생산하는 회사들이다.