Open Source im professionellen Einsatz

Grumpy verheiratet Python mit Go

05.01.2017

Mit Grumpy hat sich Google ein Tool geschrieben, um Python-Code in Go-Programme umzuwandeln. Damit will das Unternehmen Pythons Problem mit der Nebenläufigkeit lösen.

245

Es beginnt mit einem Lob. Google nutze Millionen Zeilen Python-Code, und die Frontend-Server von Youtube beantworten Millionen von Anfragen pro Sekunde auf der Basis von mit C-Python 2.7, schreibt der Youtube-Angestellte Dylan Trotter in der Grumpy-Ankündigung. Dennoch habe das Unternehmen erhebliche Probleme, konkurrierende Workloads mit Python in den Griff zu bekommen, es habe verschiedene Python-Runtimes getestet.

Also machte man sich selbst an die Arbeit, um eine alternative Runtime zu entwickeln, die auch Echtzeit-Umgebungen optimiert ist. Go, eine hauptsächlich von Google entwickelte Programmiersprache mit Fokus auf Threading, bot sich dafür an. Grumpy übersetzt Python-Code in Go-Programme, die nahtlos in der Go Runtime laufen. Zumindest im Fibonacci-Benchmark scheint das gut zu funktionieren, wie eine Abbildung auf der Webseite zeigt. Erhöht sich die Zahl der Threads, hängt Grumpy C-Python in Sachen Performance (IOPS) deutlich ab.

Grumpy macht Python fit für Multithreading (Quelle: Googleblog.com).

Dafür habe man zwei Design-Entscheidungen getroffen. Um zu skalieren, opferte Google für Grumpy den Support für C-Extension-Module. Es bringt kein Global Interpreter Lock mit und verwendet die Garbage Collection von Go anstatt Referenzen zu zählen. Grumpy ist zweitens kein Interpreter, sondern erzeugt kompilierte Programme. Das verringert die Flexibilität beim Entwickeln und Ausliefern von Software, erhöht aber die Interoperabilität mit Go-Code und vor allem mit Go-Packages. Grumpy importiert Go-Pakete wie Python-Module.

Aktuell befindet sich Grumpy noch in der Alpha-Phase, es lässt sich über Github herunterladen. Die Software steht unter der Apache-2.0-Lizenz.

Ähnliche Artikel

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.