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 [06/02/2019 11:52] – [Connexion à stargate] Chantrein Jean-Mathieu | leria:centre_de_calcul:cluster [30/03/2020 09:14] – [Connexion à stargate] 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 236: | Ligne 239: | ||
user@stargate: | user@stargate: | ||
- | Très souvent, on souhaite exécuter un seul et même programme pour un ensemble de fichier, dans ce cas, il y a 2 solutions à privilégier: | + | Très souvent, on souhaite exécuter un seul et même programme pour un ensemble de fichier |
- | * si les fichiers à traiter sont facilement indexable, on utilisera | + | * Utiliser |
- | * sinon, on utilisera | + | * Utiliser |
===== IMPORTANT: Disponibilité et politique de gestion des ressources ===== | ===== IMPORTANT: Disponibilité et politique de gestion des ressources ===== | ||
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 | + | === Test paramétriques |
+ | |||
+ | Il est facile d' | ||
<code bash> | <code bash> | ||
- | #! /bin/bash | + | # |
- | # Options | + | # |
+ | #SBATCH -N 1 | ||
+ | #SBATCH --ntasks-per-node=1 | ||
+ | #SBATCH -t 10:00:00 | ||
+ | #SBATCH --array=0-9 | ||
+ | #SBATCH -p intel-E5-2670 | ||
+ | #SBATCH -o %A-%a.out | ||
+ | #SBATCH -e %A-%a.err | ||
+ | #SBATCH --mail-type=end, | ||
+ | #SBATCH --mail-user=username@univ-angers.fr | ||
+ | / | ||
+ | </ | ||
- | #SBATCH --job-name=name # Nom du Job | + | L' |
- | #SBATCH --mail-type=END | + | |
- | #SBATCH --mail-user=username@univ-angers.fr | + | |
- | # | + | |
- | # Traitement | + | <code bash> |
- | / | + | # Valeurs irrégulières 0, |
+ | --array=0, | ||
+ | |||
+ | # Valeur séparé par des sauts de +2: 1, 3, 5 et 7 | ||
+ | --array=1-7: | ||
</ | </ | ||
+ | === Job pour multiples instances === | ||
- | Comme vous pouvez le voir, c'est la variable SLURM_ARRAY_TASK_ID qui nous permet | + | Il est courant |
- | * modifier le nom des fichiers | + | Soit l' |
- | | + | < |
+ | job_name | ||
+ | ├── error | ||
+ | ├── instances | ||
+ | │ ├── bench1.txt | ||
+ | │ ├── bench2.txt | ||
+ | │ └── bench3.txt | ||
+ | ├── job_name_exec | ||
+ | ├── output | ||
+ | └── submit_instances_dir.slurm | ||
+ | </ | ||
+ | |||
+ | Il est facile d' | ||
+ | |||
+ | | ||
- | Normalement, | + | avec le batch submit_instances_dir.slurm suivant: |
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
- | REP_BASE=/ | ||
- | REP_BASE_FOR_ARRAY_JOB=/ | ||
- | mkdir $REP_BASE_FOR_ARRAY_JOB | + | #SBATCH --mail-type=END, |
+ | #SBATCH --mail-user=YOUR-EMAIL | ||
+ | #SBATCH -o output/ | ||
+ | #SBATCH -e error/%A-%a | ||
- | NUM=1 | + | #INSTANCES IS ARRAY OF INSTANCE FILE |
+ | INSTANCES=(instances/ | ||
- | for file in $(ls $REP_BASE) | + | ./ |
- | do | + | </code> |
- | ln $REP_BASE/$file $REP_BASE_FOR_ARRAY_JOB/ | + | |
- | NUM=$(expr $NUM + 1) | + | |
- | done | + | |
- | exit 0 | + | === 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 | ||
</ | </ | ||
- | ==== Test paramétriques ==== | + | Il suffit d’exécuter la commande suivante: |
- | On voit bien qu'il est assez facile d' | + | |
+ | |||
+ | avec le fichier | ||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
- | #SBATCH -J Job_parametre_régulier | + | |
- | #SBATCH -N 1 | + | readonly NB_SEED=50 |
- | #SBATCH --ntasks-per-node=1 | + | |
- | #SBATCH -t 10:00:00 | + | for instance in $(ls instances) |
- | #SBATCH --array=0-9 | + | do |
- | # | + | sbatch |
- | #SBATCH -o %A-%a.out | + | done |
- | # | + | exit 0 |
- | # | + | |
- | #SBATCH --mail-user=username@univ-angers.fr | + | |
- | /path/ | + | |
</ | </ | ||
- | L' | + | et le batch submit_instances_dir_with_seed.slurm suivant: |
<code bash> | <code bash> | ||
- | # Valeurs irrégulières 0,3, | + | #!/ |
- | --array=0, | + | #SBATCH --mail-type=END,FAIL |
+ | # | ||
- | # Valeur séparé par des sauts de +2: 1, 3, 5 et 7 | + | echo "####### |
- | --array=1-7:2 | + | echo "####### |
+ | echo | ||
+ | srun echo nomApplication ${1} ${SLURM_ARRAY_TASK_ID} | ||
</ | </ | ||
- | ==== Dépendances entre job ==== | + | 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 === | ||
Vous pouvez déterminer des dépendances entre jobs via l' | Vous pouvez déterminer des dépendances entre jobs via l' | ||
- | === Exemple | + | == Exemple == |
<code bash> | <code bash> | ||
Ligne 496: | Ligne 553: | ||
* gilles.hunault | * gilles.hunault | ||
+ | ==== Cplex ==== | ||
+ | |||
+ | Le Leria a une licence académique pour le logicielle Cplex. | ||
+ | |||
+ | 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 575: | ||
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 632: | ||
* 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 683: | ||
==== 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