최적의 성능을 위해 사전 미세 조정된 HPC VM 이미지 소개
Jason Zhang
Software Engineering Manager
Pavan Kumar
Product Manager
오늘 Google에서는 긴밀하게 결합된 MPI 워크로드에 초점을 두고 고성능 컴퓨팅(HPC) 워크로드에 최적화된 CentOS 7 기반 가상 머신(VM) 이미지의 공개 프리뷰 버전을 출시한다는 기쁜 소식을 전해드립니다.
2020년에는 Google Cloud에서 최적의 MPI 성능을 얻는 데 도움이 되는 몇 가지 기능과 권장사항 미세 조정을 소개해 드렸습니다. Google Cloud는 이러한 권장사항을 통해 MPI 핑퐁 지연 시간이 한 자릿수 마이크로초(us)까지 단축되고 소량의 MPI 메시지는 10us 이내에 전달되는 것을 입증했습니다.
MPI 성능이 향상되면 애플리케이션 확장이 바로 개선되기 때문에 Google Cloud에서 효율적으로 실행되는 HPC 워크로드를 확장할 수 있습니다. 하지만 이러한 권장사항이 포함된 VM 이미지를 빌드하기 위해서는 시스템 전문성과 Google Cloud 관련 지식이 필요합니다. HPC 최적화 이미지로 시작하면 이미지를 보다 간편하게 유지관리할 수 있습니다.
HPC VM 이미지를 사용하면 Google Cloud에서 최적의 CPU와 네트워크 성능을 얻을 수 있도록 미세 조정된 VM을 빠르고 쉽게 인스턴스화할 수 있습니다. HPC VM 이미지는 Google Cloud Marketplace를 통해 추가 비용 없이 제공됩니다.
HPC VM 이미지에 대한 자세한 내용과 이점을 알아보려면 아래를 계속 읽어보세요. 오늘 HPC VM 이미지를 사용해 인스턴스를 만들어 보려면 아래 내용을 건너뛰고 관련 문서와 빠른 시작 가이드를 확인하세요.
HPC VM 이미지 사용의 이점
HPC VM 이미지는 사전 구성되어 있고 정기적으로 유지관리되기 때문에 Google Cloud에서 HPC를 사용하는 고객에게 다음과 같은 이점을 제공합니다.
HPC 지원 VM을 즉시 간편하게 생성: 긴밀하게 결합된 HPC 애플리케이션을 위한 권장사항이 통합되어 있는 HPC 지원 VM을 빠르게 만들 수 있고 최신 미세 조정을 통해 항상 최신 상태를 유지할 수 있습니다.
긴밀하게 결합된 워크로드를 위한 네트워킹 최적화: 소량 메시지의 지연 시간을 줄여주고 지점 간 커뮤니케이션 및 집합적 커뮤니케이션에 크게 의존하는 애플리케이션에 이점을 제공합니다.
HPC 워크로드를 위한 컴퓨팅 최적화: 성능 변화로 이어질 수 있는 시스템 간섭을 줄여주기 때문에 보다 예측 가능한 단일 노드 성능 향상을 기대할 수 있습니다.
일관되고 재현 가능한 멀티 노드 성능: 다양한 HPC 워크로드에서 테스트한 미세 조정을 사용하여 실현했습니다.
HPC VM 이미지는 표준 CentOS 7 이미지의 삽입형 교체 이미지이기 때문에 간단하고 쉽게 사용할 수 있습니다.
고객 스토리: CloudyCluster와 HPC VM 이미지를 사용한 SDPB 솔버 확장
월터 랜드리는 국제 부트스트랩 협력체와 공동 연구하는 캘리포니아 공과대학 입자이론 그룹의 연구 소프트웨어 엔지니어입니다. 이 협력체는 준정부호 프로그램 솔버인 SDPB를 사용해 초기 우주 팽창, 초전도체, 양자 홀 유체, 상 전이 등 이론 물리학의 다양한 문제에 적용되는 양자장이론을 연구합니다.
협력체의 계산 기능을 확장하기 위해 랜드리는 SDPB가 Google Cloud에서 얼마나 확장될 수 있는지 알아보고자 했습니다. 랜드리는 Intel Xeon Gold 6240 프로세서와 인피니밴드 FDR 기반의 Omnibond CloudyCluster로 작업하면서 HPC VM 이미지를 활용하였고 예일대학교의 온프레미스 클러스터에 필적하는 성능과 확장성을 얻었습니다.


