HPC 지원 VM 인스턴스 만들기

긴밀하게 결합된 고성능 컴퓨팅(HPC) 워크로드에는 프로세스와 가상 머신(VM) 워크로드 간 통신을 위해 메시지 전달 인터페이스(MPI)가 자주 사용됩니다. 하지만 최적의 MPI 성능을 위해 미세 조정된 고유 VM 이미지를 빌드하기 위해서는 시스템 전문 기술, Google Cloud 지식, 추가적인 유지보수 시간이 필요합니다. HPC 워크로드에 최적화된 환경을 빠르게 설정하려면 HPC VM 이미지를 사용하세요.

HPC VM 이미지는 긴밀하게 결합된 HPC 워크로드를 위해 최적화된 Rocky Linux 8 기반 VM 이미지입니다. 여기에는 Google Cloud에서 최적의 MPI 성능을 얻기 위해 VM 인스턴스를 만드는 데 필요한 사전 구성된 커널 및 네트워크 조정 매개변수가 포함되어 있습니다.

최상의 결과를 얻으려면 H4D 또는 H3 시리즈와 같은 HPC 최적화 머신 시리즈나 C2 또는 C2D와 같은 컴퓨팅 최적화 머신 시리즈의 머신 유형에 HPC VM 이미지를 배포하세요. 이러한 머신 유형은 긴밀하게 결합된 HPC 애플리케이션을 위해 설계되었습니다. H4D에서 RDMA를 사용하려면 HPC VM 이미지 버전 20241125 이상을 사용해야 합니다.

다음 옵션을 사용하여 HPC 지원 VM 인스턴스를 만들 수 있습니다.

이점

HPC VM 이미지는 다음과 같은 이점을 제공합니다.

  1. HPC 워크로드를 즉시 사용할 수 있는 VM 인스턴스. 긴밀하게 결합된 HPC 워크로드를 위해 수동으로 성능을 미세 조정하거나 VM 인스턴스 재부팅을 관리하거나 최신 Google Cloud 업데이트를 유지할 필요가 없습니다.
  2. 긴밀하게 결합된 워크로드를 위한 네트워킹 최적화. 소규모 메시지의 지연 시간을 줄여주는 최적화가 포함되어 있어 지점 간 및 그룹 통신에 대한 의존도가 높은 애플리케이션에 유용합니다. H4D 머신 시리즈를 사용하는 경우 HPC VM 이미지에는 필요한 Cloud RDMA 드라이버가 포함되어 있습니다.
  3. HPC 워크로드를 위한 컴퓨팅 최적화. 시스템 간섭을 줄여주는 최적화가 포함되어 있어 보다 예측 가능한 단일 노드 고성능을 지원합니다.
  4. 일관적이고 재현 가능한 성능. VM 이미지 표준화를 통해 일관적이고 재현 가능한 애플리케이션 수준 성능을 제공합니다.
  5. 향상된 애플리케이션 호환성. Intel HPC 플랫폼 사양의 노드 수준 요구 사항에 따라 높은 시스템 간 상호 운용성을 보장합니다.

HPC VM 이미지 기능

HPC VM 이미지는 고성능 컴퓨팅(HPC) 워크로드의 성능을 최적화하도록 설계된 여러 기능을 제공합니다.

  • 자동 업데이트 사용 중지됨
  • Intel MPI Collective 미세 조정
  • 사전 설치된 RPM

자동 업데이트 사용 중지됨

자동 업데이트는 HPC 워크로드의 성능에 부정적인 영향을 미칠 수 있습니다. VM 인스턴스를 만들 때 google_disable_automatic_updates 메타데이터 항목을 TRUE로 설정하여 HPC VM 이미지를 사용할 때 자동 업데이트를 사용 중지할 수 있습니다. 인스턴스 생성 중에 이 메타데이터 항목이 설정되는 방식은 인스턴스를 만드는 데 사용하는 도구에 따라 다릅니다.

