Stefan Behnel

Number of videos:
9
The Cython Compiler for Python
EuroPython 2014
Stefan Behnel
Recorded: July 22, 2014Language: English

The Cython compiler is the most widely used static compiler for Python. It is used to speed up Python code and to extend CPython with fast native extension modules that process huge amounts of data all around the world. This talk by one of the core developers gives an intro to using the compiler and an overview of its major features.

Lupa - LuaJIT in Python
PyCon DE 2013
Stefan Behnel
Recorded: Oct. 17, 2013Language: German

Der Python-Interpreter hat den Ruf, eine ausgereifte und grandios einfach zu verwendende dynamische Sprache und Laufzeitumgebung zu bieten, die für jede noch so exotische Anforderung eine Lösung bereit hält.

Ein oft genanntes Manko ist jedoch die begrenzte Performance des Interpreters für stark algorithmisch geprägte, kritische Teile von Anwendungen. Insbesondere hochdynamischer und generierter Code kommt hier schnell an seine Grenzen.

Auf der anderen Seite existiert mit LuaJIT2 eine sehr schnelle JIT-kompilierte Laufzeitumgebung der dynamischen Programmiersprache Lua, die bereits so manche Performance-Rekorde gebrochen hat und sich durch ihre geringe Größe leicht in andere Programme einbinden lässt. Das große Manko von Lua ist jedoch das Fehlen von Standard-Bibliotheken, die extrem begrenzten Sprach-Features und der daraus resultierende hohe Aufwand bei der Entwicklung größerer Anwendungen.

Mit Lupa steht eine Verbindung der beiden Programmiersprachen bereit, die es ermöglicht, aus Python heraus Lua-Code auszuführen und direkt mit diesem zu kommunizieren und Daten auszutauschen. So kann der größte Teil einer Anwendung in Python implementiert werden, und einzelne Aufgaben können von der schnellen LuaJIT-Umgebung übernommen werden.

Dieser Vortrag stellt das Projekt vor und gibt Einblicke in die Integration der beiden Programmiersprachen.

XML generieren mit lxml
PyCon DE 2013
Stefan Behnel
Recorded: Oct. 16, 2013Language: German

lxml ist der Platzhirsch unter den XML-Tools für Python. Über das übliche Parsen hinaus bietet es auch einige schöne Möglichkeiten, XML-Dokumente effizient zu generieren. Der Vortrag bietet eine Einführung in die Teile von lxml, die das Erzeugen von XML einfach und übersichtlich machen.

Cython für schnelleren Python-Code
PyCon DE 2013
Stefan Behnel
Recorded: Oct. 15, 2013Language: German

Der Cython-Compiler ist mehr als nur ein Weg, Erweiterungsmodule for CPython zu schreiben. Durch die statische Übersetzung von reinem Python-Code öffnen sich neue Möglichkeiten, den Code vielfach zu beschleunigen. Anhand einiger Beispiele wird gezeigt, wie durch Profiling und gezielte manuelle Optimierung auch reiner Python-Code von statischer Kompilierung profitieren kann, ohne dabei das Ökosystem der CPython-Laufzeitumgebung verlassen zu müssen.

Schneller ohne C++
PyCon DE 2012
Stefan Behnel
Recorded: Nov. 1, 2012Language: German

Die Sichtbarkeit von C++ in der Software-Entwicklung ist auch in ihrem 33. Jahr noch enorm. In vielen Bereichen, z.B. im Ingenieursumfeld und im Embedded-Bereich wird schon aus Tradition mit C und C++ entwickelt, oft ohne den Blick auf Alternativen. Eingespielte Entwicklerteams und große, über lange Zeit gewachsene Code-Basen lassen einen Umstieg unmöglich erscheinen.

In diesem Vortrag werde ich die Frage stellen, warum C und C++ so große Verbreitung besitzen, trotz der hohen Anforderungen an Entwicklererfahrung und der aufwändigen und fehleranfälligen Entwicklung mit diesen Sprachen. Dabei zeigt sich Python als ganz natürliche Ergänzungssprache, die sich leicht mit bestehenden Code integriert und in vielen Bereichen die Entwicklung dank des Paretoprinzips merklich beschleunigt.

