다음을 통해 공유


HPC(High-Performance 컴퓨팅) 성능 및 벤치마킹 개요

HPC(High-Performance Computing) 시스템은 대량의 데이터를 처리하고 고속으로 복잡한 계산을 수행하도록 설계되었습니다. 성능 이해 및 측정은 시스템 최적화, 조달 결정 및 애플리케이션이 성능 요구 사항을 충족하도록 하는 데 매우 중요합니다. 이 문서에서는 HPC 성능 개념 및 벤치마킹 방법론에 대한 포괄적인 개요를 제공합니다.

주요 성능 메트릭

의미 있는 시스템 평가 및 비교를 위해 HPC 시스템 성능을 측정하는 데 사용되는 기본 메트릭을 이해하는 것이 중요합니다. 비교를 위한 객관적인 측정값을 제공하고, 시스템 병목 상태를 식별하여 성능 튜닝을 사용하도록 설정하고, 애플리케이션 성능을 예측하는 데 도움을 줍니다. 성능

HPC 시스템의 계산 기능은 계산 및 지침을 실행하는 능력을 정량화하는 다양한 메트릭을 통해 측정됩니다.

  • FLOPS(초당Floating-Point 작업): 시스템의 원시 계산 능력을 측정합니다.
  • 최고 성능: 시스템에서 달성할 수 있는 이론적 최대 성능
  • 지속적인 성능: 실제 작업 중에 달성된 실제 성능
  • IPS(초당 명령어 수): 프로세서가 명령어를 실행하는 속도

벤치마킹 범주

다양한 유형의 벤치마크는 특정 구성 요소 테스트부터 실제 애플리케이션 성능 평가에 이르기까지 시스템 성능을 평가하는 데 다양한 용도로 사용됩니다.

가상 벤치마크
(특정 시스템 구성 요소 또는 특성 테스트)
애플리케이션 벤치마크
(실제 애플리케이션 또는 해당 프록시)
커널 벤치마크
(앱의 작은 독립 실행 부분)
STREAM (메모리 대역폭) WRF(날씨 조사 및 예측) NAS 병렬 벤치마크
Intel MPI 벤치마크(네트워크 성능) GROMACS(분자 역학) DOE CORAL 벤치마크
LINPACK(조밀한 선형 대수) NAMD(분자 역학) ECP 프록시 애플리케이션
HPCG(스파스 선형 대수) MILC(양자 크로모다이내믹스)

성능 분석 방법

HPC 시스템 및 애플리케이션에서 자세한 성능 데이터를 수집하고 병목 상태를 식별하기 위해 다양한 기술을 사용합니다. 가장 일반적으로 사용되는 메서드는 프로그램 동작 및 리소스 사용 패턴을 이해하기 위해 런타임 데이터를 수집하는 프로파일링 , 프로그램 실행에 대한 자세한 임시 정보 및 심층 분석을 위한 시스템 동작을 캡처 하는 추적 메서드입니다.

프로파일링

  • 시간 기반 프로파일링: 정기적으로 프로그램 카운터 샘플링
  • 이벤트 기반 프로파일링: 하드웨어 카운터 데이터 수집
  • 통신 프로파일링: 메시지 패턴 및 타이밍 분석
  • I/O 프로파일링: 파일 시스템 성능 측정

추적

  • 타임라인 분석: 이벤트의 임시 동작 기록
  • 메시지 추적: 통신 패턴 분석
  • 하드웨어 카운터 추적: 시간에 따른 하드웨어 이벤트 기록

성능 최적화 기술

이러한 전략은 HPC 시스템의 다양한 측면에서 시스템 효율성 및 애플리케이션 성능을 극대화하는 데 도움이 됩니다. 가장 효과적인 기술은 일반적으로 세 가지 범주의 요소를 결합하여 전체 시스템의 성능 특성을 고려하는 균형 잡힌 최적화 전략을 만듭니다. 이러한 기술의 조합이 특정 애플리케이션 및 시스템 아키텍처와 가장 일치하는 조합을 식별하여 성공하는 경우가 많습니다.

결합된 요소가 있는 유효 기술의 스크린샷.

벤치마킹 모범 사례

다음은 신뢰할 수 있고 재현 가능한 성능 측정을 보장하는 벤치마킹 사례입니다.

방법론

  • 명확한 목표 및 메트릭을 정의하려면
  • 대표 벤치마크 선택
  • 일관된 테스트 조건 확인
  • 모든 테스트 매개 변수 문서화
  • 통계 유효성을 위해 여러 실행 수행

피해야 할 일반적인 문제

  • 준비 기간이 부족합니다.
  • 일관성 없는 컴파일러 옵션
  • 부적절한 샘플 크기
  • 비현실적인 입력 데이터 세트
  • 시스템 가변성 무시

보고 요구 사항

  • 시스템 구성 세부 정보'
  • 소프트웨어 스택 정보
  • 벤치마크 매개 변수
  • 원시 결과 및 통계 분석
  • 환경 조건
  • 최적화 설정