Wie man Supercomputer programmiert

    24. März 2019, 14:00
    15 Postings

    Europa möchte im globalen Rennen um die stärksten Hochleistungsrechner vorne mit dabei sein. Entwickler arbeiten an Systemen für eine zukünftige "Exascale"-Computergeneration

    foto: getty images / istock / maksim tkachenko
    Wer schafft mehr Rechenoperation pro Sekunde? Hochleistungsrechner sind ein wichtiges Werkzeug im Lösen wissenschaftlicher Probleme.

    Zeitgemäß müsste der Spruch "Wissen ist Macht" wohl in "Rechenkraft ist Macht" abgewandelt werden. Die USA und China ringen um die vorderen Plätze in der Top-500-Liste der leistungsstärksten Supercomputer. Aktuell liegen die USA mit Summit und Sierra vor China mit Sunway Taihu Light und Tianhe-2A. Der beste Rechner aus Europa – nicht der EU – liegt auf Platz fünf: Piz Daint vom Schweizer Supercomputing Center in Lugano. Österreich ist mit dem Vienna Scientific Cluster der TU Wien nicht Teil der Top 500.

    Die Rechner an der Spitze der Liste liegen im Petaflops-Bereich, ihre Leistung wird also in Billiarden Rechenoperationen pro Sekunde gemessen. Spitzenreiter Summit am Oak Ridge National Laboratory schafft mit seinen etwa 2,4 Millionen Rechenkernen im praktischen Betrieb etwa 140 Petaflops.

    In Universitäten und Tech-Konzernen wird aber durchaus bereits erneut eine Kategorie größer gedacht. Wer schafft den ersten Exascale-Computer, dessen Leistung noch einmal um den Faktor 1000 größer ist und in Trillionen Operationen pro Sekunde angegeben werden kann?

    In der EU möchte man im globalen Wettrüsten stärker mitspielen. Das Ziel ist, mit zwei Supercomputern in den Top 5 und mit weiteren zwei in den Top 25 vertreten zu sein. Entsprechende Pläne wurden im Herbst beschlossen. Auch die Technologie soll dabei im größeren Maße aus Europa kommen. Innerhalb des Programms "Digitales Europa" ist für 2021 bis 2027 ein Betrag von 2,7 Milliarden Euro den Hochleistungsrechnern vorbehalten.

    Größer, komplexer

    Noch Teil des Horizon-2020-Programms der EU ist das Projekt Aspide, das auf Software-Entwicklungen für künftige Exascale-Dimensionen fokussiert. Denn mit steigender Größe und mehr Rechenkernen steigen auch die Anforderungen an die Programmierer, erklärt Radu Prodan, der seit einem Jahr Professor für Verteilte Systeme am Institut für Informationstechnologie der Alpen-Adria-Universität Klagenfurt ist und an Aspide mitarbeitet.

    Eine ausreichend schnelle Bereitstellung der Daten ist bei Rechnern dieser Größe ebenso wichtig wie die Verarbeitung selbst. Datenströme, die etwa von einer Vielzahl von Sensoren in einer Smart City generiert werden, würden von den Rechnern in nahezu Echtzeit verarbeitet, Erkenntnisse abgeleitet, die Unmenge an Ursprungsdaten aber nicht mehr gespeichert. Anwendungen des maschinellen Lernens, die bei Social-Media-Diensten Bildinhalte automatisch erkennen, arbeiten etwa auf diese Weise.

    "Hier in Klagenfurt entwickeln wir etwa ein System, das die Millionen Rechenkerne, auf die die Rechenlast eines Exascale-Systems verteilt ist, überwacht", erklärt Prodan. Der geborene Rumäne war vor seiner Zeit in Klagenfurt unter anderem an der Uni Innsbruck, der ETH Zürich und beim Schweizer Supercomputer in Lugano tätig.

    "Das Monitoring der Kerne darf die Leistung des Gesamtsystems allerdings nicht beeinflussen." Man könne davon ausgehen, dass bei dieser Anzahl alle paar Minuten ein Rechenkern ausfällt. Die Aufgabe müsse, sofern sie in einem redundanten System nicht ohnehin doppelt gerechnet wird, neu aufgeteilt oder erneut gerechnet werden. "Fehleranalyse ist ein großes Thema im Supercomputing und ein integrativer Teil der Systementwicklung", betont Prodan.

    Programme übersetzen

    Eines der komplexesten Themen, mit denen Prodan und Kollegen beschäftigt sind, ist das optimale "Übersetzen" von Software für Supercomputer. Die in verbreiteten Programmiersprachen geschriebenen Systeme müssen mittels sogenannter Compiler in einen Code umgewandelt werden, der vom Computer "verstanden" und ausgeführt werden kann – eine schwierige Aufgabe, wenn der Computer aus Millionen Kernen besteht, auf die die Ausführung aufgeteilt wird.

    "Es gibt sehr viele Parameter, die die Arbeit des Compilers beeinflussen", sagt Prodan. "Unsere Aufgabe ist es, ein System zu entwickeln, das die Übersetzungsarbeit auf bessere Weise automatisch optimiert." Durch Faktoren wie zusätzliche Kommunikation der Systemkomponenten entsteht eine Nutzungseffizienz der Supercomputer von lediglich 15 bis 30 Prozent. Die Herausforderung ist, diese Werte bei größeren Systemen nicht weiter sinken zu lassen.

    Von Projektpartnern werden exemplarische Anwendungsfälle für Exoscale-Rechner entwickelt. Neben Smart-City-Analysen, bei denen Daten zu Energiehaushalt, Verkehrsflüssen und menschlichen Verhaltensmustern zusammenfließen, sind auch Meinungsanalyse in Social-Media-Kanälen oder Sprach- und Bilderkennung dank Deep-Learning-Algorithmen ein Thema.

    Ein Fallbeispiel beschäftigt sich mit der Erforschung des menschlichen Gehirns und soll anhand medizinischer Bilddaten Alterungsprozesse und Erkrankungen nachvollziehbar machen. (Alois Pumhösel, 24.3.2019)

    Share if you care.