이 문서에서는 Compute Engine 인스턴스와 클러스터를 만들기 전에 고려해야 하는 AI 하이퍼컴퓨터의 구성을 설명합니다. 사용 가능한 구성을 검토하면 워크로드의 성능을 최적화하고 다운타임과 성능 문제를 최소화할 수 있습니다.
컴퓨팅 인스턴스 및 클러스터 생성의 구성 요소
워크로드를 실행할 컴퓨팅 인스턴스와 클러스터를 만들기 전에 사용할 구성을 고려하세요.
예약에 따름 프로비저닝 모델을 사용하는 경우 다음 요소도 고려해야 합니다.
프로비저닝 모델
컴퓨팅 인스턴스 또는 클러스터를 만들기 위해 선택한 소비 옵션에 따라 다음 프로비저닝 모델 중 하나를 사용하여 인스턴스를 만드는 데 필요한 리소스를 확보할 수 있습니다.
예약에 따름: 향후 날짜와 기간에 대해 할인된 가격으로 리소스를 예약할 수 있습니다. 예약 기간이 시작되면 예약된 리소스를 사용하여 인스턴스 또는 클러스터를 만들 수 있습니다. 예약 기간 동안 예약된 리소스에 독점적으로 액세스할 수 있습니다.
Flex-start: 최대 7일 동안 할인된 리소스를 요청할 수 있습니다. Compute Engine은 요청된 리소스를 사용할 수 있게 되는 즉시 프로비저닝을 예약하기 위해 최선을 다합니다. 요청한 기간 동안 획득한 리소스에 독점적으로 액세스할 수 있습니다.
스팟: 가용성에 따라 대폭 할인된 리소스를 즉시 확보할 수 있습니다. 하지만 Compute Engine은 언제든지 인스턴스를 중지하거나 삭제하여 용량을 확보할 수 있습니다.
예약에 따름 프로비저닝 모델
'예약에 따름' 프로비저닝 모델은 생성된 컴퓨팅 인스턴스를 이전에 예약한 용량에 연결합니다. 용량을 예약하면 Compute Engine에서 빈 예약을 만듭니다. 그런 다음 예약 시작 시간에 다음이 발생합니다.
Compute Engine은 예약된 인스턴스 수를 예약에 추가합니다. 예약 종료 시간까지 예약된 용량에 독점적으로 액세스할 수 있습니다.
Google Cloud 는 용량 사용 여부와 관계없이 예약 기간이 끝날 때까지 예약된 용량에 대한 요금을 청구합니다.
그런 다음 예약된 리소스를 사용하여 추가 비용 없이 인스턴스를 만들 수 있습니다. 디스크나 IP 주소와 같이 예약에 포함되지 않은 리소스에 대해서만 비용을 지불합니다.
컴퓨팅 인스턴스 또는 MIG를 만들 때 예약에 따름 프로비저닝 모델을 지정하려면 다음을 실행하세요.
Google Cloud 콘솔의 프로비저닝 모델 목록에서 예약에 따름을 선택합니다.
Google Cloud CLI에서 명령어에
--provisioning-model=RESERVATION_BOUND플래그를 포함합니다.Compute Engine API에서 요청 본문에
"provisioningModel": "RESERVATION_BOUND"필드를 포함합니다.
용량을 예약한 후 인스턴스 또는 MIG를 만들 때 이러한 매개변수를 설정하는 방법에 대한 자세한 내용은 컴퓨팅 인스턴스 및 클러스터 생성 개요를 참고하세요. Cluster Toolkit을 사용하여 클러스터를 배포하는 경우 클러스터 청사진에서 프로비저닝 모델을 설정합니다.
flex-start 프로비저닝 모델
flex-start 프로비저닝 모델을 사용하면 요청한 용량을 사용할 수 있을 때 독립형 Flex-start VM을 만들거나 관리형 인스턴스 그룹 (MIG)에 Flex-start VM을 추가할 수 있습니다. 크기 조절 요청을 사용하여 MIG에 Flex-start VM을 추가하면 MIG에서 인스턴스를 한 번에 모두 만듭니다. 이 방법을 사용하면 워크로드를 시작하는 데 필요한 전체 용량을 기다리는 동안 Compute Engine에서 제공할 수 있는 부분적인 용량에 대한 불필요한 요금이 청구되지 않습니다. flex-start 프로비저닝 모델은 보안 용량 풀에서 리소스를 프로비저닝하므로 GPU와 같이 수요가 많은 리소스를 확보할 가능성이 높아집니다.
독립형 인스턴스 또는 MIG용 인스턴스 템플릿을 만들 때 flex-start 프로비저닝 모델을 지정하려면 다음을 수행하세요.
Google Cloud 콘솔의 프로비저닝 모델 목록에서 유연한 시작을 선택합니다.
gcloud CLI에서 명령어에
--provisioning-model=FLEX_START플래그를 포함합니다.Compute Engine API에서 요청 본문에
"provisioningModel": "FLEX_START"필드를 포함합니다.
flex-start 프로비저닝 모델을 사용하는 인스턴스 또는 클러스터 만들기에 대한 자세한 내용은 다음 문서를 참고하세요.
GKE 클러스터를 만듭니다.
스팟 프로비저닝 모델
스팟 프로비저닝 모델을 사용하면 가용성을 기반으로 대폭 할인된 컴퓨팅 인스턴스를 만들 수 있습니다. 하지만 Compute Engine은 언제든지 생성된 인스턴스를 중지하거나 삭제하여 용량을 확보할 수 있습니다. 이 프로세스를 선점이라고 합니다.
인스턴스 또는 MIG를 만들 때 스팟 프로비저닝 모델을 지정하려면 다음을 수행하세요.
Google Cloud 콘솔의 프로비저닝 모델 목록에서 스팟을 선택합니다.
gcloud CLI에서 명령어에
--provisioning-model=SPOT플래그를 포함합니다.Compute Engine API에서 요청 본문에
"provisioningModel": "SPOT"필드를 포함합니다.
인스턴스 또는 MIG를 만들 때 이러한 매개변수를 설정하는 방법에 대한 자세한 내용은 컴퓨트 인스턴스 및 클러스터 생성 개요를 참고하세요.
클러스터 배포 도구
Cluster Toolkit은 GPU 가속 클러스터를 만드는 데 권장되는 오픈소스 배포 도구입니다. Cluster Toolkit은 Google Kubernetes Engine (GKE) 또는 Slurm 클러스터를 모두 배포할 수 있습니다.
또는 다음 방법 중 하나를 사용하여 컴퓨팅 인스턴스 그룹을 프로비저닝한 다음 필요에 따라 자체 워크로드 스케줄러를 통합할 수 있습니다.
예약 블록 배포 유형
A4X Max, A4X, A4, A3 Ultra, A3 Mega, A3 High (GPU 8개) 컴퓨팅 인스턴스 또는 클러스터를 만들 때 예약에 따름 프로비저닝 모델을 사용하면 수신하는 머신이 밀도 높게 할당된 호스트 블록 내에 자동으로 배포됩니다. 이 배포는 다음과 같은 이점을 제공합니다.
Google의 동적 머신러닝 (ML) 네트워크 패브릭을 사용하여 일관된 고대역폭, 짧은 지연 시간 인스턴스 연결을 위한 차단되지 않는 네트워킹
인스턴스 간의 상대적 근접성을 계층적 뷰로 제공하는 네트워크 토폴로지에 대한 액세스 이 기능은 고급 작업 예약 사용 사례에 유용합니다.
오케스트레이터를 사용할 때 세부적인 토폴로지 인식 배치
작업 예약 및 업타임을 극대화하고 다운타임을 최소화하기 위한 유지보수 일정에 대한 세분화된 사용자 제어
예약 작동 모드
'예약에 따름' 프로비저닝 모델을 사용하는 경우 예약한 머신 유형에 따라 예약된 용량의 예약 작동 모드가 결정됩니다. 각 모드는 호스트 오류 또는 장애가 있는 호스트 신고에 대응하는 방법과 예약 인프라에 대한 가시성 및 제어 수준을 정의합니다.
각 예약 작동 모드는 다음을 정의합니다.
복구를 관리하는 사용자: 나 또는 Google Cloud
복구에 사용하는 용량: 예약된 용량만 또는 예약 내/외부의 용량
배치 제어 수준: 세부적인 제어를 위해 계획된 시간 전에 특정 예약 하위 블록의 유지보수를 보고 시작할 수 있는지 여부입니다.
컴퓨팅 인스턴스 또는 클러스터를 생성할 용량을 예약할 때는 관리 모드 또는 모든 용량 모드 중 하나의 예약 작동 모드를 선택해야 합니다.
관리 모드
관리 모드에서 Google Cloud 호스트 오류 또는 장애가 있는 호스트 신고 후 컴퓨팅 인스턴스의 유지보수 및 복구 프로세스를 자동으로 관리합니다. 이 접근 방식은 워크로드에 높은 안정성이 필요하고 다운타임을 최소화하기 위해 자동화된 프로세스를 선호하는 경우에 적합합니다.
관리 모드에는 다음과 같은 기능이 있습니다.
복구에만 예약된 용량 사용: Compute Engine은 예약된 용량만 사용하여 인스턴스를 다시 시작합니다. 예약에 사용 가능한 용량이 없으면 Compute Engine은 용량을 추가로 확보한 후에만 인스턴스를 다시 시작합니다.
자동 인스턴스 다시 시작: Google Cloud 인스턴스의 전체 복구 프로세스를 처리합니다. 호스트 유지보수가 필요한 경우 Compute Engine은 예약 내에서 사용 가능한 다른 머신으로 인스턴스를 자동으로 마이그레이션하고 인스턴스를 다시 시작합니다.
블록 관리 및 가시성: 개별 예약 및 예약 블록의 토폴로지, 상태, 유지보수 상태를 볼 수 있습니다. 이러한 리소스에 대해 유지보수 알림을 수신하고 예약된 유지보수 시간 전에 선택적으로 유지보수를 시작할 수도 있습니다.
잠재적 API 비율 제한: 결함이 있는 호스트 신고 API 호출은 예약당 비율이 제한될 수 있습니다.
모든 용량 모드
모든 용량 모드에서는 컴퓨팅 인스턴스 복구 프로세스를 관리해야 합니다. 호스트 오류 또는 장애가 있는 호스트 신고 후 유지보수를 수동으로 시작해야 합니다. 관리 모드와 달리 예약 하위 블록의 유지보수를 보고 시작할 수도 있습니다. 이러한 기능을 사용하면 인스턴스의 유지보수 및 복구 프로세스를 세부적으로 완전히 제어할 수 있습니다.
모든 용량 모드에는 다음과 같은 기능이 있습니다.
복구에 예약된 용량과 예약되지 않은 용량 사용: 호스트가 실패할 때 인스턴스를 이전하고 다시 시작하는 데 예약된 리소스와 예약 외에 사용 가능한 리소스를 사용할 수 있습니다.
수동 인스턴스 다시 시작: 인스턴스의 복구 프로세스는 사용자의 책임입니다. 호스트 오류 또는 잘못된 호스트 신고로 인해 호스트 유지보수가 필요한 경우 Compute Engine은 인스턴스를 중지합니다. 유지보수가 완료된 후에만 인스턴스를 다시 시작할 수 있습니다.
블록 및 하위 블록 관리 및 표시: 개별 예약, 예약 블록, 예약 하위 블록의 토폴로지, 상태, 유지보수 상태를 볼 수 있습니다. 이러한 리소스에 대해 유지보수 알림을 받을 수도 있고, 원하는 경우 예약된 유지보수 시간 전에 유지보수를 시작할 수도 있습니다.
API 비율 제한 없음: 잘못된 호스트 신고 API를 호출할 때는 비율 제한이 없습니다.
유지보수 예약 유형
예약에 따름 프로비저닝 모델을 사용하는 경우 Cluster Director는 클러스터에서 실행 중인 컴퓨팅 인스턴스의 호스트 유지보수를 예약하는 옵션을 제공합니다. 용량을 예약할 때 인스턴스를 그룹화하여 동기화된 유지보수 일정을 적용할지 (그룹화됨) 또는 인스턴스를 느슨하게 결합하여 독립적인 유지보수 일정을 적용할지 (독립적) 지정할 수 있습니다.
그룹화된 유지보수 예약
그룹화된 유지보수 일정 유형을 사용하면 Compute Engine에서 컴퓨팅 인스턴스를 프로비저닝하는 시점과 관계없이 동일한 워크로드를 실행하는 모든 인스턴스의 계획된 유지보수 빈도가 동일해집니다. 이렇게 긴밀하게 결합된 유지보수를 통해 사용 중인 용량과 사용하지 않는 용량을 완전히 제어하여 작업의 성능을 최적화할 수 있습니다.
그룹 유지보수 예약 유형은 다음과 같은 경우에 유용합니다.
환경에서 Slurm 또는 GKE와 같은 작업 스케줄러를 사용합니다.
학습 또는 기타 고도로 병렬화된 컴퓨팅 워크로드를 실행하려고 합니다.
독립적인 유지보수 일정
이 독립 유지보수 일정 유형은 인스턴스에 서로 다른 유지보수 일정을 제공합니다. 이 구성은 워크로드에 별도의 유지보수 일정이 있는 경우 워크로드가 더 효율적으로 실행되는 추론 또는 제한된 규모의 학습을 실행하려는 경우에 적합합니다.