예를 들어 gcloud compute instances create 명령어를 사용해 VM 인스턴스를 만들려면 --metadata 인수를 제공합니다. 자세한 내용은 VM 메타데이터 정보를 참조하세요.

Intel MPI 라이브러리

Google Cloud에서 MPI 작업을 실행하려면 Intel MPI 2021 라이브러리를 사용하는 것이 좋습니다. 자세한 내용은 다음 섹션을 참조하세요.

사전 설치된 RPM

HPC VM 이미지는 다음 RPM 패키지가 사전 설치된 상태로 제공됩니다.

  • daos-client
  • gcc-gfortran
  • gcc-toolset-12
  • Lmod
  • dkms
  • htop
  • hwloc
  • hwloc-devel
  • infiniband-diags
  • kernel-devel
  • kmod-idpf-irdma
  • libfabric
  • librdmacm-utils
  • libibverbs-utils
  • libXt
  • ltrace
  • nfs-utils
  • numactl
  • numactl-devel
  • papi
  • pciutils
  • pdsh
  • perf
  • perftest
  • rdma-core
  • redhat-lsb-core
  • redhat-lsb-cxx
  • rsh
  • screen
  • strace
  • wget
  • zsh
  • '개발 도구' 패키지 그룹

빠른 시작

이 튜토리얼에서는 HPC에 최적화된 VM 인스턴스를 설정하는 단계를 설명합니다. 절차에서는 다음 작업을 수행하는 방법을 설명합니다.

  • HPC VM 인스턴스 만들기(Cloud RDMA 구성 없이)
  • HPC VM 인스턴스를 만들 때 압축 배치 정책 지정하기
  • Cloud RDMA(프리뷰)를 사용하는 HPC VM 인스턴스 만들기

기존 HPC VM 인스턴스에 Cloud RDMA를 추가할 수 없으므로 인스턴스를 만들 때 적절한 단계를 따르세요.

시작하기 전에

  1. 이 빠른 시작에서 Google Cloud CLI를 사용하려면 먼저 Google Cloud CLI를 설치하고 초기화해야 합니다.
  2. Google Cloud 콘솔의 프로젝트 선택기 페이지에서Google Cloud 프로젝트를 선택하거나 만듭니다.

HPC VM 인스턴스 만들기

다음 머신 시리즈에서 머신 유형을 선택하는 것이 좋습니다.

이 VM은 고정된 가상-물리적 코어 매핑이 포함되고 NUMA 셀 아키텍처를 게스트 OS에 노출하며, 이 두 가지 모두가 긴밀하게 연결된 HPC 애플리케이션의 성능에 중요한 역할을 합니다.

콘솔

  1. Google Cloud 콘솔에서 HPC VM Cloud Marketplace 페이지로 이동합니다. HPC VM Cloud Marketplace 페이지로 이동

  2. 시작하기를 클릭합니다.

  3. HPC VM 배포 페이지에 배포 이름을 입력합니다. 이 이름은 VM 이름의 루트로 사용됩니다. Compute Engine은 인스턴스의 이름을 지정할 때 이 이름 끝에 -vm을 추가합니다.

  4. 영역머신 유형을 선택합니다. 이 빠른 시작에서는 모든 설정을 있는 그대로 두거나 변경할 수 있습니다.

  5. 부팅 디스크 유형, 부팅 디스크 크기, 네트워크 인터페이스는 기본 설정 그대로 둡니다.

  6. 배포를 클릭합니다.

VM 인스턴스 생성이 완료되면 Cloud Deployment Manager가 열리고, 여기에서 HPC VM 및 기타 배포를 관리할 수 있습니다.

gcloud

instances create 명령어를 사용하여 HPC VM을 만듭니다. 상호 연결된 HPC VM 인스턴스를 여러 개 만드는 경우 압축 배치 정책이 적용된 HPC VM을 만들어 네트워크 지연 시간을 줄이세요.

배치 정책 없이 HPC VM 인스턴스를 만들려면 다음과 유사한 명령어를 사용합니다.

