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
-
AWS ParallelCluster est installé.
-
Le AWS CLI est installé et configuré.
-
Vous possédez une paire de EC2 clés Amazon.
-
Vous avez un IAM rôle doté des autorisations requises pour exécuter le pclusterCLI.
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_REGION
environnement 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 :
-
Créez une AWS ParallelCluster personnalisation activée AMI qui inclut votre logiciel comme décrit dansCréation d'une personnalisation AWS ParallelCluster AMI.
-
Utilisez l'StorageSettingsoption du fichier AWS ParallelCluster de configuration pour spécifier un système de fichiers partagé et stocker le logiciel installé dans l'emplacement de montage indiqué.
-
Actions de bootstrap personnaliséesÀ utiliser pour automatiser la procédure d'amorçage de chaque nœud de votre cluster.