A4 머신 유형으로 AI에 최적화된 Slurm 클러스터 만들기
이 페이지에서는 gcloud CLI 및 Cluster Toolkit과 함께 가속기 최적화 A4 머신 유형을 사용하여 AI 최적화 Slurm 클러스터를 빠르게 만들고 배포하는 방법을 설명합니다.
A4 가속기 최적화 머신 유형에는 NVIDIA B200 GPU가 연결되어 있으며, Slurm 클러스터가 대규모 모델 학습과 추론을 효율적으로 처리할 수 있도록 집약적인 AI 컴퓨팅을 위해 특별히 설계되었습니다. Google Cloud의 A4 가속기 최적화 머신 유형에 관한 자세한 내용은 GPU 머신 유형을 참고하세요.
또는 Cluster Director를 사용하여 A4 기반 Slurm 클러스터를 만들 수 있습니다. Cluster Director는 클러스터 배포를 간소화하고 자동화하여 운영 오버헤드를 줄이는 관리형 서비스입니다. 자세한 내용은 템플릿을 기반으로 AI에 최적화된 클러스터 만들기를 참고하세요.
Google Cloud 콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.
튜토리얼 개요
이 튜토리얼에서는 A4 가속기 최적화 머신 유형을 사용하여 AI 최적화 Slurm 클러스터를 설정하는 단계를 설명합니다. 구체적으로는 Compute Engine 가상 머신으로 클러스터를 설정하고, 필요한 Terraform 모듈을 저장할 Cloud Storage 버킷을 만들고, Slurm 클러스터를 프로비저닝할 Filestore 인스턴스를 설정합니다. 이 튜토리얼의 단계를 완료하려면 다음 프로세스를 따르세요.
- 필요한 권한과 환경 변수를 사용하여 Google Cloud 프로젝트를 설정합니다.
- Cloud Storage 버킷을 설정합니다.
- Cluster Toolkit을 설정합니다.
- Cluster Toolkit 디렉터리로 전환합니다.
- Slurm 배포 YAML 파일을 만듭니다.
- 청사진을 사용하여 Slurm 클러스터를 프로비저닝합니다.
- Slurm 클러스터에 연결합니다.
시작하기 전에
a4-highgpu-8g머신 1대의 용량 블록을 예약합니다. 이 머신은 이 튜토리얼에 필요합니다.Slurm 클러스터를 프로비저닝하기에 충분한 Filestore 할당량이 있는지 확인합니다. 최소 10,240GiB의 스토리지 영역 용량(대규모 SSD 용량이라고도 함)이 필요합니다.
Filestore 할당량을 확인하려면 Google Cloud 콘솔에서 할당량 및 시스템 한도를 확인하고 테이블을 필터링하여 Filestore 리소스만 표시합니다.
- Filestore 할당량을 확인하는 방법에 관한 자세한 내용은 API별 할당량 보기를 참고하세요.
- 할당량이 충분하지 않으면 할당량 증가를 요청하세요.
Compute Engine, Filestore, Cloud Storage, 서비스 사용량, Cloud Resource Manager API를 사용 설정합니다.
필요한 역할
Compute Engine 기본 서비스 계정에 Slurm 클러스터를 배포하는 데 필요한 권한이 있는지 확인하려면 관리자에게 Compute Engine 기본 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 스토리지 객체 뷰어 (
roles/storage.objectViewer) -
프로젝트에 대한 Compute 인스턴스 관리자 (v1) (
roles/compute.instanceAdmin.v1) -
서비스 계정 자체에 대한 서비스 계정 사용자 (
roles/iam.serviceAccountUser)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 Compute Engine 기본 서비스 계정에 필요한 권한을 부여할 수도 있습니다.
비용
이 튜토리얼을 실행하는 비용은 튜토리얼 설정 또는 작업 실행과 같이 완료하는 각 섹션에 따라 다릅니다. 가격 계산기를 사용하여 비용을 계산할 수 있습니다.
이 튜토리얼 설정 비용을 추정하려면 다음 사양을 사용하세요.
- 리전당 Filestore (표준) 용량: 10,240GiB
- 표준 영구 디스크: Slurm 로그인 노드용 50GB
pd-standard - 성능(SSD) 영구 디스크: Slurm 컨트롤러용 50GB
pd-ssd - VM 인스턴스: 1
a4-highgpu-8g
Cloud Shell 실행
이 튜토리얼에서는 Google Cloud에서 호스팅되는 리소스를 관리하기 위한 셸 환경인 Cloud Shell을 사용합니다.
Cloud Shell에는 Google Cloud CLI가 사전 설치되어 있습니다. gcloud CLI는 Google Cloud의 기본 명령줄 인터페이스를 제공합니다. Cloud Shell 시작:
Google Cloud 콘솔로 이동합니다.
콘솔의 오른쪽 상단에서 Cloud Shell 활성화 버튼(
)을 클릭합니다.
Cloud Shell 세션이 시작되면 명령줄 프롬프트가 표시됩니다.
이 셸을 사용하여 gcloud 및 Cluster Toolkit 명령어를 실행합니다.
환경 변수 설정하기
Cloud Shell에서 튜토리얼의 나머지 부분에 사용할 다음 환경 변수를 설정합니다. 이러한 환경 변수는 다음 작업의 자리표시자 값을 설정합니다.
예약된
a4-highgpu-8g머신에 액세스하는 데 필요한 관련 값으로 프로젝트를 구성합니다.Cluster Toolkit 모듈을 저장할 Cloud Storage 버킷을 설정합니다.
예약 용량 변수
export A4_RESERVATION_PROJECT_ID=A4_RESERVATION_PROJECT_ID export A4_RESERVATION_NAME=A4_RESERVATION_NAME export A4_DEPLOYMENT_NAME=A4_DEPLOYMENT_NAME export A4_REGION=A4_REGION export A4_ZONE=A4_ZONE export A4_DEPLOYMENT_FILE_NAME=A4_DEPLOYMENT_FILE_NAME
다음을 바꿉니다.
A4_RESERVATION_PROJECT_ID: A4 머신 유형 예약 블록이 부여된 Google Cloud프로젝트 ID입니다.A4_RESERVATION_NAME: 프로젝트에서 사용되는 GPU 예약의 이름입니다. 예를 들면a4high-exr입니다.A4_DEPLOYMENT_NAME: Slurm 클러스터 배포의 고유한 이름입니다. 예를 들면my-slurm-cluster-deployment입니다.A4_REGION: 예약된 A4 머신 예약 블록을 실행하는 리전입니다. 예를 들면us-central1입니다.A4_ZONE: 예약된 머신을 포함하는 영역입니다. 이 문자열에는 리전과 영역이 모두 포함되어야 합니다. 예를 들면us-central1-a입니다.A4_DEPLOYMENT_FILE_NAME: Slurm 청사진 YAML 파일의 고유한 이름입니다. 이 튜토리얼을 두 번 이상 실행하는 경우 매번 고유한 배포 이름을 선택하세요.
스토리지 용량 변수
Cloud Storage 버킷의 환경 변수를 만듭니다.
Cluster Toolkit은 청사진을 사용하여 VM 클러스터를 정의하고 배포합니다. 청사진은 Cloud 인프라를 프로비저닝하는 하나 이상의 Terraform 모듈을 정의합니다. 이 버킷은 이러한 청사진을 저장하는 데 사용됩니다.
export GOOGLE_CLOUD_BUCKET_NAME=GOOGLE_CLOUD_BUCKET_NAME export GOOGLE_CLOUD_BUCKET_LOCATION=GOOGLE_CLOUD_BUCKET_LOCATION
다음을 바꿉니다.
GOOGLE_CLOUD_BUCKET_NAME: 버킷 이름 지정 요구사항을 충족하는 Cloud Storage 버킷에 사용할 이름입니다.GOOGLE_CLOUD_BUCKET_LOCATION: 버킷이 호스팅될 원하는 Google Cloud 리전입니다. 예를 들면us-central1입니다.
A4 승인 프로젝트로 전환
다음 명령어를 실행하여 A4 머신 유형에 대해 승인된 예약 블록이 있는 Google Cloud프로젝트에 있는지 확인합니다.
gcloud config set project ${A4_RESERVATION_PROJECT_ID}Cloud Storage 버킷 만들기
Terraform 모듈을 저장할 버킷을 만듭니다. Cloud Shell에서 환경 변수를 사용하여 다음 명령어를 실행합니다.
Terraform을 사용할 때는 버전이 사용 설정된 파일에 상태를 원격으로 저장하는 것이 좋습니다. Google Cloud에서 버전 관리가 사용 설정된 Cloud Storage 버킷을 만들 수 있습니다.
gcloud storage buckets create gs://${GOOGLE_CLOUD_BUCKET_NAME} \
--project=${A4_RESERVATION_PROJECT_ID} \
--default-storage-class=STANDARD \
--location=${GOOGLE_CLOUD_BUCKET_LOCATION} \
--uniform-bucket-level-access
gcloud storage buckets update gs://${GOOGLE_CLOUD_BUCKET_NAME} --versioning
Cluster Toolkit 설정
Google Cloud 프로젝트에서 Slurm 클러스터를 만들려면 Cluster Toolkit을 사용하여 클러스터 배포 및 프로비저닝을 처리하면 됩니다. Cluster Toolkit은 Google Cloud에 워크로드를 배포하는 프로세스를 간소화하기 위해 Google Cloud에서 제공하는 오픈소스 소프트웨어입니다.
다음 단계에 따라 Cluster Toolkit을 설정합니다.
Cluster Toolkit GitHub 저장소 클론
Cloud Shell에서 GitHub 저장소를 클론합니다.
git clone https://github.com/GoogleCloudPlatform/cluster-toolkit.git
기본 작업 디렉터리로 이동합니다.
cd cluster-toolkit/
Cluster Toolkit 바이너리 빌드
Cloud Shell에서 다음 명령어를 실행하여 소스에서 Cluster Toolkit 바이너리를 빌드합니다.
make
다음 명령어를 실행하여 빌드를 확인합니다.
A4 고급 가속기 최적화 머신 Slurm 클러스터를 배포하려면 Cluster Toolkit 버전
v1.51.1이상을 사용해야 합니다../gcluster --version
바이너리를 빌드한 후에는 클러스터를 배포하여 작업 또는 워크로드를 실행할 수 있습니다.
배포 파일 만들기
Cluster Toolkit 디렉터리에서 Slurm 배포 YAML 파일을 만듭니다.
nano ${A4_DEPLOYMENT_FILE_NAME}.yaml다음 콘텐츠를 YAML 파일에 붙여넣습니다.
--- terraform_backend_defaults: type: gcs configuration: bucket: GOOGLE_CLOUD_BUCKET_NAME vars: deployment_name: A4_DEPLOYMENT_FILE_NAME project_id: A4_RESERVATION_PROJECT_ID region: A4_REGION zone: A4_ZONE a4h_reservation_name: A4_RESERVATION_NAME a4h_cluster_size: 1파일을 저장하고 종료하려면 Ctrl+O > Enter > Ctrl+X를 누릅니다.
Slurm 클러스터 프로비저닝
Slurm 클러스터를 프로비저닝하려면 다음 배포 명령어를 실행합니다. 이 명령어는 examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml 청사진 파일을 사용하여 Slurm 클러스터를 프로비저닝합니다.
Cloud Shell에서 클러스터 만들기를 시작합니다.
./gcluster deploy -d ${A4_DEPLOYMENT_FILE_NAME}.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
클러스터에 연결
배포 후 Google Cloud 콘솔에 연결하여 클러스터를 확인합니다.
Google Cloud 콘솔에서 Compute Engine > VM 인스턴스 페이지로 이동합니다.
a4high-login-001과 유사한 로그인 노드를 찾습니다.SSH를 클릭하여 연결합니다.
삭제
이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.
Slurm 클러스터 폐기
더 이상 필요하지 않은 리소스는 정리하는 것이 좋습니다.
기본적으로 A4 High 청사진은 Filestore 인스턴스에 삭제 보호를 사용 설정합니다. Slurm 클러스터를 폐기할 때는 destroy 명령어를 실행하기 전에 삭제 보호를 사용 중지해야 합니다.
삭제 보호 사용 중지
인스턴스를 업데이트할 때 삭제 보호를 중지하려면 다음과 유사한 명령어를 사용합니다.
gcloud filestore instances update INSTANCE_NAME \
--no-deletion-protection
INSTANCE_NAME을 수정하려는 인스턴스의 이름으로 바꿉니다. 예를 들면 my-genomics-instance입니다.
INSTANCE_NAME을 찾으려면 gcloud filestore instances
list를 실행하면 됩니다. 이 명령어는 현재 Google Cloud 프로젝트의 모든 Filestore 인스턴스(이름, 위치(영역), 등급, 용량, 상태 포함)를 나열합니다.
명령어를 실행한 후 이 튜토리얼에서 실행 중인 a4-highgpu-8g 머신과 일치하는 Filestore 인스턴스를 찾습니다.
Slurm 클러스터 폐기
destroy 명령어를 실행하기 전에 Cluster Toolkit 디렉터리의 루트로 이동합니다. 기본적으로
DEPLOYMENT_FOLDER는 Cluster Toolkit 디렉터리의 루트에 있습니다.클러스터를 폐기하려면 다음을 실행합니다.
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
DEPLOYMENT_FOLDER을 배포 폴더 이름으로 바꿉니다. 일반적으로DEPLOYMENT_NAME과 동일합니다.
폐기가 완료되면 다음과 유사한 메시지가 표시됩니다.
Destroy complete! Resources: xx destroyed.
스토리지 버킷 삭제
이전 명령어가 오류 없이 종료되었는지 확인한 후 Cloud Storage 버킷을 삭제합니다.
gcloud storage buckets delete gs://${GOOGLE_CLOUD_BUCKET_NAME}
문제 해결
오류: 스토리지가 남아 있지 않아 Cloud Shell에서 클러스터를 프로비저닝할 수 없습니다.
Cloud Shell을 자주 사용하는 사용자이고 스토리지 공간이 부족한 경우 이 오류가 표시될 수 있습니다.
이 문제를 해결하려면 Cloud Shell 사용 중지 또는 재설정을 참고하세요.
오류: 클러스터 또는 청사진 이름이 이미 있습니다.
이 튜토리얼에서 이미 사용된 파일 이름과 정확히 같은 이름을 사용한 프로젝트를 사용하는 경우 이 오류가 표시될 수 있습니다. 예를 들어 조직의 다른 사용자가 이 튜토리얼을 처음부터 끝까지 진행한 경우입니다.
이 문제를 해결하려면 튜토리얼을 다시 실행하고 배포 파일의 고유한 이름을 선택한 다음 새 배포 파일로 Slurm 클러스터 프로비저닝 명령어를 다시 실행합니다.
다음 단계
- 고급 Slurm 태스크:
- Slurm 클러스터를 재배포하는 방법 알아보기
- Slurm 클러스터에서 네트워크 성능을 테스트하는 방법 알아보기
- 호스트 이벤트를 관리하는 방법 알아보기
- 컴퓨팅 인스턴스의 토폴로지 보기
- Slurm 클러스터에서 컴퓨팅 인스턴스 모니터링
- 오작동하는 호스트 신고