zurück zum Artikel

parallel 2018: Grenzen und Chancen der Parallelprogrammierung

Michael Müller
parallel 2018: Grenzen und Chancen der Parallelprogrammierung

Welche oft ungeahnte Komplexität Parallelität mit sich bringt, zog sich als roter Faden von der ersten Keynote bis zum Schluss der Konferenz durch. Außerdem öffneten sich mögliche Themenfelder für die Zukunft.

Vom 6. bis 8. März fand in Heidelberg die siebte Auflage der parallel [1] statt. Den ersten Tag konnten interessierte Teilnehmer nutzen, um sich im Rahmen von Workshops auf die Konferenz vorzubereiten oder spezielle Themen zu vertiefen. Die Hauptkonferenz startete am 7. März nach der Eröffnung mit einer Keynote von Professor Michael Resch, seines Zeichens Direktor des High Performance Computing Center an der Uni Stuttgart und als solcher Herr über einen der schnellsten Computer der Welt. Während die Rechner durch eine stetig wachsende Anzahl von Prozessoren zunehmend leistungsfähiger werden, könne deren Auslastung mit dieser Entwicklung nicht immer mithalten. Wer ist schon in der Lage, bei der Masse von mehreren Hunderttausend Cores den Überblick zu behalten und alles richtig zu synchronisieren?

Parallelität eröffnet nicht nur neue Lösungsräume, sondern schafft auch neue Probleme, deren Behandlung Entwickler lernen müssen. Das kam auch in diversen anderen Sessions zum Ausdruck, sodass sich einige Aspekte der Keynote wie ein roter Faden durch die Konferenz zogen.

Im Zusammenhang mit Superrechnern stellt sich die Frage, wohin die Reise geht. Eine signifikante Beschleunigung einer CPU erfordert kleinere physikalische Strukturen. Und hier zeigte Resch aktuelle Studien, die – anders als noch vor wenigen Jahren – nicht mehr von einer deutlichen Verkleinerung ausgehen. Vielmehr nehme der Bedarf für noch leistungsfähigere Supercomputer ab – abgesehen von einigen politisch motivierten Prestigeobjekten. Somit lohne sich der Aufwand für die Chip-Hersteller nicht mehr unbedingt.

Prof. Dr.-Ing. Michael Resch bei seiner Eröffnungs-Keynote

Prof. Dr.-Ing. Michael Resch bei seiner Eröffnungs-Keynote

Die Gedanken zu den physikalischen Strukturen fanden ihre Fortsetzung im letzten Vortrag des ersten Tages, in dem Professor Wolfgang Mauerer über die physikalischen Grenzen der Parallelisierung sinnierte. Um die Strukturen zu verkleinern, könne man ein Photon als Informationsträger einer Null oder Eins nutzen. Dabei gibt es eine kleinste Umschaltzeit, die abhängig ist von der zugeführten Energie. Nach der Formel E = mc² lässt sich recht einfach die Menge Energie einer Maß Bier berechnen. Leider ist die gesamte Energie nur bei Zerstrahlung nutzbar, und hier stehe das Gesetz im Wege, das Strafen für das Herbeiführen einer Kernreaktion vorsieht. Schwarze Löcher auf der anderen Seite eignen sich nicht für die Parallelisierung, da dort nur Single-Thread möglich sei. Obwohl der Vortrag für die Teilnehmer kaum einen praktischen Nutzen hatte, zeigte er auf unterhaltsame Art spannende physikalische Aspekte auf und regte zum Nachdenken an.

Die Keynote am zweiten Tag von Michael Keckeisen beschäftigte sich mit parallelem Rechnen in der digitalen Fahrzeugentwicklung. Statt mehrere Hundertmillionen Kilometer an Testfahrten physisch durchzuführen, findet der größte Teil davon ebenso im Rahmen digitaler Simulationen statt wie ein Großteil der Windkanalanalysen. Dabei muss die Software das Fahrzeug digital aus seinen Komponenten zusammensetzen. Üblicherweise kommt für die Oberflächenmodellierung ein Linienraster mit etwa vier Millimetern zum Einsatz – die Grenze setzt die aktuell verfügbare Rechenleistung. Um die Simulationen berechnen zu können, müssen die CAD-Workstations über die Wochenenden durchlaufen. Zu wenig Rechenleistung auf der einen Seite stehen nicht immer ausgelastete Superrechner auf der anderen gegenüber. Professor Resch hatte in seiner Keynote darauf hingewiesen, dass die Industrie gegen entsprechende Kostenbeteiligung den Supercomputer mitnutzen könne.