gcloud compute instances create INSTANCE_NAME \
        --zone=ZONE \
        --image-family=IMAGE_FAMILY \
        --image-project=cloud-hpc-image-public \
        --maintenance-policy=TERMINATE \
        --machine-type=MACHINE_TYPE

다음을 바꿉니다.

  • INSTANCE_NAME: HPC VM 인스턴스의 이름입니다.
  • ZONE: 인스턴스를 만들 영역입니다.
  • IMAGE_FAMILY: VM 인스턴스를 만들 때 사용할 이미지의 이미지 계열입니다. 최신 Rocky Linux 8 기반 이미지의 경우 hpc-rocky-linux-8을 사용합니다.
  • MACHINE_TYPE: VM 인스턴스를 만들 때 사용할 머신 유형입니다.

잠시 후 VM 인스턴스 만들기가 완료됩니다. 인스턴스 구성을 확인하고 상태를 확인하려면 다음 명령어를 실행합니다.

gcloud compute instances describe INSTANCE_NAME

압축 배치 정책이 적용된 HPC VM 인스턴스 만들기

압축 배치 정책을 만들면 VM 인스턴스 간의 지연 시간을 줄일 수 있습니다. 압축 배치 정책은 동일한 가용성 영역의 인스턴스가 서로 가까이 위치하도록 보장합니다.

단일 압축 배치 정책에 적합한 것보다 더 많은 VM 인스턴스가 필요한 경우 인스턴스를 여러 배치 정책으로 나눕니다. 모든 인스턴스에 적합한 최소 배치 정책 수를 사용합니다.

압축 배치 정책을 지정하는 HPC VM 인스턴스를 만들려면 다음 단계를 따르세요.

  1. 압축 배치 정책을 만듭니다.

  2. 다음 중 하나를 수행합니다.

Cloud RDMA를 사용하는 HPC VM 인스턴스 만들기

Cloud RDMA를 사용하는 HPC VM 인스턴스를 만들려면 먼저 하나 이상의 일반 VPC 네트워크와 하나의 Falcon VPC 네트워크를 만들어야 합니다. Falcon VPC 네트워크는 컴퓨팅 인스턴스 간에 RDMA 트래픽을 지원하는 RDMA 네트워크 프로필을 사용합니다. 이 네트워크는 다른Google Cloud 서비스 또는 인터넷으로 RDMA 이외의 트래픽을 전송하는 일반 VPC 네트워크와는 별개입니다.

Cloud RDMA를 사용하는 HPC VM 인스턴스를 만들려면 다음 태스크를 완료해야 합니다.

  1. 다음 VPC 네트워크를 2개 이상 식별하거나 만듭니다.

    • gVNIC 네트워크 인터페이스를 통과하는 트래픽의 일반 VPC 네트워크
    • RDMA 트래픽용 Falcon VPC 네트워크
  2. HPC VM 인스턴스를 만듭니다.

    1. 소스 이미지로 HPC VM 이미지를 사용합니다. 이 이미지에는 Cloud RDMA에 필요한 드라이버가 포함되어 있습니다.
    2. 인스턴스를 만드는 동안 gVNIC 드라이버를 사용하는 네트워크 인터페이스와 IRDMA 드라이버를 사용하는 네트워크 인터페이스를 두 개 이상 구성합니다.

      자세한 설명은 Cloud RDMA를 사용하는 인스턴스 만들기를 참조하세요.

  3. Cloud RDMA를 사용하는 HPC VM 인스턴스에서 MPI 애플리케이션을 실행하려면 Cloud RDMA를 사용하여 H4D VM에서 MPI 애플리케이션 설정 및 확장의 MPI 구성 단계를 따르세요.

HPC VM 인스턴스에 액세스

HPC VM 인스턴스를 만들면 자동으로 시작됩니다. 인스턴스에 액세스하려면 다음 중 하나를 수행하세요.

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. VM 인스턴스의 이름을 클릭합니다.

  3. 원격 액세스 섹션에서 첫 번째 드롭다운 목록을 클릭하고 인스턴스 액세스 방법을 선택합니다.

