Jean Zay : Accès à JupyterHub

Les équipes de l'IDRIS ont mis en place JupyterHub, une solution permettant d'utiliser les Jupyter Notebooks et d'autres applications comme MLflow ou Dask via une interface web sans connexion SSH préalable à la machine. Une procédure a été mise en place pour se connecter à cet outil et avoir accès aux frontales ainsi qu'aux nœuds de calcul via Slurm.

La présentation de l'outil faite au comité des utilisateurs du 16/09/2022 est disponible ici (attention, cette présentation a été conçue avant l'introduction du SSH-spawner permettant de créer une instance JupyterLab sur un nœud frontal).

Accès à JupyterHub

L'accès à l'outil se fait sur le site suivant : https://jupyterhub.idris.fr. Les modalités de connexion sont similaires à celles pour l'accès aux frontales de Jean Zay :

  • On utilise le même nom d'utilisateur et le même mot de passe que pour accéder à la machine

Accès via une machine intermédiaire

Si vous vous connectez habituellement à Jean Zay via une machine intermédiaire, vous pouvez utiliser une redirection dynamique de port pour accéder à notre instance JupyterHub.

Le démarrage de la redirection de port se fait via la commande suivante :

ssh -D localhost:9080 -N -f login_machine_proxy@machine_proxy

Les paramètres login_machine_proxy et machine_proxy doivent être remplacés par votre nom d'utilisateur sur la machine intermédiaire et l'adresse de celle-ci. Les options -N -f permettent de démarrer la redirection de port sans démarrer une session interactive sur la machine intermédiaire.

Attention : une redirection statique de port ne fonctionnera pas pour utiliser JupyterHub. Pour plus d'informations sur les différences entre redirection statique et dynamique de port, vous pouvez consulter l'article suivant (en anglais) : How to set up SSH dynamic port forwarding on Linux.

Il est ensuite nécessaire de configurer votre navigateur pour qu'il utilise la redirection de port que vous avez démarrée. La façon de faire peut différer légèrement selon les navigateurs mais le principe reste similaire.

Par exemple, si vous utilisez Firefox, vous devez cliquer sur l'entrée “Paramètres” du menu principal puis trouver la section “Paramètres réseau” et cliquer sur le bouton “Paramètres…”.

Vous pourrez alors reproduire la configuration visible sur la capture d'écran ci-dessous qui permet d'utiliser un proxy “SOCKS” local (adresse 127.0.0.1) sur le port 9080 défini lors du lancement de la redirection de port :

Une fois votre navigateur configuré, vous pourrez accéder à notre instance JupyterHub directement via l'adresse https://jupyterhub.idris.fr.

Remarque : Lorsque vous utilisez cette configuration, l'ensemble des connexions effectuées avec votre navigateur passent par votre machine intermédiaire. S'il ne s'agit pas d'un comportement désiré, vous pouvez définir différents profils dans votre navigateur ou utiliser un navigateur différent pour accéder à JupyterHub.

Accès via un VPN

Si vous utilisez un VPN pour vous connecter à Jean Zay mais que la connexion à JupyterHub ne fonctionne pas, prenez contact avec votre équipe informatique pour confirmer que le VPN est configuré de telle sorte à ce que le trafic vers https://jupyterhub.idris.fr soit routé via le VPN.

Créer une nouvelle instance JupyterLab

Pour lancer un notebook, il faut créer une instance JupyterLab sur un nœud.

Vous pouvez alors choisir de créer l'instance soit sur un nœud frontal (par exemple pour avoir un accès à Internet), soit sur un nœud de calcul en réservant des ressources via Slurm. Vous devrez pour chacun de ces deux cas sélectionner les différentes options (espace de travail, ressources allouées, comptabilité, etc).

Choisir son noyau

L'IDRIS met à disposition des noyaux conçus à partir des modules installés sur Jean Zay. Vous y trouverez notamment toutes les versions de Python, Tensorflow et PyTorch installées. Vous pouvez créer un nouveau notebook avec le noyau souhaité via le lanceur :

Il est également possible de changer le noyau sur un notebook déjà créé en cliquant sur le nom du noyau en haut à droite de l'écran

Cela ouvrira une boîte de dialogue dans laquelle vous pourrez sélectionner le noyau voulu.

Fonctionnalités avancées

D'autres fonctionnalités plus avancées sont disponibles sur JupyterHub telles que l'utilisation de Tensorboard, MLFlow, création de noyaux personnalisés, etc. Ces fonctionnalités sont décrites dans la documentation technique de JupyterHub : https://jupyterhub.idris.fr/services/documentation/