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 시스템의 다양한 측면에서 시스템 효율성 및 애플리케이션 성능을 극대화하는 데 도움이 됩니다. 가장 효과적인 기술은 일반적으로 세 가지 범주의 요소를 결합하여 전체 시스템의 성능 특성을 고려하는 균형 잡힌 최적화 전략을 만듭니다. 이러한 기술의 조합이 특정 애플리케이션 및 시스템 아키텍처와 가장 일치하는 조합을 식별하여 성공하는 경우가 많습니다.
벤치마킹 모범 사례
다음은 신뢰할 수 있고 재현 가능한 성능 측정을 보장하는 벤치마킹 사례입니다.
방법론
- 명확한 목표 및 메트릭을 정의하려면
- 대표 벤치마크 선택
- 일관된 테스트 조건 확인
- 모든 테스트 매개 변수 문서화
- 통계 유효성을 위해 여러 실행 수행
피해야 할 일반적인 문제
- 준비 기간이 부족합니다.
- 일관성 없는 컴파일러 옵션
- 부적절한 샘플 크기
- 비현실적인 입력 데이터 세트
- 시스템 가변성 무시
보고 요구 사항
- 시스템 구성 세부 정보'
- 소프트웨어 스택 정보
- 벤치마크 매개 변수
- 원시 결과 및 통계 분석
- 환경 조건
- 최적화 설정