Esta página descreve como criar um cluster de computação de alto desempenho (HPC) Slurm que usa o acesso direto à memória (RDMA) remoto com VMs H4D com capacidades de gestão de clusters melhoradas. Usa a CLI gcloud e o Cluster Toolkit para configurar o cluster.
A série de máquinas H4D foi concebida especificamente para satisfazer as necessidades de cargas de trabalho de HPC exigentes. O H4D oferece instâncias com escalabilidade da carga de trabalho melhorada através da rede RDMA na nuvem com débito de 200 Gbps. Para mais informações sobre os tipos de máquinas otimizadas para computação H4D no Google Cloud, consulte o artigo Série de máquinas H4D.
Antes de começar
Antes de criar um cluster Slurm, se ainda não o tiver feito, conclua os seguintes passos:
- Escolha uma opção de consumo: a opção que escolher determina como quer obter e usar os recursos de vCPU.
- Obter capacidade: obtenha capacidade para a opção de consumo selecionada.
- Certifique-se de que tem quota suficiente do Filestore: precisa de um mínimo de
10 240 GiB de capacidade zonal (também conhecida como SSD de alta escala).
- Para verificar a quota, consulte o artigo Veja a quota específica da API.
- Se não tiver quota suficiente, peça um aumento da quota.
- Instale o Cluster Toolkit: para aprovisionar clusters do Slurm, tem de usar a versão Cluster Toolkit
v1.62.0ou posterior.Para instalar o Cluster Toolkit, consulte o artigo Configure o Cluster Toolkit.
Para saber mais, consulte o artigo Escolha uma opção de consumo e obtenha capacidade.
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.
Configure um contentor de armazenamento
Os esquemas de clusters usam módulos do Terraform para aprovisionar a infraestrutura na nuvem. Uma prática recomendada quando trabalha com o Terraform é armazenar o estado remotamente num ficheiro com controlo de versões ativado. No Google Cloud, pode criar um contentor do Cloud Storage com o controlo de versões ativado.
Para criar este contentor e ativar o controlo de versões a partir da CLI, execute os seguintes comandos:
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
Substitua o seguinte:
BUCKET_NAME: um nome para o seu contentor do Cloud Storage que cumpra os requisitos de nomenclatura de contentores.PROJECT_ID: o ID do projeto.BUCKET_REGION: qualquer localização disponível.
Abra o diretório do Cluster Toolkit
Certifique-se de que está no diretório Cluster Toolkit executando o seguinte comando:
cd cluster-toolkit
Esta implementação de cluster requer o Cluster Toolkit v1.70.0 ou posterior. Para verificar a sua versão, pode executar o seguinte comando:
./gcluster --version
Crie um ficheiro de implementação
Crie um ficheiro de implementação para especificar o contentor do Cloud Storage, defina nomes para a sua rede e sub-rede, e defina variáveis de implementação, como o ID do projeto, a região e a zona.
Para criar um ficheiro de implementação, siga os passos para o tipo de máquina H4D:
Os parâmetros que tem de adicionar ao ficheiro de implementação dependem da opção de consumo que está a usar para a implementação. Selecione o separador que corresponde à opção de consumo que quer usar.
Associado a reserva
Para criar o ficheiro de implementação, use um editor de texto para criar um ficheiro YAML com o nome
h4d-slurm-deployment.yaml e adicione o seguinte conteúdo.
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
Substitua o seguinte:
BUCKET_NAME: o nome do seu contentor do Cloud Storage, que criou na secção anterior.DEPLOYMENT_NAME: um nome para a sua implementação. Se criar vários clusters, certifique-se de que seleciona um nome único para cada um.PROJECT_ID: o ID do projeto.REGION: a região que tem as máquinas reservadas.ZONE: a zona onde quer aprovisionar o cluster. Se estiver a usar uma opção de consumo baseada em reservas, as informações de região e zona foram fornecidas pela sua equipa de conta quando a capacidade foi disponibilizada.NUMBER_OF_VMS: o número de VMs que quer para o cluster.RESERVATION_NAME: o nome da sua reserva.
Flex-start
Para criar o ficheiro de implementação, use um editor de texto para criar um ficheiro YAML com o nome
h4d-slurm-deployment.yaml e adicione o seguinte conteúdo.
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
Substitua o seguinte:
BUCKET_NAME: o nome do seu contentor do Cloud Storage, que criou na secção anterior.DEPLOYMENT_NAME: um nome para a sua implementação. Se criar vários clusters, certifique-se de que seleciona um nome único para cada um.PROJECT_ID: o ID do projeto.REGION: a região onde quer aprovisionar o cluster.ZONE: a zona onde quer aprovisionar o cluster.NUMBER_OF_VMS: o número de VMs que quer para o cluster.
Esta implementação aprovisiona nós de computação estáticos, o que significa que o cluster tem um número definido de nós em todos os momentos. Se quiser ativar o ajuste de escala automático do cluster, use o ficheiro examples/h4d/hpc-slurm-h4d.yaml e edite os valores de node_count_static e node_count_dynamic_max para corresponderem ao seguinte:
node_count_static: 0
node_count_dynamic_max: $(vars.h4d_cluster_size)
Espaço
Para criar o ficheiro de implementação, use um editor de texto para criar um ficheiro YAML com o nome
h4d-slurm-deployment.yaml e adicione o seguinte conteúdo.
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
Substitua o seguinte:
BUCKET_NAME: o nome do seu contentor do Cloud Storage, que criou na secção anterior.DEPLOYMENT_NAME: um nome para a sua implementação. Se criar vários clusters, certifique-se de que seleciona um nome único para cada um.PROJECT_ID: o ID do projeto.REGION: a região onde quer aprovisionar o cluster.ZONE: a zona onde quer aprovisionar o cluster.NUMBER_OF_VMS: o número de VMs que quer para o cluster.
Aprovisione um cluster Slurm H4D
O Cluster Toolkit aprovisiona o cluster com base no ficheiro de implementação que criou no passo anterior e no projeto do cluster predefinido. Para mais informações sobre o software instalado pelo projeto, consulte saiba mais sobre as imagens personalizadas do Slurm.
Usando o Cloud Shell, a partir do diretório onde instalou o Cluster Toolkit e criou o ficheiro de implementação, pode aprovisionar o cluster com o seguinte comando, que usa o ficheiro de esquema do H4D Slurm. Este passo demora aproximadamente 20 a 30 minutos.
./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve
Estabeleça ligação ao cluster Slurm
Para aceder ao cluster, tem de iniciar sessão no nó de início de sessão do Slurm. Para iniciar sessão, pode usar a Google Cloud consola ou a CLI do Google Cloud.
Consola
Aceda à página Compute Engine > Instâncias de VM.
Localize o nó de início de sessão. Deve ter um nome com o padrão
DEPLOYMENT_NAME+login-001.Na coluna Ligar do nó de início de sessão, clique em SSH.
gcloud
Para estabelecer ligação ao nó de início de sessão, conclua os seguintes passos:
Identifique o nó de início de sessão através do comando
gcloud compute instances list.gcloud compute instances list \ --zones=
ZONE\ --filter="name ~ login" --format "value(name)"Se o resultado apresentar vários clusters do Slurm, pode identificar o seu nó de início de sessão pelo
DEPLOYMENT_NAMEque especificou.Use o comando
gcloud compute sshpara estabelecer ligação ao nó de início de sessão.gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iapSubstitua o seguinte:
ZONE: a zona onde as VMs do cluster estão localizadas.LOGIN_NODE: o nome do nó de início de sessão, que identificou no passo anterior.
Volte a implementar o cluster Slurm
Se precisar de aumentar o número de nós de computação ou adicionar novas partições ao cluster, pode ter de atualizar as configurações do cluster Slurm reimplantando-o.
Para voltar a implementar o cluster com uma imagem existente, faça o seguinte:
Execute o seguinte comando:
./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
Este comando destina-se apenas a novas implementações em que já existe uma imagem. Só implementa novamente o cluster e a respetiva infraestrutura.
Destrua o cluster Slurm
Para remover o cluster Slurm e as instâncias no mesmo, conclua os seguintes passos:
Desligue-se do cluster, se ainda não o tiver feito.
Antes de executar o comando destroy, navegue para a raiz do diretório Cluster Toolkit. Por predefinição, DEPLOYMENT_FOLDER está localizado na raiz do diretório Cluster Toolkit.
Para destruir o cluster, execute o seguinte comando:
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
Substitua o seguinte:
DEPLOYMENT_FOLDER: o nome da pasta de implementação. Normalmente, é igual a DEPLOYMENT_NAME.
Quando a remoção do cluster estiver concluída, deve ver uma mensagem semelhante à seguinte:
Destroy complete! Resources: xx destroyed.
Para saber como destruir a infraestrutura de forma limpa e ver instruções de implementação manual avançadas, consulte a pasta de implementação localizada na raiz do diretório do Cluster Toolkit: DEPLOYMENT_FOLDER/instructions.txt
O que se segue?
- Valide o consumo de reservas
- Veja a topologia das VMs
- Faça a gestão de eventos de anfitrião em várias VMs
- Faça a gestão de eventos de anfitriões em várias reservas
- Monitorize VMs no seu cluster Slurm
- Denuncie um anfitrião com problemas