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
-
AWS ParallelCluster está instalado.
-
O AWS CLI está instalado e configurado.
-
Você tem um par de chaves do Amazon EC2.
-
Você tem um perfil do IAM com as permissões necessárias para executar a CLI pcluster.
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:
-
Crie uma AMI personalizada habilitada AWS ParallelCluster que inclua seu software conforme descrito em Criar uma AMI personalizada do AWS ParallelCluster.
-
Use a opção StorageSettings no arquivo de configuração AWS ParallelCluster para especificar um sistema de arquivos compartilhado e armazenar o software instalado no local de montagem especificado.
-
Use Ações de bootstrap personalizadas para automatizar o procedimento de bootstrap de cada nó do seu cluster.