[논문 리뷰] Measuring NUMA effects with the STREAM benchmark
이 논문은 48-core AMD Opteron 및 32-core Intel Xeon 시스템에서 Non-Uniform Memory Access (NUMA) 영향을 측정하기 위해 STREAM 벤치마크를 개선한다. 스트라이드 및 NUMA 인식 메모리 액세스 패턴을 모두 테스트할 수 있도록 벤치마크를 수정함으로써, AMD 시스템에서는 비-NUMA 인식 코드에 대해 상당한 대역폭 및 지연 시간 패널티를 정량화하였으며, Intel 시스템은 더 높은 프로세서 간 대역폭 덕분에 더 나은 성능 유지를 보였지만, AMD는 NUMA 인식 코드를 사용할 경우 더 높은 최대 대역폭을 달성하였다.
Modern high-end machines feature multiple processor packages, each of which contains multiple independent cores and integrated memory controllers connected directly to dedicated physical RAM. These packages are connected via a shared bus, creating a system with a heterogeneous memory hierarchy. Since this shared bus has less bandwidth than the sum of the links to memory, aggregate memory bandwidth is higher when parallel threads all access memory local to their processor package than when they access memory attached to a remote package. But, the impact of this heterogeneous memory architecture is not easily understood from vendor benchmarks. Even where these measurements are available, they provide only best-case memory throughput. This work presents a series of modifications to the well-known STREAM benchmark to measure the effects of NUMA on both a 48-core AMD Opteron machine and a 32-core Intel Xeon machine.
연구 동기 및 목표
- 현대 고성능 다중코어 서버에서 NUMA 아키텍처가 메모리 대역폭과 지연 시간에 미치는 영향을 정량화하는 것.
- 병렬 응용 프로그램에서 NUMA 인식 및 비-NUMA 인식 메모리 액세스 패턴 간 성능 격차를 평가하는 것.
- 일반적으로 제조사 벤치마크에 의해 가려지는 메모리 계층의 영향을 실질적이고 측정 가능한 데이터로 제공하는 것.
- 기본 프로그래밍 언어를 위한 확장 가능한 병렬 가비지 컬렉터 설계 및 최적화를 지원하기 위해 실제 시스템 동작을 측정하는 것.
- 실제 스레드 로드 하에서 AMD Opteron 및 Intel Xeon 아키텍처의 NUMA 동작을 비교하는 것.
제안 방법
- 기본 STREAM 벤치마크에 스트라이드 및 NUMA 인식 메모리 액세스 패턴을 모두 포함하도록 확장하였다.
- AMD Opteron (48-core) 및 Intel Xeon (32-core) 시스템에서 스레드 수를 다양하게 하여 메모리 대역폭 및 지연 시간을 측정하였다.
- 메모리 국지성 및 인터커넥트 대역폭의 영향을 분리하기 위해 노드 간 희박한 스레드 할당을 사용하였다.
- 노드별 대역폭을 계산하고, 표 2(AMD) 및 표 4(Intel)의 이론적 인터커넥트 한계 대비 정규화하였다.
- 캐시 영향을 분리하기 위해 스트라이드 구성만을 사용하여 지연 시간을 측정하였다.
- 다양한 스레드 수에 따른 성능을 비교하여 확장성 및 포화 지점을 평가하였다.
실험 결과
연구 질문
- RQ148-core AMD Opteron 시스템에서 비-NUMA 인식 메모리 액세스는 대역폭과 지연 시간에 어떤 영향을 미치는가?
- RQ232코어 Intel Xeon 시스템에서 NUMA 인식 및 비-NUMA 인식 코드 간 성능 격차는 얼마나 되는가?
- RQ3이론적 인터커넥트 대역폭과 실제 워크로드에서 측정된 대역폭 간의 비교는 어떻게 되는가?
- RQ4어느 스레드 수에서 양 아키텍처에서 NUMA 영향으로 인해 메모리 대역폭과 지연 시간이 떨어지기 시작하는가?
- RQ5QPI(Intel)의 프로세서 간 대역폭과 HyperTransport(AMD)의 성능을 비교해 병렬 처리 패널티를 완화하는 데 어떤 영향을 미치는가?
주요 결과
- AMD Opteron 시스템에서는 비-NUMA 인식 코드가 상당한 대역폭 패널티를 유발하며, 48코어에서 성능 저하가 시작된다. 반면 NUMA 인식 코드는 거의 선형적으로 확장된다.
- AMD 시스템은 NUMA 인식 코드를 사용할 경우 약 55,000 MB/s의 최대 대역폭을 달성하며, 이는 Intel 시스템의 최대 약 ~40,000 MB/s보다 높은 수준이다.
- Intel Xeon 시스템에서는 높은 QPI 프로세서 간 대역폭 덕분에, 비-NUMA 인식 코드와 NUMA 인식 코드 간 성능 격차가 심지어 전체 코어 수에 도달해도 미미하다.
- Intel 시스템은 32코어에서 대역폭 포화에 도달하는 반면, AMD 시스템은 48코어까지 노드별 대역폭이 계속 증가한다.
- AMD 시스템에서는 중간 수준의 스레드 수(약 24개 이상)에서 비-NUMA 인식 액세스로 인해 지연 시간이 급격히 악화되지만, Intel 시스템은 24개 이상의 스레드까지 균일한 지연 시간을 유지한다.
- 양 시스템 모두 이론적 대역폭과 실제 측정 대역폭 사이에 상당한 격차를 보이며, 특히 스트라이드 구성에서 이격되어 있음을 확인하여 이론적 모델을 초월한 실제 제약 조건이 있음을 시사한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.