Anaconda: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
 
(20 intermediate revisions by 6 users not shown)
Line 2: Line 2:
[[Category:Software]]
[[Category:Software]]
<translate>
<translate>
== Description == <!--T:1-->
<!--T:24-->
Anaconda est une distribution de Python. Nous demandons à nos utilisateurs de '''ne pas installer Anaconda sur nos grappes'''. On vous recommande d'utiliser des autres pistes comme un environnement virtuel ou bien un conteneur [[Apptainer/fr | Apptainer]], pour les cas les plus compliqués.


<!--T:2-->
== N'installez pas Anaconda sur nos grappes == <!--T:26-->
Anaconda est une distribution ''open source'' de [[Python]] et R qui vise à simplifier la gestion et le déploiement de modules.


== Installation == <!--T:3-->
<!--T:27-->
Nous sommes conscients qu'Anaconda est largement utilisé dans plusieurs domaines étudiés par nos utilisateurs (la science des données, l'IA, la bioinformatique, etc). Anaconda est une solution intéressante pour simplifier la gestion de Python et de librairies sur un ordinateur personnel. Cependant, sur une grappe comme celles maintenues par l'Alliance, la gestion des librairies doit être faite par notre personnel, afin d'assurer une compatibilité et une performance maximales. Voici une liste de raisons:


