이 페이지에서는 향상된 클러스터 관리 기능이 있는 H4D VM으로 원격 직접 메모리 액세스 (RDMA)를 사용하는 고성능 컴퓨팅 (HPC) Slurm 클러스터를 만드는 방법을 설명합니다. gcloud CLI 및 Cluster Toolkit을 사용하여 클러스터를 구성합니다.
H4D 머신 시리즈는 까다로운 HPC 워크로드의 요구사항을 충족하도록 특별히 설계되었습니다. H4D는 200Gbps 처리량의 Cloud RDMA 네트워킹을 통해 워크로드 확장성이 개선된 인스턴스를 제공합니다. Google Cloud의 H4D 컴퓨팅 최적화 머신 유형에 대한 자세한 내용은 H4D 머신 시리즈를 참조하세요.
시작하기 전에
Slurm 클러스터를 만들기 전에 아직 완료하지 않았다면 다음 단계를 완료하세요.
- 소비 옵션 선택: 선택한 옵션에 따라 vCPU 리소스를 획득하고 사용하는 방식이 결정됩니다.
- 용량 확보: 선택한 소비 옵션의 용량을 확보합니다.
- Filestore 할당량이 충분한지 확인: 최소 10,240GiB의 영역 (대규모 SSD라고도 함) 용량이 필요합니다.
- 할당량을 확인하려면 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.
스토리지 버킷 설정
클러스터 청사진은 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 디렉터리 열기
다음 명령어를 실행하여 클러스터 툴킷 디렉터리에 있는지 확인합니다.
cd cluster-toolkit
이 클러스터 배포에는 클러스터 툴킷 v1.70.0 이상이 필요합니다. 버전을 확인하려면 다음 명령어를 실행하면 됩니다.
./gcluster --version
배포 파일 만들기
배포 파일을 만들어 Cloud Storage 버킷을 지정하고, 네트워크 및 서브네트워크의 이름을 설정하고, 프로젝트 ID, 리전, 영역과 같은 배포 변수를 설정합니다.
배포 파일을 만들려면 H4D 머신 유형의 단계를 따르세요.
배포 파일에 추가해야 하는 매개변수는 배포에 사용하는 소비 옵션에 따라 달라집니다. 사용할 소비 옵션에 해당하는 탭을 선택합니다.
예약에 따름
배포 파일을 만들려면 텍스트 편집기를 사용하여 h4d-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
h4d_cluster_size: NUMBER_OF_VMS
h4d_reservation_name: RESERVATION_NAME
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 예약된 머신이 있는 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다. 예약 기반 소비 옵션을 사용하는 경우 용량이 제공될 때 계정팀에서 리전 및 영역 정보를 제공했습니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.RESERVATION_NAME: 예약의 이름입니다.
유연한 시작
배포 파일을 만들려면 텍스트 편집기를 사용하여 h4d-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
h4d_cluster_size: NUMBER_OF_VMS
h4d_dws_flex_enabled: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
이 배포는 정적 컴퓨팅 노드를 프로비저닝합니다. 즉, 클러스터에는 항상 정해진 수의 노드가 있습니다. 클러스터에서 자동 확장을 사용 설정하려면 examples/h4d/hpc-slurm-h4d.yaml 파일을 사용하고 node_count_static 및 node_count_dynamic_max 값을 다음과 일치하도록 수정합니다.
node_count_static: 0
node_count_dynamic_max: $(vars.h4d_cluster_size)
스팟
배포 파일을 만들려면 텍스트 편집기를 사용하여 h4d-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
h4d_cluster_size: NUMBER_OF_VMS
h4d_enable_spot_vm: true
다음을 바꿉니다.
BUCKET_NAME: 이전 섹션에서 만든 Cloud Storage 버킷의 이름입니다.DEPLOYMENT_NAME: 배포 이름입니다. 클러스터를 여러 개 만드는 경우 각 클러스터에 고유한 이름을 선택해야 합니다.PROJECT_ID: 프로젝트 ID입니다.REGION: 클러스터를 프로비저닝할 리전입니다.ZONE: 클러스터를 프로비저닝할 영역입니다.NUMBER_OF_VMS: 클러스터에 사용할 VM 수입니다.
H4D Slurm 클러스터 프로비저닝
클러스터 툴킷은 이전 단계에서 만든 배포 파일과 기본 클러스터 청사진을 기반으로 클러스터를 프로비저닝합니다. 청사진으로 설치되는 소프트웨어에 대한 자세한 내용은 Slurm 맞춤 이미지 자세히 알아보기를 참고하세요.
Cloud Shell을 사용하여 Cluster Toolkit을 설치하고 배포 파일을 만든 디렉터리에서 H4D Slurm 청사진 파일을 사용하는 다음 명령어로 클러스터를 프로비저닝할 수 있습니다. 이 단계는 약 20~30분 정도 소요됩니다.
./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.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 클러스터 재배포
컴퓨팅 노드 수를 늘리거나 클러스터에 새 파티션을 추가해야 하는 경우 재배포하여 Slurm 클러스터의 구성을 업데이트해야 할 수 있습니다.
기존 이미지를 사용하여 클러스터를 재배포하려면 다음을 실행하세요.
다음 명령어를 실행합니다.
./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
이 명령어는 이미 이미지가 있는 재배포에만 사용됩니다. 클러스터와 인프라만 재배포합니다.
Slurm 클러스터 폐기
Slurm 클러스터와 그 안의 인스턴스를 삭제하려면 다음 단계를 완료하세요.
아직 연결을 해제하지 않았다면 클러스터에서 연결을 해제합니다.
destroy 명령어를 실행하기 전에 Cluster Toolkit 디렉터리의 루트로 이동합니다. 기본적으로 DEPLOYMENT_FOLDER는 Cluster Toolkit 디렉터리의 루트에 있습니다.
클러스터를 폐기하려면 다음을 실행합니다.
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
다음을 바꿉니다.
DEPLOYMENT_FOLDER: 배포 폴더의 이름입니다. 일반적으로 DEPLOYMENT_NAME과 동일합니다.
클러스터 삭제가 완료되면 다음과 유사한 메시지가 표시됩니다.
Destroy complete! Resources: xx destroyed.
인프라를 완전히 삭제하는 방법과 고급 수동 배포 안내는 클러스터 툴킷 디렉터리의 루트에 있는 배포 폴더(DEPLOYMENT_FOLDER/instructions.txt)를 참고하세요.