Compute Engine이 SSH 키를 전파하고 사용자를 만듭니다. 자세한 내용은 Linux VM에 연결을 참조하세요.

gcloud

SSH를 사용하여 인스턴스에 액세스하려면 gcloud compute ssh 명령어를 사용합니다.

gcloud compute ssh INSTANCE_NAME

Compute Engine이 SSH 키를 전파하고 사용자를 만듭니다. 자세한 내용은 인스턴스 연결을 참조하세요.

삭제

이 빠른 시작에서 사용한 리소스에 대한 비용이 Google Cloud 계정에 청구되지 않게 하려면 만든 HPC VM 인스턴스를 삭제합니다.

콘솔

  1. Google Cloud 콘솔에서 배포 페이지로 이동합니다.

    배포로 이동

  2. HPC VM 배포 옆의 체크박스를 선택합니다.

  3. 삭제를 클릭합니다.

gcloud

instances delete 명령어를 사용합니다.

gcloud compute instances delete INSTANCE_NAME

권장사항에 따라 HPC VM 인스턴스 구성

HPC VM 인스턴스의 성능을 더욱 향상시키고 예측 가능하게 하려면 다음 권장사항을 사용하는 것이 좋습니다.

동시 멀티스레딩 사용 중지

HPC VM 이미지는 Intel 프로세서의 하이퍼스레딩으로도 알려진 동시 멀티스레딩(SMT)을 기본적으로 사용 설정합니다. SMT를 사용 중지하면 성능의 예측 가능성이 높아지고 작업 시간이 줄어들 수 있습니다.

다음 방법에 따라 SMT를 사용 중지할 수 있습니다.

  • 새 HPC VM을 만드는 동안 SMT를 사용 중지하려면 HPC VM 만들기의 단계에 따라 --threads-per-core=1 플래그를 포함합니다.

  • 기존 HPC VM에서 SMT를 사용 중지하려면 VM에 연결하고 VM에서 다음 명령어를 실행합니다.

    sudo google_mpi_tuning --nosmt
    

자세한 내용은 코어당 스레드 수 설정을 참조하세요.

C2 및 C2D 인스턴스의 네트워크 인터페이스 유형으로 gVNIC 구성

HPC VM 이미지는 Virtio-net 및 Google Virtual NIC(gVNIC)를 모두 가상 네트워크 인터페이스로 지원합니다. Virtio-net 대신 gVNIC를 사용하여 더 나은 통신 성능 및 더 높은 처리량을 제공함으로써 MPI 애플리케이션의 확장성을 향상시킬 수 있습니다. 또한 gVNIC는 더 높은 대역폭을 제공하고 더 높은 처리량을 허용하는 VM당 Tier_1 네트워킹 성능의 기본 요건입니다.

새 C2 또는 C2D 인스턴스를 만드는 경우 기본적으로 Virtio-net이 가상 네트워크 인터페이스에 사용됩니다. gVNIC를 사용하려면 HPC VM 만들기 단계를 따르고 다음 중 하나를 수행하세요.

콘솔

인스턴스를 만들 때 gVNIC를 네트워크 인터페이스로 설정하려면 탐색 메뉴에서 네트워킹을 클릭합니다. 네트워킹 창이 표시되면 다음을 수행합니다.

  1. 네트워크 인터페이스 섹션으로 이동합니다.
  2. 네트워크 인터페이스 카드에서 gVNIC를 선택합니다.

gcloud

gcloud compute instances create 명령어에 --network-interface=nic-type=GVNIC 플래그를 포함합니다.

HPC VM 이미지에는 gVNIC 드라이버가 Dynamic Kernel Module Support(DKMS)로 포함됩니다. 자세한 내용은 Google Virtual NIC 사용을 참조하세요.

멜트다운 및 스펙터 완화 사용 중지

