parallel 2015: Konferenz zieht Querschnitt durch die Parallelprogrammierung

Vier Auflagen hat die Konferenz zur Parallelprogrammierung und Nebenläufigkeit mittlerweile hinter sich. Und jedes Jahr kommt die an diesen Themen interessierte Community nach Karlsruhe, um mehr darüber zu erfahren, wie sich die vorhandene Rechenpower für die Anwendungsentwicklung nutzen lässt.

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

Vier Auflagen hat die Konferenz zur Parallelprogrammierung und Nebenläufigkeit mittlerweile hinter sich. Und jedes Jahr kommt die an diesen Themen interessierte Community nach Karlsruhe, um mehr darüber zu erfahren, wie sich die vorhandene Rechenpower für die Anwendungsentwicklung nutzen lässt.

Die parallel 2015 fand vom 22. bis 24. April 2015 in der IHK Karlsruhe statt. Die Teilnehmerzahl wurde vom Veranstalter mit rund 150 angegeben. Sie bewegte sich damit etwa auf dem Vorjahresniveau. Auf die Frage der Veranstalter, welche Teilnehmer denn zum wiederholten Male die parallel besuchen, bekundeten zahlreiche Teilnehmer bereits ihre vierte Teilnahme, dem Anschein nach die zweitgrößte Gruppe. Die mit Abstand größte Schar waren jedoch Debütanten.

Arndt Bode, Vorsitzender des Advisory Board des Leibniz Supercomputing Centre

Professor Arndt Bode berichtete über parallele Anwendungen auf dem SuperMUC im Münchener Leibnitz-Rechenzentrum, der als Verbund zahlreicher Rechnerknoten entstand. In Phase 1, von 2011 bis 2013, wurden rund 155.000 Prozessorkerne verbaut. 2015 kam in Phase 2 ein weiterer Verbund hinzu, der eine vergleichbare Leistung mit weniger als 90.000 Prozessorkernen erreicht und nur noch ein Drittel der Stellfläche benötigt.

Ein solch großer Rechnerverbund benötigt sein eigenes Gebäude und speziell abgestimmte Energie- und Kühlkonzepte. Neben der bekannten Luft- und Kaltwasserkühlung wurde vor allen Dingen auf Warmwasserkühlung gesetzt, die auf 40 bis 60° kühlt. Die anschließende Kühlung des aufgeheizten Wassers sei deutlich günstiger als eine auf Kaltwasserniveau (ca. 10°). Und die Wärme werde für weitere Zwecke genutzt. Selbst wenn in den meisten Betrieben das eigene Rechenzentrum deutlich kleiner ausfällt, fließen die Ergebnisse aus solchen Projekten auch in die allgemeine Entwicklung ein.

Auf Interesse stieß die Frage, mit welchen Programmiersprachen Software erstellt werde, die den SuperMUC verwendet: Java-Programme verwenden weniger als 5 Prozent der Rechenleistung, C# ist gar in weniger als einem Prozent vertreten. Die meiste Rechenleistung nutzen in C (~30 %), C++ (~20 %) sowie Fortran (~40 %) geschriebene Programme, die sich als besonders gut für die parallele Verarbeitung eignen. Vor diesem Hintergrund erwies sich der neue Fortran-Track der parallel 2015 als gute Wahl. Ansonsten dominierten die Programmiersprachen C und C++ mit parallelen Bibliotheken wie OpenMP und MPI, wofür auch spricht, dass wegen der großen Nachfrage der Workshop zur Concurrency- und Multi-Threading-Unterstützung in C++11/C++14 vor Konferenzbeginn noch einmal zusätzlich angeboten. Für gewöhnlich finden auf die Workshops allein im Nachgang der Konferenz statt.

Walter Tichy hielt eine Einführung in die Parallelprogrammierung.

Als Einstieg in die parallel 2015 konnten die Teilnehmer Walter Tichys Einführung in dieParallelprogrammierung besuchen. Ein kurzer Rundumschlag zeigte die Herausforderungen, einige Programmiermodelle sowie die Arbeitsweise mit unterschiedlichen Prozessortypen. Neben der bekannten CPU ist die GPU besonders gut für die Parallelprogrammierung geeignet – sofern alle Kerne einer GPU dieselbe Aktion ausführen können. Denn hier nutzen zahlreiche Kerne ein gemeinsames Programm.

In der Einführung wurden beispielhafte Codefragmente mit C/C++ gezeigt, den Start mit einer konkreten Sprache bildete aber Java. Und zu ihr gab es einige aufeinander aufbauende Vorträge: von den Grundlagen der in Java 8 neu eingeführten Objekt-Streams über deren parallelen Iterator, Spliterator genannt, bis hin zur Nutzung in Suchalgorithmen. Speziell beim Thema Java zeigte sich, dass einige Firmen gerade den Schritt von Java 6 auf 8 vollzogen haben, während andere, die Java 7 nutzen, wohl noch eine Weile bei dieser Version verbleiben. Insofern besteht wohl auch im nächsten Jahr noch Bedarf an den Grundlagen der Java 8 Lambdas und Streams.

Ähnlich war es bei C#: Wie auf der letzten parallel war der Grundlagenvortrag zur Nutzung paralleler und nebenläufiger Strukturen gut besucht. Doch auch mit anderen Sprachen lassen sich moderne Mehrprozessorsysteme nutzen. So gab es eine Session zu Rust, oder es wurden im Rahmen paralleler Konzepte Sprachen wie Scheme und Haskell vorgestellt. Python hat es mit seiner Multiprozessorfähigkeit gleich in mehrere Sessions geschafft.

Auch wenn sich viele Entwickler dafür interessieren, wie sie die Sprache ihrer Wahl nutzen, bestand das Vortragsprogramm beileibe nicht nur aus Sessions zu speziellen Sprachen. Beispielsweise zeigte der Vortrag von Rudolf Berrendorf Leistungsparameter aktueller Parallelrechner und was Programmierer hierzu wissen sollten. Michael Wong, Vorsitzender der OpenMP-Spezifizierung und als Vertreter von IBM und Kanada in die C++-Standardisierung involviert, erzählte in der zweiten Keynote über parallele Programmiermodelle von heute und morgen.