Google Cloud의 C2-Standard-60 인스턴스 유형은 2세대 Intel Xeon 확장 가능 프로세서를 기반으로 합니다. C2 인스턴스 제품군은 배치 정책을 활용하여 노드 간 지연 시간을 줄일 수 있어 긴밀하게 결합된 MPI 워크로드에 적합합니다. CloudyCluster는 C2 제품군에 HPC VM 이미지와 배치 정책을 즉시 활용하기 때문에 연구원이 원활하게 사용할 수 있습니다. 이러한 테스트는 Google Cloud의 여러 인스턴스에서 지연 시간이 짧은 워크로드를 확장할 수 있는 능력을 입증합니다.
HPC VM 이미지를 Omnibond CloudyCluster에서 시도해 보려는 사용자를 위해 HPC VM 이미지를 사용하는 업데이트된 버전의 Omnibond CloudyCluster가 Google Cloud Marketplace에서 제공됩니다. 또한 이 버전에는 NSF가 자금을 지원하고 오하이오 슈퍼컴퓨팅 센터가 주도하는 Open OnDemand가 포함되어 있어 시스템 관리자가 HPC 리소스에 대한 웹 액세스를 쉽게 제공할 수 있습니다.
HPC VM 이미지에 포함된 기능
미세 조정 및 최적화
현재 버전의 HPC VM 이미지는 긴밀하게 결합된 HPC 워크로드를 위한 미세 조정에 중점을 두며 최적의 MPI 애플리케이션 성능을 위해 다음의 권장사항을 구현합니다.
- 하이퍼 스레딩 사용 중지: HPC VM 이미지에서는 Intel 하이퍼 스레딩이 기본적으로 사용 중지되어 있습니다. 하이퍼 스레딩을 사용 중지하면 성능의 예측 가능성이 높아지고 일부 HPC 작업의 실행 시간이 단축될 수 있습니다.
- MPI 집합 미세 조정: MPI 집합 알고리즘을 선택하면 MPI 애플리케이션 성능에 큰 영향을 미칠 수 있습니다. HPC VM 이미지에는 가장 일반적인 MPI 작업 구성에 사용하도록 권장되는 Intel MPI 집합 알고리즘이 포함되어 있습니다.
- tcp_*mem 설정값 증가: C2 머신은 최대 32Gbps의 대역폭을 지원할 수 있으며 Linux 기본값보다 더 큰 TCP 메모리를 활용합니다.
- 비지 폴링 사용 설정: 비지 폴링은 소켓 레이어 코드가 네트워크 기기의 수신 큐를 폴링하도록 허용하고 네트워크 중단을 사용 중지하여 네트워크 수신 경로의 지연 시간을 줄이는 데 도움이 됩니다.
- 사용자 한도 완화: 클러스터의 컴퓨팅 노드가 사용자 간에 공유되지 않는 HPC 작업에는 파일 열기, 한 사용자가 사용할 수 있는 프로세스 수 같은 시스템 리소스에 대한 기본 한도가 일반적으로 필요하지 않습니다.
- Linux 방화벽 사용 중지, SELinux 사용 중지: Google Cloud CentOS Linux 이미지의 경우 SELinux와 방화벽이 기본적으로 사용 설정되어 있지만, HPC VM 이미지는 MPI 성능을 향상하기 위해 Linux 방화벽과 SELinux를 사용 중지합니다.
- CPUIdle 사용 중지: C2 머신은 저전력 모드에 진입해 에너지를 절약할 수 있도록 CPU C-state를 지원합니다. CPUIdle을 사용 중지하면 간섭이 줄어들고 짧은 지연 시간을 일관적으로 제공할 수 있습니다.
이러한 미세 조정의 이점은 애플리케이션별로 다를 수 있기 때문에 자체 애플리케이션을 벤치마킹하여 가장 효율적이거나 경제적인 구성을 찾는 것이 좋습니다.
HPC 벤치마크를 활용한 성능 측정
Google Cloud는 HPC VM 이미지와 기본 CentOS 7 이미지의 성능을 Intel MPI 벤치마크와 실제 애플리케이션 벤치마크인 유한 요소 분석(ANSYS LS-DYNA), 전산유체역학(ANSYS Fluent), 기후 모델링(WRF)을 기준으로 비교했습니다.
이 섹션의 벤치마크에 사용된 HPC VM 이미지와 CentOS 이미지의 버전은 다음과 같습니다.
- HPC VM 이미지: hpc-centos-7-v20210119 (완화를 적용하지 않았고 HPC VM 이미지 문서에 제안된 대로 MPI 미세 조정 구성을 설치함)
- CentOS 이미지: centos-7-v20200811
Intel MPI 벤치마크(IMB) Ping-Pong
IMB Ping-Pong은 한 쌍의 VM에서 두 랭크 간에 크기가 고정된 메시지가 전송될 때 소요되는 핑퐁 지연 시간을 측정하는 데 사용됩니다. HPC VM 이미지를 사용하면 노드 간 핑퐁 지연 시간이 기본 CentOS 7 이미지(기준)에 비해 평균적으로 최대 50% 줄어드는 것으로 나타났습니다.
벤치마크 설정
- 압축 배치 정책이 적용된 C2-standard-60 VM 2개
- MPI 라이브러리: Intel MPI 라이브러리 2018 업데이트 4
- 명령줄: mpirun -genv I_MPI_PIN=1 -genv I_MPI_PIN_PROCESSOR_LIST=0 -hostfile <hostfile> -np 2 -ppn 1 IMB-MPI1 Pingpong -iter 50000
결과


