Créer son environnement Miniconda (Python, R)

Nous encourageons vivement les utilisateurs à créer leur propre environnement Python avec la distribution Miniconda plutôt que d’utiliser les distributions Python centralisées disponibles avec les modules du cluster. Vous pouvez ainsi travailler avec les dernières mises à jour plus rapidement, obtenir des améliorations de performances et éviter d’éventuelles incompatibilités entre différents modules.

Avec Miniconda, vous pouvez créer votre propre environnement Python ou R et y installer les packages dont vous avez besoin. Vous pouvez même répéter l’opération pour différents projets et ainsi avoir un environnement propre à chacun.

Miniconda est une version minimaliste de Anaconda et embarque un Python de base ainsi que le gestionnaire de packages Conda. Vous pouvez ensuite installer des packages supplémentaires en suivant la procédure ci-dessous.

Pré-requis

Pour utiliser les commandes de miniconda, il vous faut tout d’abord charger le module miniconda sur le nœud de login :

module load miniconda

Créer l’environnement

Créez l’environnement en lui donnant un nom (ici my_env) et en choisissant sa version de Python (ici 3.7) :

conda create --name my_env python=3.7  

Les environnements que vous créez sont par défaut ajoutés au dossier /home/$USER/.conda/envs

Vous pouvez aussi spécifier un autre emplacement. Par exemple pour partager un environnement avec les autres utilisateurs de votre projet, vous pouvez l’installer dans votre dossier partagé dans /workspace/votre_groupe :

 conda create python=3.7 --prefix /workspace/votre_groupe

Activer son environnement

# Si vous avez donné un nom à votre environnement :
conda activate my_env
# Si vous l'avez créé avec l'option prefix :
conda activate /workspace/votre_groupe

Ajouter un package

conda install package_name

Installer des packages R

Vous pouvez également installer les packages R que vous souhaitez dans votre environnement Miniconda. Pour cela, il faut d’abord y installer R, puis les packages :

conda install -c r r r-essentials
R
install.packages("nom_du_package", dependencies=TRUE)

Les packages seront installés par défaut dans /home/$USER/.conda/envs/r_env/lib/R/library

Lister vos environnements

conda env list

L’astérisque devant l’un des environnements listés indique celui qui est actuellement utilisé.

Désactiver son environnement

conda deactivate

Supprimer un environnement

Ici, on supprime un environnement du nom de my_env :

conda env remove --name my_env
# Si l'environnement avait été créé avec l'option prefix :
conda env remove -p /chemin_vers_dossier

Exemple de job

Mettre le contenu suivant dans un fichier, nommé par exemple job.slurm

#!/bin/sh
#SBATCH --job-name=python_job_conda
#SBATCH --time=0-00:03:00
#SBATCH --account=project_name
#SBATCH --output=my_job_output.txt
#SBATCH --ntasks=1
#SBATCH --partition=cpucourt

 module purge
 module load miniconda

 conda activate /home/user1/.conda/envs/my_env
 python /home/user1/jobs/my_code.py
 conda deactivate

Puis soumettre le job avec la commande sbatch job.slurm depuis login-hpc.