parallel 2014: Dritte Auflage der Konferenz zur Parallelprogrammierung

Obwohl Rechner mit mehreren Kernen inzwischen seit Jahren Mainstream sind, scheut so mancher die damit verbundene Komplexität.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 6 Min.
Von
  • Michael Müller

Obwohl Rechner mit mehreren Kernen inzwischen seit Jahren Mainstream sind, scheut so mancher die damit verbundene Komplexität. Doch je nach Programmiersprache kommt Parallelität sowieso immer wieder unbemerkt oder ungewollt zum Einsatz. Parallelität ist auch dadurch ein Thema, an dem kaum ein Softwareentwickler, -architekt et cetera vorbeikommt. Der Besuch der parallel 2014 mag geholfen haben, Ängste abzubauen.

Die Softwarekonferenz zur Parallelprogrammierung, Nebenläufigkeit und zu Multicore-Systemen fand vom 5. bis 7. Mai in Karlsruhe statt. Organisatoren waren iX, heise Developer und der dpunkt.Verlag. Es handelte sich um die dritte Auflage der Veranstaltung. Zahlreiche Teilnehmer kamen bereits zum zweiten, einige gar zum dritten Male. Nach Angaben der Veranstalter waren rund 150 Teilnehmer anwesend, ein mit den Vorjahren vergleichbares Ergebnis.

Die Konferenz startete nach der Begrüßung mit einer Keynote von Peter Sanders vom Karlsruhe Institute of Technology (KIT). Etwas karikativ zeigte er die weitverbreitete Sicht auf die theoretische Informatik: Da bauen die Theoretiker ein Datenmodell und designen basierend darauf einen tollen Algorithmus, nach dessen ausführlicher Analyse bestimmte Performancegarantien aufgestellt werden. Doch eine Verbindung zu den Praktikern, die den Algorithmus mit realen Rechnern implementieren müssen, gibt es in dieser Sicht nicht. Solche Zeiten, vermittelte Sanders, seien vorbei. Am KIT entwickeln die theoretischen Informatiker auch Implementierungen. Über Experimente mit diesen Implementierungen und deren Analyse werde der Kreislauf zwischen Theorie und Praxis geschlossen.

Er stellte das ausführlich am Beispiel des am KIT entwickelten "Multicore Multiway Mergesort" dar, das seinen Weg in die MCSTL (Multi-Core Standard Template Library) gefunden hat und somit allen Nutzern dieser Bibliothek zur Verfügung steht. Darüber hinaus zeigte er kurz die parallele Berechnung von Graph-Algorithmen und die Untersuchung von Sortieralgorithmen in Bezug auf Energieverbrauch.

Energieverbrauch war auch ein Thema in der zweiten Keynote, vorgetragen von Maurice Herlihy am zweiten Konferenztag. Herlihy führte Anfang der 90er-Jahre mit Eliot Moss dass Konzept des transaktionalen Speichers ein. In seinem Vortrag spannte er den Bogen vom Beginn dieser Arbeit bis heute, zu Hardware Transaction Memory in Embedded-Geräten. Dazu zählen für ihn nicht nur Microcontroller in irgendwelchen Geräten, sondern auch Smartphones und Tablets, die mit ähnlichen Prozessoren daherkommen. Da solche Geräte oft von einem Akku abhängen, spielt der Energieverbrauch eine essenzielle Rolle. Hier versucht die aktuelle Forschung die Frage nach den besten Zugriffstechniken, etwa Lock Elision, in Bezug auf Optimierung von Antwortzeit und Energieeffizienz zu klären. Auch wenn das derzeit nur einen Teil der Teilnehmer in ihrer täglichen Arbeit tangiert, interessant und spannend war es allemal.

parallel 2014 (7 Bilder)

Eröffnungskeynote

Die Eröffnung hielt Peter Sanders vom KIT zu parallelen Algorithmen.

