Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejecución del primer trabajo en AWS ParallelCluster
Este tutorial le guía por la ejecución de su primer trabajo Hello World en AWS ParallelCluster
Al utilizar la interfaz de la línea de comandos (CLI) o API de AWS ParallelCluster, solo paga por los recursos de AWS que se crean al crear o actualizar imágenes y clústeres de AWS ParallelCluster. Para obtener más información, consulte Servicios de AWS utilizados por AWS ParallelCluster.
La PCUI se basa en una arquitectura sin servidor y, en la mayoría de los casos, se puede utilizar en la categoría de nivel gratuito de AWS. Para obtener más información, consulte Costos de la PCUI.
Requisitos previos
-
AWS ParallelCluster está instalado.
-
AWS CLI está instalado y configurado.
-
Tiene un par de claves de Amazon EC2.
-
Tiene un rol de IAM con los permisos necesarios para ejecutar el CLI pcluster.
Comprobación de la instalación
En primer lugar, comprobamos que AWS ParallelCluster esté instalado y configurado correctamente, incluyendo la dependencia Node.js.
$
node --version
v16.8.0
$
pcluster version
{ "version": "3.7.0" }
Esto devuelve la versión en ejecución de AWS ParallelCluster.
Creación de su primer clúster
Ahora ha llegado el momento de crear su primer clúster. Debido a que la carga de trabajo de este tutorial no es excesiva, podemos usar el tamaño de instancia predeterminado de t2.micro
. (Para las cargas de trabajo de producción, puede elegir el tamaño de instancia que mejor se adapte a sus necesidades). Llamemos a su clúster hello-world
.
$
pcluster create-cluster \ --cluster-name hello-world \ --cluster-configuration hello-world.yaml
nota
Debe especificarse el Región de AWS a especificar para la mayoría de pcluster
los comandos. Si no se especifica en la variable de entorno AWS_DEFAULT_REGION
, o el ajuste region
en la sección [default]
del archivo ~/.aws/config
, el parámetro --region
debe proporcionarse en la línea de comando pcluster
.
Si recibe un mensaje del resultado sobre la configuración, tiene que ejecutar lo siguiente para configurar :
$
pcluster configure --config hello-world.yaml
Si el comando pcluster create-cluster se ejecuta correctamente, verá un resultado similar al siguiente:
{ "cluster": { "clusterName": "hello-world", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:xxx:stack/xxx", "region": "...", "version": "...", "clusterStatus": "CREATE_IN_PROGRESS" } }
La creación del clúster se supervisa mediante:
$
pcluster describe-cluster --cluster-name hello-world
Los clusterStatus
informes "CREATE_IN_PROGRESS
" mientras se crea el clúster. clusterStatus
pasa a “CREATE_COMPLETE
” cuando el clúster se haya creado correctamente. El resultado también nos proporciona las publicIpAddress
y privateIpAddress
de nuestro nodo principal.
Inicio de sesión en su nodo principal
Use su archivo OpenSSH para iniciar sesión en el nodo principal.
$
pcluster ssh --cluster-name hello-world -i /path/to/keyfile.pem
Después de iniciar sesión, ejecute el comando sinfo
para comprobar que sus nodos de computación se instalan y configuran.
$
sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 10 idle~ queue1-dy-queue1t2micro-[1-10]
El resultado muestra que tenemos una cola en nuestro clúster, con hasta diez nodos.
Ejecución de su primer trabajo con Slurm
A continuación, creamos un trabajo que entra en suspensión durante un tiempo y luego genera su propio nombre de host. Cree un archivo denominado hellojob.sh
con el siguiente contenido.
#!/bin/bash sleep 30 echo "Hello World from $(hostname)"
A continuación, envíe el trabajo mediante sbatch
y compruebe que se ejecuta.
$
sbatch hellojob.sh
Submitted batch job 2
Ahora puede ver la cola y comprobar el estado del trabajo. El aprovisionamiento de una nueva instancia Amazon EC2 se inicia en segundo plano. Puede monitorizar el estado de las instancias del clúster con el 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
El resultado muestra que se ha enviado el trabajo a queue1
. Espere 30 segundos a que el trabajo se termine y, a continuación, vuelva a ejecutar squeue
.
$
squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
Ahora que no hay trabajos en la cola, podemos comprobar el resultado en nuestro directorio actual.
$
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
En el resultado, vemos un archivo “out
”. Podemos ver el resultado de nuestro trabajo:
$
cat slurm-2.out
Hello World from queue1-dy-queue1t2micro-1
El resultado también muestra que nuestro trabajo se ha ejecutado correctamente en la instancia queue1-dy-queue1t2micro-1
.
En el clúster que acaba de crear, solo el directorio principal se comparte entre todos los nodos del clúster.
Para obtener más información acerca de la creación y el uso de clústeres, consulte Prácticas recomendadas.
Si la aplicación requiere software, bibliotecas o datos compartidos, considere las siguientes opciones:
-
Cree una AMI personalizada habilitada AWS ParallelCluster que incluya su software, tal y como se describe en Creación de una AMI de AWS ParallelCluster personalizada.
-
Utilice la opción StorageSettings del archivo de AWS ParallelCluster configuración para especificar un sistema de archivos compartido y almacenar el software instalado en la ubicación de montaje especificada.
-
Use Acciones de arranque personalizadas para automatizar el procedimiento de arranque de cada nodo del clúster.