Utilisation de Miniforge et Mamba
Miniforge est une distribution minimale fournissant Conda et Mamba, avec conda-forge comme canal de paquets par défaut.
Ces outils permettent de créer des environnements logiciels indépendants, contenant les bibliothèques et versions nécessaires à vos projets. Mamba propose des commandes proches de celles de Conda et une gestion performante des dépendances.
Miniforge est installé sur les nœuds de calcul du cluster Slurm, via le module miniforge3.
Configuration initiale
Créez ou adaptez le fichier ~/.mambarc dans votre répertoire personnel avec le contenu suivant :
channels:
- conda-forge
channel_priority: strict
ssl_verify: true
envs_dirs:
- ~/.mamba/envs
pkgs_dirs:
- ~/.mamba/pkgs
Cette configuration définit :
conda-forgecomme canal de paquets ;- une priorité stricte entre les canaux ;
- la vérification des certificats HTTPS ;
- l’emplacement de vos environnements et du cache des paquets.
Les répertoires proposés se trouvent dans votre homedir : ils restent donc soumis à son quota et à ses conditions d’accès Kerberos.
Ouvrir une session sur un nœud de calcul
Depuis la frontale, demandez une session interactive :
salloc -p single -N 1 -n 1 -c 4 --time=02:00:00
Une fois connecté au nœud attribué, chargez le module :
module load miniforge3
Initialiser Mamba
Initialisez Mamba pour le shell courant.
Avec Zsh :
eval "$(mamba shell hook --shell zsh)"
Avec Bash :
eval "$(mamba shell hook --shell bash)"
Cette initialisation s’applique à la session en cours.
Créer et activer un environnement
Par exemple, pour créer un environnement nommé my_env contenant Python et NumPy :
mamba create -n my_env python numpy
Activez-le ensuite :
mamba activate my_env
Vous pouvez alors utiliser les logiciels installés dans cet environnement :
python
La création de l’environnement ne s’effectue qu’une fois. Lors des prochaines sessions, il suffit de charger le module, d’initialiser Mamba et d’activer l’environnement.
Commandes courantes
| Commande | Action |
|---|---|
mamba env list | Afficher les environnements disponibles. |
mamba list | Afficher les paquets de l’environnement actif. |
mamba install scipy | Installer un paquet dans l’environnement actif. |
mamba deactivate | Quitter l’environnement actif. |
Utilisation dans un script Slurm
Dans un script commençant par #!/bin/bash, utilisez l’initialisation pour Bash, même si votre shell interactif habituel est Zsh.
Après les directives #SBATCH, ajoutez :
module load miniforge3
eval "$(mamba shell hook --shell bash)"
mamba activate my_env
python mon_programme.py
L’environnement doit avoir été créé avant la soumission du job et être accessible depuis le nœud de calcul.
Bonnes pratiques
- Créez un environnement par projet pour maîtriser ses dépendances.
- Installez vos paquets dans cet environnement, plutôt que dans l’environnement partagé
base. - Évitez de charger simultanément les modules
miniconda3etminiforge3. - Ne modifiez pas un environnement pendant que des jobs l’utilisent.
Conda et Mamba peuvent gérer les mêmes environnements. Pour garder une procédure homogène, les exemples de cette page utilisent Mamba.