Intel MPI 벤치마크(IMB) AllReduce
IMB AllReduce 벤치마크는 VM의 여러 랭크 사이의 집단 지연 시간을 측정하는 데 사용됩니다. MPI_SUM 연산을 통해 고정된 길이의 벡터를 줄여줍니다. 결괏값의 1PPN(노드당 프로세스 수)은 노드당 MPI 랭크가 1개이고 랭크당 스레드는 30개인 경우를 나타내며 30PPN은 노드당 MPI 랭크가 30개이고 랭크당 스레드는 1개인 경우를 나타냅니다. HPC VM 이미지를 사용하면 8개 노드에서 240개 MPI 랭크(노드당 프로세스 30개)의 AllReduce 지연 시간이 기본 CentOS 7 이미지(기준)보다 최대 40% 줄어드는 것으로 나타났습니다.
벤치마크 설정
- 압축 배치 정책이 적용된 C2-standard-60 VM 8개
- MPI 라이브러리: Intel MPI 라이브러리 2018 업데이트 4
- 명령줄: mpirun -tune -genv I_MPI_PIN=1 -genv I_MPI_FABRICS ‘shm:tcp’ -hostfile <hostfile> -np <#vm*ppn> -ppn <ppn> IMB-MPI1 AllReduce -iter 50000 -npmin <#vm*ppn>




HPC 애플리케이션 벤치마크: LS-DYNA, Fluent, WRF
HPC VM 이미지는 8개 Intel Xeon 프로세서 기반 C2 인스턴스의 240개 MPI 랭크에서 실행했을 때 애플리케이션 수준에서 ANSYS LS-DYNA의 '차량 3대' 충돌 시뮬레이션 벤치마크보다 최대 25% 향상된 성능을 나타냈습니다. ANSYS Fluent와 WRF에서는 HPC VM 이미지를 사용하면 기본 CentOS 이미지에 비해 성능이 최대 6% 향상됐습니다.
벤치마크 설정
- ANSYS LS-DYNA('차량 3대' 모델): 압축 배치 정책이 적용된 C2-standard-60 VM 8개, AVX-2로 컴파일된 LS-DYNA MPP 바이너리 사용
- ANSYS Fluent('aircraft_wing_14m' 모델): 압축 배치 정책이 적용된 C2-standard-60 VM 12개
- WRF V3 Parallel Benchmark(12km CONUS): 압축 배치 정책이 적용된 C2-standard-60 VM 16개
- MPI 라이브러리: Intel MPI 라이브러리 2018 업데이트 4
결과


다음 단계: SchedMD Slurm 지원 및 추가 Linux 배포
Google은 HPC VM 이미지가 HPC 파트너 제품에 기본으로 통합될 수 있도록 해당 파트너와 지속적으로 협력하고 있습니다. 다음 달부터, Slurm을 사용하는 HPC 고객은 HPC VM 이미지를 기본으로 사용하는 HPC 지원 클러스터를 시작할 수 있습니다. 여기에서 프리뷰 버전을 확인하세요.
HPC Enterprise Linux 옵션과 지원을 원하는 고객을 위해 SUSE는 Google Cloud에 최적화된 SUSE Enterprise HPC VM 이미지와 관련하여 Google과 협력하고 있습니다. SUSE Enterprise HPC VM 이미지에 대한 자세한 내용이 궁금하거나 추가 통합 또는 Linux 배포에 대한 요청사항이 있는 경우 Google에 문의해 주시기 바랍니다.
지금 시작하기
HPC VM 이미지가 오늘 Google Cloud Marketplace를 통해 모든 고객에게 프리뷰 버전으로 공개됩니다. HPC VM 이미지를 사용해 인스턴스를 만드는 자세한 방법은 관련 문서와 빠른 시작 가이드를 확인하세요.
도움을 주신 지우싱 리우, 태너 러브, 지안 양, 홍보 루, 팔라비 펜에게 감사의 말을 전합니다.


