Jupyter / Jupyter-Hub

Die GWDG bietet Jupyter-Hub im offenen Testbetrieb für interessierte Benutzer von Python, Julia, R oder haskell an.

Was ist Jupyter / Jupyter-Hub?

Juyter bietet die Möglichkeit im Browser interaktiv mit Python, Julia, R oder haskell zu arbeiten. Quellcode kann dabei in einem Editor im Browser eingegeben, ausgeführt und überarbeitet werden. Diese Schritte passieren in einem s.g. „Notebook“. Jedes Notebook hat einen s.g. „Kernel“ der den Typ des Notebooks bestimmt, also ein Python-, Julia-, R- oder haskell-Notebook.

Jupyter-Hub ist das Portal, an dem sich der Benutzer anmeldet, seine laufenden Notebooks verwaltet oder neue startet.

Bitte beachten Sie, dass Jupyter auch auf dem SCC betrieben werden kann, falls höhere Berechnungsressourcen benötigt werden.

Wie wird Jupyter / Jupyter-Hub verwendet?

Voraussetzungen

Da Speicherung und Berechnung serverseitig passieren, muss der Client des Benutzers keine Software installieren oder weitere Voraussetzungen erfüllen außer über einen modernen Browser zu verfügen. Für die Anmeldung an dem Dienst wird ein gültiges GWDG-Benutzerkonto benötigt.

Starten eines Notebooks

Nach erfolgreicher Anmeldung kann auf der Übersichtsseite über das Dropdown-Menü oben rechts unter „New“ mit der Auswahl eines Notebook-Kernels ein neues Notebook gestartet werden. Früher genutzte oder bereits gestartete Notebooks und ihre zugehörigen Dateien finden sich in der Liste mittig der Seite. Neben dem Menü „New“ findet sich auch eine Schaltfläche „Upload“, über welche Dateien zur Verwendung in Notebooks nach Jupyter-Hub übertragen werden können.

Der eigentliche Start eines Notebooks geschieht mit der Auswahl eines Kernels. Das Notebook wird in einem neuen Fenster gestartet und kann sofort verwendet werden. Über das Menü „Help“ kann eine Interface Tour gestartet, die Übersicht über Tastaturkürzel angezeigt und die Dokumentationen zu dem verwendeten Kernel (soweit vorhanden) geöffnet werden.

Beispiele

Unterhalb des Ordners public-ro befinden sich Beispiel-Notebooks aus dem offiziellen Jupyter-Projekt die direkt gestartet werden können und die Nutzungsweise von Jupyter näher erläutern.

Beenden und Verwalten von Notebooks

Ein aktives Notebook kann über das Menü „File“ > „Close and Halt“ oder durch schließen des Browser-Fensters/Tabs geschlossen werden. Das eigentliche Notebook bleibt in den letzten Zustand erhalten und kann über die Übersichtsseite wieder gestartet und die Arbeit daran fortgesetzt werden.

Gelöscht wird das Notebook durch Markierung des Eintrags in der Liste und Klick auf das rote Mülleimersymbol.

Benutzung

  • Bitte beachten Sie, dass alle Verzeichnisse außer dem Home-Verzeichnis flüchtig sind und beim Schließen des Notebook-Servers verloren gehen.
  • Pro Benutzer ist eine Quota von maximal 50GB Speicher und 4GB RAM festgelegt.
  • jupyter.gwdg.de ist nicht für kontinuierliche Berechnungen über mehrere Tage geeignet.

Installation zusätzlicher Python Module

Zusätzliche Python Module können über das Terminal und den Python package manager „pip“ installiert werden. Hierzu muss über das Menü „New“ → „Terminal“ ein Terminal geöffnet werden. Anschließend wird mit

pip install --user <module>

ein neues Modul in das Home-Verzeichnis installiert.

Installation zusätzlicher R Pakete

1) mkdir -p ~/R/library; mkdir ~/temp
2) create a file "/home/jovyan/.Renviron" with 2 lines:
"R_LIBS_USER=/home/jovyan/R/library" and "TMPDIR=/home/jovyan/tmp"
3) R
4) source("https://bioconductor.org/biocLite.R")
5) biocLite()

This is because R downloads and installs packages to and from the default tmp directory,
from which it cannot execute files. Using a tmp directory inside the home directory solves
this problem.

How to install packages from Github (in R):

1) library(devtools)
2) options(unzip = "internal")
3) install_github("repo/package")

Transfer von Daten in das Unix/Linux-Heimatverzeichnis

Um den Zugriff auf größere Datenmengen auf jupyter.gwdg.de zu erleichtern, kann das Unix/Linux-Heimatverzeichnis hinzugezogen werden. Hierfür werden Daten mit dem Tool rsync transferiert. Nachfolgend ein Beispiel, das auf die jeweilige Umgebung des Benutzers angepasst werden muss:

Zunächst muss über das jupyter-Menü ein neues Terminal geöffnet werden: „New“ → „Terminal“

jovyan@0d5793127e96:~$ ls mynotebooks/
myfile.txt
jovyan@0d5793127e96:~$ rsync -av ~/mynotebooks/ bbrauns@login.gwdg.de:/usr/users/bbrauns/mynotebooks/
bbrauns@login.gwdg.de's password:
sending incremental file list
./
myfile.txt

sent 145 bytes  received 44 bytes  75.60 bytes/sec
total size is 12  speedup is 0.06

Für den Zugriff auf die Daten im Unix/Linux-Heimatverzeichnis von einem Windows-Rechner siehe: Samba Server

Zusätzlichen kernel mit pipenv bereitstellen

Open a new jupyter terminal via the menu “New” → “Terminal”

pip install pipenv --user
mkdir myproject
cd myproject
export PATH=~/.local/bin/:$PATH
pipenv --python /usr/bin/python3.6 #needed because of conda
pipenv install ipykernel networkx
pipenv shell
ipython kernel install --user --name=projectname
  • Stop and restart server via control panel
  • Afterwards „projectname“ is usable as new kernel

Zusätzlichen julia kernel installieren

!Experimentell!

(Terminal, Home Verzeichnis)
Ggf. .julia und .julia_history Verzeichnis löschen für sauberen Neuanfang.
mkdir .julia_bin
wget https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.1-linux-x86_64.tar.gz
tar -xvzf julia-1.0.1-linux-x86_64.tar.gz
cd julia-1.0.1/bin/
./julia

(Julia REPL)

ENV["JUPYTER"]="jupyter"
import Pkg
Pkg.add("IJulia")
using IJulia
exit()

(Server neustarten)

Mehr Informationen zum offener Testbetrieb

Welche Bedeutung der offene Testbetrieb für die praktische Verwendung von Jupyter-Hub hat, finden sich in den Erläuterungen zum offenen Testbetrieb.