Harlan: Neue Programmiersprache für die GPU-Programmierung

Die von einem Wissenschaftler der Indiana University entwickelte Sprache ist aus der Frage heraus entstanden, wie eine Sprache auszusehen hat, die dafür entworfen wurde, von Anfang an die GPU-Programmierung zu unterstützen.

In Pocket speichern vorlesen Druckansicht 137 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Die junge deklarative, domänenspezifische Programmiersprache Harlan verspricht, Anwendungen einfacher schreiben zu können, die auf der GPU laufen. Hinter der Entwicklung steckt Erik Holk, ein Wissenschaftler der Indiana University, die Sprachsyntax selbst basiert auf Scheme, einem Dialekt der funktionalen Programmiersprache Lisp, die nach Meinung etlicher Sprachschöpfer als Vorfahr der meisten guten Programmiersprachen angesehen wird.

Harlan ist mit der Absicht entstanden, Entwicklern dabei zu helfen, die GPU produktiv und leistungsfähig zu nutzen und sich nicht mit Routinearbeiten der GPU-Programmierung auseinandersetzen zu müssen, die von der eigentlichen Arbeit ablenken. Harlan ist aus der Frage heraus entstanden, wie eine Sprache auszusehen hat, die dafür entworfen wurde, von Anfang an die GPU-Programmierung zu unterstützen. Andere Konzepte gehen zumeist davon aus, dass die GPU-Programmierung in eine bestehende Landschaft eingebettet werden müsse. Das bedeutet auch, dass alle Besonderheiten der Sprache des bestehenden Systems zu berücksichtigen sind.

Es gibt natürlich noch andere verbreitete Sprachen und Programmiermodelle für die GPU-Programmierung, etwa OpenCL und CUDA – Harlan kompiliert selbst nach OpenCL, hier funktionieren offenbar die Implementierungen von Intels OpenCL SDK, Nvidias CUDA Toolkit und AMD Accelerated Parallel Processing (APP) SDK. Aber im Gegensatz zu diesen Ansätzen will die neue Sprache Programmierabstraktionen bieten, die man mehr mit weniger hardwarenahen Sprachen wie Python und Ruby verbindet. Außerdem bringt Holk Features funktionaler Programmiersprachen wie einen Interpreter für Lambda-Funktionen und die Unterstützung von Prozeduren höherer Ordnung ins Spiel.

Scheme dient als Basis, weil es an der Indiana University Tradition hat und dort schon einige Erfahrung dabei gemacht wurden, Compiler mit Scheme zu bauen. Holk hat darüber hinaus auch Erfahrungen bei der GPU-Programmierung mit der Programmiersprache Rust gesammelt, im Gegensatz zu Harlan ist die Entwicklung mit dieser Sprache aber als hardwarenah anzusehen. (ane)