HPC VM 이미지는 기본적으로 멜트다운 및 스펙터 완화를 지원합니다. 경우에 따라 이러한 완화는 워크로드에 따라 성능 저하를 일으킬 수 있습니다. 이러한 완화를 사용 중지하고 관련된 보안 위험을 일으키려면 다음을 수행합니다.

  1. HPC 인스턴스에서 다음 명령어를 실행합니다.

    sudo google_mpi_tuning --nomitigation
    
  2. 인스턴스를 재부팅합니다.

네트워크 성능 향상

인스턴스의 네트워크 성능을 향상시키려면 다음 구성 중 하나 이상을 설정합니다.

  • 더 높은 대역폭을 구성합니다. C2 또는 C2D VM의 Tier_1 네트워킹을 구성하려면 gcloud compute instances create 명령어를 사용하여 VM을 만들고 --network-performance-configs 플래그를 지정합니다. 자세한 내용은 고대역폭 구성으로 VM 만들기를 참조하세요.

  • 점보 프레임 사용. 네트워크 패킷의 처리 오버헤드를 최소화하려면 더 큰 패킷 크기를 사용하는 것이 좋습니다. 애플리케이션의 특성에 따라 더 큰 패킷 크기를 검증해야 합니다. 점보 프레임 및 패킷 크기 사용에 대한 자세한 내용은 최대 전송 단위 가이드를 참조하세요.

  • TCP 메모리 한도를 늘립니다. 대역폭이 높을수록 더 큰 TCP 메모리가 필요합니다. 단계를 수행하여 tcp_*mem 설정을 늘립니다.

  • network-latency 프로필을 사용합니다. 애플리케이션 지연 시간을 평가하고 네트워크 수신 경로의 지연 시간을 줄이는 비지 폴링을 사용 설정합니다. /etc/sysctl.conf에서 net.core.busy_pollnet.core.busy_read 설정을 조정하거나 tuned-adm을 사용합니다.

Intel MPI 2021 사용

Google Cloud에서 MPI 작업을 실행하려면 Intel MPI 2021 라이브러리를 사용하는 것이 좋습니다.

MPI 구현에는 통신 성능에 영향을 줄 수 있는 많은 내부 구성 매개변수가 있습니다. 이러한 파라미터는 특히 MPI Collective 통신과 관련되어 있어 Google Cloud 환경에서 매우 다르게 작동하는 알고리즘과 구성 파라미터를 지정할 수 있습니다.

HPC VM 이미지에는 추천 MPI 라이브러리를 설치하고 TCP 전송을 통해 Google Cloud 맞춤형 libfabric 공급자를 사용하는 유틸리티 google-hpc-compute가 포함되어 있습니다.

제한사항

미세 조정의 이점은 애플리케이션마다 다릅니다. 일부 경우에는 특정 미세 조정이 성능에 부정적 영향을 줄 수 있습니다. 가장 효율적이거나 비용 효과적인 구성을 찾기 위해 애플리케이션을 벤치마킹하는 것이 좋습니다.

Intel MPI 2021지원에 google-hpc-compute 유틸리티 사용

google_install_intelmpi 스크립트는 Google-hpc-compute 유틸리티의 MPI 관련 도구입니다. Intel MPI를 설치하고 구성하는 데 도움이 됩니다.

google-hpc-compute 유틸리티는 HPC VM 이미지에 포함되어 있습니다.

Intel MPI 2021 설치

새 HPC VM을 만드는 동안 Intel MPI 라이브러리를 설치하려면 HPC VM 만들기의 단계에 따라 VM 인스턴스를 만들 때 다음을 포함합니다.

--metadata=google_install_intelmpi="--impi_2021"

기존 HPC VM에 라이브러리를 설치하려면 해당 VM에서 다음 명령어를 실행합니다.

sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI

install_dir 기본 위치는 /opt/intel로 설정됩니다.

Intel MPI 라이브러리 2018 및 MPI Collective 미세 조정

HPC VM 이미지에는 압축 배치 정책을 사용하여 c2-standard-60c2d-standard-112 인스턴스에서 수행하는 Intel MPI Collective 미세 조정이 포함되어 있습니다. 이러한 조정은 /usr/share/google-hpc-compute/mpitune-configs/intelmpi-2018 디렉터리에서 확인할 수 있습니다.

