Gestion de l'environnement python et R avec Conda

Python 2 et 3 ainsi que R sont installés par défaut sur le cluster summit2 avec un ensemble restreint de librairies associées. Pour offrir plus de flexibilité aux utilisateurs de ces outils, notamment pour l'installation de librairies ou paquetages manquants ou l'installation de versions spécifiques, nous avons mis en place l'outil de gestion conda. Cet outil de gestion de paquets python (ou R) fait partie de la suite logicielle Anaconda qui inclut tout un ensemble de paquets/librairies python et R (occupant près de 5Go sur disque).

Sur summit2, nous avons préféré installer Miniconda3 qui tout en étant une version très allégée de Anaconda (< 200Mo), offre les mêmes fonctionnalités.

Aux spécialistes d'Anaconda : nul besoin de l'installer sur summit2 !!!

Cela évitera d'encombrer inutilement l'espace disque.

Se référer aux explications ci-dessous pour CLONER un environnement existant.

1. Préparer votre environnement pour Conda

2. Commandes conda de base

Ci-dessous, quelques commandes utiles. Pour plus de détails, se référer à la documentation officielle de Conda.

Aux spécialistes d'Anaconda :

Préférer la commande 'conda activate...' à la commande 'source activate...' qui échoue sur summit2.

3. Environnements Conda prédéfinis sur summit2

Au moment de l'écriture de cette page, les environnements prédéfinis sur summit2 sont les suivants :

conda info -e
# conda environments:
#
base                  *  /home/admin/miniconda3
pangeo-env_summit2          /home/admin/miniconda3/envs/pangeo-env_summit2
rstudio-env_summit2         /home/admin/miniconda3/envs/rstudio-env_summit2

Ils ont été définis par l'utilisateur admin qui est le seul à pouvoir les modifier (ajout/suppression de paquetage) mais n'importe quel utilisateur de summit2 peut s'en servir tel quel en les activant. Noter que l'environnement base a été mis en place lors de l'installation de Miniconda3. Il contient un ensemble restreint de paquets indispensable au bon fonctionnement de conda. Les environnements pangeo-env_summit2 et rstudio-env_summit2 ont été définis à titre d'exemple et peuvent être clonés par les utilisateurs qui désirent les modifier.

L'environnement pangeo-env_summit2 a été mis en place pour servir de bac à sable et permettre aux utilisateurs de s'initier à Pangeo. Pour plus de renseignements voir PangeoEnv.

4. Cloner un environnement Conda d'un PC -> summit2

Plusieurs méthodes existent pour cloner un environnement d'une machine à une autre mais, à notre connaissance, aucune ne permet de cloner un environnement Conda d'un système MacOSX vers un système Linux. La solution présentée ci-dessous permet uniquement de cloner un environnement existant sur un PC-Linux vers le cluster summit2 (toutes deux plateformes linux-64).

Voici les étapes pour cloner un environnement MYENV de votre PC-Linux sur summit2 :


Aux spécialistes d'Anaconda :

MERCI DE NE PAS CLONER L'ENVIRONNEMENT 'base' de votre installation ANACONDA !

Cet environnement contient TOUS les paquets Anaconda (5Go) : sérieusement les utilisez-vous TOUS ?

Contactez-nous (calcul@aero.obs-mip.fr) , nous vous aiderons à créer un environnement minimal adapté à vos besoins.

5. Cloner un environnement Conda : solutions alternatives

La section précédente détaille une des solutions pour créer sur summit2 un environnement Conda présent sur votre poste de travail. Pour connaître d'autres méthodes et, plus particulièrement, apprendre à cloner localement un environnement existant, se référer à la page CondaEnvClone.

6. Partager des environnements Conda sur summit2

Il est possible de partager des environnements Conda sans avoir à les cloner lorsqu'on se trouve sur une même machine. Par exemple sur summit2, afin de voir TOUS les environnements créés par Bob, Alice doit ajouter à son fichier de configuration $HOME/.condarc le répertoire où se trouvent les environnements de Bob avec la commande :

alice@summit2:~> conda config --append envs_dirs /home/bob/miniconda3/envs
alice@summit2:~> conda config --append pkgs_dirs /home/bob/miniconda3/pkgs

La liste des environnements visible par Alice est donnée par :

alice@summit2:~> conda info -e
# conda environments:
#
py3-env                  /home/alice/miniconda3/envs/py3-env
keras-env                /home/bob/miniconda3/envs/keras-env
py27forge                /home/bob/miniconda3/envs/py27forge
py3-env                  /home/bob/miniconda3/envs/py3-env
swift-env                /home/bob/miniconda3/envs/swift-env
base                  *  /home/admin/miniconda3
pangeo-env_summit2          /home/admin/miniconda3/envs/pangeo-env_summit2
rstudio-env_summit2         /home/admin/miniconda3/envs/rstudio-env_summit2

Pour activer l'environnement py27forge de Bob, il suffira à Alice d'exécuter la commande :

alice@summit2:~> conda activate py27forge

Noter que :

7. Utiliser Conda dans un script SBATCH

Dans un script de soumission Slurm, s'assurer que les lignes suivantes sont présentes en début de script (après les options #SBATCH), si vous désirez activer un environnement Conda :

source /home/admin/miniconda3/etc/profile.d/conda.sh
conda deactivate
conda activate <YOUR_ENV>

Par exemple, dans un job de soumission de Jupyter Lab sur un nœud de calcul avec l'environnement pangeo-env_summit2 (voir PangeoEnv) :

#!/bin/bash
#
#SBATCH -N1 --exclusive
#SBATCH -e monojupyter-%j.out
#SBATCH -o monojupyter-%j.out

source /home/admin/miniconda3/etc/profile.d/conda.sh
conda deactivate
conda activate pangeo-env_summit2

jupyter lab --no-browser --ip=`hostname` --port=8888


CatégorieDocUnix

WikiSummit2: CondaSummit2 (dernière édition le 2023-10-26 11:01:55 par FernandoNino)