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 +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NomPackages principauxChemin
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
diff --git a/docs/arch_exp/turpan/logiciels/index.md b/docs/arch_exp/turpan/logiciels/index.md index e6479c12..d95bcf59 100644 --- a/docs/arch_exp/turpan/logiciels/index.md +++ b/docs/arch_exp/turpan/logiciels/index.md @@ -47,5 +47,5 @@ Les [environnements python](./envpython/index.md) font l'objet d'une section ent Si vous avez des dépendances très nombreuses et particulières, vous pouvez utiliser des conteneurs : -* La documentation sur les [conteneur Apptainer (anciennement Singularity)](./apptainer.md) +* La documentation sur les [conteneur Apptainer (anciennement Singularity)](./container/index.md)