설치된 MPI 라이브러리에 이러한 미세 조정 구성을 적용하려면 mpivars 셸 스크립트를 소싱하여 적절한 환경을 설정하세요. 그런 다음 다음 명령어를 사용하여 미세 조정을 직접 설치할 수 있습니다(디렉터리에 대한 루트 액세스가 필요한 경우 --sudo 옵션 사용). google_install_mpitune

mpitune을 사용하여 MPI Collective 통신을 위한 알고리즘 및 구성 파라미터를 수동으로 지정하고 구성 파일을 생성할 수 있습니다.

예를 들어 인스턴스당 22개의 VM 인스턴스와 30개의 vCPU에 대해 미세 조정을 수행하려면 mpivars 셸 스크립트를 사용하여 적절한 환경을 설정한 후 다음 명령어를 실행합니다. 디렉터리에 대한 write 액세스 권한이 있거나 루트 사용자로 명령어를 실행해야 합니다.

mpitune -hf hostfile -fl 'shm:tcp' -pr 30:30 -hr 22:22

이 명령어는 나중에 애플리케이션을 실행하는 데 사용할 수 있는 Intel MPI 디렉터리에 구성 파일을 생성합니다. 애플리케이션에 미세 조정 구성을 사용하려면 mpirun 명령줄에 -tune 옵션을 추가합니다. 예를 들면 다음과 같습니다.

mpirun -tune -hostfile HOSTFILE -genv I_MPI_FABRICS 'shm:tcp' -np 660 -ppn 30 ./APPLICATION_NAME

다음을 바꿉니다.

  • HOSTFILE: VM 인스턴스의 네트워크 이름을 나열하는 게스트 OS의 파일 이름
  • APPLICATION_NAME: 실행할 애플리케이션 파일의 이름

HPC VM 이미지를 사용하여 커스텀 이미지 만들기

규모에 맞게 권장사항을 구현하려면 HPC VM 인스턴스와 함께 사용할 커스텀 OS 이미지를 만듭니다. HPC VM 인스턴스를 만들 때 사용할 커스텀 이미지를 만들려면 다음 태스크를 완료하세요.

  1. HPC VM 이미지를 사용하는 VM을 만듭니다.

  2. MPI 미세 조정으로 VM을 맞춤설정합니다.

  3. HPC VM 이미지의 부팅 디스크를 소스 디스크로 사용하여 커스텀 이미지를 만듭니다. Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 수행할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 이미지 페이지로 이동합니다.

    이미지로 이동

  2. 이미지 만들기를 클릭합니다.

  3. 이미지의 이름을 지정합니다.

  4. 소스 디스크에서 HPC VM의 부팅 디스크 이름을 선택합니다.

  5. 이미지의 나머지 속성을 선택합니다.

  6. 만들기를 클릭합니다.

gcloud

images create 명령어를 사용하여 커스텀 이미지를 만듭니다.

gcloud compute images create IMAGE_NAME \
         --source-disk=INSTANCE_NAME \
         --source-disk-zone=VM_ZONE \
         --family=IMAGE_FAMILY \
         --storage-location=LOCATION

다음을 바꿉니다.

  • IMAGE_NAME: 커스텀 이미지의 이름
  • INSTANCE_NAME: HPC VM의 이름
  • INSTANCE_ZONE: HPC VM이 있는 영역
  • IMAGE_FAMILY: 선택사항입니다. 이 이미지가 속할 이미지 계열.
  • LOCATION: 선택사항입니다. 커스텀 이미지를 저장할 리전. 기본 위치는 소스 디스크의 위치와 가장 가까운 멀티 리전입니다.

가격 책정

HPC VM 이미지는 추가 비용 없이 제공됩니다. HPC VM 이미지가 Compute Engine에서 실행되기 때문에 vCPU 디스크, 메모리와 같은 Compute Engine 리소스에 대해 비용이 발생할 수 있습니다. 자세한 내용은 Compute Engine 가격 책정을 참조하세요.

다음 단계