Outils pour utilisateurs

Outils du site


python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
python [2019/07/17 12:27] – nicwagnepython [2026/10/21 07:37] (Version actuelle) – admin
Ligne 1: Ligne 1:
-====== Quelques informations concernant l'utilisation de python sur la plateforme======+====== Python ======
  
-===== Problème concernant le lock files avec Keras et H5PY=====+Cette page explique comment installer votre propre Python, avec les bibliothèques dont vous avez besoin, et l'utiliser dans vos jobs. Tout s'installe dans votre répertoire personnel.
  
-Si vous utilisez une bibliothèque pour manipuler des fichiers, il est possible que vous rencontriez un problème lié au lock file. En effet, sur toutes les machines utilisant CentOs (les noeuds liés à frontalhpc), il semblerait que le NFS (système de fichier en réseau) ait un paramètre visant à bloquer les lock files. +On utilise **Miniforge**, une version légère de conda. Elle permet de créer des **environnements** : chacun contient sa propre version de Python et ses propres bibliothèques.
  
-Voici la solution pour contourner ce problème si vous utilisez la bibliothèque de deep learning 'Keras'. Par exemple, si vous souhaitez enregistrer un modèle avec des checkpoints, vous risquez d'avoir une erreur. Keras utilise la bibliothèque H5PY pour enregistrer ses modèles et c'est cette bibliothèque qui renvoie l'erreur. Pour la résoudre, il faut lui spécifier, via une variable d'environnement, de ne pas utiliser les lock file:+===== Tuto rapide =====
  
-  export HDF5_USE_FILE_LOCKING="FALSE" +==== 1. Se connecter à christmas ==== 
-   + 
-Vous pouvez insérer cette commande dans votre script d'exécution ou encore dans votre bashrc. +L'installation se fait depuis le serveur ''christmas'' (ou ''l40s02''), pas depuis le frontal : le frontal est un petit serveur, il n'est pas fait pour ça. 
 + 
 +Dans un terminal de votre PC, tapez : 
 + 
 +<code bash> 
 +ssh login@christmas 
 +</code> 
 + 
 +Vous arrivez dans votre répertoire personnel : c'est le même que sur le frontal et sur les nœuds de calcul. 
 + 
 +==== 2. Installer Miniforge (une seule fois) ==== 
 + 
 +Dans le terminal, tapez : 
 + 
 +<code bash> 
 +wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh 
 +bash Miniforge3-Linux-x86_64.sh -b -p miniforge3 
 +rm Miniforge3-Linux-x86_64.sh 
 +</code> 
 + 
 +Miniforge est installé dans le répertoire ''miniforge3''. 
 + 
 +==== 3. Créer un environnement ==== 
 + 
 +Dans le terminal, tapez : 
 + 
 +<code bash> 
 +source ~/miniforge3/etc/profile.d/conda.sh 
 +conda create -n mon_env python=3.12 -y 
 +conda activate mon_env 
 +</code> 
 + 
 +Installez ensuite les bibliothèques dont vous avez besoin, par exemple : 
 + 
 +<code bash> 
 +pip install numpy pandas 
 +</code> 
 + 
 +''mon_env'' est le nom de l'environnement : choisissez celui que vous voulez. 
 + 
 +==== 4. Utiliser l'environnement dans un job ==== 
 + 
 +Ajoutez ces deux lignes dans votre script, avant d'appeler Python : 
 + 
 +<file bash mon_job.sh> 
 +#!/bin/bash 
 + 
 +source ~/miniforge3/etc/profile.d/conda.sh 
 +conda activate mon_env 
 + 
 +python mon_script.py 
 +</file> 
 + 
 +Puis lancez le job depuis le frontal, comme d'habitude : 
 + 
 +<code bash> 
 +sbatch mon_job.sh 
 +</code> 
 + 
 +C'est tout ! La suite de la page est facultative. 
 + 
 +---- 
 + 
 +===== Pour aller plus loin ===== 
 + 
 +==== Retrouver son environnement ==== 
 + 
 +À chaque nouvelle connexion, pour utiliser votre environnement dans le terminal (par exemple pour installer une nouvelle bibliothèque), tapez : 
 + 
 +<code bash> 
 +source ~/miniforge3/etc/profile.d/conda.sh 
 +conda activate mon_env 
 +</code> 
 + 
 +Dans ces commandes, ''~'' désigne votre répertoire personnel : elles fonctionnent quel que soit le répertoire où vous vous trouvez. 
 + 
 +==== Gérer ses environnements ==== 
 + 
 +  * Voir la liste de vos environnements : ''conda env list'' 
 +  * Supprimer un environnement : ''conda env remove -n mon_env'' 
 + 
 +Les environnements prennent beaucoup de place et comptent dans votre quota : évitez d'en créer trop, et supprimez ceux dont vous ne vous servez plus. 
 + 
 +==== Ne pas utiliser conda init ==== 
 + 
 +Conda propose de lancer ''conda init'' pour s'activer automatiquement à chaque connexion. **Ne le faites pas** : cette commande modifie votre fichier ''.bashrc'' et peut perturber d'autres outils du cluster. Utilisez plutôt la ligne ''source ...'' ci-dessus.
python.1563366442.txt.gz · Dernière modification : 2019/07/17 12:27 de nicwagne