Plateforme Jupyter Notebooks¶
Description du service¶
JupyterLab est un environnement web de développement interactif pour les “Notebooks”, ou bloc-notes, Jupyter, le code et les données. Un Notebook Jupyter est une application web qui vous permet de créer et de partager des documents contenant du code, du texte descriptif, de la visualisation et des équations. C’est donc un moyen pratique d’explorer les données, de documenter et de partager son travail. Vous pouvez trouver plus d’informations sur le site web du projet Jupyter. La plateforme Jupyter Notebooks est destinée à tout utilisateur disposant d’un compte calcul au CC-IN2P3.
Pour une compréhension générale de l’outil, veuillez vous référer à la documentation officielle de JupyterLab. Si vous rencontrez un problème, veuillez soumettre un ticket au support utilisateur.
Accès¶
Vous pouvez accéder à ce service en cliquant sur ce lien : notebook.cc.in2p3.fr. L’accès est accordé via la fédération eduGAIN ou en saisissant votre identifiant et votre mot de passe de votre compte calcul. Après l’authentification, votre serveur de bloc-notes JupyterLab sera lancé et persistera jusqu’à votre déconnexion (la fermeture de la page Web n’arrête pas le bloc-note).
Une fois connecté, le serveur de notebooks fournira l’accès aux zones de stockage suivantes :
- répertoire HOME :
/pbs/home/u/username
- répertoire THRONG :
/pbs/throng
- répertoire SOFTWARE :
/pbs/software
- répertoire SPS :
/sps/x
selon vos groupes primaire et secondaires
Note
Les répertoires SPS doivent être ajoutés pour être disponibles via le serveur Notebook. Demandez au support utilisateur si vous ne trouvez pas ceux attendus.
L’interface du bloc-note est placée dans le répertoire HOME de l’utilisateur. Pour naviguer dans l’interface vers les autres répertoires listés ci-dessus, créez dans votre HOME les liens symboliques appropriés. Exemple :
% ln -s /pbs/throng/ccin2p3 $HOME/throng_ccin2p3
Les notebooks sont fournis avec l’interpréteur Python inclus dans une distribution récente d’Anaconda. Si l’environnement Python fourni par défaut ne répond pas à vos besoins, vous pouvez ajouter le vôtre.
La recette pour inclure un tel noyau personnalisé dans votre instance JupyterLab est donnée dans la section ci-dessous. Le CC-IN2P3 fournit également des scripts spécifiques pour vous aider à configurer des noyaux personnalisés à partir d’environnements Python ou ROOT disponibles.
- Derniers conseils :
- Les notebooks sont limités en RAM selon votre groupe. Par défaut, tout groupe bénéficie de 2 Go ;
- Les notebooks inactifs sont détruits après 72 heures ;
- Les
STDOUT
etSTDERR
de votre serveur de notebooks sont envoyés à/var/log/notebookserver/notebookserver.log
; - Pour arrêter votre serveur de notebook, utilisez
File > Log Out
.
Ajouter un noyau personnalisé¶
Pour ajouter un noyau personnalisé, il faut fournir à Jupyter un fichier de configuration approprié :
Tout d’abord, créez un nouveau répertoire dans
$HOME/.local/share/jupyter/kernels/
, disonspython-3.7
(dans cet exemple nous voulons ajouter un noyau personnalisé Python 3.7)Si l’arborescence des répertoires n’existe pas encore, vous devez la créer.
% mkdir -p $HOME/.local/share/jupyter/kernels/python-3.7
Allez dans ce répertoire et créez un fichier
kernel.json
% cd $HOME/.local/share/jupyter/kernels/python-3.7 % vi kernel.json
Le fichier
kernel.json
ressemblera à ceci :{ "display_name": "conda3", "language": "python", "argv": [ "<PATH TO THE SCRIPT>/jupyter-helper.sh", "-f", "{connection_file}" ] }
display_name
est le nom que vous souhaitez donner à votre noyau personnalisé et sera affiché dans votre instance JupyterLab. Vous pouvez également mettre à jour le paramètrelanguage
. Mais la partie la plus importante est le scriptjupyter-helper.sh
.Le script
jupyter-helper.sh
fournira les détails pour configurer l’environnement du nouveau noyau. Ce script ressemblera à ceci :#!/bin/bash source /pbs/software/centos-7-x86_64/anaconda/3.7/etc/profile.d/conda.sh conda activate exec python -m ipykernel_launcher "$@"
La première partie configure l’environnement requis (ici, nous mettons en place un environnement Anaconda), et la dernière ligne indique à Jupyter comment démarrer ce nouveau noyau.
Scripts disponibles pour ajouter un noyau personnalisé¶
Le CC-IN2P3 fournit le script jupyter-helper.sh
pour configurer des noyaux personnalisés, par exemple pour les environnements
ROOT ou Python les plus récents déjà fournis dans la zone logicielle du CC-IN2P3. La liste complète des scripts disponibles se trouve dans le fichier suivant :
/pbs/software/centos-7-x86_64/jupyter_kernels/jupyter_helper_scripts
Pour les langages Golang, Julia, R et C++/ROOT, des noyaux prêts à l’emploi sont disponibles à l’emplacement suivant :
/pbs/software/centos-7-x86_64/jupyter_kernels/
Afin de les rendre disponible dans votre bloc-note, il suffit de copier le répertoire du noyau désiré, ici Golang v1.13.6, dans l’emplacement dédié de son répertoire utilisateur $HOME/.local/share/jupyter/kernels/
:
% cp -r /pbs/software/centos-7-x86_64/jupyter_kernels/Golang-1.13.6 $HOME/.local/share/jupyter/kernels/.
Extensions JupyterLab disponibles¶
Des extensions à JupyterLab sont disponibles:
ipywidgets
, permet d’accroître l’interactivité avec le bloc-note grâce à des gadgets logiciels (widgets), voir le GitHub ipywidgets ;ipympl
, offre de l’interactivité avec les graphes créés avec matplotlib, voir le GitHub ipympl ;jupyter-lab
permet la prévisualisation de documents LaTeX (fichiers*.tex
) directement dans un bloc-note, voir le GitHub jupyter-lab ;- LaTeX peut aussi être utilisé pour les légendes des graphes créés avec matplotlib et pour convertir et exporter un bloc-note en document PDF.
Si vous avez besoin d’aide pour utiliser ces scripts, ou devez configurer votre propre noyau personnalisé, ceuillez contacter le support utilisateur.