Open Source: Interaktives Rechnen mit Jupyter-Notebooks

Ob der Test einer Signalverarbeitungs-Bibliothek oder die Hardware-Synthese für einen FPGA: Im Jupyterhub klappt das via Cloud.

Eine Anleitung von Martin Strubel veröffentlicht am
Interaktives Rechnen im Jupyterhub
Interaktives Rechnen im Jupyterhub (Bild: Intel, binder.org/Montage: Golem.de)

Jupyter-Notebooks, nicht zu verwechseln mit einem physischen Laptop, sind in der Wissenschaft eine beliebte Darstellungsform, da sie auf elegante Weise die Ausführung von Code gemischt mit entsprechenden Anweisungen, Dokumentation oder Grafiken ermöglichen. Damit lassen sich unter anderem Resultate von Berechnungen nachvollziehen, mit eigenen Daten versorgen oder einfach reproduzierbare Tutorials zur Datenverarbeitung aus der gewohnten Browserumgebung heraus entwerfen.

Inhalt:
  1. Open Source: Interaktives Rechnen mit Jupyter-Notebooks
  2. Per Docker-Container zur Quellcodebearbeitung
  3. Vielfältige Anwendungsmöglichkeiten umsetzbar

Der darunterliegende Kernel, genauer die Zwischenschicht, welche die Ausführung von Programmen ermöglicht, ist von Haus aus auf interaktive Ausführung von Python-Code zugeschnitten (ipykernel), es existieren aber auch andere Implementierungen, wie beispielsweise für die Sprache Julia, welche aufgrund ihrer verbesserten Performance gegenüber Python gerne in wissenschaftlichen Anwendungen eingesetzt wird.

Das darauf aufbauende Open-Source-Projekt Jupyterhub stellt eine Serverumgebung zur Verfügung, die es erlaubt, ohne lokale Installation ausführbare Notebooks mit der entsprechend nötigen Software in der Cloud oder auch lokal per Klick zu starten. Die Voraussetzung dafür ist, dass sich die Notebooks auf einem zugänglichen Git-Repository wie Github, Gitlab usw. befinden.

Per Binderhub zum Jupyter-Notebook

Für öffentliche Jupyter-Anwendungen übernimmt mybinder.org die Schirmherrschaft mit dem Projekt Binderhub, unterstützt durch mehrere Cloud-Hoster. Auf der Webseite findet sich zunächst eine einfache Eingabemaske, in die wir die URL zu einem Git-Repository (welches *.ipynb-Dateien enthält) eingeben können. Per Launch-Knopf wird der Server gestartet. Dabei passiert (per repo2docker-Script) Folgendes:

  • Das Repository wird geklont und nach Konfigurationsdateien durchforstet.
  • Basierend auf der Konfiguration wird ein Docker-Container mit Jupyter-Support gebaut und zwischengespeichert.
  • Der Container wird gestartet und ein Jupyterlab-Serverprozess aktiviert, auf dessen URL der Browser schließlich weitergeleitet wird.

  • Per BinderHub ... (Bild: Golem.de)
  • ... zum Jupyter-Notebook. (Bild: Martin Strubel)
Per BinderHub ... (Bild: Golem.de)

Das kann je nach Anwendung und Auslastung der Server etwas Zeit in Anspruch nehmen. Wenn nichts schiefgeht, präsentiert sich danach die Jupyterlab-IDE und es kann gearbeitet werden, allerdings sollte das auch aktiv geschehen. Die laufenden Jupyter-Kernels unterliegen einem Timeout und werden nach circa zehn Minuten Inaktivität beendet. Dann sind ohne Vorwarnung auch alle eingegebenen Daten erst mal weg oder müssen mühevoll manuell aus dem Notebook gerettet werden.

Wurde das Repository in seiner Konfiguration schon einmal gebaut, werden der erste und zweite Schritt übersprungen und der Server startet etwas schneller, auch hier wieder abhängig von der Konfiguration des Containers.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Per Docker-Container zur Quellcodebearbeitung 
  1. 1
  2. 2
  3. 3
  4.  


grorg 12. Mai 2022

# %% import pandas as pd import numpy as np # %% df = pd.read_excel("../data/raw/test...

Ultima 12. Mai 2022

Neben Binder gibt es noch eine ganze Reihe weiterer Möglichkeiten, wie man (mehr oder...

GwhE 12. Mai 2022

Erstmal, danke für den Artikel Jupyter ist echt cool und der Artikel hat sehr Interstate...



Aktuell auf der Startseite von Golem.de
Warnmeldungen
Rund alle 36 Stunden ein Alarm per Cell Broadcast

Zwischenfazit nach 100 Tagen: Bislang wurden bundesweit 77 Alarmmeldungen per Cell Broadcast übertragen.

Warnmeldungen: Rund alle 36 Stunden ein Alarm per Cell Broadcast
Artikel
  1. Vermona: Zufall und Synthesizer
    Vermona
    Zufall und Synthesizer

    Wie aus einem großen DDR-Staatsbetrieb ein erfolgreicher kleiner Hersteller von analogen Synthies wurde.
    Von Martin Wolf

  2. Digitalisierung: Behörde bekommt weniger Beschwerden über Faxwerbung
    Digitalisierung
    Behörde bekommt weniger Beschwerden über Faxwerbung

    Naht allmählich das Ende der Technologie? Die Bundesnetzagentur hat 2022 viel weniger Beschwerden über Fax-Spam bekommen als im Jahr zuvor.

  3. Ceconomy AG: Media Markt plant offenbar Reparaturabo
    Ceconomy AG
    Media Markt plant offenbar Reparaturabo

    Egal wo die Ware gekauft wurde: Bei Media Markt soll man künftig seine Elektronikgeräte reparieren lassen können - mit einem zweistufigem Abo.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • SanDisk Ultra NVMe 1 TB ab 39,99€ • Samsung 980 1 TB 45€ • MindStar: be quiet! Pure Base 500 69€, MSI MPG B550 Gaming Plus 99,90€, Palit RTX 4070 GamingPro 666€, AMD Ryzen 9 7950X3D 699€ • Corsair DDR4-3600 16 GB 39,90€ • KFA2 RTX 3060 Ti 329,99€ • Kingston Fury 2 TB 129,91€ [Werbung]
    •  /