Effizienz für die große Datenwolke
Auf Youtube werden jede Minute rund 400 Stunden Videomaterial hochgeladen. Die Nutzerinnen und Nutzer sehen sich, den Statistiken von Youtube zufolge, jeden Tag eine Milliarde Stunden Videos an. Dieser Datenverkehr zwischen der „Cloud“ Youtube und den Endgeräten, die zu mehr als der Hälfte mobile Devices sind, muss effizient organisiert werden. Der Informatiker Radu Prodan arbeitet an der Effizienz solcher verteilter und paralleler Systeme. Im Interview spricht er über die Möglichkeiten und die Unmöglichkeiten, die uns in Zukunft erwarten und uns vor enorme Herausforderungen für Technik, Mensch und Natur stellen.
In den USA ging im Juni der schnellste Supercomputer in Betrieb – mit einer Leistung von 200 Petaflops (Billiarden Rechenoperationen pro Sekunde). Sie beschäftigen sich damit, wie solche Riesensysteme funktionieren können. Was ist die Herausforderung dabei?
Diese Computer bestehen aus Millionen heterogener Komponenten, die sehr komplex und hierarchisch strukturiert sind. Eine effiziente Programmierung von Supercomputern dieser Größe ist eine schwierige Herausforderung, da die notwendige Kommunikation zwischen den Komponenten, die Synchronisation und viele andere unvermeidbare Overheads Ineffizienz erzeugen. Bei vielen solchen Rechnern haben wir eine Leistungsfähigkeit von nur 15 bis 20 Prozent gegenüber dem, was sie theoretisch zu leisten imstande wären. Das wird nicht nur für viele Anwendungen zum Performanz-Problem, sondern auch für den Betreiber, der die teuer angeschaffte Recheninfrastruktur nicht voll ausnutzt.
Was ist das Hauptproblem?
In vielen Fällen die theoretische Spitzenleistung zu erreichen. Die Supercomputer werden immer größer, um eine solche Geschwindigkeit von über eine Trillion Operationen pro Sekunde zu erreichen. Wenn man an Masse gewinnt, verliert man an Geschwindigkeit, wenn man zwischen den einzelnen Komponenten zu oft oder zu viele Daten kommuniziert. „Extreme Data“ ist der Inbegriff des Big-Data-Konzepts, das sich durch enorme Datenmengen auszeichnet, die in nahezu Echtzeit abgefragt, kommuniziert und analysiert werden müssen. Damit beschäftigen wir uns aktuell in einem neu gestarteten europäischen Forschungsprojekt.
Wofür braucht man das?
Es gibt heutzutage viele wissenschaftliche und kaufmännische Anwendungen, die Daten mit einer Rate von Hunderten von Gigabits pro Sekunde erzeugen, speichern, filtern und analysieren müssen. Ein modernes Beispiel ist die gleichzeitige Analyse von Millionen von Bildern pro Tag, die eine Milliarde von Social-Data-Posts in Echtzeit auf einer Datenbank abfragt. All das können herkömmliche Festplatten und kommerzielle Speicher nicht. Wir versuchen also, bestehende Konzepte und Technologien zu verbessern und konzentrieren uns auf datenintensive Anwendungen, die auf Systemen laufen, die aus bis zu Millionen von Rechenelementen bestehen. Das sind die so genannten Exascale-Systeme, die eine Trillion von Operationen pro Sekunde beherrschen.
Was tun Sie, bzw. was werden Sie im neuen Projekt tun, um solche Exascale-Systeme zu verbessern?
Wir wollen Definitionen neuer Programmierparadigmen, Schnittstellen, Laufzeittools und Methoden zur Darstellung datenintensiver Aufgaben auf Exascale-Systemen erarbeiten, die den Weg für
die Nutzung von massivem Parallelismus über ein vereinfachtes Modell der Systemarchitektur ebnen können. Dadurch sollen hohe Leistung und Effizienz gefördert sowie leistungsstarke Operationen und Mechanismen zur Verarbeitung extrem großer Datenquellen mit hoher Geschwindigkeit und/oder in Echtzeit bereitgestellt werden.
Viele der genannten Zahlen klingen nach Superlativen. Die wirklichen Superlative beim Bedarf an Rechenkapazität sind aber noch lange nicht erreicht, oder?
Gordon Moore, Mitgründer von Intel, hat 1965 das Mooresche Gesetz formuliert, das im Wesentlichen besagt, dass sich die Geschwindigkeit der Rechenanlagen immer alle 18 Monate verdoppeln wird. Das Gesetz hat bis heute Gültigkeit. Diese Steigerungsraten reichen natürlich bei weitem nicht, um dem gestiegenen Datenaufkommen gerecht zu werden. Es gibt Schätzungen, die besagen, dass bis 2020 jeder Mensch auf dieser Welt ungefähr 1,5 bis 2 Megabyte pro Sekunde generieren wird. So viele Daten können wir weder speichern noch verarbeiten. Deshalb ist es wichtig, die Daten so zu interpretieren und zu filtern, dass nur die Informationen, die wichtig sind, weiterverarbeitet werden.
Welche Ansätze gibt es zur Lösung?
Das ist sehr anwendungsabhängig. Heute geht der Trend in Richtung Edge Computing. Auf der einen Seite haben wir mit der Cloud eine große Wolke, in der viele Parallelrechner eine gemeinsame Einheit bilden, die zentralisiert Daten verarbeitet. Heute wissen wir, dass die Cloud nicht mehr ausreichen kann, um die Datenmenge zu bewältigen. Durch die Entfernung zwischen Endgerät und der Serverfarm – vielleicht am anderen Ende der Welt – ergeben sich Latenzprobleme. Auch wenn es nur ein paar Millisekunden sind, der Mensch ist sehr empfindlich, wenn er auf das Abrufen von Daten warten muss. Dies ist besonders auffällig bei hoch-interaktiven Benutzerschnittstellen wie Computerspielen. Wir müssen es also schaffen, die Cloud näher an die Endnutzerin heranzubringen, die Daten also am Rand des Netzes zu verarbeiten. Dies ist die Idee von Edge Computing.
Wie kann ich mir das in der Praxis vorstellen?
Man wird dynamisch und adaptiv in der Nähe der Anwendung einen kleinen netzwerkfähigen Rechner an eine Steckdose anstecken. So hat man dann seine eigene kleine „Cloud“, die die Daten verwaltet und eine wesentlich schnellere, näher an Echtzeit gelegene Kommunikation ermöglicht. In die Verwaltung solcher verteilter Edge/Cloud Computer wird noch viel Entwicklungsarbeit hineingesteckt werden, um diese automatisiert, transparent, adaptiv und flexibel zu machen. Dies wird aber in den nächsten Jahren auf den Markt kommen.
Gehen damit nicht die Vorteile der Cloud verloren, also die unlimitierten Ressourcen, der Zugang zu den Daten jederzeit und überall, die Skalierbarkeit, das Auslagern und damit auch das Vertrauen darauf, dass die Daten schon irgendwo anders gesichert sind?
Natürlich nicht, weil das im Prinzip eine Ergänzung zur bestehenden Cloud ist. Ein großes Problem wird die Sicherheit bleiben, wenn unsere Daten auf immer mehr Fremdgeräte gespeichert werden, insbesondere heutzutage mit den neuen europäischen Datenschutzrichtlinien.
All diese Riesencomputer und Serverfarmen verbrauchen auch Energie. Inwiefern stellen sie auch eine Gefahr für unsere Umwelt dar?
Das ist die dunkle Seite der Cloud: Sie verbraucht enorm viele Ressourcen. Die Datenverarbeitungszentren dieser Welt verbrauchten schon vor einigen Jahren ungefähr drei Prozent des weltweiten Energieaufkommens, und dieser Wert ist drastisch im Steigen. Auch die Treibhausgasemissionen sind immens davon betroffen. Wenn sich Cloud-Computing weiter ausweitet, sei es in Form von großen Wolken oder vielen kleinen einzelnen Schäfchenwolken, müssen wir auch das Umweltproblem mitdenken. Deshalb ist gerade die Arbeit an der Energieeffizienz so wichtig, sowohl im Computerdesign als auch in der Hardwaretechnologie.
Unterstützt das Konzept des Edge Computing auch dabei?
Ja, die Idee ist es, den einen großen roten Hotspot, der Energie frisst, durch viele grüne kleine Einheiten überall auf der Welt zu kühlen. In dieselbe Kerbe schlägt auch das Konzept, die vielen Endgeräte, die global überall verwendet werden und mittlerweile sehr leistungsstark sind, mehr für die Datenverarbeitung zu nutzen. Dieses Konzept des Peer-to-Peer-Computing kam in den 1990er-Jahren auf. Damals wurde es hauptsächlich für den Datenaustausch genutzt, zum Beispiel für das Hochladen und Herunterladen von Musik oder Filmen, was auch häufig illegal genutzt wurde. Heute denkt man weiter, vor allem an die Nutzung der Rechenkapazität all dieser Geräte.
Denkt eigentlich jemals jemand daran, in dem Datenwulst „zusammenzuräumen“, also auch grob auszumisten und Daten wegzuwerfen?
Speicher ist heute sehr billig, besonders dann, wenn die Schreib- und Lesegeschwindigkeit keine große Rolle spielt. Ans Wegwerfen denkt hier niemand. Sobald die Daten ins Internet geladen wurden oder unabsichtlich durchsickern, sind sie praktisch nicht mehr löschbar.
Betrachtet man die Fehleranfälligkeit, was ist besser: eine große Cloud oder unzählige kleine Clouds?
Bei einzelnen Computern haben wir einen „single point of failure“, wie wir in der Informatik sagen. Für diesen kann man dann natürlich sehr strenge Sicherheitsmaßnahmen treffen und den Kern
gut absichern. Wenn man viele dezentrale Einheiten hat, ist der Schaden, der eine der Entitäten bei einem Sicherheitsproblem betrifft, natürlich viel kleiner, andererseits ist der Schutz nicht in gleichem Maße einfach zu bewerkstelligen. Bei den vielen kleinen Geräten haben wir auch das Problem des Schwindelns, das heißt, wir verteilen den Zustand von einem Punkt zu mehreren Mitgliedern. Wenn alle korrekt arbeiten würden, wäre das kein Problem. Aber so ist die Welt natürlich nicht.
Sie sind heute 44 Jahre alt. Wenn Sie in Pension gehen, welches große Problem in Ihrem Arbeitsgebiet sollte bis dahin gelöst sein? Beziehungsweise: Wenn Sie als Wissenschaftler berühmt werden würden, wofür wollen Sie berühmt sein?
Die Programmiersprache, besonders bei den Hochleistungsrechnern, ist noch sehr primitiv. Wir programmieren heute noch immer fast gleich wie in den 1970er-Jahren, und wir haben es nicht geschafft, eine höhere Programmiersprache zu entwickeln.
Warum nicht?
Das Problem ist die Übersetzung. Die Übersetzung von einer höheren Programmiersprache zur Anwendung muss so viele Schichten und Stufen überwinden, dass das Problem derzeit noch unüberwindbar scheint. Vieles ist auch noch sehr ineffizient.
Wird man irgendwann auch eine natürliche Sprache verwenden können, um Computer zu programmieren?
Das ist auch ein Wunsch vieler Studierender in den ersten Semestern. (lacht) Der heilige Gral im Programmieren ist, die natürliche – deutsche, englische oder rumänische – Sprache nicht nur dafür zu verwenden, um Befehle zu geben. Das funktioniert ja bereits: „Rufe Thomas an!“ Programmieren heißt, neue innovative Programme zu entwickeln und dies mit natürlicher Sprache zu bewerkstelligen, ist eine aktuell unvorstellbare Leistung. Was vielleicht machbar wäre, wäre eine leichtere Sprache, die auch für mehr Menschen zugänglich wäre.
Es gibt Stimmen, die sagen, Programmieren würde – gemeinsam mit Schreiben und Rechnen – demnächst zu den Grundfertigkeiten des Menschen gehören. Würden Sie dem zustimmen?
Das kommt auch darauf an, was man als Programmieren bezeichnet. Wenn die Oberfläche leicht zugänglich ist, kann so mancher und so manche programmieren, ohne das zu bemerken. Ich glaube aber nicht, dass jeder Mensch algorithmisch denken kann und dass das jeder können muss. Zum Beispiel muss auch nicht jeder so wie ein Künstler malen können. Wenn ich an meine Studienzeit zurückdenke, da gab es einen Moment, in dem ging der Knopf auf und ich habe verstanden, wie diese Art zu denken, zu strukturieren, zu entwickeln gemeint ist. Ab dann ging es wesentlich leichter.
für ad astra: Romy Müller
Zur Person
Radu Prodan ist seit März 2018 Professor für Verteilte Systeme am Institut für Informationstechnologie der Alpen-Adria-Universität Klagenfurt. Geboren in Rumänien, absolvierte er sein Technik-Studium an der Technischen Universität von Cluj-Napoca. Nach der Promotion an der Technischen Universität Wien erhielt er 2009 die Lehrbefugnis für das Fach Informatik an der Universität Innsbruck. Er war an der ETH Zürich, der Universität Basel, am Swiss Scientific Computing Centre in der Schweiz, und seit 2004, bis zu seiner Berufung an die AAU, als Privatdozent am Institut für Informatik der Universität Innsbruck tätig und leitete mehrere FWF-, FFG- sowie EU-Projekte. Aktuell wurde das von ihm geleitete EUH2020-FET-Projekt “ASPIDE” genehmigt, mit dem die Verbesserung von Exascale-Systemen erreicht werden soll. Seine Forschungsschwerpunkte sind: parallele und verteilte Systeme, Cloud Computing, Hochleistungsrechnen, Performanz-Analyse und Werkzeuge, Scheduling und Optimierung, Compilertechnologie und Energieeffizienz.
Behind the scenes
Das Fotoshooting zur ad astra-Titelstory fand im Data Center der Universität Klagenfurt statt. Das Datenzentrum wird vom Zentralen Informatikdienst (ZID) betreut. Federführend ist dabei der Leiter der Abteilung für Server- und Kommunikationssysteme Gerald Hochegger (hier am Foto). Das Data Center beherbergt nicht nur alle IT-Dienste der AAU (wie Moodle, Beschäftigtenportal oder die Website der AAU), sondern auch die Server zahlreicher Institute.