Jupyter ist ein System von Tools zum interaktiven Arbeiten mit Daten und Quelltext. Es wird insbesondere in der Data Science eingesetzt, hat aber viele verschiedene Anwendungszwecke.
Die Dokumentation von Jupyter finden Sie hier.
Überblick über Jupyter
Jupyter besteht aus einer Reihe von Komponenten. Die wichtigsten davon sind:
- Jupyter Notebooks: ein Dateiformat (mit der Endung
.ipynb
), das aus Zellen besteht, die Code in verschiedenen Sprachen, Text im Markdown-Format sowie andere Elemente enthalten können. Jupyter Notebook ist außerdem der Name für das Standard-User-Interface, um Dateien dieses Typs zu bearbeiten. Das Jupyter-Notebook-Interface ist volkommen webbasiert, das heißt es läuft im Browser. Einzelne Zellen des Notebooks können ausgeführt werden und der vom User eingegebene Input (z.B. Python-Quelltext) in der betreffenden Zelle wird dann ausgeführt. Unter der Zelle erscheint dann der Output, der je nach Zellentyp verschieden sein kann. - Jupyter-Kernels: die Programme, die den Code in Code-Zellen eines Jupyter-Notebooks ausführen. Im Normalfall ist jedem Notebook genau ein Compute-Kernel zugeordnet. Je nachdem, welche Sprache(n) und sonstigen Features in dem Notebook benötigt werden, muss ein entsprechender Kernel ausgesucht werden. Weit verbreitet ist z.B. der Python-Kernel, der Python-Code in Code-Zellen ermöglicht. Jupyter-Kernels können auf derselben Maschine wie das Notebook-Interface laufen oder auf einer anderen Maschine (wie z.B. einem Compute-Knoten eines Clusters). In letzterem Fall muss zusätzlich ein JupyterHub-Server laufen.
- JupyterLab: ein Integrated Development Environment (IDE), das ebenfalls dazu dient, Jupyter Notebooks zu editieren, zu starten und zu verwalten. JupyterLab enthält mehr Features als das Notebook-Interface, ist aber ebenfalls vollkommen webbasiert. Auf dem OMNI-Cluster wird JupyterLab als Standard-Oberfläche eingestellt sein.
- JupyterHub: die Server-Komponente von Jupyter. Sie ermöglicht, dass mehrere Nutzer auf demselben Rechner Notebooks starten können.
- Jupyter Enterprise Gateway: Während die Notebook-Dateien auf den Front Ends (d.h. bei Clustern auf den Login-Knoten) editiert werden, finden die Ausführung der Kernels und somit die eigentlichen Berechnungen in der Regel auf einem anderen Rechner (bei Clustern innerhalb eines Slurm-Jobs auf einem Compute-Knoten) statt. Jupyter Enterprise Gateway sorgt für die Verbindung zwischen den beiden und ermöglicht so das interaktive Arbeiten auf Clustern.
All diese Komponenten werden auf dem OMNI-Cluster verfügbar sein.
Arbeiten mit Jupyter auf dem OMNI-Cluster
Sie erreichen das Jupyter-Portal aus dem Uni-Netzwerk oder Uni-VPN, indem Sie in Ihrem Browser die entsprechende Adresse angeben (Sie finden die Adresse in Ihrer Willkommens-E-Mail).
Sie können sich ganz normal mit Ihrem Usernamen und Passwort einloggen, wenn Sie bereits Zugang zu unseren Systemen haben.
Sie kommen dann auf das sogenannte Control Panel von JupyterHub. Sie müssen in der Regel einen neuen JupyterHub-Server starten, indem Sie auf den Button “Start My Server” klicken. Wenn Ihr Server läuft, gelangen Sie auf die JupyterLab-Oberfläche, wo Sie Notebooks editieren können.
Auf der Oberfläche von JupyterLab sehen Sie links Ihre Dateien (standardmäßig die in Ihrem Home-Verzeichnis auf dem Cluster) und rechts eine Linux-Konsole. Dies ist im Prinzip dieselbe Konsole, die Sie auch sehen, wenn Sie sich ganz normal per SSH mit dem Cluster verbinden. Sie können hier zum Beispiel Workspaces anlegen, falls nötig.
Notebooks und Kernels auf dem Cluster
Wenn Sie mit Notebooks arbeiten möchten, müssen Sie entweder ein existierendes Notebook öffnen, indem Sie links in der Liste auf eine Notebook-Datei doppelklicken oder mittels “File” -> “New”-> “Notebook” ein neues Notebook erstellen.
Wenn Sie ein neues Notebook erstellen, müssen Sie einen Kernel auswählen. Bei einem existierenden Notebook sehen Sie oben rechts, welchen Kernel es verwendet.
Achtung: Nur Kernels, die “via SLURM” im Namen haben, laufen auch auf den Compute-Knoten! Sie sollten, wann immer möglich, Kernels auf den Compute-Knoten starten, damit Sie nicht das Front End für alle anderen Nutzer verlangsamen. Wir behalten uns vor, Prozesse, die das Front End zu stark auslasten, ohne Vorwarnung zu stoppen.
Wenn Sie einen Kernel starten, der SLURM benutzt, wird automatisch ein SLURM-Job für Sie gestartet. Dies kann im ungünstigsten Fall Wartezeiten bedeuten. Sie können Ihre Jobs, genauso wie alle anderen Jobs, mit den entsprechenden SLURM-Befehlen (z.B. squeue
) anzeigen und verwalten.
Achtung: Die SLURM-Jobs, in denen die Jupyter-Kernels laufen, haben, wie jeder andere Job auch, ein Zeitlimit. Wenn das Zeitlimit für Ihren Job abläuft, bleibt der Kernel stehen. Das Notebook bleibt aber offen und Sie können weiter darin arbeiten. Sie können den Kernel einfach über die entsprechende Schaltfläche neu starten. Standardmäßig wird der Kernel “Python 3.7 via SLURM” in der Short-Queue gestartet, das heißt das Zeitlimit beträgt eine Stunde.