Das Gros der Konferenz machten jedoch parallel stattfindende Sessions aus. Hier konnten die Teilnehmer jeweils aus drei verschiedenen Themen wählen. Einige Vorträge boten Grundlagen- oder Expertenwissen jenseits einer konkreten Programmiersprache, andere waren hauptsächlich parallelen oder nebenläufigen Aspekten einer bestimmten Sprache gewidmet. Hier dominierten C++, C# (stellvertretend für .NET) und Java. Aber auch andere Themen, zum Beispiel funktionale Sprachen oder Embedded Systems, fanden ihren Raum.

Urs Gleim und Tobias Schüle, bekannt als Autoren von "Multicore Software", erklärten kurz die Hardwareentwicklung von Single- zu Multicore und gingen dann auf damit einhergehende Probleme wie Data Racing, unterbrechbare Operationen, gemeinsam genutzte Ressourcen und Deadlocks sowie Lösungsstrategien wie Locking, Speicherbarrieren und atomare Operationen ein. Im Anschlusszeigten sie, mit welchen Mitteln sich Software im Hinblick auf Parallelität analysieren lässt und welche Lehren daraus zu ziehen sind.

Andere Sessions behandelten bestimmte Aspekte paralleler Softwareentwicklung, etwa die Parallelität auf Instruktionsebene und den Einsatz von GPU-Computing. Teilweise handelte es sich dabei auch um die Vorstellung von Entwurfsmustern für parallele Software, hochfrequente Verarbeitung von Ereignissen mit minimaler Blockade bis hin zur automatisierten Parallelisierung von Bestandssoftware: Nach einem Vortrag zur werkzeuggestützten Parallelisierung zeigten Mitarbeiter des KIT, wie sie bestimmte Softwaremuster automatisch erkennen und in parallele Strukturen überführen lassen.

Aber auch ältere Themen, wie das Java Memory Model, wurden unter dem Gesichtspunkt der Parallelität beleuchtet. Der ForkJoinPool von Java und die Task Parallel Library von .NET sind nicht im letzten Jahr entstanden. Dennoch zeigte das rege Interesse der Teilnehmer, dass die Nutzung paralleler Techniken noch nicht Mainstream ist und daher auch die Wissensvermittlung zu solchen "älteren" Techniken noch eine ganze Weile hochaktuell bleiben dürfte.

Weitere Themen, die sich hier nur kurz anreißen lassen, waren funktionale Möglichkeiten von Java 8 mit Streams und parallelen Collections, funktionale Sprachen, zeitgemäße parallele Bibliotheken und das Debugging paralleler Software.

Die parallel 2014 war eine gelungene Veranstaltung mit direktem Nutzen für die Praxis. Die Mischung von gehobenem Grundlagen- bis zu Expertenwissen und aktuellen Entwicklungen sowie speziellen Themen bot individuell kombinierbar Informationen für Profis unterschiedlichen Niveaus, wobei der Hinweis auf Profi andeutet, dass die Konferenz ein solides Basiswissen der Softwareentwicklung, egal ob Entwickler, Architekt oder Manager, voraussetzt. Insbesondere die Vorträge zu aktuellen Themen zeigten Trends fort von aufwendigen Synchronisationstechniken hin zu schnelleren und günstigeren Lösungen sowie Richtung Automatisierung bei der Migration bestehender Systeme.

Und so bietet die Konferenz Raum für eine Fortsetzung. Die nächste Auflage, parallel 2015, ist bereits geplant und findet voraussichtlich vom 22. bis 24. April 2015 wieder in Karlsruhe statt.

Michael Müller
ist als Bereichsleiter Softwareentwicklung der  InEK GmbH verantwortlich für Projekte im Web-, Java- und .NET-Umfeld. Daneben betätigt er sich  als freier Autor und verfasst Fachartikel zu diversen Entwicklungsthemen sowie Buchrezensionen. (ane)