Pod du Laboratoire

Version imprimableVersion imprimableEnvoyer à un amiEnvoyer à un ami

Le "Pod" est un outil de calcul et de développement accessible par le web et mis à disposition des membres du labotatoire.

Comment y accéder 

Il est accessible via l'URL https://math.unice.fr/jhub en utilisant l'accés VPN du Laboratoire. 

Les identifiants pour y accéder sont ceux que vous utilisez pour vous connecter sur les serveurs du laboratoire.

Description du serveur

Le Pod est hébérgé sur un serveur de calcul dont la configuration matérielle est la suivante :

  • 2 Processeur Intel Xeon Platinum 8268   24 cores  2.90GHz, soit 48 cores physiques
  • 768 GBytes de mémoire
  • 14 TBytes de wordir local
  • 2 cartes GPU Nvidia V100s : 5120 cores CUDA, et 32 GBytes de mémoire par carte

Services disponibles

Après connexion, vous avez accés à :

  • Un serveur JupyterLab
    • Python 3.8
    • Interpreteurs C++
    • Interpreteur Fortran
    • Gnuplot
    • Julia
    • Octave
    • R
    • SageMath 9.1
    • Scilab
  • Un serveur JupyterNotebook
  • Un Visual Studio Code server
  • Un RStudio Server
  • Un TensorBoard

Avant toute chose il faut executer les commandes suivantes (seulement à la première utilisation):

  1) Dans un terminal du JupyterLab exécuter les commandes suivantes (Si pas déjà fait par ailleurs):

      2 possibilités:

eval "$(/opt/conda/bin/conda shell.zsh hook)"  ---> à exécuter à chaque nouvelle connexion ou conda init zsh (ou bash) ---> modifie le fichier .zshrc (.bashrc) de façon permanente.

NB: La commande précedente peut-être suivie de :
conda config --set auto_activate_base false pour ne pas activer l'environnement base de conda

Indépendemment de ces environements, il est possible d'ajouter ses propres "launchers", par exemple :

Pour ajouter TensofFlow 2 Gpu dans JupyterLab

ouvrir un terminal et y taper les commandes suivantes :

$ conda create -n tf2-gpu tensorflow-gpu ipykernel

$ conda activate tf2-gpu

$ python -m ipykernel install --user --name 'tf2-gpu' --display-name "TensorFlow-GPU 2.0"

$ kernda ~/.local/share/jupyter/kernels/tf2-gpu/kernel.json -o

Puis rafraichir la page de votre navigateur (F5 ou Ctrl-R)

(Merci à J-B. Caillau for this useful trick when using escape shell sequences !!!)

Cas particulier : le langage Julia

Le langage Julia est installé sur le serveur mais des limitations liées à son gestionnaire de packages nécessitent l'utilisation de cette commande pour l'activer :

Dans un terminal :

$  julia -e 'using Pkg; pkg"update"; pkg"add IJulia"; pkg"precompile"; using IJulia; installkernel("Julia");'

Puis rafraichir la page de votre navigateur (F5 ou Ctrl-R)

 

Petit résumé des commandes de base de manipulation des environements Conda:

1) PréRequis 2 possibilités:

  • eval "$(/opt/conda/bin/conda shell.zsh hook)"  à exécuter à chaque nouvelle connexion
    ou
  • conda init zsh (ou bash) ---> modifie le fichier .zshrc (.bashrc) de façon permanente.
    NB: La commande précedente peut-être suivie de :
    conda config --set auto_activate_base false pour ne pas activer l'environnement base de conda

2) Création d'un environnement avec packages: conda create -n Rstat r-essentials r-base

      Remarque: Pour avoir la dernière version de R (4.x.y) il faut spécifier le channel conda-forge:

      conda create -n Rstat -c conda-forge r-essentials r-base

      NB: Il est également possible d'utiliser un fichier .yml en entrée qui contient la liste des packages et d'autres spécifications. La syntaxe sera alors:

    conda env create -f environment.yml

3) Activer cet environnement : conda activate Rstat

4) Mise à jour des packages d'un environnement : conda activate Rstat ; conda update -n Rstat --all

5) Ajout de packages à un environnement :

      a) le package existe pour conda: conda install -c r r-igraph

      b) le package n'existe pas pour conda, il faut utiliser la commande R : install.packages("lassoshooting")   

      c) si le package s'appuie sur des parties du système : demander à l'admin d'installer les rpm manquants

      d) malgré cela il peut manquer des pré-requis matériels comme pour 'rgl' qui s'appuie sur des primitives
      OpenGL et ne peut fonctionner en l'absence d'une carte graphique Adhoc.

6) Recherche d'un package : conda activate Rstat ; conda search <pkgname>

7) Voir les packages installés dans un environnement: conda activate Rstat ; conda list

8) Supression d'un environnement: conda env remove -n Rstat

9) Suppression des caches, téléchargements: conda clean --all

NB: les fichiers / répertoires en question se trouvent ici : ls -alrt ~/.conda

       Cette commande peut générer des messages d'erreurs concernant les répertoires systèmes et qui peuvent être ignorés

Autres commandes Conda utiles:

- Il est possible de modifier le répertoire par défaut (~/.conda) par exemple pour utiliser un répertoire dans votre workdir

où les temps d'accès sont plus rapides, par exemple : /workdir/<user>/.envs

Il faudra alors spécifier explicitement ce répertoire lors des opérations conda, exemple:

     conda create --prefix ./envs jupyterlab=0.35 matplotlib=3.1 numpy=1.16

- Activation d'un environnement: conda activate ./envs
- Mise à jour d'un environnement: conda env update --prefix ./env <envname>  --prune

NB: L'option --prune indique à conda de supprimer toutes les dépendances inutiles

Pour plus de détails vous pouvez consulter le site suivant :

   https://conda.io/projects/conda/en/latest/user-guide

 

Utilisation de Matlab

Une version "online" de Matlab a été ajoutée au Pod. Vous pouvez l'utiliser en ouvrant une session JupyterLab puis en cliquant sur l'icone "Matlab" présents parmi les launchers.

Il se peut, à la premiére utilisation, qu'une fenêtre vous demande quelle licence utiliser. Il faudra alors rentrer les informations comme indiqué dans cette image :

Soit, cliquer sur Network Licence Manager et indiquer "20001@pcmath237.unice.fr"