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 [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 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 280: | 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 481: | 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 492: | 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 509: | 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 556: | 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 605: | 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