Test du cluster Helios
Caractéristiques principales :
- Système Centos7.9 Final
- Slurm 2020 pour la gestion des ressources
- 192 To Stockage BeeGFS (WORK)
- Réseau 10G/s pour Data
- Réseau 100G/s pour MPI
- Processeurs Intel Skylake-avx512 pour la partition compute
- Processeurs AMD Zen 3 pour la partition gpu
- 9 cartes A100 (PCI, 40G de mémoire) → 3 cartes par serveur.
Noeuds de calculs et partitions (slurm)
[kmazouzi@mesointeractive ~]$ sinfo -Nl Wed Jul 07 13:24:59 2021 NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON node4-1 1 compute* idle 24 2:12:1 94208 0 1 skylake none node4-2 1 compute* idle 24 2:12:1 94208 0 1 skylake none node4-3 1 compute* idle 24 2:12:1 94208 0 1 skylake none node4-4 1 compute* idle 24 2:12:1 94208 0 1 skylake none node4-5 1 compute* idle 24 2:12:1 94208 0 1 skylake none node4-6 1 compute* idle 24 2:12:1 94208 0 1 skylake none node4-7 1 compute* idle 24 2:12:1 94208 0 1 skylake none node4-8 1 compute* idle 24 2:12:1 94208 0 1 skylake none node4-21 1 gpu mixed 128 2:32:2 515476 0 1 zen3,a10 none node4-22 1 gpu idle 128 2:32:2 515476 0 1 zen3,a10 none node4-23 1 gpu idle 128 2:32:2 515476 0 1 zen3,a10 none
Logiciels installés (Spack), selon l'architecture du processeur
$ module avail -------------------------------------------------------------------------------------------------------------------------------- /Softs/spack/share/spack/modules/linux-centos7-haswell/ --------------------------------------------------------------------------------------------------------------------------------- gcc@11.1.0 ----------------------------------------------------------------------------------------------------------------------------- /Softs/spack/share/spack/modules/linux-centos7-skylake_avx512/ ----------------------------------------------------------------------------------------------------------------------------- gromacs@2021.2-mkl intel-oneapi-compilers@2021.2.0 intel-oneapi-mpi@2021.2.0 namd@2.14 openmpi@4.0.5 vasp@5.4.4-mkl intel-mkl@2020.4.304 intel-oneapi-mkl@2021.2.0 ior@3.3.0 namd@2.14-mkl osu-micro-benchmarks@5.7-intel-oneapi-mpi ---------------------------------------------------------------------------------------------------------------------------------- /Softs/spack/share/spack/modules/linux-centos7-zen3/ ---------------------------------------------------------------------------------------------------------------------------------- anaconda3@2020.11
Connexion
Utilisation SSH
$ ssh user@172.20.92.214
Une fois connecté. Deux espace de travail sont disponible.
$HOME: répertoire de connexion par défaut (quota 5G)$WORK: répertoire de travail (quota 1To)
$WORK) pour travailler/lancer des calculs.
$ cd Work ou $ cd $WORK ou $ cdw
Exécution d’applications
Nous utilisons Slurm comme ordonnanceur et gestionnaire de ressources.
Mode interactif
Exemple : lancer une session interactive (un bash) sur un noeud GPU.
$ srun -p gpu --gres=gpu:1 --pty bash
Avec
-p gpuutilise la partition (file) gpu–gres=gpu:1demande une carte GPU–pty bashlance un shell à la connexion- A noter que la mémoire, par defaut, allouée est de
64gsur la partition gpu. En cas besoin utiliser l'option–mem=72gpar exemple.
Une fois connecté sur le noeud. Vous pouvez utiliser WORK pour travailler.
gpu, un espace de stockage (6 To SSD) local par noeud est disponible.
Il est accessible via la variable d'environnement $GPU_SCRATCH_DIR.
Cette espace est permanent. Il est utile pour les applications qui font beaucoup de streaming.
anaconda de base est installé sur les machines GPU.
L'installation de paquets/logiciels se fait via conda
Conda pour installer tensforflow-gpu
Exemple d'un cas d'utilisation
On se place dans le scratch local:
$ cd $GPU_SCRATCH_DIR
On charge anaconda:
$ module load anaconda3@2020.11
On crée un environnement conda :
$ conda env create -n meso_test
On active l'environnement
$ conda env list $ conda activate meso_test $ (meso_test)$ conda list
On install tesnforflow-gpu
$ (meso_test)$ conda install tesnforflow-gpu
Mode Batch
Créer un script Slurm dans $WORK.
Adapter le script suivant selon besoins.
Exemple script GPU
- gpu.slurm
#!/bin/bash # Fichier submission.SBATCH #SBATCH --job-name="MON_JOB" #SBATCH --output=%x.%J.out ## %x=nom_du_job, %J=id du job #SBATCH --error=%x.%J.out #SBATCH --partition=gpu #SBATCH --gres=gpu:1 ## votre dresse mail pour les notifs #SBATCH --mail-user=votreadresseufc@univ-fcomte.fr #SBATCH --mail-type=END,FAIL nvidia-smi module purge module load anaconda3@2020.11 conda activate meso_test && python GPU_Program.py
soumettre le job :
$ sbatch gpu.slurm
statut des jobs
$ squeue
Exemple script NAMD
- namd.slurm
#!/bin/bash # Fichier submission.SBATCH #SBATCH --job-name="MON_JOB" #SBATCH --output=%x.%J.out ## %x=nom_du_job, %J=id du job #SBATCH --error=%x.%J.out #SBATCH --partition=compute #SBATCH -n 96 #SBATCH --mail-user=votreadresseufc@univ-fcomte.fr #SBATCH --mail-type=END,FAIL module purge module load namd@2.14-mkl NAMD_SCRIPT=grap10 srun namd2 $NAMD_SCRIPT.namd > $NAMD_SCRIPT.out