Executando seu primeiro trabalho em 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á.

Executando seu primeiro trabalho em AWS ParallelCluster

Este tutorial explica como executar seu primeiro trabalho do Hello World no AWS ParallelCluster

Ao usar a interface de linha de AWS ParallelCluster comando (CLI) ouAPI, você paga apenas pelos AWS recursos criados ao criar ou atualizar AWS ParallelCluster imagens e clusters. Para obter mais informações, consulte AWS serviços usados por AWS ParallelCluster.

A AWS ParallelCluster interface do usuário é construída em uma arquitetura sem servidor e você pode usá-la na categoria AWS Free Tier na maioria dos casos. Para obter mais informações, consulte AWS ParallelCluster Custos de UI.

Pré-requisitos

Verificar a instalação

Primeiro, verificamos se AWS ParallelCluster está correto, incluindo a dependência do Node.js, instalada e configurada.

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

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

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 pcluster comandos. 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 seu arquivo Open SSH pem para fazer login em seu 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 EC2 instância da Amazon é iniciado 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: