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 [05/02/2019 15:59] – [Connexion à stargate] Chantrein Jean-Mathieu | leria:centre_de_calcul:cluster [06/07/2020 10:53] – [IMPORTANT: Disponibilité et politique de gestion des ressources] 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 95: | Ligne 96: | ||
==== Connexion à stargate ==== | ==== Connexion à stargate ==== | ||
- | * Stargate est accessible via internet en utilisant le protocole ssh (sur le port 2019). On pourra s'y connecter en tapant la commande suivante dans un terminal sous GNU/linux : | + | Veuillez effectuer une demande à technique [at] info.univ-angers.fr |
- | + | ||
- | user@laptop: | + | |
- | password: # idem mot de passe ENT | + | |
- | username_ENT@stargate: | + | |
< | < | ||
+ | <note important> | ||
+ | https:// | ||
==== Slurm: premiers tests et documentation ==== | ==== Slurm: premiers tests et documentation ==== | ||
Ligne 240: | 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 258: | Ligne 257: | ||
Il est tout a fait possible de surcharger ces valeurs par défaut avec les options --mem-per-cpu et --time. Toutefois, | Il est tout a fait possible de surcharger ces valeurs par défaut avec les options --mem-per-cpu et --time. Toutefois, | ||
- | <note important> | + | <note important> |
+ | * vous ne devriez pas surévaluer les ressources de vos jobs. En effet, slurm fonctionne avec une notion de partage juste (fair share): si vous réservez des ressources, peu importe que vous les utilisiez ou non. Lors de vos prochaines soumissions, | ||
+ | * Si vous avez un grand nombre de job à faire, **vous devez utiliser la soumission par array job**. | ||
+ | * Si ces jobs ont de grandes durées d' | ||
</ | </ | ||
Ligne 280: | Ligne 282: | ||
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 en préfixant ceci par un numéro (simple et rapide) | + | Soit l' |
- | * utiliser les steps jobs (plus complexe, voir plus bas) | + | < |
+ | job_name | ||
+ | ├── error | ||
+ | ├── instances | ||
+ | │ ├── bench1.txt | ||
+ | │ ├── bench2.txt | ||
+ | │ └── bench3.txt | ||
+ | ├── job_name_exec | ||
+ | ├── output | ||
+ | └── submit_instances_dir.slurm | ||
+ | </ | ||
- | Normalement, | + | Il est facile d' |
+ | |||
+ | mkdir error output 2>/ | ||
+ | |||
+ | 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 471: | Ligne 527: | ||
Par défaut, il est impossible de se connecter en ssh directement sur les nœuds de calcul. Cependant, si c'est justifié, nous pouvons facilement faire des exceptions si celles ci sont temporaires. Dans ce cas, merci de faire une demande explicite à technique [at] info.univ-angers.fr | Par défaut, il est impossible de se connecter en ssh directement sur les nœuds de calcul. Cependant, si c'est justifié, nous pouvons facilement faire des exceptions si celles ci sont temporaires. Dans ce cas, merci de faire une demande explicite à technique [at] info.univ-angers.fr | ||
+ | |||
+ | Les utilisateurs ayant un accès en ssh doivent être abonnés à la liste calcul-hpc-leria-no-slurm-mode@listes.univ-angers.fr. | ||
+ | Pour s' | ||
+ | |||
+ | __Règle par défaut:__ on ne lance pas un calcul sur un serveur sur lequel tourne déjà un calcul d'un autre utilisateur, | ||
+ | Exception pour les processus boinc. Ces processus se mettent en pause lorsque vous exécutez vos calculs. | ||
+ | |||
+ | La commande htop vous permet de savoir qui calcule avec quelles ressources et depuis combien de temps. | ||
+ | |||
+ | Si vous avez un doute, contactez l' | ||
==== Cuda ==== | ==== Cuda ==== | ||
Ligne 481: | Ligne 547: | ||
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 492: | Ligne 553: | ||
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 509: | 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 556: | 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 605: | 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