Outils pour utilisateurs

Outils du site


leria:centre_de_calcul:cluster

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
leria:centre_de_calcul:cluster [08/02/2019 10:08] – [FAQ] Chantrein Jean-Mathieuleria:centre_de_calcul:cluster [22/04/2020 10:50] Chantrein Jean-Mathieu
Ligne 5: Ligne 5:
  
  
-Vous pouvez utilisez l'entrée misc de bibtex suivante pour citer le cluster de calcul dans vos publications:+Vous pouvez utiliser l'entrée misc de bibtex suivante pour citer le cluster de calcul dans vos publications:
 <code latex> <code latex>
 @Misc{HPC_LERIA, @Misc{HPC_LERIA,
Ligne 18: Ligne 18:
 <note> <note>
   * Cette page de wiki est aussi la votre, n'hésitez pas à la modifier directement ou à proposer des modifications à technique [at] info.univ-angers.fr.   * Cette page de wiki est aussi la votre, n'hésitez pas à la modifier directement ou à proposer des modifications à technique [at] info.univ-angers.fr.
-  * Tous les utilisateurs du cluster doivent être inscrit sur la liste de diffusion [[http://sympa.info.univ-angers.fr/wws/info/cluster|cluster]] +  * Tous les utilisateurs du cluster doivent être inscrit sur la liste de diffusion [[http://listes.univ-angers.fr/sympa/info/calcul-hpc-leria|calcul-hpc-leria]] 
-    * Pour s'inscrire à cette liste de diffusion, il suffit d'envoyer un mail à sympa@info.univ-angers.fr avec pour objet subscribe cluster Nom Prénom+    * Pour s'inscrire à cette liste de diffusion, il suffit d'envoyer un mail à sympa@listes.univ-angers.fr avec pour objet subscribe calcul-hpc-leria Nom Prénom
 </note> </note>
  
Ligne 45: Ligne 45:
 |  Hostname            |  Modèle      Nombre de modèle identique  |  GPU          Nombre de GPU/modèle  |  CPU                                                                                                            |  Nombre de CPU/modèle  |  Nombre de cœurs/CPU  |  Nombre de threads/CPU  | Nombre de threads/modèle  |  RAM      |  Espace de stockage local  |  Interconnection  | |  Hostname            |  Modèle      Nombre de modèle identique  |  GPU          Nombre de GPU/modèle  |  CPU                                                                                                            |  Nombre de CPU/modèle  |  Nombre de cœurs/CPU  |  Nombre de threads/CPU  | Nombre de threads/modèle  |  RAM      |  Espace de stockage local  |  Interconnection  |
 |  star[254-253]        Dell R720  |  2                            Tesla K20m  |  2                      [[https://ark.intel.com/fr/products/75275/Intel-Xeon-Processor-E5-2670-v2-25M-Cache-2-50-GHz-|intel-E5-2670]]  |  2                      10                    20                      40                        64 Go    |  1To                        2*10Gb/        | |  star[254-253]        Dell R720  |  2                            Tesla K20m  |  2                      [[https://ark.intel.com/fr/products/75275/Intel-Xeon-Processor-E5-2670-v2-25M-Cache-2-50-GHz-|intel-E5-2670]]  |  2                      10                    20                      40                        64 Go    |  1To                        2*10Gb/        |
-|  star[245-244]        Dell R630  |  2                            X            0                      [[https://ark.intel.com/fr/products/91316/Intel-Xeon-Processor-E5-2695-v4-45M-Cache-2-10-GHz-|intel-E5-2695]]  |  2                      18                    36                      72                        128 Go    TODO                      |                   |+|  star[246-252]        Dell R620  |  7                            X            0                      [[https://ark.intel.com/fr/products/75275/Intel-Xeon-Processor-E5-2670-v2-25M-Cache-2-50-GHz-|intel-E5-2670]]  |  2                      10                    20                      40                        64 Go    |  1 To                      |  2*10Gb/        | 
 +|  star[245-244]        Dell R630  |  2                            X            0                      [[https://ark.intel.com/fr/products/91316/Intel-Xeon-Processor-E5-2695-v4-45M-Cache-2-10-GHz-|intel-E5-2695]]  |  2                      18                    36                      72                        128 Go    TODO                      |  2*10Gb/        |
 |  star243              Dell R930  |  1                            X            0                      [[https://ark.intel.com/fr/products/93806/Intel-Xeon-Processor-E7-4850-v4-40M-Cache-2-10-GHz-|intel-E7-4850]]  |  4                      16                    32                      128                      |  1500 Go  |  1To                        2*10Gb/        | |  star243              Dell R930  |  1                            X            0                      [[https://ark.intel.com/fr/products/93806/Intel-Xeon-Processor-E7-4850-v4-40M-Cache-2-10-GHz-|intel-E7-4850]]  |  4                      16                    32                      128                      |  1500 Go  |  1To                        2*10Gb/        |
-|  star242              Dell R730  |  1                            Tesla P100  |  1                      [[https://ark.intel.com/fr/products/92986/Intel-Xeon-Processor-E5-2620-v4-20M-Cache-2-10-GHz-|intel-E5-2620]]  |  2                      8                    |  16                      32                        128 Go    1 To                      |                   +|  star242              Dell R730  |  1                            Tesla P100  |  1                      [[https://ark.intel.com/fr/products/92986/Intel-Xeon-Processor-E5-2620-v4-20M-Cache-2-10-GHz-|intel-E5-2620]]  |  2                      8                    |  16                      32                        128 Go    1 To                      |  2*10Gb/        
-|  TODO star[199-195]  |  Dell R415  |  5                            X            0                      [[https://www.cpubenchmark.net/cpu.php?cpu=AMD+Opteron+6134&id=1566|amd-opteron-6134]]                          1                      8                    |  16                      16                        32 Go    |  1 To                      |                   |+|  TODO star[199-195]  |  Dell R415  |  5                            X            0                      [[https://www.cpubenchmark.net/cpu.php?cpu=AMD+Opteron+6134&id=1566|amd-opteron-6134]]                          1                      8                    |  16                      16                        32 Go    |  1 To                      |  2*1Gb/         |
 |  TODO star[194-190]  |  Dell R415  |  5                            X            0                      [[https://www.cpubenchmark.net/cpu.php?cpu=AMD+Opteron+4184&id=278|amd-opteron-4184]]                          |  1                      6                    |  12                      12                        32 Go    |  1 To                      |  2*1Gb/         | |  TODO star[194-190]  |  Dell R415  |  5                            X            0                      [[https://www.cpubenchmark.net/cpu.php?cpu=AMD+Opteron+4184&id=278|amd-opteron-4184]]                          |  1                      6                    |  12                      12                        32 Go    |  1 To                      |  2*1Gb/         |
 ==== 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'exploitation debian testing. Vous pouvez trouvez la liste des logiciels installés dans la section [[leria:centre_de_calcul:cluster#listes_des_logiciels_installes_pour_le_calcul_haute_performance|listes des logiciels installés pour le calcul haute performance]].+Les nœuds de calcul fonctionnent avec un système d'exploitation debian stable. Vous pouvez trouvez la liste des logiciels installés dans la section [[leria:centre_de_calcul:cluster#listes_des_logiciels_installes_pour_le_calcul_haute_performance|listes des logiciels installés pour le calcul haute performance]].
  
 ==== Politique d'utilisation ==== ==== Politique d'utilisation ====
Ligne 99: Ligne 100:
 <note>Pour des raisons pratiques, nous nous loguons avec les mêmes identifiants que pour notre ENT. En cas de panne du serveur ldap de l'Université d'Angers, nos services devraient être tout de même disponibles pour tout usager qui s'est déjà logué au moins une fois sur ces mêmes services.</note> <note>Pour des raisons pratiques, nous nous loguons avec les mêmes identifiants que pour notre ENT. En cas de panne du serveur ldap de l'Université d'Angers, nos services devraient être tout de même disponibles pour tout usager qui s'est déjà logué au moins une fois sur ces mêmes services.</note>
  
 +<note important>Pour une meilleure sécurité et pour éviter d'être banni après plusieurs mauvais mot de passe, je vous conseille d'utiliser une authentification par clé ssh:
  
 +https://www.linode.com/docs/security/authentication/use-public-key-authentication-with-ssh/</note>
 ==== Slurm: premiers tests et documentation ==== ==== Slurm: premiers tests et documentation ====
  
Ligne 276: Ligne 279:
 Voir aussi [[leria:centre_de_calcul:cluster#architecture_globale|architecture globale]]. Voir aussi [[leria:centre_de_calcul:cluster#architecture_globale|architecture globale]].
  
-Le cluster de calcul utilise un pool de serveurs de stockages distribués [[https://www.beegfs.io/content/|beegfs]] . Ce stockage beegfs est indépendant des serveurs de calcul. Cette zone de stockage est accessible naturellement dans l’arborescence de n'importe quel nœud de calcul sous /home/$USER. Étant donné que ce stockage est distant, toute lecture/écriture dans votre home est dépendante du réseau. Notre stockage Beegfs et le réseau sous-jacent sont très performant, mais pour certains traitement lourd, vous gagneriez peut-être à vous servir des disques locaux des serveurs de calcul. Pour ce faire, vous pouvez utiliser le répertoire /local_working_directory des serveurs de calculs. Ce répertoire fonctionne de la même manière que /tmp à la différence que les données sont persistante en cas de redémarrage du serveur.+  * Le cluster de calcul utilise un pool de serveurs de stockages distribués [[https://www.beegfs.io/content/|beegfs]] . Ce stockage beegfs est indépendant des serveurs de calcul. Cette zone de stockage est accessible naturellement dans l’arborescence de n'importe quel nœud de calcul sous /home/$USER. Étant donné que ce stockage est distant, toute lecture/écriture dans votre home est dépendante du réseau. Notre stockage Beegfs et le réseau sous-jacent sont très performant, mais pour certains traitement lourd, vous gagneriez peut-être à vous servir des disques locaux des serveurs de calcul. Pour ce faire, vous pouvez utiliser le répertoire /local_working_directory des serveurs de calculs. Ce répertoire fonctionne de la même manière que /tmp à la différence que les données sont persistante en cas de redémarrage du serveur.
  
 +  * Si vous souhaitez créer des groupes, merci d'envoyer un email à technique.info [at] listes.univ-angers.fr avec le nom du groupe et les utilisateurs associés.
 +
 +  * 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://slurm.schedmd.com/job_array.html|documentation officielle]].+Vous devriez commencer par lire la [[https://slurm.schedmd.com/job_array.html|documentation officielle]]. Cette [[http://scicomp.aalto.fi/triton/tut/array.html|page]] présente des cas d'utilisations intéressants.
  
 Si vous avez un grand nombre de fichier ou de parametres à traiter avec un seul exécutable, vous devez utiliser un [[https://slurm.schedmd.com/job_array.html|array job]]. Si vous avez un grand nombre de fichier ou de parametres à traiter avec un seul exécutable, vous devez utiliser un [[https://slurm.schedmd.com/job_array.html|array job]].
Ligne 343: Ligne 349:
  
 #SBATCH --mail-type=END,FAIL #SBATCH --mail-type=END,FAIL
-#SBATCH --mail-user=YOUR-EMAIL@univ-angers.fr+#SBATCH --mail-user=YOUR-EMAIL
 #SBATCH -o output/%A-%a #SBATCH -o output/%A-%a
 #SBATCH -e error/%A-%a #SBATCH -e error/%A-%a
Ligne 350: Ligne 356:
 INSTANCES=(instances/*) INSTANCES=(instances/*)
  
-bash exec.bash ${INSTANCES[$SLURM_ARRAY_TASK_ID]}+./job_name_exec ${INSTANCES[$SLURM_ARRAY_TASK_ID]}
 </code> </code>
 +
 +=== Job pour multiples instances avec multiples exécutions (Seed number) ===
 +
 +Parfois il faut lancer plusieurs fois l'exécution sur une instance en modifiant la graine qui permet de générer des nombres aléatoire.
 +
 +Soit l'arborescence suivante:
 +<code>
 +job_name
 +├── error
 +├── instances
 +│   ├── bench1.txt
 +│   ├── bench2.txt
 +│   └── bench3.txt
 +├── job_name_exec
 +├── output
 +├── submit_instances_dir_with_seed.slurm
 +└── submit.sh
 +</code>
 +
 +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/${instance}_%A-%a --error error/${instance}_%A-%a --array 0-${NB_SEED} submit_instances_dir_with_seed.slurm instances/${instance}
 +done
 +exit 0
 +</code>
 +
 +et le batch submit_instances_dir_with_seed.slurm suivant:
 +
 +<code bash>
 +#!/bin/bash
 +#SBATCH --mail-type=END,FAIL
 +#SBATCH --mail-user=YOUR-EMAIL
 +
 +echo "####### INSTANCE: ${1}"
 +echo "####### SEED NUMBER: ${SLURM_ARRAY_TASK_ID}"
 +echo
 +srun echo nomApplication ${1} ${SLURM_ARRAY_TASK_ID}
 +</code>
 +
 +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'instance dans le répertoire instance.
 +Vous retrouvez facilement vos sortie qui sont nommées comme ceci:
 +
 +  output/nom_instance-ID_job-graine 
 +
  
 === Dépendances entre job === === Dépendances entre job ===
Ligne 473: Ligne 534:
  
 Ces nœuds sont pour l'instant hors des listes de soumissions de slurm (bien que la partition gpu existe déjà). Pour pouvoir vous en servir, merci d'en faire la demande explicite à technique [at] info.univ-angers.fr Ces nœuds sont pour l'instant hors des listes de soumissions de slurm (bien que la partition gpu existe déjà). 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 gpu actuellement (en ssh): 
-  * benoit.damota 
-  * jean-michel.richer 
-  * o.goudet 
  
 ==== Nœud RAM ==== ==== Nœud RAM ====
Ligne 484: 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 /opt/ibm/ILOG/CPLEX_Studio129 (version 12.9)
 ===== FAQ ===== ===== FAQ =====
 +
 +  * Comment savoir quelles sont les ressources d'une partition, exemple avec la partition std:
 +
 +  user@stargate~# scontrol show Partition std
 + 
 +  * 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 501: 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
- 
 </note> </note>
-  +
   * 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 ?
  
Ligne 559: 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 608: Ligne 670:
 ==== Vue d'ensemble du cluster ==== ==== Vue d'ensemble du cluster ====
  
-https://leria.univ-angers.fr/grafana/d/_0Bh3sxiz/vue-densemble-du-cluster+https://grafana.leria.univ-angers.fr/d/_0Bh3sxiz/vue-densemble-du-cluster
  
 ==== Détails par nœuds ==== ==== Détails par nœuds ====
  
-https://leria.univ-angers.fr/grafana/d/000000007/noeuds-du-cluster+https://grafana.leria.univ-angers.fr/d/000000007/noeuds-du-cluster
  
 <note>Vous pouvez sélectionner le nœud qui vous intéresse en utilisant le menu déroulant "HOST"</note> <note>Vous pouvez sélectionner le nœud qui vous intéresse en utilisant le menu déroulant "HOST"</note>
leria/centre_de_calcul/cluster.txt · Dernière modification : 06/06/2023 17:00 de Chantrein Jean-Mathieu