Menschen machen Fehler – Computer auch
| 10. Mai 2017Ob selbstfahrende Autos, sprechende Kühlschränke oder Hochleistungsrechner in der Wissenschaft: Computersysteme übernehmen immer mehr Aufgaben. Doch sind auch sie nicht vor Fehlern gefeit. Informatiker Wilfried Gansterer ist der Erkennung und Korrektur dieser in einem WWTF-Projekt auf der Spur.
"Haben Sie es schon mit Aus- und Einschalten versucht?" ist nicht nur ein Running Gag in der britischen Sitcom "The IT Crowd", sondern häufig auch der erste Lösungsansatz, wenn Probleme mit dem Laptop, Smartphone oder MP3-Player auftreten. Doch was passiert, wenn Fehler in der Soft- oder Hardware bei Systemen auftreten, die lebenswichtig sind, wie beispielsweise bei medizinischen Geräten? Oder wenn plötzlich die Technik eines Flugzeugs oder Autos versagen würde?
"Als man in den 1940er und 50er Jahren begann, Computer zu nutzen, ging man davon aus, dass die Systeme zuverlässig sind. Doch kein Computersystem ist zu einhundert Prozent vor Fehlern geschützt. Daher werden üblicherweise auf der Hardware-Ebene Mechanismen eingebaut, die Fehler (bis zu einem gewissen Grad) erkennen und korrigieren können. Interessanterweise steigt der Aufwand für diese Mechanismen stark mit der technologischen Weiterentwicklung – und daher wird es immer wichtiger, zusätzliche Konzepte auf algorithmischer Ebene zu untersuchen", erklärt der Informatiker Wilfried Gansterer von der Universität Wien, der mit seinen Mitarbeitern in der Forschungsgruppe "Theorie und Anwendung von Algorithmen" in einem aktuellen WWTF-Projekt nach Lösungen sucht.
Fehlertoleranz
Wie können unvorhersehbare Fehler in einem Computersystem verkraftet werden? Das Lösungswort lautet Fehlertoleranz: Das ist die Eigenschaft eines technischen Systems, seine Funktionsweise aufrechtzuerhalten, wenn plötzliche Fehler auftreten. Fehlertoleranz kann sowohl auf der Soft- als auch der Hardwareebene umgesetzt werden. So besitzt beispielsweise jedes Flugzeug verschiedene Arten von Redundanz, damit beim Ausfall eines Systems ein anderes übernehmen kann.
Diese Strategie der Redundanz hat allerdings den Nachteil eines hohen Ressourcenaufwands. "Wir suchen daher ergänzend auf algorithmischer Ebene nach Konzepten, sprich fehlertoleranten Algorithmen, die für bestimmte komplexe Fragestellungen effizienter sind als Redundanz auf Systemebene. Die spannende Frage lautet für mich: Welche Fortschritte können wir auf dieser Ebene erzielen und was sind die 'Kosten' im Vergleich zu Redundanz auf Systemebene?", so Wilfried Gansterer.
Wilfried Gansterer ist seit Juli 2012 assoziierter Professor an der Fakultät für Informatik der Universität Wien. Seine Forschungsschwerpunkte sind neben fehlertoleranten Algorithmen Scientific Computing, High Performance Computing sowie paralleles und verteiltes Computing. (Foto: Universität Wien)
Innovative Herangehensweise
Eine der Ideen, die die Informatiker in dem Projekt verfolgen, ist die Verwendung randomisierter Verfahren, um die Fehlertoleranz zu erhöhen. "Randomisierte Verfahren können viel flexibler auf unvorhergesehene Änderungen im System reagieren als deterministische Algorithmen. Wir versuchen nun, das Potenzial randomisierter Verfahren zu nutzen, um bessere Fehlertoleranz zu erzielen", berichtet Projektleiter Wilfried Gansterer.
Codes und Simulationen
Im Rahmen des Projekts entwickeln Wilfried Gansterer und sein Team zunächst theoretische Modelle, um die neuen Algorithmen zu analysieren und anschließend zu implementieren. "Erfahrungsgemäß geht bei der Codeentwicklung ein großer Teil der Zeit für das Debugging – also die Fehlerbehebung – drauf. Die Codes fehlerfrei zum Laufen zu bringen dauert also oft länger als das Entwickeln eines Algorithmus", schmunzelt der Informatiker. Die Codes werden anschließend auch experimentell bzw. durch Simulationen evaluiert. "Wir fokussieren dabei auf spezielle prototypische Szenarien. Wir haben lokale Simulationsserver zur Verfügung, auf denen wir unvorhergesehene Datenänderungen, sogenannte Bitflips, simulieren können."
Leistung steigern, aber energieeffizient
Ein weiterer Aspekt, der im Rahmen des Projekts und im Zusammenhang mit der Fehlertoleranz eine Rolle spielt, ist der Energieverbrauch von Hochleistungsrechnern. Ihre Leistung immer weiter zu steigern ist einerseits wünschenswert, da eine höhere Rechenleistung schnellere Ergebnisse bringt. Eine wichtige Voraussetzung für wissenschaftliche Disziplinen wie Computational Science, ein interdisziplinäres Forschungsgebiet von Naturwissenschaften wie Biologie, Chemie, Physik, angewandter Mathematik und Informatik. Andererseits würden diese Systeme unvertretbar viel Energie verbrauchen. "Der Energieverbrauch ist mittlerweile zu einer entscheidenden Hürde für die Weiterentwicklung der Leistungsfähigkeit von Hochleistungsrechnern geworden", erläutert Wilfried Gansterer.
Eine Möglichkeit der Reduktion des Energieverbrauchs sind Einsparungen bei eben genau jenen Hardwarekomponenten, die eingebaut sind, um bestimmte Fehler zu korrigieren – wie z.B. die bereits beschriebenen Mehrfachbordsysteme im Flugzeug. Dazu müsste allerdings ein Teil der Last der Fehlerkorrektur auf die Algorithmen und auf die Software verlagert werden. Doch Wilfried Gansterer stellt klar: "Uns geht es nicht darum, Algorithmen zu entwickeln, die mit allen Fehlern fertig werden, sondern wir möchten besser verstehen, welche Fehler man auf algorithmischer Ebene effizient abfangen kann. Und ob es für das Gesamtsystem einen Gewinn oder Verlust – beispielsweise hinsichtlich der Effizienz – bedeuten würde."
Grundlagenforschung mit Anwendungshorizont
Das, was Gansterer und sein Team betreiben, ist reine Grundlagenforschung. "Dafür verwenden wir zwar mitunter auch Inputdaten von echten Anwendungen, um möglichst realistische Szenarien überprüfen zu können, aber uns geht es beispielsweise um das Lösen von linearen Gleichungssystemen, um Algorithmen des maschinellen Lernens oder um Ausgleichsprobleme, die in verschiedenen Kontexten gebraucht werden", erklärt der Informatiker. Dennoch schwingt natürlich stets ein Anwendungshorizont mit. Denn mittelfristig ist es natürlich denkbar, auf Basis der im Projekt gewonnen Erkenntnisse konkrete Umsetzungen mit Unternehmen durchzuführen.
Was "kostet" uns die Zuverlässigkeit?
Das Problem ist, dass eine höhere Zuverlässigkeit immer auch mit Abstrichen verbunden ist, z.B. beim Zeitaufwand. "Wenn ich einen Algorithmus präsentiere, der zwar alle Fehler verkraftet, aber dadurch dreimal so langsam ist, würde dieser Algorithmus in der Praxis nur schwer akzeptiert werden", so der Forscher. Aus diesem Grund suchen die Informatiker rund um Wilfried Gansterer nach dem theoretischen Optimum: "Wir hoffen am Ende des Projekts sagen zu können, für diese bestimmte Situation X ist Y der minimale Overhead, der investiert werden muss, um Fehlertoleranz zu erreichen." Auf diese Weise könnte es in Zukunft möglich sein, die Effekte von unvermeidbaren Fehlern und Störungen zu reduzieren – allerdings muss hierzu auch die Bereitschaft von HerstellerInnen und NutzerInnen vorhanden sein, gewisse Abstriche in anderen Aspekten in Kauf zu nehmen. (mw)
Das Projekt "Resilience versus Performance in Numerical Linear Algebra" (REPEAL) unter der Leitung von Assoz. Prof. Dr. Wilfried Gansterer, Privatdoz., stv. Leiter der Forschungsgruppe Theory and Applications of Algorithms an der Fakultät für Informatik der Universität Wien wird in Kooperation mit der Forschungsgruppe "Parallel Computing" der Fakultät für Informatik der Technischen Universität Wien durchgeführt und läuft vom 01.03.2016-28.2.2019.