Abseits der Keynotes beschäftigten sich erneut die meisten Vorträge mit konkreten Problemstellungen und Lösungsansätzen in C++. Fortran war diesmal nicht vertreten, auch wenn es nach Meinung einiger der anwesenden Experten immer noch die beste Sprache für paralleles Number Crunching ist. Dafür gab es deutlich mehr Vorträge als im Vorjahr, die sich mit Java beschäftigten. Die Programmiersprache ist ebenso wie das in einigen Vorträgen thematisierte C# weniger für systemnahe Entwicklung ausgelegt als vorrangig für Business-Applikationen.

heise-Developer-Blogger Rainer Grimm widmete sich Best Practices für Parallelität in C++.

heise-Developer-Blogger Rainer Grimm widmete sich Best Practices für Parallelität in C++.

Der erste Konferenztag ging nahtlos in Thementische über, an denen die Teilnehmer sich locker mit den Sprechern über konkrete Themen unterhalten konnten. Dabei fand der Block "Parallelisierung von Business-Applikationen, oder warum entwickeln viele noch sequenziell?" den größten Zulauf. Es stellte sich heraus, dass in der Praxis manchmal das Einfrieren des User Interface in Kauf genommen wird, um den Schritt zur Nebenläufigkeit zu vermeiden. Andere alte Applikationen seien in einer Form gewachsen, die eine Parallelisierung – zumindest mit dem jeweiligen Kenntnisstand – nur schwer oder gar nicht erlaube. An dieser Stelle herrscht eindeutig Informationsbedarf. Schön wäre, wenn die Veranstalter die parallel in einer Weise erweitern, dass sie solchen Entwicklern ein gezieltes Forum über die bisherigen Ansätze hinaus bietet und wenn die daran interessierten Teilnehmer nicht nur vereinzelte Vorträge, sondern einen kompletten Track dazu fänden.

Der Frauenanteil in der Informatik ist in Deutschland mit etwa 15 % bis 20 % im Vergleich zu anderen Ländern recht gering. Auf der parallel 2018 lag der Anteil sogar unter 3 %. Auf die Frage nach dem Warum hieß es, Frauen seien weniger in der systemnahen Programmierung, sondern mehr im Bereich von Business-Applikationen tätig. Dass die nebenläufige Programmierung dabei teilweise noch in den Kinderschuhen steckt, bestätigt die Notwendigkeit, die Konferenz in diese Richtung zu ergänzen.

Insgesamt bot die parallel 2018 eine Mischung aus Informationen und Problemlösungen sowohl allgemeiner Natur als auch für einzelne Programmiersprachen. Die Vorträge bestätigten den Trend, der von der expliziten Thread-Programmierung weg und zu einfacheren Strukturen wie Tasks oder Streams hinführt. Die Strukturen nutzen zwar intern ebenfalls Threads, verbergen sie aber vor den Entwicklern. Unter anderem gibt es in C++ neuerdings mit Executors ein Konzept, das beispielsweise in Java seit Jahren besteht.

Einen Blick über den bekannten Sprachhorizont hinaus bot diesmal Christoph Iserlohn mit seinem Vortrag über Elixir. Obwohl die Zuhörer anschließend kaum die Sprache ihrer Wahl wechseln, ist es immer wieder erfrischend, andere Konzepte zu sehen und davon zu lernen. Ebendies hat die parallel bereits in der Vergangenheit geboten und wird es hoffentlich auch künftig bieten.

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.

(Veranstalter der parallel sind heise Developer, iX und der dpunkt.verlag, die Teil der Heise Gruppe sind; Anm. d. Red.) (rme [2])


URL dieses Artikels:
https://www.heise.de/-3996187

Links in diesem Artikel:
[1] https://www.parallelcon.de/
[2] mailto:rme@ix.de