<!--T:4-->
<!--T:28-->
Les distributions de Python installées sur les serveurs de Calcul Canada sont compilées à partir des sources disponibles sur [http://www.python.org python.org]. Les utilisateurs sont cependant libres d'installer Anaconda dans leur propre répertoire. Les instructions suivantes permettent de simplifier cette tâche et ainsi éviter des erreurs de compatibilité.
* Anaconda installe très souvent des logiciels (compilateurs, bibliothèques scientifiques etc.) qui existent déjà sur les grappes de l'Alliance comme modules, avec une configuration qui n'est pas optimale.
* installe des binaires qui ne sont pas optimisés pour les processeurs de nos grappes.
* fait de mauvaises suppositions sur l'emplacement de bibliothèques.
* s'installe dans le <code>$HOME</code> par défaut, où il place une énorme quantité de fichiers. L'installation d'Anaconda seule peut prendre près de la moitié de votre quota sur le nombre de fichiers dans votre espace personnel.
* est plus lent pour installer des paquets
* modifie <code>$HOME/.bashrc</code>, ce qui peut causer des conflits.


<!--T:5-->
== Comment transitionner de Conda vers virtualenv == <!--T:29-->
Afin de limiter le temps d'installation et l'espace de stockage requis, nous favorisons l'installation de [https://conda.io/miniconda.html Miniconda] à celle d'Anaconda. Miniconda fournit Python et le gestionnaire de paquets conda. Vous êtes ensuite libre d'utiliser la commande conda pour installer les logiciels dont vous avez besoin.


=== Répertoire personnel (pour un utilisateur) === <!--T:6-->
<!--T:30-->
[[Python#Creating_and_using_a_virtual_environment|Virtualenv]] vous offre toutes les fonctionnalités dont vous avez besoin pour utiliser Python sur nos grappes. Voici comment passer à virtualenv si vous utilisez Anaconda sur votre ordinateur personnel:


<!--T:7-->
<!--T:31-->
Par défaut, l'installation se fait dans votre répertoire personnel auquel vous seul avez accès. Si vous souhaitez partager votre installation avec l'ensemble de votre groupe, utilisez plutôt les instructions de la section suivante.
# Listez les dépendances (requis) de l'application que vous voulez utiliser. Afin de ce faire, vous pouver :
## Exécuter <code>pip show <nom_paquet></code> depuis votre environement virtuel (si le paquet existe sur [https://pypi.org/ PyPI])
## Ou, vérifier s'il existe un fichier <tt>requirements.txt</tt> dans le dépôt Git.
## Ou, vérifier la variable <tt>install_requires</tt> du fichier <tt>setup.py</tt> qui énumère les requis.
# Trouvez quelles dépendances sont des paquets Python, et lesquelles sont des librairies fournies par Anaconda. Par exemple, CUDA et CuDNN sont des librairies disponible sur l'Anaconda Cloud, mais que vous ne devez pas installer vous-même sur nos grappes. Elles sont déjà installées.
# Retirez de la liste de dépendance tout ce qui n'est pas un paquet Python (par exemple, retirez <code>cudatoolkit</code> et <code>cudnn</code>).
# Utilisez un [[Python#Creating_and_using_a_virtual_environment|virtualenv]], dans lequel vous installerez ces dépendances.


<!--T:8-->
<!--T:32-->
Pour installer Miniconda avec Python 2, lancez la commande
Votre application devrait fonctionner. Si ce n'est pas le cas, n'hésitez pas à contacter notre soutien technique.
{{Command|eb Miniconda2-4.3.27.eb}}


<!--T:9-->
==Usage d'Apptainer== <!--T:35-->
Pour installer Miniconda avec Python 3, lancez la commande
{{Command|eb Miniconda3-4.3.27.eb}}


<!--T:10-->
<!--T:36-->
'''Soyez patient; l'installation de Miniconda peut prendre plusieurs minutes.'''
Dans certaines situations, la complexité des dépendances d'un logiciel exige une solution où l'on peut maîtriser entièrement l'environnement. Pour ces situations, on recommande l'outil [[Apptainer/fr | Apptainer]] : notez qu'une image Docker peut être convertie en image Apptainer. Le seul inconvénient de Apptainer, c'est que les images consomment beaucoup d'espace disque, alors si votre groupe de recherche prévoit d'utiliser plusieurs images, il serait sage de les regrouper ensemble dans un seul répertoire de l'espace projet du groupe pour éviter les doublons.


=== Répertoire de projet (pour un groupe) === <!--T:11-->
== Exemples spécifiques où Anaconda ne fonctionne pas == <!--T:33-->
;R : Une recette conda force l'installation de R. Cette installation ne performe pas aussi bien que le R disponible par les modules (qui lui utilise Intel MKL). Ce même R fonctionne mal et les tâches meurent, gaspillant ainsi des ressources et votre temps.


<!--T:12-->
Pour installer Anaconda avec Python 2, lancez la commande suivante en remplaçant <code><project></code> par l'identifiant du projet:
{{Command|eb --sticky-bit --set-gid-bit --prefix{{=}}$(readlink ~/projects/<project>) Miniconda2-4.3.27.eb}}
<!--T:13-->
Pour Anaconda avec Python 3, lancez la commande suivante en remplaçant <code><project></code> par l'identifiant du projet:
{{Command|eb --sticky-bit --set-gid-bit --prefix{{=}}$(readlink ~/projects/<project>) Miniconda3-4.3.27.eb}}
<!--T:14-->
'''Soyez patient; l'installation de Miniconda peut prendre plusieurs minutes.'''
<!--T:15-->
L'installation de Miniconda produit automatiquement un fichier module que vous pourrez charger à l'aide de la commande du même nom. Pour que la commande module trouve le fichier en question, vous devez lui indiquer où le trouver à l'aide de la commande suivante, en remplaçant <code><project></code> par l'identifiant du projet:
{{Command|module use ~/projects/<project>/modules/*/Core}}
<!--T:16-->
Si vous souhaitez que le module soit disponible chaque fois que vous vous connectez, vous pouvez ajouter la commande précédente à la fin de votre fichier <code>.bashrc</code>.
=== Autres versions === <!--T:17-->
<!--T:18-->
Pour l'installation d'une autre version d'Anaconda, nous vous recommandons de contacter le [[Technical support|soutien technique]].
== Utilisation == <!--T:19-->
<!--T:20-->
Chargez le module Miniconda 2 avec la commande
{{Command|module load miniconda2}}
<!--T:21-->
ou le module Miniconda 3 avec la commande
{{Command|module load miniconda3}}
=== conda === <!--T:22-->
<!--T:23-->
Vous pouvez installer des modules Python dans votre installation de Miniconda en utilisant la commande conda directement. Par exemple, pour installer le module theano, la commande se lirait
{{Command|conda install theano}}
</translate>
</translate>

Latest revision as of 16:08, 16 January 2024

Other languages:

Anaconda est une distribution de Python. Nous demandons à nos utilisateurs de ne pas installer Anaconda sur nos grappes. On vous recommande d'utiliser des autres pistes comme un environnement virtuel ou bien un conteneur Apptainer, pour les cas les plus compliqués.

N'installez pas Anaconda sur nos grappes[edit]

Nous sommes conscients qu'Anaconda est largement utilisé dans plusieurs domaines étudiés par nos utilisateurs (la science des données, l'IA, la bioinformatique, etc). Anaconda est une solution intéressante pour simplifier la gestion de Python et de librairies sur un ordinateur personnel. Cependant, sur une grappe comme celles maintenues par l'Alliance, la gestion des librairies doit être faite par notre personnel, afin d'assurer une compatibilité et une performance maximales. Voici une liste de raisons:

  • Anaconda installe très souvent des logiciels (compilateurs, bibliothèques scientifiques etc.) qui existent déjà sur les grappes de l'Alliance comme modules, avec une configuration qui n'est pas optimale.
  • installe des binaires qui ne sont pas optimisés pour les processeurs de nos grappes.
  • fait de mauvaises suppositions sur l'emplacement de bibliothèques.
  • s'installe dans le $HOME par défaut, où il place une énorme quantité de fichiers. L'installation d'Anaconda seule peut prendre près de la moitié de votre quota sur le nombre de fichiers dans votre espace personnel.
  • est plus lent pour installer des paquets
  • modifie $HOME/.bashrc, ce qui peut causer des conflits.

Comment transitionner de Conda vers virtualenv[edit]

Virtualenv vous offre toutes les fonctionnalités dont vous avez besoin pour utiliser Python sur nos grappes. Voici comment passer à virtualenv si vous utilisez Anaconda sur votre ordinateur personnel:

  1. Listez les dépendances (requis) de l'application que vous voulez utiliser. Afin de ce faire, vous pouver :
    1. Exécuter pip show <nom_paquet> depuis votre environement virtuel (si le paquet existe sur PyPI)
    2. Ou, vérifier s'il existe un fichier requirements.txt dans le dépôt Git.
    3. Ou, vérifier la variable install_requires du fichier setup.py qui énumère les requis.
  2. Trouvez quelles dépendances sont des paquets Python, et lesquelles sont des librairies fournies par Anaconda. Par exemple, CUDA et CuDNN sont des librairies disponible sur l'Anaconda Cloud, mais que vous ne devez pas installer vous-même sur nos grappes. Elles sont déjà installées.
  3. Retirez de la liste de dépendance tout ce qui n'est pas un paquet Python (par exemple, retirez cudatoolkit et cudnn).
  4. Utilisez un virtualenv, dans lequel vous installerez ces dépendances.

Votre application devrait fonctionner. Si ce n'est pas le cas, n'hésitez pas à contacter notre soutien technique.

Usage d'Apptainer[edit]

Dans certaines situations, la complexité des dépendances d'un logiciel exige une solution où l'on peut maîtriser entièrement l'environnement. Pour ces situations, on recommande l'outil Apptainer : notez qu'une image Docker peut être convertie en image Apptainer. Le seul inconvénient de Apptainer, c'est que les images consomment beaucoup d'espace disque, alors si votre groupe de recherche prévoit d'utiliser plusieurs images, il serait sage de les regrouper ensemble dans un seul répertoire de l'espace projet du groupe pour éviter les doublons.

Exemples spécifiques où Anaconda ne fonctionne pas[edit]

R
Une recette conda force l'installation de R. Cette installation ne performe pas aussi bien que le R disponible par les modules (qui lui utilise Intel MKL). Ce même R fonctionne mal et les tâches meurent, gaspillant ainsi des ressources et votre temps.