HPC 지원 VM 인스턴스 만들기

소개

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

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

이점

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

  1. 즉각적인 HPC 사용을 위한 VM 준비: 긴밀하게 결합된 HPC 워크로드를 위해서는 수동으로 성능을 미세 조정하거나, VM 재부팅을 관리하거나, 최신 Google Cloud 업데이트를 유지할 필요가 없습니다.
  2. 긴밀하게 결합된 워크로드를 위한 네트워킹 최적화: 소규모 메시지의 지연 시간을 줄여주는 최적화가 포함되어, 지점 간 및 그룹 통신에 대한 의존도가 높은 애플리케이션에 유용합니다.
  3. HPC 워크로드를 위한 컴퓨팅 최적화: 시스템 간섭을 줄여주는 최적화가 포함되어, 보다 예측 가능한 단일 노드 고성능을 지원합니다.
  4. 일관적이고 재현 가능한 성능: VM 이미지 표준화를 통해 일관적이고 재현 가능한 애플리케이션 수준 성능을 제공합니다.

특징

Google은 HPC 지원 VM에 대해 다음과 같은 최적화를 권장합니다. HPC VM 이미지에는 이미 이러한 최적화가 포함되어 있으므로, 이를 직접 구성할 필요가 없습니다.

HPC VM 이미지에는 또한 압축 배치 정책을 사용하여 c2-standard-60 인스턴스에서 수행되는 Intel MPI Collective 미세 조정이 포함되어 있습니다.

빠른 시작

gcloud 명령줄 도구 또는 Google Cloud Console을 사용하여 HPC 지원 VM을 만들 수 있습니다. Console에서 이미지는 Cloud Marketplace를 통해 제공됩니다.

시작하기 전에

  1. 이 빠른 시작에서 gcloud 명령줄 도구를 사용하려면 먼저 Cloud SDK를 설치한 후 초기화해야 합니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

HPC VM 인스턴스 만들기

VM 만들기

Console

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

  2. 실행을 클릭합니다.

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

  4. 영역머신 유형을 선택합니다. 이 빠른 시작에서는 모든 설정을 있는 그대로 두거나 변경할 수 있습니다. C2 머신 유형을 선택하는 것이 좋습니다. 자세한 내용은 컴퓨팅 최적화 인스턴스 사용을 참조하세요.

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

  6. 배포를 클릭합니다.

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

gcloud

instances create 명령어를 사용하여 HPC VM을 만듭니다. 네트워크 지연 시간을 낮추기 위해서는 압축 배치 정책을 사용하여 HPC VM을 만드는 것이 좋습니다.

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

다음을 바꿉니다.

  • INSTANCE_NAME: 만들려는 HPC VM의 이름입니다.
  • ZONE: VM을 만들려는 영역입니다.
  • MACHINE_TYPE: 새 VM의 머신 유형입니다. c2-standard-60과 같이 C2 머신 유형을 선택하는 것이 좋습니다. 자세한 내용은 컴퓨팅 최적화 인스턴스 사용을 참조하세요.

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

gcloud compute instances describe INSTANCE_NAME

VM 액세스

Console

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

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

    VM 인스턴스로 이동

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

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

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

gcloud

HPC VM 인스턴스를 만들면 자동으로 시작됩니다. SSH를 사용하여 액세스하려면 compute ssh 명령어를 사용합니다.

gcloud compute ssh INSTANCE_NAME

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

삭제

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

Console

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

    배포로 이동

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

  3. 삭제를 클릭합니다.

gcloud

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

gcloud compute instances delete INSTANCE_NAME

애플리케이션에 Intel MPI Collective 미세 조정 사용

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

애플리케이션의 특성에 따라 구성 매개변수를 조정하는 것이 좋습니다. 또한 미세 조정 구성 파일을 생성하고 사용할 때 VM 배치 정책을 사용 설정하는 것이 좋습니다.

HPC VM 이미지에 포함된 미세 조정 구성

HPC VM 이미지에는 압축 배치 정책에 따라 c2-standard-60 인스턴스에서 수행되는 Intel MPI Collective 미세 조정의 출력 구성이 포함됩니다. 이러한 미세 조정 파일은 다음 디렉터리에 있습니다.

/usr/share/google-hpc-compute/mpitune-configs/intelmpi-2018

HPC 이미지에는 다음 시나리오를 지원하는 몇 가지 미세 조정 구성이 포함되어 있습니다.

  • VM 수: 1 ~ 22
  • VM당 MPI 순위 수(프로세스): 1, 2, 6, 10, 30

이러한 미세 조정 구성을 사용하려면 다음을 수행합니다.

  1. Intel MPI 라이브러리 2018을 설치합니다.

  2. 다음 bash 스크립트를 실행하여 환경을 설정합니다.

    source MPI_INSTALL_DIR/mpivars.sh
    

    MPI_INSTALL_DIR을 Intel MPI 라이브러리가 설치된 디렉터리 경로로 바꿉니다.

  3. 다음 명령어를 사용하여 HPC VM 이미지에 포함된 미세 조정을 설치합니다. 디렉터리에 대해 루트 액세스가 필요하면 --sudo 옵션을 사용합니다.

    google_install_mpitune
    

mpitune을 사용하여 커스텀 미세조정 구성 생성

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

예를 들어 22개 VM과 VM별로 30개의 프로세스에 대해 미세 조정을 수행하려면 mpivars.sh 스크립트를 사용하여 적절한 환경을 설정한 후 다음 명령어를 실행합니다. 디렉터리에 대해 쓰기 액세스 권한이 있거나 명령어를 루트 권한으로 실행해야 합니다.

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

그러면 Intel MPI 디렉터리에 구성 파일이 생성되고, 이를 사용하여 애플리케이션을 실행할 수 있습니다. 애플리케이션에 미세 조정 구성을 사용하려면 다음 명령어에 -tune 옵션을 추가합니다.

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

멜트다운 및 스펙터 완화 해제

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

  1. HPC VM 인스턴스를 만듭니다.
  2. 이 VM 인스턴스에서 다음 명령어를 실행합니다.

    sudo google_mpi_tuning --nomitigation
    
  3. VM을 재부팅합니다.

가격 책정

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

제한사항

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

다음 단계