Exécution de votre premier job sur AWS ParallelCluster - AWS ParallelCluster

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exécution de votre premier job sur AWS ParallelCluster

Ce didacticiel vous explique comment exécuter votre première tâche Hello World sur AWS ParallelCluster

Lorsque vous utilisez l'interface de ligne de AWS ParallelCluster commande (CLI) ouAPI, vous ne payez que pour les AWS ressources créées lorsque vous créez ou mettez à jour AWS ParallelCluster des images et des clusters. Pour de plus amples informations, veuillez consulter AWS services utilisés par AWS ParallelCluster.

PCUIIl repose sur une architecture sans serveur et vous pouvez l'utiliser dans la catégorie AWS Free Tier dans la plupart des cas. Pour de plus amples informations, veuillez consulter PCUIcoûts.

Prérequis

Vérification de votre installation

Tout d'abord, nous vérifions que AWS ParallelCluster c'est correctement installé et configuré, y compris la dépendance Node.js.

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

Cela renvoie la version en cours d'exécution de AWS ParallelCluster.

Création de votre premier cluster

Il est temps de créer votre premier cluster. Comme la charge de travail pour ce didacticiel n'est pas exigeante, nous pouvons utiliser la taille d'instance par défaut, à savoir t2.micro. (Pour les charges de travail en production, vous choisissez une taille d'instance qui répond le mieux à vos besoins.) Appelons votre clusterhello-world.

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

Le Région AWS à utiliser doit être spécifié pour la plupart des pcluster commandes. S'il n'est pas spécifié dans la variable d'AWS_DEFAULT_REGIONenvironnement ou dans le region paramètre dans la [default] section du ~/.aws/config fichier, le --region paramètre doit être fourni sur la ligne de pcluster commande.

Si le résultat affiche un message concernant la configuration, vous devez exécuter ce qui suit pour configurer AWS ParallelCluster :

$ pcluster configure --config hello-world.yaml

Si la pcluster create-cluster commande aboutit, vous obtenez un résultat similaire à ce qui suit :

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

Vous surveillez la création du cluster en utilisant :

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

Les clusterStatus rapports « CREATE_IN_PROGRESS » lors de la création du cluster. Il clusterStatus passe à « CREATE_COMPLETE » lorsque le cluster est créé avec succès. La sortie nous fournit également la publicIpAddress fin privateIpAddress de notre nœud principal.

Connexion à votre nœud principal

Utilisez votre fichier Open SSH pem pour vous connecter à votre nœud principal.

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

Une fois connecté, exécutez la commande sinfo pour vérifier que vos nœuds de calcul sont créés et configurés.

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

Le résultat indique que nous avons une file d'attente dans notre cluster, avec jusqu'à dix nœuds.

Exécution de votre première tâche avec Slurm

Ensuite, nous créons une tâche qui dort pendant un certain temps, puis génère son propre nom d'hôte. Créez un fichier nommé hellojob.sh avec le contenu suivant :

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

Ensuite, soumettez la tâche avec sbatch, et vérifiez qu'elle s'exécute.

$ sbatch hellojob.sh Submitted batch job 2

Maintenant, vous pouvez afficher votre file d'attente et vérifier le statut de la tâche. Le provisionnement d'une nouvelle EC2 instance Amazon démarre en arrière-plan. Vous pouvez surveiller l'état des instances de cluster à l'aide de la sinfo commande.

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

La sortie indique que le travail a été soumis àqueue1. Attendez 30 secondes que la tâche se termine et exécutez squeue à nouveau.

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

Maintenant qu'il n'y a pas de tâche dans la file d'attente, nous pouvons rechercher la sortie dans notre répertoire actuel.

$ 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

Dans le résultat, nous voyons un fichier out « ». Nous pouvons voir les résultats de notre travail :

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

La sortie indique également que notre tâche a été exécutée avec succès sur l'instance queue1-dy-queue1t2micro-1.

Dans le cluster que vous venez de créer, seul le répertoire de base est partagé entre tous les nœuds du cluster.

Pour en savoir plus sur la création et l'utilisation de clusters, consultezBonnes pratiques.

Si votre application nécessite le partage de logiciels, de bibliothèques ou de données, envisagez les options suivantes :