Zum Inhalt

Kernels & Terminals

Verwalten von Kernels und Terminals in Jupyter Notebooks

Jupyter Notebooks basieren auf Kernels, die den geschriebenen Code ausführen, sowie auf Terminals, die eine Kommandozeilenschnittstelle für fortgeschrittene Interaktionen bieten. Auf dieser Seite wird erläutert, wie Kernels und Terminals in Jupyter Notebooks verwaltet werden können.

Was ist ein Kernel?

Ein Kernel ist die Recheneinheit (Engine), die den Code ausführt. Jedes Jupyter Notebook ist mit einem Kernel verbunden, der den Code in den Zellen des Notebooks verarbeitet.

  • Kernel pro Notebook: Jedes Notebook arbeitet unabhängig mit einem eigenen Kernel. Dadurch können mehrere Notebooks gleichzeitig ausgeführt werden, wobei jedes seinen eigenen Ausführungsstatus behält.

  • Sprachunterstützung: Jupyter unterstützt verschiedene Kernels für unterschiedliche Sprachen. Der gebräuchlichste ist der Python-Kernel (IPython), aber Jupyter unterstützt unter anderem auch R und Julia.

Verwalten von Kernels

1. Starten und Stoppen von Kernels

Beim Öffnen eines Notebooks wird automatisch ein Kernel im Hintergrund gestartet. Der Status ist in der oberen rechten Ecke der Benutzeroberfläche einsehbar.

Kernel-Statusanzeige in der Notebook-Oberfläche

Der ausgewählte Kernel und seine Statusanzeige in der oberen rechten Ecke der Notebook-Oberfläche

Über das Menü „Kernel“ kann der Kernel neu gestartet, unterbrochen oder beendet werden.

  • Restart Kernel (Neu starten): Setzt den Kernel zurück und löscht alle gespeicherten Variablen, um eine saubere Arbeitsumgebung zu erhalten.

  • Interrupt Kernel (Unterbrechen): Stoppt die aktuelle Ausführung. Dies ist hilfreich, wenn der Code in einer langen Schleife feststeckt.

  • Shut Down Kernel (Beenden): Stoppt den Kernel vollständig. Dies ist sinnvoll, wenn das Notebook nicht mehr benötigt wird oder um Systemressourcen freizugeben.

2. Überwachen von Kernels

Alle aktiven Kernels lassen sich über den Tab „Running Terminals and Kernels“ in der Seitenleiste von JupyterLab überwachen. Dort ist ersichtlich, welche Notebooks aktiv ausgeführt werden und Systemressourcen verbrauchen.

3. Wechseln von Kernels

Innerhalb eines Notebooks kann zwischen verschiedenen Kerneln gewechselt werden. Wenn beispielsweise ein Python-Notebook vorliegt, aber R-Code ausgeführt werden soll, kann der Kernel über das Menü „Kernel“ > „Change Kernel“ geändert und die gewünschte Sprache ausgewählt werden.

Was ist ein Terminal?

Ein Terminal in Jupyter ist eine vollwertige Kommandozeilenschnittstelle, vergleichbar mit dem Terminal oder der Eingabeaufforderung im Betriebssystem.

  • Zugriff auf Terminals: Ein Terminal kann über die Option „Terminal“ im JupyterLab-Launcher oder über das Haupt-Dashboard geöffnet werden.

Terminal öffnen über den JupyterLab-Launcher

Ein Terminal öffnen über den JupyterLab-Launcher
  • Multitasking: Genau wie mehrere Notebooks können auch mehrere Terminals gleichzeitig betrieben werden. Dies ermöglicht die Verwaltung verschiedener Prozesse oder das Ausführen von Shell-Befehlen während der Arbeit in den Notebooks.

Verwalten von Terminals

1. Ausführen von Shell-Befehlen

Terminals ermöglichen das Ausführen von Shell-Befehlen, die Verwaltung von Dateien, die Installation von Paketen und die Durchführung von Aufgaben auf Systemebene. Beispielsweise kann pip install genutzt werden, um neue Python-Pakete zu installieren (siehe Benutzerdefinierte Umgebungen), oder das Dateisystem kann mittels ls, cd oder mkdir verwaltet werden.

2. Fortgeschrittene Paketverwaltung

Obwohl Notebooks das Ausführen von Shell-Befehlen erlauben (indem ein ! vorangestellt wird), bieten Terminals eine intuitivere und funktionsreichere Schnittstelle zur Verwaltung von Umgebungen, zur Aktualisierung von Software oder zur Fehlerbehebung.

3. Ausführen von Python-Skripten

Eigenständige Python-Skripte oder andere Programme können direkt vom Terminal aus gestartet werden, indem in das entsprechende Verzeichnis navigiert und python script_name.py eingegeben wird. Dies ist nützlich für größere Skripte oder Batch-Jobs außerhalb des Notebooks.

Warum ist die Verwaltung von Kerneln und Terminals wichtig?

  • Vermeidung eines unnötigen Ressourcenverbrauchs: Jeder Kernel verbraucht Arbeitsspeicher und Rechenleistung. Daher sollten ungenutzte Kernel beendet werden, um die Umgebung reaktionsschnell zu halten.

  • Unterstützung eines effizienten Workflows: Der parallele Betrieb von Terminals und Notebooks ermöglicht einen flexiblen Arbeitsablauf. Systembefehle können ausgeführt, Dateien verwaltet oder Abhängigkeiten installiert werden, ohne die Jupyter-Umgebung zu verlassen.

Durch die effektive Verwaltung von Kernels und Terminals lässt sich der Workflow optimieren, die Leistung maximieren und der Funktionsumfang der Jupyter-Umgebung erweitern.