Python erlaubt sowohl eine schnelle prototypische Umsetzung neuer Anforderungen als auch die Integration anspruchsvoller Features durch die breite Funktionalität in der Standardbibliothek und den nahezu allumfassenden Fundus an Bibliotheken. Das Spektrum geht dabei von einfachen Skripten über Test-Unterstützung und Web-Frontends bis hin zu Finanzanwendungen, Bildverarbeitung und zur performancekritischen Analyse gigantischer Datenmengen aus Tiefseesensoren und Radioteleskopen.

Schnelle Schleifen mit Cython
PyCon DE 2012
Stefan Behnel
Recorded: Oct. 31, 2012Language: German

Keine PyCon(-DE) ohne Cython, die de-facto Standarderweiterungssprache für Python. Diesmal geht es um ein paar neuere Spracherweiterungen zur Python- Syntax, die den Cython-Compiler besonders attraktiv für High-Performance- Computing machen: Parallele Schleifen mit OpenMP, effizientes Slicing mit Memory-Views und generische Funktionen.

Cython ist eine Programmiersprache, die die Sprache Python um zusätzliche Features ergänzt. Sie macht das Schreiben von schnellen Erweiterungsmodulen für CPython und das Anbinden von externen nativen Bibliotheken (C/C++/Fortran/...) so einfach wie Python selbst.

Dieser Vortrag gibt einen kurzen Einblick in Cython und speziell in die Optimierung von schleifenbasierten Algorithmen über NumPy Arrays, mit denen große Datenmengen effizient verarbeitet werden können. Dazu werden Memory- Views verwendet, die mit Version 0.16 in Cython Einzug gehalten haben. Hinzu gesellen sich parallele Schleifen, sowie generische Funktionen, die es dem Compiler erlauben, einmal geschriebenen Code für verschiedene native Datentypen zu optimieren.

Eine ausführliche Version dieses Vortrags mit entsprechenden Übungen wird zusätzlich als Tutorial angeboten.

Cython mit PyPy - das Beste aus drei Welten
PyCon DE 2012
Stefan Behnel
Recorded: Oct. 30, 2012Language: German

Die Programmiersprache Cython (http://cython.org "Web- Seite des Cython-Projekts") ist das de-facto Standard-Tool um CPython um nativen Code zu erweitern. Die Python-ähnliche Sprache macht schon seit einigen Jahren das Schreiben von schnellen Erweiterungsmodulen für CPython und das Anbinden von externen nativen Bibliotheken (C/C++/Fortran/...) so einfach wie Python selbst und gleichzeitig so effizient wie C. Davon profitiert besonders das weite Feld des High-Performance-Computing in Python (NumPy/SciPy/Sage/...), aber auch zahllose andere Bereiche, die eine effiziente Verarbeitung großer Datenmengen und die Anbindung von nativen Bibliotheken an die Programmiersprache Python benötigen.

Die neueste Version des Cython-Compilers bietet erstmals auch Unterstützung für PyPy an, eine alternative Python-Implementierung, die vor allem durch ihren schnellen JIT-Compiler von sich reden macht. Dadurch kann einmal mit Cython geschriebener und in C übersetzter Code sowohl in CPython als auch in PyPy verwendet werden. So wird es beispielsweise möglich, in einer einzigen Code-Basis effiziente Anbindungen externer Bibliotheken für beide Laufzeitumgebungen zu entwickeln.

Dieser Vortrag von einem der Cython Core-Entwickler erklärt, welche Fallstricke dabei noch auf Benutzerseite zu erwarten sind und gibt Hilfestellungen beim Schreiben von Cython-Code, der sowohl in CPython als auch in PyPy funktioniert.

lxml - schnelles XML mit Python
PyCon DE 2011
Stefan Behnel
Recorded: Oct. 7, 2011Language: German

Überblick über die XML-Bibliothek lxml, das flinke Schweizer Taschenmesser zur XML-Verarbeitung.

Cython - das Beste aus Python und C
PyCon DE 2011
Stefan Behnel
Recorded: Oct. 6, 2011Language: German

Überblick über die Programmiersprache Cython, die die Leichtigkeit von Python mit der Performance von C kombiniert.