leria:centre_de_calcul:cluster
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
leria:centre_de_calcul:cluster [08/02/2019 09:31] – Chantrein Jean-Mathieu | leria:centre_de_calcul:cluster [22/04/2020 10:50] – Chantrein Jean-Mathieu | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
- | Vous pouvez | + | Vous pouvez |
<code latex> | <code latex> | ||
@Misc{HPC_LERIA, | @Misc{HPC_LERIA, | ||
- | title = {{High Performance Computing Cluster of LERIA}, | + | title = {High Performance Computing Cluster of LERIA}, |
year = {2018}, | year = {2018}, | ||
note = {slurm/ | note = {slurm/ | ||
Ligne 18: | Ligne 18: | ||
< | < | ||
* Cette page de wiki est aussi la votre, n' | * Cette page de wiki est aussi la votre, n' | ||
- | * Tous les utilisateurs du cluster doivent être inscrit sur la liste de diffusion [[http://sympa.info.univ-angers.fr/ | + | * Tous les utilisateurs du cluster doivent être inscrit sur la liste de diffusion [[http://listes.univ-angers.fr/ |
- | * Pour s' | + | * Pour s' |
</ | </ | ||
Ligne 45: | Ligne 45: | ||
| Hostname | | Hostname | ||
| star[254-253] | | star[254-253] | ||
- | | star[245-244] | + | | star[246-252] |
+ | | star[245-244] | ||
| star243 | | star243 | ||
- | | star242 | + | | star242 |
- | | TODO star[199-195] | + | | TODO star[199-195] |
| TODO star[194-190] | | TODO star[194-190] | ||
==== Architecture logicielle ==== | ==== Architecture logicielle ==== | ||
Ligne 65: | Ligne 66: | ||
Chacune de ces partitions contient des nœuds. | Chacune de ces partitions contient des nœuds. | ||
- | Les nœuds de calcul fonctionnent avec un système d' | + | Les nœuds de calcul fonctionnent avec un système d' |
==== Politique d' | ==== Politique d' | ||
Ligne 99: | Ligne 100: | ||
< | < | ||
+ | <note important> | ||
+ | https:// | ||
==== Slurm: premiers tests et documentation ==== | ==== Slurm: premiers tests et documentation ==== | ||
Ligne 276: | Ligne 279: | ||
Voir aussi [[leria: | Voir aussi [[leria: | ||
- | Le cluster de calcul utilise un pool de serveurs de stockages distribués [[https:// | + | * Le cluster de calcul utilise un pool de serveurs de stockages distribués [[https:// |
+ | * Si vous souhaitez créer des groupes, merci d' | ||
+ | |||
+ | * Pour rappel, **par défaut**, les droits de votre home sont définis à 755, donc **tout le monde peut lire et exécuter vos données**. | ||
===== Utilisation avancée ===== | ===== Utilisation avancée ===== | ||
==== Array jobs ==== | ==== Array jobs ==== | ||
- | Vous devriez commencer par lire la [[https:// | + | Vous devriez commencer par lire la [[https:// |
- | Si vous avez un grand nombre de fichier à traiter avec un seul exécutable, | + | Si vous avez un grand nombre de fichier |
C'est facile à mettre en œuvre, il suffit de rajouter l' | C'est facile à mettre en œuvre, il suffit de rajouter l' | ||
- | |||
- | == Exemple == | ||
- | |||
- | <code bash> | ||
- | #! /bin/bash | ||
- | # Options SBATCH : | ||
- | |||
- | #SBATCH --job-name=name # Nom du Job | ||
- | #SBATCH --mail-type=END | ||
- | #SBATCH --mail-user=username@univ-angers.fr | ||
- | #SBATCH --array=1-500%10 | ||
- | |||
- | # Traitement | ||
- | / | ||
- | </ | ||
- | |||
- | Comme vous pouvez le voir, c'est la variable SLURM_ARRAY_TASK_ID qui nous permet de discriminer les fichiers à traiter. Le problème, c'est que nous n' | ||
- | |||
- | * modifier le nom des fichiers en préfixant ceci par un numéro (simple et rapide) | ||
- | * utiliser les steps jobs (plus complexe, voir plus bas) | ||
- | |||
- | Normalement, | ||
- | |||
- | <code bash> | ||
- | #!/bin/bash | ||
- | REP_BASE=/ | ||
- | REP_BASE_FOR_ARRAY_JOB=/ | ||
- | |||
- | mkdir $REP_BASE_FOR_ARRAY_JOB | ||
- | |||
- | NUM=1 | ||
- | |||
- | for file in $(ls $REP_BASE) | ||
- | do | ||
- | ln $REP_BASE/ | ||
- | NUM=$(expr $NUM + 1) | ||
- | done | ||
- | |||
- | exit 0 | ||
- | </ | ||
=== Test paramétriques === | === Test paramétriques === | ||
- | On voit bien qu' | + | Il est facile d' |
<code bash> | <code bash> | ||
Ligne 356: | Ligne 322: | ||
--array=1-7: | --array=1-7: | ||
</ | </ | ||
+ | === Job pour multiples instances === | ||
+ | |||
+ | Il est courant de devoir exécuter un programme de nombreuses fois sur de nombreuses instances (benchmark). | ||
+ | |||
+ | Soit l' | ||
+ | < | ||
+ | job_name | ||
+ | ├── error | ||
+ | ├── instances | ||
+ | │ ├── bench1.txt | ||
+ | │ ├── bench2.txt | ||
+ | │ └── bench3.txt | ||
+ | ├── job_name_exec | ||
+ | ├── output | ||
+ | └── submit_instances_dir.slurm | ||
+ | </ | ||
+ | |||
+ | Il est facile d' | ||
+ | |||
+ | mkdir error output 2>/ | ||
+ | |||
+ | avec le batch submit_instances_dir.slurm suivant: | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | #SBATCH --mail-type=END, | ||
+ | #SBATCH --mail-user=YOUR-EMAIL | ||
+ | #SBATCH -o output/ | ||
+ | #SBATCH -e error/%A-%a | ||
+ | |||
+ | #INSTANCES IS ARRAY OF INSTANCE FILE | ||
+ | INSTANCES=(instances/ | ||
+ | |||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | === Job pour multiples instances avec multiples exécutions (Seed number) === | ||
+ | |||
+ | Parfois il faut lancer plusieurs fois l' | ||
+ | |||
+ | Soit l' | ||
+ | < | ||
+ | job_name | ||
+ | ├── error | ||
+ | ├── instances | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | ├── job_name_exec | ||
+ | ├── output | ||
+ | ├── submit_instances_dir_with_seed.slurm | ||
+ | └── submit.sh | ||
+ | </ | ||
+ | |||
+ | Il suffit d’exécuter la commande suivante: | ||
+ | |||
+ | ./submit.sh | ||
+ | |||
+ | avec le fichier submit.sh suivant (pensez à modifier la variable NB_SEED): | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | readonly NB_SEED=50 | ||
+ | |||
+ | for instance in $(ls instances) | ||
+ | do | ||
+ | sbatch --output output/ | ||
+ | done | ||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | et le batch submit_instances_dir_with_seed.slurm suivant: | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | #SBATCH --mail-type=END, | ||
+ | #SBATCH --mail-user=YOUR-EMAIL | ||
+ | |||
+ | echo "####### | ||
+ | echo "####### | ||
+ | echo | ||
+ | srun echo nomApplication ${1} ${SLURM_ARRAY_TASK_ID} | ||
+ | </ | ||
+ | |||
+ | Avec cette méthode, la variable SLURM_ARRAY_TASK_ID contient la graine. Et vous soumettez autant de array job que ce qu'il y a d' | ||
+ | Vous retrouvez facilement vos sortie qui sont nommées comme ceci: | ||
+ | |||
+ | output/ | ||
+ | |||
=== Dépendances entre job === | === Dépendances entre job === | ||
Ligne 477: | Ligne 534: | ||
Ces nœuds sont pour l' | Ces nœuds sont pour l' | ||
- | |||
- | Listes des utilisateurs autorisés à se servir des nœuds gpu actuellement (en ssh): | ||
- | * benoit.damota | ||
- | * jean-michel.richer | ||
- | * o.goudet | ||
==== Nœud RAM ==== | ==== Nœud RAM ==== | ||
Ligne 488: | Ligne 540: | ||
Ce nœud est accesible par soumissions via slurm (partition ram). Pour pouvoir vous en servir, merci d'en faire la demande explicite à technique [at] info.univ-angers.fr | Ce nœud est accesible par soumissions via slurm (partition ram). Pour pouvoir vous en servir, merci d'en faire la demande explicite à technique [at] info.univ-angers.fr | ||
- | Listes des utilisateurs autorisés à se servir des nœuds ram actuellement (en ssh): | + | ==== Cplex ==== |
- | * benoit.damota (pour boinc) | + | |
- | * gilles.hunault (pour test) | + | |
- | Listes des utilisateurs autorisés à se servir des nœuds ram actuellement (via slurm): | + | Le Leria a une licence académique pour le logicielle Cplex. |
- | * frederic.lardeux | + | |
- | * gilles.hunault | + | |
+ | Le chemin pour la bibliothèque Cplex est le chemin par défaut / | ||
===== FAQ ===== | ===== FAQ ===== | ||
+ | |||
+ | * Comment savoir quelles sont les ressources d'une partition, exemple avec la partition std: | ||
+ | |||
+ | user@stargate~# | ||
+ | |||
+ | * Que signifie "Some of your processes may have been killed by the cgroup out-of-memory handler" | ||
+ | |||
+ | Vous avez dépassé la limite de mémoire que vous avez fixé ou celle par défaut (paramètre --mem-per-cpu) | ||
* Comment obtenir un prompt shell interactif dans un nœud de calcul de votre partition par défaut ? | * Comment obtenir un prompt shell interactif dans un nœud de calcul de votre partition par défaut ? | ||
Ligne 505: | Ligne 562: | ||
srun -n1 -N1 --mem-per-cpu=0 --pty --preserve-env --cpu-bind=no --mpi=none $SHELL | srun -n1 -N1 --mem-per-cpu=0 --pty --preserve-env --cpu-bind=no --mpi=none $SHELL | ||
- | |||
</ | </ | ||
- | | + | |
* Comment obtenir un prompt shell interactif dans un nœud de calcul spécifique ? | * Comment obtenir un prompt shell interactif dans un nœud de calcul spécifique ? | ||
user@stargate~# | user@stargate~# | ||
user@NODE_NAME~# | user@NODE_NAME~# | ||
+ | |||
+ | * Comment puis je citer les ressources du LERIA dans mes rédactions scientifiques ? | ||
+ | |||
+ | Vous pouvez utiliser l' | ||
+ | <code latex> | ||
+ | @Misc{HPC_LERIA, | ||
+ | title = {High Performance Computing Cluster of LERIA}, | ||
+ | year = {2018}, | ||
+ | note = {slurm/ | ||
+ | } | ||
+ | </ | ||
==== Erreur lors de la soumission de job ==== | ==== Erreur lors de la soumission de job ==== | ||
Ligne 552: | Ligne 619: | ||
* libtool | * libtool | ||
* libopenblas-base | * libopenblas-base | ||
+ | * maven | ||
* nasm | * nasm | ||
+ | * openjdk-8-jdk-headless | ||
* r-base | * r-base | ||
* r-base-dev | * r-base-dev | ||
Ligne 601: | Ligne 670: | ||
==== Vue d' | ==== Vue d' | ||
- | https:// | + | https://grafana.leria.univ-angers.fr/ |
==== Détails par nœuds ==== | ==== Détails par nœuds ==== | ||
- | https:// | + | https://grafana.leria.univ-angers.fr/ |
< | < |
leria/centre_de_calcul/cluster.txt · Dernière modification : 06/06/2023 17:00 de Chantrein Jean-Mathieu