이 문서에서는 A4X, A4, A3 Ultra, A3 Mega 또는 A3 High 머신 유형을 사용하는 Slurm 클러스터를 구성하고 배포하는 단계를 설명합니다. 이러한 가속기 최적화 머신 유형에 대해 자세히 알아보려면 GPU 머신 유형을 참고하세요.
Google Cloud에서 AI에 최적화된 Slurm 클러스터를 만드는 다른 방법은 다음을 참고하세요.
클러스터 설정 및 관리를 간소화하는 관리형 Slurm 환경을 사용하려면 Cluster Director를 참고하세요.
Slurm에 A4 가상 머신 (VM) 인스턴스 2개를 배포하려면 AI 최적화 Slurm 클러스터 만들기 빠른 시작을 참고하세요.
제한사항
Slurm 클러스터의 VM에서 사용하는 머신 시리즈에 따라 다음 제한사항이 적용됩니다.
A4X
- 이러한 머신 유형을 사용하는 인스턴스에는 지속 사용 할인 또는 가변형 약정 사용 할인이 적용되지 않습니다. 또한 A4X Max 머신 유형은 리소스 기반 약정 사용 할인을 지원하지 않습니다.
- 특정 리전 및 영역에서만 인스턴스를 만들 수 있습니다.
- Persistent Disk (리전 또는 영역)를 사용할 수 없습니다. Google Cloud Hyperdisk만 사용할 수 있습니다.
- 이러한 머신 유형은 NVIDIA Grace 플랫폼에서만 사용할 수 있습니다.
- A4X Max 또는 A4X에서는 머신 유형 변경이 지원되지 않습니다. 이러한 머신 유형 중 하나로 전환하거나 이러한 머신 유형에서 전환하려면 새 A4X Max 또는 A4X 인스턴스를 만들어야 합니다.
- 이러한 머신 유형에서는 Windows 운영체제를 실행할 수 없습니다.
- A4X 인스턴스의 경우
ethtool -S를 사용하여 GPU 네트워킹을 모니터링하면_phy로 끝나는 실제 포트 카운터가 업데이트되지 않습니다. 이는 MRDMA 가상 함수 (VF) 아키텍처를 사용하는 인스턴스의 예상 동작입니다. 자세한 내용은 MRDMA 기능 및 네트워크 모니터링 도구를 참고하세요. - A4X Max 및 A4X 인스턴스는 다음을 지원하지 않습니다.
- 2026년 2월 4일 이전에 생성된 Hyperdisk ML 디스크는 A4X 머신 유형에 연결할 수 없습니다.
A4
- A4 머신 유형을 사용하는 인스턴스에는 지속 사용 할인 및 가변형 약정 사용 할인이 적용되지 않습니다.
- 특정 리전 및 영역에서만 A4 머신 유형을 사용할 수 있습니다.
- Persistent Disk (리전 또는 영역)를 사용할 수 없습니다. Google Cloud Hyperdisk만 사용할 수 있습니다.
- A4 머신 유형은 Emerald Rapids CPU 플랫폼에서만 사용할 수 있습니다.
- 인스턴스의 머신 유형을 A4 머신 유형으로 변경하거나 A4 머신 유형에서 변경할 수 없습니다. 이 머신 유형으로 새 인스턴스를 만들어야 합니다.
- A4 머신 유형은 단독 테넌시를 지원하지 않습니다.
- A4 머신 유형에서는 Windows 운영체제를 실행할 수 없습니다.
- A4 인스턴스의 경우
ethtool -S를 사용하여 GPU 네트워킹을 모니터링하면_phy로 끝나는 실제 포트 카운터가 업데이트되지 않습니다. 이는 MRDMA 가상 함수 (VF) 아키텍처를 사용하는 인스턴스의 예상 동작입니다. 자세한 내용은 MRDMA 기능 및 네트워크 모니터링 도구를 참고하세요. - 2026년 2월 4일 이전에 생성된 Hyperdisk ML 디스크는 A4 머신 유형에 연결할 수 없습니다.
A3 Ultra
- A3 Ultra 머신 유형을 사용하는 인스턴스에는 지속 사용 할인 및 가변형 약정 사용 할인이 적용되지 않습니다.
- A3 Ultra 머신 유형은 특정 리전 및 영역에서만 사용할 수 있습니다.
- Persistent Disk (리전 또는 영역)를 사용할 수 없습니다. Google Cloud Hyperdisk만 사용할 수 있습니다.
- A3 Ultra 머신 유형은 Emerald Rapids CPU 플랫폼에서만 사용할 수 있습니다.
- A3 Ultra 머신 유형에서는 머신 유형 변경이 지원되지 않습니다. 이 머신 유형으로 전환하거나 이 머신 유형에서 전환하려면 새 인스턴스를 만들어야 합니다.
- A3 Ultra 머신 유형에서는 Windows 운영체제를 실행할 수 없습니다.
- A3 Ultra 머신 유형은 단독 테넌시를 지원하지 않습니다.
- A3 Ultra 인스턴스의 경우
ethtool -S를 사용하여 GPU 네트워킹을 모니터링하면_phy로 끝나는 실제 포트 카운터가 업데이트되지 않습니다. 이는 MRDMA 가상 함수 (VF) 아키텍처를 사용하는 인스턴스의 예상 동작입니다. 자세한 내용은 MRDMA 기능 및 네트워크 모니터링 도구를 참고하세요.
A3 Mega
- A3 Mega 머신 유형을 사용하는 인스턴스에는 지속 사용 할인 및 가변형 약정 사용 할인이 적용되지 않습니다.
- A3 Mega 머신 유형은 특정 리전 및 영역에서만 사용할 수 있습니다.
- A3 Mega 머신 유형을 사용하는 인스턴스에서는 리전 Persistent Disk를 사용할 수 없습니다.
- A3 Mega 머신 유형은 Sapphire Rapids CPU 플랫폼에서만 사용할 수 있습니다.
- A3 Mega 머신 유형에서는 머신 유형 변경이 지원되지 않습니다. 이 머신 유형으로 전환하거나 이 머신 유형에서 전환하려면 새 인스턴스를 만들어야 합니다.
- A3 Mega 머신 유형에서는 Windows 운영체제를 실행할 수 없습니다.
A3 High
- A3 High 머신 유형을 사용하는 인스턴스에는 지속 사용 할인 및 가변형 약정 사용 할인이 적용되지 않습니다.
- A3 High 머신 유형은 특정 리전 및 영역에서만 사용할 수 있습니다.
- A3 High 머신 유형을 사용하는 인스턴스에서는 리전 Persistent Disk를 사용할 수 없습니다.
- A3 High 머신 유형은 Sapphire Rapids CPU 플랫폼에서만 사용할 수 있습니다.
- A3 High 머신 유형에서는 머신 유형 변경이 지원되지 않습니다. 이 머신 유형으로 전환하거나 이 머신 유형에서 전환하려면 새 인스턴스를 만들어야 합니다.
- A3 High 머신 유형에서는 Windows 운영체제를 실행할 수 없습니다.
a3-highgpu-1g,a3-highgpu-2g,a3-highgpu-4g머신 유형의 경우 스팟 VM 또는 Flex-start VM을 사용하여 인스턴스를 만들어야 합니다. 이러한 옵션에 대한 자세한 내용은 다음을 참조하세요.- 스팟 VM을 만들려면 가속기 최적화 VM을 만들 때 프로비저닝 모델을
SPOT으로 설정합니다. - Flex-start VM을 만들려면 다음 방법 중 하나를 사용하세요.
- 가속기 최적화 VM 만들 때 독립형 VM을 만들고 프로비저닝 모델을
FLEX_START로 설정합니다. - 관리형 인스턴스 그룹(MIG)에서 크기 조절 요청을 만듭니다. 자세한 내용은 GPU VM으로 MIG 만들기를 참조하세요.
- 가속기 최적화 VM 만들 때 독립형 VM을 만들고 프로비저닝 모델을
- 스팟 VM을 만들려면 가속기 최적화 VM을 만들 때 프로비저닝 모델을
a3-highgpu-1g머신 유형의 컨피덴셜 VM은 제한된 리전 및 영역에서만 사용 가능하며 A3 High 머신 유형에서 실행되는 컨피덴셜 VM에 대한 제한사항이 모두 적용됩니다.
시작하기 전에
Slurm 클러스터를 만들기 전에 아직 완료하지 않았다면 다음 단계를 완료하세요.
- 소비 옵션 선택: 소비 옵션 선택에 따라 GPU 리소스를 획득하고 사용하는 방식이 결정됩니다.
자세한 내용은 사용 옵션 선택을 참고하세요.
- 용량 획득: 용량을 획득하는 프로세스는 각 소비 옵션마다 다릅니다.
선택한 소비 옵션의 용량을 확보하는 프로세스를 알아보려면 용량 개요를 참고하세요.
- Filestore 용량 할당량이 충분한지 확인: 배포하기 전에 타겟 리전에 충분한 Filestore 할당량이 있어야 합니다. 필요한 최소 용량은 클러스터의 머신 유형에 따라 다릅니다.
- A4, A4X, A3 Ultra, A3 Mega: 최소 10TiB(10,240GiB)의 HIGH_SCALE_SSD (영역) 용량이 필요합니다.
- A3 High: BASIC_SSD (표준) 용량이 최소 2.5TiB (2,560GiB) 필요합니다.
할당량을 확인하거나 할당량 상향을 요청하려면 다음을 참고하세요.
- 할당량을 확인하려면 API별 할당량 보기를 참고하세요.
- 할당량이 충분하지 않으면 할당량 증가를 요청하세요.
- Cluster Toolkit 설치: Slurm 클러스터를 프로비저닝하려면 Cluster Toolkit 버전
v1.62.0이상을 사용해야 합니다.Cluster Toolkit을 설치하려면 Cluster Toolkit 설정을 참고하세요.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
필요한 역할
Compute Engine 기본 서비스 계정에 Slurm 클러스터를 배포하는 데 필요한 권한이 있는지 확인하려면 관리자에게 Compute Engine 기본 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 스토리지 객체 뷰어 (
roles/storage.objectViewer) -
프로젝트에 대한 Compute 인스턴스 관리자 (v1) (
roles/compute.instanceAdmin.v1) -
서비스 계정 자체에 대한 서비스 계정 사용자 (
roles/iam.serviceAccountUser)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 Compute Engine 기본 서비스 계정에 필요한 권한을 부여할 수도 있습니다.
스토리지 버킷 설정
클러스터 청사진은 Terraform 모듈을 사용하여 클라우드 인프라를 프로비저닝합니다. Terraform을 사용할 때는 버전이 사용 설정된 파일에 상태를 원격으로 저장하는 것이 좋습니다. Google Cloud에서 버전 관리가 사용 설정된 Cloud Storage 버킷을 만들 수 있습니다.
이 버킷을 만들고 CLI에서 버전 관리를 사용 설정하려면 다음 명령어를 실행합니다.
gcloud storage buckets create gs://BUCKET_NAME \
--project=PROJECT_ID \
--default-storage-class=STANDARD --location=BUCKET_REGION \
--uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning
다음을 바꿉니다.
BUCKET_NAME: 버킷 이름 지정 요구사항을 충족하는 Cloud Storage 버킷의 이름입니다.PROJECT_ID: 프로젝트 ID입니다.BUCKET_REGION: 사용 가능한 위치
Cluster Toolkit 디렉터리 열기
Google Cloud에서 Slurm을 사용하려면 Cluster Toolkit을 설치해야 합니다. 툴킷을 설치한 후 다음 명령어를 실행하여 클러스터 툴킷 디렉터리에 있는지 확인합니다.
cd cluster-toolkit
이 클러스터 배포에는 Cluster Toolkit v1.62.0 이상이 필요합니다. 버전을 확인하려면 다음 명령어를 실행하면 됩니다.
./gcluster --version
배포 파일 만들기
Cloud Storage 버킷을 지정하고, 네트워크 및 서브네트워크의 이름을 설정하고, 프로젝트 ID, 리전, 영역과 같은 배포 변수를 설정하는 데 사용할 수 있는 배포 파일을 만듭니다.
배포 파일을 만들려면 필요한 머신 유형과 소비 옵션에 대한 단계를 따르세요.
A4X
배포 파일을 만들려면 텍스트 편집기를 사용하여 a4xhigh-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4x_cluster_size: NUMBER_OF_VMS
a4x_reservation_name: RESERVATION_NAME
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 예약된 머신이 있는 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다. 예약 기반 소비 옵션을 사용하는 경우 용량이 제공될 때 계정 팀에서 리전 및 영역 정보를 제공했습니다.NUMBER_OF_VMS: 클러스터의 A4X VM 수입니다. VM 수를 제한 없이 지정할 수 있습니다. 하지만 A4X VM은 18개 VM (72개 GPU) 그룹의 다중 노드 NVLink 시스템으로 물리적으로 상호 연결되어 NVLink 도메인을 형성합니다.최적의 네트워크 성능을 위해 18개 VM의 배수 (예: 18, 36, 54)인 값을 지정하는 것이 좋습니다. A4X 클러스터를 만들면 A4X 청사진이 각 18개 VM 그룹에 대해 GPU 토폴로지가
1x72인 압축 배치 정책을 자동으로 만들고 적용합니다. A4X 토폴로지에 대한 자세한 내용은 A4X 기본사항을 참고하세요.RESERVATION_NAME: 예약의 이름입니다.
A4
배포 파일에 추가해야 하는 매개변수는 배포에 사용하는 소비 옵션에 따라 달라집니다. 해당 소비 옵션의 프로비저닝 모델에 해당하는 탭을 선택하세요.
예약에 따름
배포 파일을 만들려면 텍스트 편집기를 사용하여 a4high-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_VMS
a4h_reservation_name: RESERVATION_NAME
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 예약된 머신이 있는 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다. 예약 기반 소비 옵션을 사용하는 경우 용량이 제공될 때 계정 팀에서 리전 및 영역 정보를 제공했습니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.RESERVATION_NAME: 예약의 이름입니다.
유연한 시작
배포 파일을 만들려면 텍스트 편집기를 사용하여 a4high-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_VMS
a4h_dws_flex_enabled: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
이 배포는 정적 컴퓨팅 노드를 프로비저닝합니다. 즉, 클러스터에는 항상 정해진 수의 노드가 있습니다. 클러스터에서 자동 확장을 사용 설정하려면 examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml 파일을 사용하고 node_count_static 및 node_count_dynamic_max 값을 다음과 일치하도록 수정합니다.
node_count_static: 0
node_count_dynamic_max: $(vars.a4h_cluster_size)
스팟
배포 파일을 만들려면 텍스트 편집기를 사용하여 a4high-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_VMS
a4h_enable_spot_vm: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
A3 Ultra
배포 파일에 추가해야 하는 매개변수는 배포에 사용하는 소비 옵션에 따라 달라집니다. 해당 소비 옵션의 프로비저닝 모델에 해당하는 탭을 선택하세요.
예약에 따름
배포 파일을 만들려면 텍스트 편집기를 사용하여 a3ultra-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_VMS
a3u_reservation_name: RESERVATION_NAME
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 예약된 머신이 있는 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다. 예약 기반 소비 옵션을 사용하는 경우 용량이 제공될 때 계정 팀에서 리전 및 영역 정보를 제공했습니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.RESERVATION_NAME: 예약의 이름입니다.
유연한 시작
배포 파일을 만들려면 텍스트 편집기를 사용하여 a3ultra-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_VMS
a3u_dws_flex_enabled: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
이 배포는 정적 컴퓨팅 노드를 프로비저닝합니다. 즉, 클러스터에는 항상 정해진 수의 노드가 있습니다. 클러스터에서 자동 확장을 사용 설정하려면 examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml 파일을 사용하고 node_count_static 및 node_count_dynamic_max 값을 다음과 일치하도록 수정합니다.
node_count_static: 0
node_count_dynamic_max: $(vars.a3u_cluster_size)
스팟
배포 파일을 만들려면 텍스트 편집기를 사용하여 a3ultra-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_VMS
a3u_enable_spot_vm: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
A3 Mega
배포 파일에 추가해야 하는 매개변수는 배포에 사용하는 소비 옵션에 따라 달라집니다. 해당 소비 옵션의 프로비저닝 모델에 해당하는 탭을 선택하세요.
예약에 따름
배포 파일을 만들려면 a3mega-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3m_cluster_size: NUMBER_OF_VMS
a3m_reservation_name: RESERVATION_NAME
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 예약된 머신이 있는 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다. 예약 기반 소비 옵션을 사용하는 경우 용량이 제공될 때 계정 팀에서 리전 및 영역 정보를 제공했습니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.RESERVATION_NAME: 예약의 이름입니다.
유연한 시작
배포 파일을 만들려면 a3mega-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3m_cluster_size: NUMBER_OF_VMS
a3m_dws_flex_enabled: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
이 배포는 정적 컴퓨팅 노드를 프로비저닝합니다. 즉, 클러스터에는 항상 정해진 수의 노드가 있습니다. 클러스터에서 자동 확장을 사용 설정하려면 examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml 파일을 사용하고 node_count_static 및 node_count_dynamic_max 값을 다음과 일치하도록 수정합니다.
node_count_static: 0
node_count_dynamic_max: $(vars.a3m_cluster_size)
스팟
배포 파일을 만들려면 a3mega-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3m_cluster_size: NUMBER_OF_VMS
a3m_enable_spot_vm: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
A3 High
배포 파일에 추가해야 하는 매개변수는 배포에 사용하는 소비 옵션에 따라 달라집니다. 해당 소비 옵션의 프로비저닝 모델에 해당하는 탭을 선택하세요.
예약에 따름
배포 파일을 만들려면 a3high-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3h_cluster_size: NUMBER_OF_VMS
a3h_reservation_name: RESERVATION_NAME
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 예약된 머신이 있는 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다. 예약 기반 소비 옵션을 사용하는 경우 용량이 제공될 때 계정 팀에서 리전 및 영역 정보를 제공했습니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.RESERVATION_NAME: 예약의 이름입니다.
유연한 시작
배포 파일을 만들려면 a3high-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3h_cluster_size: NUMBER_OF_VMS
a3h_dws_flex_enabled: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
이 배포는 정적 컴퓨팅 노드를 프로비저닝합니다. 즉, 클러스터에는 항상 정해진 수의 노드가 있습니다. 클러스터에서 자동 확장을 사용 설정하려면 examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml 파일을 사용하고 node_count_static 및 node_count_dynamic_max 값을 다음과 일치하도록 수정합니다.
node_count_static: 0
node_count_dynamic_max: $(vars.a3h_cluster_size)
스팟
배포 파일을 만들려면 a3high-slurm-deployment.yaml이라는 YAML 파일을 만들고 다음 콘텐츠를 추가합니다.
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3h_cluster_size: NUMBER_OF_VMS
a3h_enable_spot_vm: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
Slurm 클러스터 프로비저닝
클러스터 툴킷은 이전 단계에서 만든 배포 파일과 기본 클러스터 청사진을 기반으로 클러스터를 프로비저닝합니다. NVIDIA 드라이버 및 CUDA를 비롯하여 블루프린트로 설치되는 소프트웨어에 관한 자세한 내용은 Slurm 맞춤 이미지에 대해 자세히 알아보세요.
클러스터를 프로비저닝하려면 Cluster Toolkit 디렉터리에서 머신 유형에 맞는 명령어를 실행합니다. 이 단계는 약 20~30분 정도 소요됩니다.
A4X
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --auto-approve
A4
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
A3 Ultra
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --auto-approve
A3 Mega
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --auto-approve
A3 High
./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --auto-approve
Slurm 클러스터에 연결
클러스터에 액세스하려면 Slurm 로그인 노드에 로그인해야 합니다. 로그인하려면 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하면 됩니다.
콘솔
Compute Engine > VM 인스턴스 페이지로 이동합니다.
로그인 노드를 찾습니다. 이름은
DEPLOYMENT_NAME+login-001패턴이어야 합니다.로그인 노드의 연결 열에서 SSH를 클릭합니다.
gcloud
로그인 노드에 연결하려면 다음 단계를 완료하세요.
gcloud compute instances list명령어를 사용하여 로그인 노드를 식별합니다.gcloud compute instances list \ --zones=
ZONE\ --filter="name ~ login" --format "value(name)"출력에 Slurm 클러스터가 여러 개 나열되면 지정한
DEPLOYMENT_NAME로 로그인 노드를 식별할 수 있습니다.gcloud compute ssh명령어를 사용하여 로그인 노드에 연결합니다.gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iap다음을 바꿉니다.
ZONE: 클러스터의 VM이 있는 영역입니다.LOGIN_NODE: 이전 단계에서 식별한 로그인 노드의 이름입니다.
Slurm 클러스터에서 네트워크 성능 테스트
프로비저닝된 클러스터의 기능을 검증하는 것이 좋습니다. 이렇게 하려면 Google 환경에 최적화된 NVIDIA Collective Communications Library (NCCL) 테스트인 NCCL 테스트를 사용하세요.
Slurm 클러스터 재배포
컴퓨팅 노드 수를 늘리거나 클러스터에 새 파티션을 추가해야 하는 경우 재배포하여 Slurm 클러스터의 구성을 업데이트해야 할 수 있습니다. 이전 배포의 기존 이미지를 사용하여 재배포 속도를 높일 수 있습니다. 재배포 중에 새 이미지가 생성되지 않도록 하려면 --only 플래그를 지정하세요.
기존 이미지를 사용하여 클러스터를 재배포하려면 다음을 실행하세요.
필요한 머신 유형에 맞는 명령어를 실행합니다.
A4X
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A4
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 Ultra
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 Mega
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 High
./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
이 명령어는 이미지가 이미 있는 재배포에만 사용되며 클러스터와 인프라만 재배포합니다.
Slurm 클러스터 폐기
기본적으로 A4X, A4, A3 Ultra 청사진은 Filestore 인스턴스에 삭제 보호를 사용 설정합니다. Slurm 클러스터를 폐기할 때 Filestore 인스턴스를 삭제하려면 destroy 명령어를 실행하기 전에 삭제 보호를 사용 중지하세요. 자세한 내용은 기존 인스턴스에서 삭제 보호 설정 또는 삭제를 참고하세요.
아직 연결을 해제하지 않았다면 클러스터에서 연결을 해제합니다.
destroy 명령어를 실행하기 전에 Cluster Toolkit 디렉터리의 루트로 이동합니다. 기본적으로 DEPLOYMENT_FOLDER는 Cluster Toolkit 디렉터리의 루트에 있습니다.
클러스터를 폐기하려면 다음을 실행합니다.
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
다음을 바꿉니다.
DEPLOYMENT_FOLDER: 배포 폴더의 이름입니다. 일반적으로 DEPLOYMENT_NAME과 동일합니다.
폐기가 완료되면 다음과 유사한 메시지가 표시됩니다.
Destroy complete! Resources: xx destroyed.
인프라를 완전히 삭제하는 방법과 고급 수동 배포 방법은 Cluster Toolkit 디렉터리의 루트에 있는 배포 폴더(DEPLOYMENT_FOLDER/instructions.txt)를 참고하세요.
다음 단계
- 예약 사용 확인
- 컴퓨팅 인스턴스의 토폴로지 보기
- 호스트 이벤트를 관리하는 방법 알아보기
- Slurm 클러스터에서 VM 모니터링
- NCCL/gIB로 테스트 및 최적화
- 오작동하는 호스트 신고