JupyterNotebook/fr: Difference between revisions
No edit summary |
No edit summary |
||
Line 42: | Line 42: | ||
=== Jupyter Lmod === | === Jupyter Lmod === | ||
[https://github.com/cmd-ntrf/jupyter-lmod Jupyter Lmod] est un module d'extension permettant d'interagir avec les modules d'environnement avant le lancement des noyaux (''kernels''). | [https://github.com/cmd-ntrf/jupyter-lmod Jupyter Lmod] est un module d'extension permettant d'interagir avec les modules d'environnement avant le lancement des noyaux (''kernels''). Il utilise l'interface Python de Lmod pour accomplir des tâches reliées aux modules comme le chargement, le déchargement, la sauvegarde des collections, etc. | ||
{{Commands | {{Commands |
Revision as of 16:51, 25 October 2017
Introduction
Project Jupyter est un projet open source sans but lucratif dont la mission est de soutenir le calcul scientifique et la science des données interactives. Initié en 2014 dans le cadre du IPython Project, la portée de Project Jupyter s'étend à plusieurs autres langages de programmation.
L'application web Jupyter Notebook rend possibles la création et le partage de documents contenant aussi bien du code, des équations, des visualisations que du texte.
Jupyter Notebook fonctionne sur un nœud de calcul ou sur un nœud de connexion (non recommandé). Pour ce qui est des nœuds de connexion, diverses limites sont imposées tant pour l'utilisateur que pour les processus et les applications sont parfois terminées quand elles utilisent trop de temps CPU ou de mémoire. Dans le cas des nœuds de calcul, la tâche est soumise avec la spécification du nombre de CPUs ou GPUs à utiliser, la quantité de mémoire et le temps d'exécution. Les directives qui suivent concernent la soumission d'une tâche Jupyter Notebook.
Certains de nos partenaires régionaux mettent à la disposition des utilisateurs un portail JupyterHub offrant des configurations Jupyter Notebook préétablies. Pour plus d'information, consultez JupyterHub.
Installation
Ces directives permettent d'installer Jupyter Notebook avec la commande pip
dans un environnement virtuel Python dans votre répertoire home. Les directives sont valides pour la version 3.5.2 de Python, mais vous pouvez installer l'application pour d'autres versions en chargeant le module Python approprié.
- Chargez le module Python.
-
[name@server ~]$ module load python/3.5.2
-
- Créez un nouvel environnement virtuel Python.
-
[name@server ~]$ virtualenv $HOME/jupyter_py3
-
- Activez votre nouvel environnement virtuel Python.
-
[name@server ~]$ source $HOME/jupyter_py3/bin/activate
-
- Installez Jupyter Notebook dans votre nouvel environnement virtuel Python.
-
(jupyter_py3)[name@server $] pip install jupyter
-
- Dans votre nouvel environnement virtuel, créez un script (wrapper) pour lancer Jupyter Notebook.
-
(jupyter_py3)[name@server $] echo -e '#!/bin/bash\nunset XDG_RUNTIME_DIR\njupyter notebook --ip $(hostname -f) --no-browser' > $VIRTUAL_ENV/bin/notebook.sh
-
- Enfin, rendez le script exécutable.
-
(jupyter_py3)[name@server $] chmod u+x $VIRTUAL_ENV/bin/notebook.sh
-
Installer des modules d'extension
Les modules d'extension ajoutent des fonctionnalités et peuvent modifier l'interface utilisateur de l'application.
Jupyter Lmod
Jupyter Lmod est un module d'extension permettant d'interagir avec les modules d'environnement avant le lancement des noyaux (kernels). Il utilise l'interface Python de Lmod pour accomplir des tâches reliées aux modules comme le chargement, le déchargement, la sauvegarde des collections, etc.
(jupyter_py3)[name@server $] pip install jupyterlmod
(jupyter_py3)[name@server $] jupyter nbextension install --py jupyterlmod --sys-prefix
(jupyter_py3)[name@server $] jupyter nbextension enable --py jupyterlmod --sys-prefix
(jupyter_py3)[name@server $] jupyter serverextension enable --py jupyterlmod --sys-prefix
RStudio Launcher
Jupyter Notebook peut démarrer une session RStudio session qui utilise le système d'authentification par jeton de Jupyter Notebook. RStudio Launcher crée l'option RStudio Session dans la liste déroulante New de Jupyter Notebook.
(jupyter_py3)[name@server $] pip install nbserverproxy
(jupyter_py3)[name@server $] pip install git+https://github.com/cmd-ntrf/nbrsessionproxy
(jupyter_py3)[name@server $] jupyter serverextension enable --py nbserverproxy --sys-prefix
(jupyter_py3)[name@server $] jupyter nbextension install --py nbrsessionproxy --sys-prefix
(jupyter_py3)[name@server $] jupyter nbextension enable --py nbrsessionproxy --sys-prefix
(jupyter_py3)[name@server $] jupyter serverextension enable --py nbrsessionproxy --sys-prefix
Activer l'environnement
Une fois que Jupyter Notebook est installé, vous n'aurez qu'à recharger le module Python associé à votre environnement lorsque vous vous connectez à la grappe.
[name@server ~]$ module load python/3.5.2
Activez ensuite l'environnement virtuel dans lequel Jupyter Notebook est installé.
[name@server ~]$ source $HOME/jupyter_py3/bin/activate
RStudio Server (optionnel)
Pour utiliser RStudio Launcher, lancez le module RStudio Server.
(jupyter_py3)[name@server $] module load rstudio-server
Lancer Jupyter Notebook
Pour lancer l'application, soumettez une tâche interactive. Ajustez les paramètres selon vos besoins. Pour plus d'information, consultez Exécuter des tâches.
[name@server ~]$ salloc --time=1:0:0 --ntasks=1 --cpus-per-task=2 --mem-per-cpu=1024M --account=def-yourpi srun notebook.sh
salloc: Granted job allocation 1422754
[I 14:07:08.661 NotebookApp] Serving notebooks from local directory: /home/fafor10
[I 14:07:08.662 NotebookApp] 0 active kernels
[I 14:07:08.662 NotebookApp] The Jupyter Notebook is running at:
[I 14:07:08.663 NotebookApp] http://cdr544.int.cedar.computecanada.ca:8888/?token=7ed7059fad64446f837567e32af8d20efa72e72476eb72ca
[I 14:07:08.663 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 14:07:08.669 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://cdr544.int.cedar.computecanada.ca:8888/?token=7ed7059fad64446f837567e32af8d20efa72e72476eb72ca
Se connecter à Jupyter Notebook
Puisque les nœuds de calcul ne sont pas directement accessibles par l'Internet, vous devez créer un tunnel SSH entre la grappe et votre poste de travail pour que votre fureteur web puisse avoir accès à Juniper Notebook opérant sur un nœud de calcul.
Sous Linux ou MacOS X
Nous recommandons le paquet Python sshuttle.
Sur votre poste de travail, ouvrez une nouvelle fenêtre terminal et lancez la commande sshuttle pour créer le tunnel.
[name@my_computer $] sshuttle --dns -Nr userid@machine_name
Puis copiez-collez l'adresse URL dans votre fureteur. Dans l'exemple précédent, le résultat est
Sous Windows
Pour créer un tunnel SSH, utilisez MobaXTerm comme suit :
Ouvrez deux sessions MobaXTerm.
- La session 1 étant la connexion à une grappe. (voir la section Lancer Jupyter Notebook ci-dessus).
- La session 2 étant un terminal local dans lequel créer le tunnel SSH. Lancez la commande suivante où ???
Cette commande ??? Le port 8888 est transmis à cdr544.int.cedar.computecanada.ca:8888
qui est le nom de ???
[name@my_computer ]$ ssh -L 8888:cdr544.int.cedar.computecanada.ca:8888 someuser@cedar.computecanada.ca
Cette commande ??? Le port 8888 est transmis à cdr544.int.cedar.computecanada.ca:8888
qui est le nom de ???
Dans votre fureteur, entrez
http://localhost:8888/?token=7ed7059fad64446f837567e32af8d20efa72e72476eb72ca
Remplacez le jeton par celui que vous avez obtenu dans la session 1. Autrement, vous pouvez entrer http://localhost:8888
et copier-coller le jeton à l'invite.
Fermer Jupyter Notebook
Pour fermer le serveur Jupyter Notebook avant la fin du temps d'exécution, appuyez deux fois sur CTRL-C dans le terminal où la tâche interactive a été lancée.
Si le tunnel a été créé avec MobaXTerm, qppuyez sur CTRL-D dans la session 2 pour fermer le tunnel.
Adding kernels
It is possible to add kernels for other programmming languages or Python versions different than the one running the Jupyter Notebook. Refer to Making kernels for Jupyter to learn more.
The installation of a new kernel is done in two steps.
- Installation of the packages that will allow the language interpreter to communicate with Jupyter Notebook.
- Creation of a file that will indicate to Jupyter Notebook how to initiate a communication channel with the language interpreter. This file is called a kernel spec file.
Each kernel spec file has to be created in its own subfolder inside a folder in your home directory with the following path ~/.local/share/jupyter/kernels
. Jupyter Notebook does not create this folder, so the first step in all cases is to create it. You can use the following command.
[name@server ~]$ mkdir -p ~/.local/share/jupyter/kernels
In the following sections, we provide a few examples of the kernel installation procedure.
Anaconda
Before installing an Anaconda kernel, make sure you have read the documentation and installed Anaconda.
- Load the Anaconda module.
[name@server ~]$ module load miniconda3
- Optional: Activate a specific conda virtual environment.
[name@server ~]$ source activate <your env>
- Install the
ipykernel
library.[name@server ~]$ conda install ipykernel
- Generate the kernel spec file.
[name@server ~]$ python -m ipykernel install --user --name <unique identifier without white space> --display-name "My Anaconda 3 Kernel"
- Optional: Deactivate the virtual environment.
[name@server ~]$ source deactivate
For more information, see the ipykernel documentation.
Julia
- Load the Julia module.
[name@server ~]$ module load julia
- Activate the Jupyter Notebook virtual environment.
[name@server ~]$ source $HOME/jupyter_py3/bin/activate
- Install IJulia.
[name@server ~]$ echo 'Pkg.add("IJulia")' | julia
For more information, see the IJulia documentation.
R
- Load the R module.
[name@server ~]$ module load r
- Activate the Jupyter Notebook virtual environment.
[name@server ~]$ source $HOME/jupyter_py3/bin/activate
- Install the R kernel dependencies.
[name@server ~]$ R -e "install.packages(c('crayon', 'pbdZMQ', 'devtools'), repos='http://cran.us.r-project.org')"
- Install the R kernel.
[name@server ~]$ R -e "devtools::install_github(paste0('IRkernel/', c('repr', 'IRdisplay', 'IRkernel')))"
- Install the R kernel spec file.
[name@server ~]$ R -e "IRkernel::installspec()"
For more information, see the IRKernel documentation.