Outils supplémentaires sur les serveurs GPU#
Outils sous Xpra#
Le système inclus un émulateur X11, xpra
[2] , qui permet d’éxécuter dans un
navigateur des applications graphiques X11 sur le serveur. On lance xpra à
partir de l’interface jupyterlab, et dans un nouvel onglet on a un
environnement X11 qui tourne sur le serveur.
Warning
Attention Lorsque que vous avez terminé l’utilisation de Xpra, il faut l’arréter et pas se contenter de fermer la fenêtre.
Pour arrêter Xpra, allez dans le menu le plus à gauche et sélectionner Disconnect
.
IDE Python Spyder#
Dans le terminal, on peut alors lancer des applications graphiques, comme par exemple spyder[3], qui est un IDE Python. Pour cela, on éxecute dans le terminal Xpra les commandes suivantes:
cd GPU
source /var/lib/jupyterhub/venvs/tf/bin/activate
spyder
qui ouvre spyder dans le répertoire GPU où on peut charger le programme Python TensorFlowLSTM.py
que l’on éditer et debugger avec spyder [3].
Attention, avec spyder, on doit bien sur spécifier l’environnement virtuel Python que l’on veut utiliser (ici Tensor Flow).

Tensorboard#
Tensorboard[4] est outil d’analyse en IA qui fournit les mesures et les visualisations nécessaires au cours du workflow d’apprentissage automatique. Il permet de suivre les métriques de l’apprentissage telles que la perte et la précision, de visualiser les graphiques du modèle, et bien plus encore.
Pour utiliser tensorboard dans un notebook, on l’initialise au début du notebook dans une cellule
# Load the TensorBoard notebook extension
%load_ext tensorboard
et on efface les logs précédents.
Avec tensorflow, lors de l’apprentissage du modèle avec Model.fit()
(avec Keras) , on ajoute
un appel à tf.keras.callbacks.TensorBoard
qui permet de créer les journaux (logs) (dans le répertoire spécifié) et
des histogrammes de calcul pour chaque époque avec histogram_freq=1
(qui est désactivée par défaut).
A la fin de l’apprentissage, on lance le programme tensorboard
avec la commande:
tensorboard --logdir logs/fit
puis on ouvre un nouvel onglet dans le navigateur pour accéder à la page d’analyse tensorboard en entrant l’URL suivante:
https://iagpu2-streamlit.univ-lyon1.fr/tensorboard1/
qui fournit une analyse de l’apprentissage comme le montre la figure ci-dessous.

Le notebook python utilisé avec tensorboard est donné dans la section suivante.
Warning
Attention l’interface tensorboard est partagé entre tous les utilisateurs, car tensorboard
utilise un serveur web avec des ports réservés. Pensez à arreter tensorboard avec ctrl+C
et
le notebook.
Par défaut, 2 ports sont réservés à tensorboard:
le port 6006 qui est le port par défaut
le port 6007 que l’on peut utiliser si le premier est déja utilisé en spécifiant:
tensorboard --port=6007 --logdir logs/fit
Dans ce cas, l’URL à utilisé pour visualiser le résultat est la suivante:
https://iagpu2-streamlit.univ-lyon1.fr/tensorboard2/
Programmation C++ (cling)#
Un noyau Jupyter C++ est aussi disponible, utilisant l’interpréteur cling.
Vous trouverez dans les sections suivantes un exemple d’utilisation de ce noyau
Pour l’ustilisation de cuda, les fichiers d’entêtes cuda sont dans /usr/local/cuda/include
et les bibliothèques sont dans
/usr/local/cuda/lib64
. Les outils cuda (nvcc, ..) sont dans /usr/local/cuda/bin