Python auf der GraalVM – eine vielfältige Welt

Die neue GraalVM verspricht als dynamische Laufzeitumgebung für verschiedenste Programmiersprachen höchste Performance. Seit Kurzem steht auch GraalVM-Implementierung von Python zur Verfügung, die wir in diesem Vortrag vorstellen möchten.

Python ist eine beliebte Sprache, aber früher oder später stört sich jedes Entwicklerteam an der Ausführungsgeschwindigkeit. Die Ursache dafür ist, dass die Referenzimplementierung von Python (alias CPython) ein Interpreter ist, der Programme Anweisung für Anweisung ausführt. Ein Interpreter punktet zwar mit sehr guten Startzeiten, die tatsächliche Ausführungsgeschwindigkeit ist aber begrenzt. Das betrifft vor allem Programmcode mit vielen Schleifen und Aufrufen.
Der Just-in-Time-(JIT)-Compiler "Graal" in der GraalVM verspricht hier Abhilfe.

Die Vorteile der JIT-Kompilierung nutzen auch andere Programmiersprachen wie JavaScript und Ruby, welche ebenfalls auf der GraalVM ausgeführt werden können. Entwickler haben dadurch die Möglichkeit, Programme zu schreiben, die aus Python-, Ruby- und JavaScript-Code bestehen und dennoch so ausgeführt werden können, als wären sie aus einem "Guss". Im Ausführungsmodus "managed mode", der jeglichen direkten Speicherzugriff verhindert, ist sogar möglich C-Erweiterungen voll isoliert auszuführen. Dadurch lassen sich auch große Teile von NumPy und SciKit Learn verwenden, ohne dafür Zugriff auf den nativen Speicher zu benötigen.

Für Performanceanalysen und Debugging über Sprachgrenzen hinweg bietet GraalVM zudem Werkzeuge wie etwa die JVisualVM und einen Debugger.

Dieser Vortrag gibt einen Überblick über die verschiedenen Aspekte und Möglichkeiten von GraalVMs Python-Implementierung. Wir präsentieren den aus höherer Ausführungsgeschwindigkeit und der Verfügbarkeit von Werkzeugen resultierenden Vorteil für Python-Entwickler, bis hin zur Verwendung von mehreren Programmiersprachen in einer Applikation.

Vorkenntnisse

* Basiskenntnisse zu Java und Python

Lernziele

* Zuhörer lernen die Möglichkeiten der neuen GraalVM-Python-Implementierung kennen, insbesondere deren Performance, Kompatibilität und Integrierbarkeit mit Java, C sowie anderen GraalVM-Sprachen

 

Speaker

 

Florian Angerer
Florian Angerer ist Mitarbeiter im GraalVM-Projekt bei Oracle Labs und arbeitet an den Implementierungen der Programmiersprachen Python und R. Seine Forschungsinteressen liegen im Bereich der Programmiersprachen und Programmanalyse. Sie waren auch das Thema seiner Dissertation, die er an der Johannes Kepler Universität Linz verteidigt hat.

Tim Felgentreff
Tim Felgentreff ist Teil des GraalVM-Teams von Oracle Labs, wo er Language Lead für die Python-Implementierung auf GraalVM ist. Seinen Weg dorthin fand er durch sein Interesse am Design von Programmiersprachen und virtuellen Maschinen, sowie durch seine frühere Arbeit am PyPy/RPython-Projekt und mehreren anderen VMs für dynamische Programmiersprachen. Seine Arbeit dreht sich um die Performance und Interoperabilität von dynamischen Sprachen, deren sichere Interaktion mit nativem C-Code, sowie Werkzeugen für diese. Er arbeitet darüber hinaus weiterhin mit Forschungseinrichtungen wie dem Hasso Plattner Institut oder der Universität Kapstadt zusammen.

enterPy-Newsletter

Sie möchten über die enterPy
auf dem Laufenden gehalten werden?

 

Anmelden