parallel 2012: neue Konferenz zur Parallelprogrammierung

Zum ersten Mal fand im Mai in der IHK in Karlsruhe die parallel 2012 statt, eine Konferenz zur Programmierung für Multi-Core-Systeme.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 5 Min.
Von
  • Alexander Neumann
Inhaltsverzeichnis

Zum ersten Mal fand im Mai in der IHK in Karlsruhe die parallel 2012 statt, eine von dpunkt.verlag, heise Developer und iX ausgerichtete Konferenz zur Programmierung für Multi-Core-Systeme. Dass die Konferenz schon Wochen vorher ausverkauft war, ist ein Indiz für die Bedeutung des Themas.

Rund 25 Vorträge beleuchteten vor allem unter den Programmierplattformen Java, C/C++ und .NET bewährte beziehungsweise neue Techniken und Programmiermodelle zur Parallelprogrammierung. Beispielsweise gab es Sessions zur Nebenläufigkeit in C++11 oder zum Multithreading auf der JVM, aber auch Vorträge zu Aktoren, Software Transactional Memory (STM), Data Flows, CUDA und OpenCL sowie zu OpenMP und Threading Building Blocks (TBB).

Im Zentrum der Konferenz standen die Keynotevorträge von Walter F. Tichy und Tim Mattson. Tichy, renommierter Forscher am Karlsruher Institut für Technologie (KIT), schwörte das Auditorium eingangs der Konferenz auf die Themen der folgenden drei Tage ein. Es ging um (teilweise) historische Grundlagen der Prozessorsysteme und der Parallelprogrammierung. Angefangen hat die Entwicklung von Mehrkernsystemen bereits 1976 mit einem Vektorrechner von Cray, und angekommen ist das Thema mittlerweile selbst bei mobilen Geräten. Als Beispiel sei für Letzteres nur genannt, dass Apple im letzten Quartal 2011 über 37 Millionen Mehrkern-iPhones vertrieben hat.

Deswegen ist laut Tichy Parallelprogrammierung keine Zukunftsmusik mehr, sondern bereits überall zu finden. Parallelismus in der Softwareentwicklung ist zum Normalfall geworden, und Informatiker müssen ihn beherrschen lernen. Die Beherrschung der Parallelprogrammierung wird laut Tichy gar zur Job-Garantie, weswegen er sie schon geraume Zeit bereits im zweiten Semester des Grundstudiums lehrt.

Als Fazit zog Tichy, dass der Umgang mit der Parallelisierung derzeit noch jede Menge Arbeit bedeute und vieles händisch geschehe, jedoch werden Werkzeuge mit der Zeit wohl die Arbeit vereinfachen. Auch jeden Fall sollten sich Softwareentwickler von Rückschlägen nicht entmutigen lassen, wenn sie die unterschiedlichen Alternativen zur Parallelisierung bei ihrer Software ausprobieren, testen und messen.

Mattson, bei Intel mitverantwortlich für die Entwicklung von OpenMP und OpenCL sowie Autor eines Buchs zu Parallelisierungs-Design-Pattern, gab eine glaubhafte Vision paralleler Softwareentwicklung. Derzeit sieht er eine Lücke zwischen Multiprozessorsystemen und parallelisierter Software, und es sei notwendig, diesen Missstand zugunsten einer weitverbreiteten Parallelprogrammierung zu beseitigen. Außerdem ist Mattson der Ansicht, dass die Spieleentwicklungsindustrie die zurzeit einzige Branche sei, die die Parallelprogrammierung wirklich gut beherrsche. Dort setze sich die Organisationsstruktur aus Teams zusammen, in denen 90 Prozent produktiv und 10 Prozent optimieren würden. Das ganze Team arbeite zwar mit nebenläufigen Programmen, aber nur der kleine Teil der Optimierer müsse verstehen, wie man Nebenläufigkeit in einem parallelisiertem Programm für eine gewünschte Plattform ausnutzt. Mattsons Hoffnung ist nun, dass die gesamte Softwarebranche von der Spielentwicklung lerne und deren Aufteilung in Produktiv- und Effektiventwickler übernehme.

Mattson und Tichy traten auch als Gegenpole im Panel "How will programming of parallel systems evolve?" bei der Frage auf, wie man an parallele Entwürfe herangehen soll. Während Mattson eher für einen parallelen Entwurf votierte, sprach sich Tichy für einen sequenziellen Beginn aus, der dann auf Parallelsysteme optimiert wird. Auf die Frage, welche Programmiersprachen zukünftig eine Rolle in der Parallelprogrammierung spielen würden, antwortete Tichy, dass er neuen Sprachen wenig Chancen einräume, da Softwareentwickler keine neuen Sprachen lernen wollen. Deswegen rechnet er mit weiteren Bibliotheken und Erweiterungen bereits etablierter Sprachen. Für Mattson, der aus der HPC-Ecke (High-Performance Computing) kommt, spielen Programmiersprachen ebenfalls keine große Rolle. Er legte mehr das Augenmerk auf die Algorithmen, die es wichtig sei zu verstehen. Außerdem sprach er sich dafür aus, nicht neue Programmiersprachen für die Parallelprogrammierung zu entwerfen, sondern sich auf einige wenige Standards und Open-Source-Techniken zu konzentrieren und an diesen zu feilen, sodass sie gut funktionieren.

Weitere Protagonisten des von Urs Gleim moderierten Panel waren Václav Pech, Entwickler der Groovy-Bibliothek GPars, und Jerry Higgins von Microsoft. Higgins prognostizierte bessere und vor allem grafische Tools, die die zukünftige Parallelprogrammierung erleichtern werde. Pech wiederum empfahl die funktionale Programmierung. Man könne bei der Auseinandersetzung mit dieser für das Berufsleben lernen. Die von ihm betreute Bibliothek zeichnet sich übrigens dadurch aus, dass sie diverse parallele und nebenläufige Konzepte implementiert, etwa asynchrone Berechnungen, Fork/Join, Aktoren, Agenten, STM, Data Flows und Communicating Sequential Processes (CSP).

parallel 2012 (5 Bilder)

Professor Tichy vom KIT eröffnete die parallel 2012 mit einer Grundlagen-Keynote.

Schon frühzeitig, nämlich kurz nach der Frühbucherrabattphase, hatten die Veranstalter vermelden können, dass die Konferenz mit rund 160 Teilnehmern ausverkauft war, ein deutliches Signal, dass die Parallelisierung von Software flächendeckend als wichtig gilt und die Konferenz offenbar zum richtigen Zeitpunkt stattfand. Die voraussichtlich nächste Konferenz findet vom 15. bis 17. Mai wieder in Karlsruhe statt. Impressionen zur parallel 2012 findet man hier.

Siehe dazu auch:

    • Pavlo Baron; Auf Crashkurs; Let it Crash: Paradigma für fehlertolerante, massiv-parallele Software; Artikel auf heise Developer
    • Matthias Nagorni; Parallelprogrammierung mit Qt auf Windows 7; Artikelserie auf heise Developer
    • Stefan Kamphausen, Tim Oliver Kaiser; Moore in mind; Parallelprogrammierung mit Clojure; Artikel auf heise Developer
    • Frank Müller; Herr der Massen; MapReduce in Googles Go; Artikel auf heise Developer
    • Frank Müller; Neben- und Miteinander; Parallele Anwendungen entwickeln mit Erlang/OTP; Artikel auf heise Developer

(ane)