Plateforme Jupyter Notebooks

JupyterLab est un environnement web de développement interactif. Vous pouvez développer du code, rédiger de la documentation, exécuter votre code, visualiser les résultats, y compris les graphiques, dans un même document. C’est donc un outil pratique pour explorer les données et partager votre travail (document, code, résultat) avec d’autres. Pour plus d’informations, veuillez vous référer au site web du projet Jupyter.

La plateforme Jupyter Notebooks du CC-IN2P3 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 utilisateurs.

Accès

Vous pouvez accéder à ce service depuis l’URL : notebook.cc.in2p3.fr.

L’accès est accordé via la fédération d’identité eduGAIN ou en saisissant l’identifiant et le mot de passe de votre compte calcul.

Important

La connexion via eduGAIN à la plateforme Jupyter requiert non seulement d’être reconnue par la fédération, mais aussi de posséder un compte calcul valide (qui n’a pas expiré) et de pouvoir faire le lien entre les deux : l’adresse e-mail rattachée à votre identité eduGAIN doit être la même que celui de votre compte au CC-IN2P3. Veuillez vérifier ces informations comme expliqué dans le paragraphe Gestion du compte.

En cas de problème, privilégiez la connexion en saisissant les identifiants de votre compte calcul (contactez le support utilisateurs pour une assistance complémentaire).

Attention

Si vous êtes membres de plusieurs groupes, c’est le groupe principal qui sera retenu comme gid dans le notebook, ce qui aura pour conséquence que tous les fichiers créés seront associés à ce groupe. Vérifiez votre groupe principal lors de la connexion à la plateforme et, le cas échéant, changez votre groupe principal. Si vous êtes connecté lors de l’utilisation de cette commande, vous devrez faire une déconnexion / reconnexion à la plateforme pour prendre en compte ce changement.

Après authentification, votre serveur de notebook JupyterLab sera lancé et persistera jusqu’à votre déconnexion (la fermeture de la page Web n’arrête pas le notebook).

Une fois connecté, le serveur de notebooks fournira l’accès aux zones de stockage suivantes :

Note

Les répertoires SPS doivent être ajoutés pour être disponibles via le serveur de notebook. Demandez au support utilisateurs si vous ne trouvez pas ceux attendus.

Le répertoire d’accueil du notebook est placé dans le 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 avec le mécanisme des noyaux.

Gestion des noyaux

CC-IN3P3 fournit également des scripts spécifiques pour vous aider à mettre en place des noyaux personnalisés à partir des environnements Python, ROOT, Julia, Golang, R et C++/ROOT disponibles. La recette pour inclure un tel noyau personnalisé dans votre instance JupyterLab est donnée dans la section ci-dessous.

Fonctionnalité de Dask

La plateforme Jupyter Notebooks permet d’exécuter des tâches Dask sur la platforme de calcul du CC-IN2P3. Cette fonctionnalité est décrite en détail ci-dessous.

Conseils pratiques

  • Démarrage

    • S’il vous est impossible d’ouvrir un serveur de notebook, veuillez suivre l’une des démarches suivantes classées par priorité :

      • vérifiez que votre HOME ne soit pas plein avec la commande df -h $HOME ;

      • videz le cache de votre navigateur ;

      • supprimez le répertoire $HOME/.local/share/jupyter/runtime ;

      • supprimez le répertoire $HOME/.jupyter/lab/workspaces ;

      • supprimez le répertoire $HOME/.local/etc/jupyter (ou renommez-le $HOME/.local/etc/jupyter.bak) ;

      • supprimez le répertoire $HOME/.jupyter (ou renommez-le $HOME/.jupyter.bak). Si pas sauvegardé, le fichier $HOME/.jupyter/jupyter_notebook_config.py pourra être re-généré par la commande jupyter notebook --generate-config depuis un serveur de Notebooks uniquement.

  • Exécution

    • Les STDOUT et STDERR de votre serveur de notebook sont envoyés à /var/log/notebookserver/notebookserver.log accessible depuis un terminal sur votre serveur de notebooks ;

    • Les notebooks ne sont pas limités en nombre de CPU ou temps d’utilisation ; ils sont limités en RAM par groupe ou par login. Par défaut, tout groupe bénéficie de 2 Go, veuillez contacter support utilisateurs pour demander plus de mémoire.

  • Logout

    • Pour arrêter votre serveur de notebook, utilisez File > Log Out :

      • Les serveurs de notebook CPU inactifs sont détruits après 72 heures ;

      • Les serveurs de notebook GPU inactifs sont détruits après 24 heures.

Extensions JupyterLab disponibles

Pour obtenir la liste complète des extensions disponibles, utilisez la commande suivante sur un terminal de votre notebook :

% jupyter labextension list

Voici les extensions principales :

  • Voilà permet la prévisualisation d’un notebook en HTML, cette prévisualisation peut se faire soit dans JupyterLab, soit dans un nouvel onglet du navigateur (dans ce cas, il faut autoriser les fenêtes pop-up). L’interactivité fournie par les extensions ipywidgets et ipympl (voir ci-dessous) peut être conservée, pour plus de détails merci de consultez le dépôt officiel de Voilà ;

  • Jupytext offre la possibilité de synchroniser ses notebooks dans d’autres formats, tels que le Markdown, qui permettra ainsi le stockage de ses notebooks dans des dépôts Git, pour plus de détails, merci de consulter le dépôt officiel de Jupytext ;

  • ipywidgets permet d’accroître l’interactivité avec le notebook grâce à des gadgets logiciels (widgets), pour plus de détails merci de consulter le dépôt officiel de ipywidgets ;

  • ipympl offre de l’interactivité avec les graphes créés avec matplotlib, pour plus de détails merci de consulter le dépôt officiel de ipympl ;

  • jupyterlab-git fournit un contrôle de version en utilisant Git. Veuillez consulter le dépôt officiel JupyterLab-Git ;

  • jupyterlab-latex permet la prévisualisation de documents LaTeX (fichiers *.tex) directement dans un notebook, pour plus de détails merci de consulter le dépôt officiel de jupyterlab-latex. LaTeX peut aussi être utilisé pour les légendes dans matplotlib et pour convertir et exporter un notebook en document PDF ;

  • dask-labextension permet de gérer les graphiques du Dashboard de Dask directement dans les panneaux de JupyterLab. Veuillez consulter le dépôt officiel de Dask-Labextension.

Si vous avez besoin d’aide pour utiliser la plateforme JupyterLab, ou pour configurer votre noyau personnalisé, veuillez contacter le support utilisateurs.