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 :

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 et STDERR 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é :

  1. Tout d’abord, créez un nouveau répertoire dans $HOME/.local/share/jupyter/kernels/, disons python-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
    
  2. 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ètre language. Mais la partie la plus importante est le script jupyter-helper.sh.

  3. 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.