Projekt Jupyter – Plattform für interaktive Datenanalyse und kollaboratives Arbeiten

Project Jupyter ist Herausgeber (Non-Profit-Organisation) von Open Source Softwareprodukten für interaktive wissenschaftliche Datenauswertung und wissenschaftliche Berechnungen. Der Name Jupyter bezieht sich auf die drei wesentlichen Programmiersprachen Julia, Python und R und ist auch eine Hommage an Galileos Notizbucheinträge zur Entdeckung der Jupitermonde, bei denen Galileo Beobachtungen und Messdaten zusammen mit Metadaten darstellte. Project Jupyter hat die Produkte Jupyter Notebook, JupyterHub und JupyterLab entwickelt.

Kurze Zeitreise

Project Jupyter entstand 2014 als Ausgliederung, aus dem von Fernando Pérez initiierten Projekts IPython. Wobei IPython nach wie vor existiert. Lediglich eher bekannt als Python Shell und Kernel für Jupyter, während das Notebook und andere sprachunabhängige Teile nun unter dem Namen Jupyter weiterentwickelt werden. Jupyter ist sprachenunabhängig und unterstützt die Ausführung vieler verschiedener Sprachen wie Julia, R, Haskell, Ruby und Python.

Im Jahr 2015 gaben GitHub und das Project Jupyter bekannt, dass das Dateiformat des Jupyter Notebooks auf der GitHub-Plattform unterstützt wird.

Ich selbst kam zwar bereits im Jahr 2015 als Producer mit Jupyter in Berührung, doch dies ist eine andere Geschichte. Wirklich gearbeitet, habe ich mit Jupyter Notebook in Bezug auf die künstliche Intelligenz bzw. dem maschinellen Lernen und dem NVIDIA Jetson bzw. dem Xavier und TX1 in Selbstregie. An dieser Stelle mein herzliches Dankeschön an Fernando Pérez und seinem unermüdlichen Einsatz für die Wissenschaft und der Open Source Szene und natürlich an NVIDIA, für die zur Verfügungstellung der DevKits (Development Kits). Wobei ich an dieser Stelle nicht garantieren kann, ob es in Ordnung ist, diese beiden im Zusammenhang zu erwähnen. Falls nicht, möchte ich mich bereits jetzt dafür entschuldigen.

Jupyter Notebook

Jupyter Notebook (früher IPython Notebooks) ist eine web-basierte interaktive Umgebung, mit der Jupyter-Notebook-Dokumente erstellt werden können. Ein Jupyter-Notebook-Dokument ist ein JSON-Dokument mit einem versionierten Schema, dass aus einer Liste von Eingabe- und Ausgabezellen besteht, die jeweils Code, Text und Plots enthalten können. Die Dateinamensendung ist „.ipynb“. Ein Jupyter Notebook kann aus der Browseroberfläche heraus in verschiedene Formate konvertiert werden (HTML, PDF, LaTeX und Folien für Präsentationen). Es bietet im Browser eine Schleife aus Eingabe, Ausführung/Ausgabe und baut dabei auf weit verbreitete Open-Source-Bibliotheken wie IPython, ZeroMQ, Tornado, Python, jQuery, Bootstrap und MathJax.

Jupyter Notebook kann verschiedene Kernels aufrufen, um die Programmierung bzw. interaktive Ausführung von Anweisungen in verschiedenen Sprachen zu unterstützen.

Jupyter Kernel

Der Kernel ist ein Programm, dass verschiedene Arten von Anfragen bearbeitet. Da Kernels über ZeroMQ kommunizieren, können sie auf der gleichen Maschine oder auf anderen Maschinen im Netzwerk in Betrieb genommen werden. Kernels erkennen nicht, mit welchem Dokument sie verbunden sind, und können von vielen Clients gleichzeitig aufgerufen werden. In der Regel ist ein Kernel für eine Programmiersprache ausgelegt. Der Kernel für Python wird mit ausgeliefert. Die Menge an Kernels mit der Unterstützung verschiedenster Programmiersprachen nimmt stetig zu.

JupyterHub

JupyterHub bringt die Leistungsfähigkeit von Notebooks zu Benutzergruppen und ist als Multi-User-Server zu sehen. Es gibt den Nutzern Zugang zu Rechenumgebungen und Ressourcen, ohne sie mit Installations- und Wartungsaufgaben zu belasten. Benutzer – einschließlich Studenten, Forscher und Datenwissenschaftler – können ihre Arbeit in ihren eigenen Arbeitsbereichen auf gemeinsam genutzten Ressourcen erledigen, die von Systemadministratoren effizient verwaltet werden können.

JupyterHub läuft in der Cloud oder auf der eigenen Hardware und ermöglicht es, jedem Benutzer auf der Welt eine vorkonfigurierte Data-Science-Umgebung zur Verfügung zu stellen. Es ist anpassbar und skalierbar und eignet sich für kleine und große Teams, akademische Kurse und groß angelegte Infrastrukturen.

JupyterLab

JupyterLab ist die webbasierte interaktive Entwicklungsumgebung für Notebooks, Code und Daten und damit das Nachfolgeprodukt für die GUI (Benutzeroberfläche). Mit der flexiblen Oberfläche können Benutzer Arbeitsabläufe in den Bereichen Datenwissenschaft, wissenschaftliche Berechnungen, Computerjournalismus und maschinelles Lernen konfigurieren und gestalten.

Fazit

Ein objektives Fazit fällt mir an dieser Stelle schwer, da ich die Lösungen nur für mich und allein verwendet habe. Interessant wäre es gewesen, dies in einem Team zu machen. Ich kann mir vorstellen, dass es bei der Versionierung durchaus einige Herausforderungen geben kann. Auch beim Mergen (Zusammenführen) von Code, kann sich dieses Unterfangen wahrscheinlich etwas komplizierter gestalten. Daher enthalte ich mich in diesem Fall bis auf Weiteres. Ich bin davon überzeugt, dass ich auch in Zukunft Berührungspunkte damit habe und diesen Artikel dementsprechend erweitere oder zumindest auf neue Artikel verweise.

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.