Como executar o seu primeiro trabalho no AWS ParallelCluster - AWS ParallelCluster

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como executar o seu primeiro trabalho no AWS ParallelCluster

Este tutorial orienta você durante a execução de sua primeira tarefa Hello World no AWS ParallelCluster.

Ao usar a interface de linha de comandos (CLI) ou a API do AWS ParallelCluster, você paga apenas pelos recursos do AWS criados ao criar ou atualizar imagens e clusters do AWS ParallelCluster. Para ter mais informações, consulte Serviços da AWS usados pelo AWS ParallelCluster.

A PCUI é construída em uma arquitetura de tecnologia sem servidor, e você pode usá-la na categoria de nível gratuito da AWS na maioria dos casos. Para ter mais informações, consulte Custos da PCUI.

Pré-requisitos

Verificar a instalação

Primeiro, verificamos se o AWS ParallelCluster está instalado e configurado corretamente, incluindo a dependência Node.js.

$ node --version v16.8.0 $ pcluster version { "version": "3.7.0" }

Isso retorna a versão do AWS ParallelCluster em execução.

Criação de seu primeiro cluster

Agora é hora de criar seu primeiro cluster. Como a workload desse tutorial não é de desempenho intensivo, podemos usar o tamanho de instância padrão de t2.micro. (Para workloads de produção, escolha um tamanho de instância que melhor atenda às suas necessidades.) Vamos chamar o cluster de hello-world.

$ pcluster create-cluster \ --cluster-name hello-world \ --cluster-configuration hello-world.yaml
nota

O Região da AWS a ser usado deve ser especificado para a maioria dos comandos pcluster. Se não estiver especificado na variável de ambiente AWS_DEFAULT_REGION ou na configuração region na seção [default] do arquivo ~/.aws/config o parâmetro --region deverá ser fornecido na linha de comando pcluster.

Se a saída fornecer uma mensagem sobre configuração, será necessário executar o seguinte para configurar o AWS ParallelCluster:

$ pcluster configure --config hello-world.yaml

Se o comando pcluster create-cluster for bem-sucedido, você verá um resultado semelhante a este:

{ "cluster": { "clusterName": "hello-world", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:xxx:stack/xxx", "region": "...", "version": "...", "clusterStatus": "CREATE_IN_PROGRESS" } }

Você monitora a criação do cluster usando:

$ pcluster describe-cluster --cluster-name hello-world

Os relatórios clusterStatus "CREATE_IN_PROGRESS" enquanto o cluster está sendo criado. A clusterStatus muda para "CREATE_COMPLETE" quando o cluster é criado com sucesso. O resultado também nos fornece publicIpAddress e privateIpAddress do nosso nó de cabeçalho.

Fazer login em seu nó principal

Use o arquivo pem OpenSSH para fazer login no nó principal.

$ pcluster ssh --cluster-name hello-world -i /path/to/keyfile.pem

Depois de fazer login, execute o comando sinfo para verificar se os nós de computação estão definidos e configurados.

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 10 idle~ queue1-dy-queue1t2micro-[1-10]

A saída mostra que temos uma fila em nosso cluster, com até dez nós.

Executar o primeiro trabalho usando o Slurm

Depois, criamos uma tarefa que permanece em espera por um tempo e então emite seu próprio nome de host como saída. Crie um arquivo chamado hellojob.sh com o seguinte conteúdo:

#!/bin/bash sleep 30 echo "Hello World from $(hostname)"

Depois, envie a tarefa usando sbatch e verifique se ela é executada.

$ sbatch hellojob.sh Submitted batch job 2

Agora, você pode visualizar a fila e verificar o status do trabalho. O provisionamento de uma nova instância do Amazon EC2 é iniciada em segundo plano. Você pode monitorar o status das instâncias do cluster com o comando sinfo.

$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 2 queue1 hellojob ec2-user CF 3:30 1 queue1-dy-queue1t2micro-1

A saída mostra que o trabalho foi enviado a queue1. Aguarde 30 segundos para que a tarefa seja concluída e execute squeue novamente.

$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)

Agora que não há trabalhos na fila, podemos verificar a saída em nosso diretório atual.

$ ls -l total 8 -rw-rw-r-- 1 ec2-user ec2-user 57 Sep 1 14:25 hellojob.sh -rw-rw-r-- 1 ec2-user ec2-user 43 Sep 1 14:30 slurm-2.out

Na saída, vemos um arquivo out "”. Podemos ver a saída do nosso trabalho:

$ cat slurm-2.out Hello World from queue1-dy-queue1t2micro-1

A saída também mostra que a tarefa foi executada com êxito na instância queue1-dy-queue1t2micro-1.

No cluster que você acabou de criar, somente o diretório inicial é compartilhado entre todos os nós do cluster.

Para saber mais sobre como criar e usar clusters, consulte Práticas recomendadas.

Se seu aplicativo exigir software, bibliotecas ou dados compartilhados, considere as seguintes opções: