apptainer
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édente | ||
| apptainer [2026/03/20 14:39] – admin | apptainer [2026/04/22 16:23] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Utilisation d' | ====== Utilisation d' | ||
| - | Cette page décrit comment | + | |
| + | //Apptainer est un outil de conteneurisation permettant d’exécuter des applications dans des environnements logiciels isolés, appelés conteneurs. Apptainer s’inscrit dans la même logique que Docker, tout en étant adapté aux contraintes des infrastructures de calcul. Dans le cadre de la plateforme de calcul, il permet d' | ||
| + | |||
| + | Cette page décrit comment utiliser | ||
| + | utilisant la bibliothèque OpenBLAS sur le cluster. Elle couvre la création de | ||
| + | l' | ||
| + | sur le cluster, et la soumission d'un job Slurm. | ||
| + | |||
| + | OpenBLAS n' | ||
| + | la bibliothèque dans une image portable et de l' | ||
| + | l' | ||
| ===== Prérequis ===== | ===== Prérequis ===== | ||
| Ligne 80: | Ligne 90: | ||
| apptainer exec openblas.sif ls / | apptainer exec openblas.sif ls / | ||
| </ | </ | ||
| + | La première commande doit afficher la version de GCC, par exemple : | ||
| + | gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0 | ||
| + | La seconde doit afficher le chemin de la bibliothèque OpenBLAS, par exemple : | ||
| + | / | ||
| + | / | ||
| + | |||
| + | Si l'une des deux commandes retourne une erreur, l' | ||
| + | recommencez la construction. | ||
| ===== 3. Transférer l' | ===== 3. Transférer l' | ||
| Ligne 86: | Ligne 104: | ||
| <code bash> | <code bash> | ||
| - | scp openblas.sif | + | scp openblas.sif |
| </ | </ | ||
| + | /* | ||
| <note warning> | <note warning> | ||
| Évitez de stocker les images '' | Évitez de stocker les images '' | ||
| Ligne 94: | Ligne 113: | ||
| Pour des tests ponctuels, le '' | Pour des tests ponctuels, le '' | ||
| </ | </ | ||
| + | */ | ||
| ===== 4. Préparer le code source ===== | ===== 4. Préparer le code source ===== | ||
| - | Voici un exemple de programme C utilisant OpenBLAS (multiplication de matrices | + | Voici un exemple de programme C utilisant OpenBLAS (multiplication de matrices) : |
| <code c> | <code c> | ||
| Ligne 132: | Ligne 152: | ||
| double gflops = (2.0 * N * N * N) / elapsed / 1e9; | double gflops = (2.0 * N * N * N) / elapsed / 1e9; | ||
| - | printf(" | + | printf(" |
| free(A); free(B); free(C); | free(A); free(B); free(C); | ||
| Ligne 151: | Ligne 171: | ||
| <code bash> | <code bash> | ||
| #!/bin/bash | #!/bin/bash | ||
| - | #SBATCH --job-name=bench_apptainer | ||
| #SBATCH --nodes=1 | #SBATCH --nodes=1 | ||
| #SBATCH --ntasks=1 | #SBATCH --ntasks=1 | ||
| #SBATCH --cpus-per-task=1 | #SBATCH --cpus-per-task=1 | ||
| - | #SBATCH --account=votre_compte | ||
| - | #SBATCH --output=bench_apptainer_%j.out | ||
| - | #SBATCH --error=bench_apptainer_%j.err | ||
| IMG=~/ | IMG=~/ | ||
| Ligne 171: | Ligne 187: | ||
| -Wl, | -Wl, | ||
| - | # Exécution | + | # Exécution |
| - | for i in $(seq 1 10); do | + | apptainer exec $IMG $BIN |
| - | echo -n "Run $i : " | + | |
| - | | + | |
| - | done | + | |
| </ | </ | ||
| Ligne 190: | Ligne 204: | ||
| </ | </ | ||
| - | Surveillez l' | ||
| - | <code bash> | + | Ensuite tout se déroule comme un job classique. |
| - | squeue -u $USER | + | |
| - | </ | + | |
| - | Consultez les résultats une fois le job terminé : | ||
| - | |||
| - | <code bash> | ||
| - | cat bench_apptainer_< | ||
| - | </ | ||
| - | |||
| - | ===== Résultats attendus ===== | ||
| - | |||
| - | < | ||
| - | Run 1 : DGEMM N=8192 : xx.xxx s | xx.xx GFLOPS | ||
| - | Run 2 : DGEMM N=8192 : xx.xxx s | xx.xx GFLOPS | ||
| - | ... | ||
| - | </ | ||
| ===== Références ===== | ===== Références ===== | ||
apptainer.1774013973.txt.gz · Dernière modification : 2026/03/20 14:39 de admin