diff --git a/docs/arch_exp/turpan/logiciels/container/custum_apptainer.md b/docs/arch_exp/turpan/logiciels/container/custum_apptainer.md new file mode 100644 index 00000000..6a7bdee7 --- /dev/null +++ b/docs/arch_exp/turpan/logiciels/container/custum_apptainer.md @@ -0,0 +1,66 @@ +--- +title: Créer un conteneur +sidebar_position: 3 +--- + +Le plus simple est de partir d’un [des conteneurs disponible](./list_containers.md). + +Les commandes pour créer l’environnement apptainer depuis l’image du conteneur nommés ici « X » ( où X peut être n'importe lequel des conteneurs disponibles): + +```shell +cd /work/conteneurs/ +apptainer build --sandbox mon_conteneur/ /work/conteneurs/sessions-interactives/x.sif + +# Create necessary directory +mkdir mon_conteneur/users mon_conteneur/tmpdir mon_conteneur/work +``` + + +## Accéder au conteneur : deux cas à distinguer +Il est important de prendre en compte les éléments suivants lors de l'accès à un conteneur : + +* Si vous souhaitez installer des paquets nécessitant un accès à Internet, vous devez lancer le conteneur depuis nœud frontal, c’est-à-dire à l’endroit où se trouve le répertoire contenant le conteneur. + ```shell + apptainer shell --fakeroot --writable mon_conteneur/ + ``` + +* Si vous avez besoin d’effectuer des compilations ou des tâches lourdes en utilisant un nœud de calcul (par exemple via une soumission SLURM) pour accéder au conteneur. + ```shell + srun -p shared -n 1 --gres=gpu:1 --pty apptainer shell --fakeroot --writable /work/conteneurs/calmip/ mon_conteneur/ + ``` + +**Maintainant vous pouvez installer ou compiler tous les paquets nécessaires.** + +## Accès aux fichiers locaux dans le conteneur +Si vous avez besoin de fichiers de votre espace personnel et que vous souhaitez les utiliser dans le conteneur : +```shell +apptainer shell --fakeroot --writable --bind path/to/file/:/tmpdir mon_conteneur/ +``` +Depuis l’intérieur du conteneur, copiez les fichiers depuis /tmpdir vers un autre répertoire tel que /work ou /users, afin de les rendre disponibles dans votre conteneur. + +## Utiliser des binaires installés sur Turpan +Pour inclure un binaire déjà installé sur Turpan, commencez par identifier le module avec la commande `module show name` qui indiquera le chemin vers le binaire du module. + +Ensuite, pour l’utiliser dans le conteneur. +```shell +apptainer shell --fakeroot --writable --bind path/to/binary/:/tmpdir mon_conteneur/ +``` +Une fois le chemin monté (bindé) dans le conteneur, copiez le fichier depuis `/tmpdir` vers `/usr/local/` à l’intérieur du conteneur. + +## Créer l'image +Puis une fois les modifications faites, il faut construire l’image et éventuellement faire le ménage : +```shell +apptainer build mon_conteneur.sif mon_conteneur/ +# A faire uniquement tout a la fin une fois que l'image est définitive pour libérer la place +apptainer cache clean +``` +:::tip Note +Si vous avez construit un conteneur personnalisé, merci de nous communiquer son chemin ainsi que les paquets ajoutés, afin que nous puissions l’inclure dans la liste des conteneurs disponibles. +::: + +## Le conteneur avec Jupyter Notebook +Enfin, pour lancer le conteneur que vous avez créé avec un Jupyter Notebook, vous pouvez procéder comme suit : +```shell +runJupyterSession.sh --container custom --containerpath /work/conteneurs/calmip/mon_conteneur.sif +``` + diff --git a/docs/arch_exp/turpan/logiciels/apptainer.md b/docs/arch_exp/turpan/logiciels/container/index.md similarity index 93% rename from docs/arch_exp/turpan/logiciels/apptainer.md rename to docs/arch_exp/turpan/logiciels/container/index.md index 4bb51528..f6320797 100644 --- a/docs/arch_exp/turpan/logiciels/apptainer.md +++ b/docs/arch_exp/turpan/logiciels/container/index.md @@ -6,11 +6,11 @@ sidebar_position: 12 import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -Vous pouvez déployer vos applications via des conteneurs Apptainer (anciennement Singularity) +Vous pouvez déployer vos applications via des conteneurs Apptainer (anciennement Singularity). La liste des conteneurs disponibles [se trouve ici](list_containers.md) -## Construction de conteneurs +## [Construction de conteneurs](custum_apptainer) -Pour vous permettre de créer facilement des conteneurs pour l'architecture des CPUs ARM, la construction de conteneurs apptainer sur Turpan est possible à partir des frontales de connexion à l'aide de la commande `apptainer build` +Pour vous permettre de créer facilement des conteneurs pour l'architecture des CPUs ARM, la construction de conteneurs apptainer sur Turpan est possible à partir des frontales de connexion à l'aide de la commande `apptainer build` [voir ici](custum_apptainer) ## Utilisation d'un conteneur Apptainer diff --git a/docs/arch_exp/turpan/logiciels/container/list_containers.md b/docs/arch_exp/turpan/logiciels/container/list_containers.md new file mode 100644 index 00000000..a3978a59 --- /dev/null +++ b/docs/arch_exp/turpan/logiciels/container/list_containers.md @@ -0,0 +1,109 @@ +--- +title: Liste des conteneurs +sidebar_position: 2 +--- + +Tous les conteneurs se trouvent dans le répertoire `/work/conteneurs`. +Pour consulter en détail la liste des paquets installés dans un conteneur, utilisez la commande suivante : +```shell +apptainer exec /work/conteneurs/path_to/continer_name.sif pip list +``` + +
Nom | +Packages principaux | +Chemin | +
---|---|---|
PyTorch | +
+ <>
+ - torch (PyTorch – framework principal pour l’apprentissage profond) + - torchvision (vision par ordinateur pour PyTorch) + - torch-geometric (réseaux de neurones pour graphes) + - flash_attn (mécanismes d’attention optimisés) + - nvfuser (compilateur de fusion de NVIDIA pour PyTorch) + - cuda-python (accès direct à l’API CUDA) + > + |
+ sessions-interactives/pytorch-25.03-py3-calmip-si-latest.sif | +
TensorFlow | +
+ <>
+ - tensorflow (framework principal pour l’apprentissage profond) + - keras (API haut niveau pour TensorFlow) + - tensorrt (optimiseur d’inférence NVIDIA) + - horovod (entraînement distribué) + - jax (calcul numérique accéléré) + - tensorflow-io-gcs-filesystem (prise en charge du stockage Google Cloud) + > + |
+ sessions-interactives/tensorflow-24.02-tf2-py3-calmip-si-latest.sif | +
Scikit-learn | +
+ <>
+ - cudf (bibliothèque de DataFrames sur GPU) + - cuml (apprentissage automatique accéléré sur GPU) + - cugraph (analyse de graphes sur GPU) + - cupy (tableaux de type NumPy sur GPU) + - dask-cuda (calcul distribué GPU avec Dask) + - xgboost (boosting de gradient accéléré GPU) + > + |
+ sessions-interactives/rapids-notebooks-24.02-cuda12.0-py3.10-calmip-si-latest.sif | +
Modulus | +
+ <>
+ - nvidia-modulus (framework principal pour la physique basée sur l’IA) + - nvidia-modulus.sym (extensions symboliques pour Modulus) + - onnxruntime-gpu (inférence ONNX sur GPU) + - tinycudann (réseaux de neurones rapides sur CUDA) + - torch (backend PyTorch pour Modulus) + - sympy (mathématiques symboliques) + > + |
+ sessions-interactives/modulus-24.01-calmip-si-latest.sif | +
Triton | +
+ <>
+ - Basé sur le conteneur PyTorch (tous les packages PyTorch sont inclus) + - Triton (compilateur de noyaux GPU pour l’IA/l’apprentissage automatique) + - Triton utilise LLVM pour générer du code PTX pour les GPU NVIDIA + > + |
+ sessions-interactives/triton-llvm-3.3.0-calmip-si-latest.sif | +
cuquantum_arrayfire | +
+ <>
+ - Basé sur le conteneur PyTorch (tous les packages PyTorch sont inclus) + - cuquantum-python (cuQuantum de NVIDIA) + - arrayfire (backend GPU/CPU, GPU par défaut sur les nœuds de calcul) + - pytest (framework de test Python) + - pytest-benchmark (mesures de performance) + - mpi4py (interface MPI pour Python) + - petsc (bibliothèque scientifique pour solveurs) + - petsc4py (liaison Python pour PETSc) + - slepc (bibliothèque pour problèmes de valeurs propres) + - primme (solveur PRIMME) + - slepc4py (liaison Python pour SLEPc) + - cupy (NumPy sur GPU) + > + |
+ calmip/custom_users/cuquantum_arrayfire.sif | +