1 / 34

Optimierungsverfahren für Fehlerinjektionsexperimente

Optimierungsverfahren für Fehlerinjektionsexperimente. Adrian Böckenkamp (adrian.boeckenkamp @ tu-dortmund.de) Montag, 04. März 2013. Seminarvortrag: Softwarebasierte Fehlertoleranz. Veranstalter: Olaf Spinczyk, Horst Schirmeier , Christoph Borchert, Boguslaw Jablkowski.

hop-wells
Download Presentation

Optimierungsverfahren für Fehlerinjektionsexperimente

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Optimierungsverfahren für Fehlerinjektionsexperimente Adrian Böckenkamp (adrian.boeckenkamp@tu-dortmund.de) Montag, 04. März 2013 Seminarvortrag: Softwarebasierte Fehlertoleranz Veranstalter: Olaf Spinczyk, Horst Schirmeier, Christoph Borchert, Boguslaw Jablkowski

  2. Agenda • Einleitung • Konzepte eines FI-Frameworks • Reduktion des Fehlerraums • Bewertung der Verfahren • Diskussion

  3. Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion

  4. 1. Einleitung Szenario Rückblick & Szenario • Erinnerung:FI-Grundlagen • Zuverlässigkeitsaspekte von Software • Was ist FI? • Fehlermodelle • Welche Techniken gibt es? • Verwandt: Fehlertoleranz • Anwendungsziele von FI: • Güte von Fehlertoleranz-Mechanismen bestimmen • Zuverlässigkeit von Software testen • Identifikation von Schwachstellen

  5. 1. Einleitung Szenario Begriffe (1) • Fehlermodell (hier) immer • Transiente Single-Bitflips • In Register und/oder Speicher • Statische Instruktion vs. dynamische Instanzen Ausführung: x86-Assembler: 4004d2:movl 4004d9:jmp 4004e9:cmpl 4004ed:setle 4004f0:test 4004f2:jne 4004db:mov 4004de:addl 4004e2:mov 4004e4:callq 4004e9:cmpl … 4004d2:movl 4004d9:jmp 4004e9:cmpl 4004ed:setle 4004f0:test 4004f2:jne 4004db:mov 4004de:addl 4004e2:mov 4004e4:callq 4004e9:cmpl … 4004d2:movl 4004d9:jmp 4004db:mov 4004de:addl 4004e2:mov 4004e4:callq 4004e9:cmpl 4004ed:setle 4004f0:test 4004f2:jne 4004d2:movl 4004d9:jmp 4004db:mov 4004de:addl 4004e2:mov 4004e4:callq 4004e9:cmpl 4004ed:setle 4004f0:test 4004f2:jne C++-Code: int i = 0; while (i < 10) { test(i++); } Dynamische Instanzen Statische Instruktionen :-Beziehung

  6. 1. Einleitung Szenario Begriffe (2) • Golden-Run • Protokoll eines fehlerfreien Durchlaufs (Trace) • mit vordefinierter fester Testeingabe • Gewinnt Menge der • Fehlerraum = alle möglichen Fehler • Festgelegt durch „wann“ (Instruktionen) und „wo“ (Hardware) • Beispiel (x86): • Rechenbeispiel (1D-FFT, x86) mit • Annahme: nur 9 „Basisregister“ (eax, edx, …), je 32 Bit Fehler! 8048700: add$0xa,%eax 8048702: mov%eax,0x14(%esp) Wann (PC) Wo (Register)

  7. 1. Einleitung Szenario Begriffe (3) • Auswirkung von Fehlern: Fehler … • … hat keinen Effekt (Maskierung) • … wird erkannt (Detektion) • … bewirkt Systemänderung (Silent-Data-Corruption) kann zur Fehlerraumreduktion genutzt werden! • Maß für die Robustheit einer Software? kleine SDC-Rate! • Für stat. Instruktion : • Für gesamte Software : • Klar: Soll bei Optimierungen berechenbar bleiben … Indikatorfunktion für SDC bei FI in mit

  8. 1. Einleitung Problemstellung Problem & Lösungsidee • Problem: Fehlerraum zu groß • 158 Mrd. Experimente praktisch nicht machbar • Praxisbeispiel: 170 Mio. Experimente • Dauer: „Mehrere Tage“@3584 Cores • Wo können Optimierungen ansetzen? • Art und Weise der FI beschleunigen • Menge der Experimente reduzieren • Optimierungen sollten Ziele nicht einschränken • Beispiel: Fehler nur „sinnvoll“ reduzieren keine Schwachstellen verstecken

  9. Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion

  10. 2. Konzepte eines FI-Frameworks Struktur & Ablauf Fehlerinjektionstechniken • Varianten(von FI): • Hardware-basiert • Software-basiert • Simulator-basiert • Abstraktionsebenen(des FI-Ziels): • Gatter-Ebene • Mikroarchitektur-Ebene • Architektur-Ebene

  11. 2. Konzepte eines FI-Frameworks Struktur & Ablauf Generische Sicht: FI-Framework (Simulator-basiert) Ziel-Software Testeingaben Nebenbedingungen Ziel-Software Testeingaben Nebenbedingungen Erzeugung der Fehlerliste mit Golden-Run Erzeugung der Fehlerliste mit Golden-Run Datenbank Datenbank initiale Fehlerliste initiale Fehlerliste Table 1 Table 1 Schwerpunkt 1 Table 2 Table 2 Optimierung der Fehlermenge Table 3 Table 3 Table 4 Table 4 Schwerpunkt 2 Analyse Analyse Simulation Statistiken Statistiken

  12. 2. Konzepte eines FI-Frameworks Motivation: Optimierungen Motivation: Optimierungen (1) • Mögliche Lösung: Fehlerraum gleichverteilt samplen • Kann Fehler nach Belieben reduzieren • Übersieht aber potentielle Schwachstellen 5 4 3 Speicher [KiB] 2 SDC? 1 0x3000 0x4000 0x5000 0x2000 0x1000 Instruktionen FI-Experiment(e)

  13. 2. Konzepte eines FI-Frameworks Motivation: Optimierungen Motivation: Optimierungen (1) • Mögliche Lösung: Fehlerraum gleichverteilt samplen • Kann Fehler nach Belieben reduzieren • Übersieht aber potentielle Schwachstellen 5 … eher ungeeignet! Jetzt:Optimierung der FI-Infrastruktur 4 3 Speicher [KiB] 2 SDC? 1 0x3000 0x4000 0x5000 0x2000 0x1000 Instruktionen FI-Experiment(e)

  14. 2. Konzepte eines FI-Frameworks Motivation: Optimierungen Beschleunigungskonzepte: Framework (1) • Parallelitätnutzen • Experimente parallel (und verteilt) ausführen • Ergebnisse lokal zusammenführen • Viele(gleichverteilte) Snapshotsverwenden • Speichere viele Simulationszustände (Checkpoints ) • Injektion von : Lade mit • Trade-Off: Speicherplatz Start: 0 100 300 400 500 Instruktionen

  15. 2. Konzepte eines FI-Frameworks Motivation: Optimierungen Beschleunigungskonzepte: Framework (2) • „Modifikation“ des Simulatorcodes(z.B. durch Aspekte) • Simulator-Code muss verfügbar sein • Ermöglicht hohe Effizienz • Keine (?) Simulator-Anpassung nötig (AOP-abhängig) • Früheres Simulationsende • Wann darf eine Simulation eig. enden? … nachdem Target durchgelaufen ist (exakt) … für weitere Instruktionen ab nach FI von … Tests in exponentiellen Zeitschritten 1, 2, 4, … Heuristiken

  16. Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion

  17. 3. Reduktion des Fehlerraums Klassifikation von Verfahren Klassifikation: Fault-Space-Pruning • Mögliche Klassifikation: • Ergebnisvorhersage-basiert (known-outcome-based) • Äquivalenzklassen-basiert (equivalence-based) • Exakt • Heuristisch • Allgemeine Ideen der Techniken: • Keine Fehler simulieren, deren Ausgang vorhergesagt werden kann • Möglichst viele „gleichartige“ Fehler finden • „Gleichartig“ über Heuristiken definieren • Jetzt: Verfahren zum Fault-Space-Pruning • i.W. Architektur-unabhängig

  18. 3. Reduktion des Fehlerraums Exakte Verfahren Ergebnisvorhersage-basiert: Adressgrenzen • Idee: Einige Fehler in Speicheradressen sind detektierbar • Zugriffe auf ungültige Adressen Segmentation Fault • Zugriffe auf gültige Adressen FI-Experiment nötig • Verfahren: • Ermittle gültigen Adressbereich (Stack + Heap) mit Golden-Run • Deklariere alle Fehler in Speicheradressen als detektiert • Anwendbar auf Load- und Store-Instruktionen • Auf Sprunginstruktionen übertragbar: • Sprünge, deren Ziele nicht in .text liegen, sind detektierbar • Problematisch: Sprünge in dyn. Bibliotheken Ausnutzen!

  19. 3. Reduktion des Fehlerraums Exakte Verfahren Äquivalenzklassen-basiert: Def-Use-Analyse (1) • Betrachte: • Schreibzugriff auf ein Register zu Zeit (W) • Lesezugriff auf zu Zeit (R) • Idee: FI in bei äquivalent zu FI in bei • D.h.: Instruktionen auf Register … • … vor einem R bis zum letzten W zusammenfassen äquivalent • … vor einem W bis zum letzten R ignorieren bekannt W 0x43:r1 = r2 + r3 0x45: r4 = r1+ r5 R

  20. 3. Reduktion des Fehlerraums Exakte Verfahren Äquivalenzklassen-basiert: Def-Use-Analyse (2) • Beispiel: • Beachte: Mehrere R'smit versch. Fehler-Propagationen möglich • Bisher nur auf Registern betrachtet • Klar: Auf Speicherzugriffe erweiterbar • Beobachtung: Exaktes Verfahren! Bei 32-Bit Registern FI weniger! R R W W W R Register W R W W R R W R W R Instruktionen

  21. 3. Reduktion des Fehlerraums Heuristisches Verfahren Äquivalenzklassen-basiert: Kontrollpfade (1) • Beobachtungen: • Fehler, die durch ähnlichen Code propagieren, verhalten sich ähnlich • Mehrfachausführung von Code: Fehlerw.k. steigt • Idee: • Betrachte mit vielen im Golden-Run • Teile in Äquivalenzklassen auf Basis des Kontrollpfades nach • Führe FI nur für Repräsentanten der Klassen durch • Verfahren: • Zähle alle Pfade ab Basisblock von auf • … durch dynamische Analyse des Golden-Run • Sprunginstruktionen (Heuristik)

  22. 3. Reduktion des Fehlerraums Heuristisches Verfahren Äquivalenzklassen-basiert: Kontrollpfade(2) • Beispiel (CFG): • Verfahren (Forts.): • Population: Pfade , die mehrfach ausgeführt werden • Pilot: Wähle zufälligen Pfad • Verwerfe alle Pfade Reduktion! Kontrollpfade mit : 1 2 3 4 5 unbesucht 6 7 besucht 5 Äquivalenzklassen 8

  23. 3. Reduktion des Fehlerraums Heuristisches Verfahren Äquivalenzklassen-basiert: Kontrollpfade (3) • Beispiel (Forts.): • Betrachte Pfad und FI in Ann.: wird 1.000x durchlaufen • Etwa weil: • entspricht diesen Pfaden • Wähle zufälligen Pilot FI in Reg.-Bits von für 1 3 2 for(int i=0; i<1000; i++) { // ... } for(int i=3; i<1000; i++) { // ... } for(int i=999; i<1000; i++) { // ... } for(int i=2; i<1000; i++) { // ... } for(int i=1; i<1000; i++) { // ... } 5 4 6 7 8 ...

  24. 3. Reduktion des Fehlerraums Heuristisches Verfahren Äquivalenzklassen-basiert: Kontrollpfade (4) • Beobachtung: Heuristisches Verfahren! • Implementierung auf Basisblock-Ebene • Anwendbar auf alle Instruktionen außer • … Load/Store • … solche, die Load/Store beeinflussen Fehlerpropagation auch von Adressen (in Load) abhängig • Ausblick: Speicheräquivalenz-Heuristik • Idee: Fehler in Store ähnlich, falls Werte ähnlich benutzt werden • Ähnelt der Kontrollpfadäquivalenz

  25. Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion

  26. 4. Bewertung der Verfahren Effektivität: Reduktionsfaktor Bewertungsgrundlage der Verfahren • Ziel war: Reduktion des Fehlerraums • Bewertungsgrundlage • SPARC v9-Architektur • 12 Applikationen aus 3 versch. Benchmarks • Kontext: Physik / Informatik / Mathematik • Optimierte vs. unoptimierteKompilate • Eckdaten • Anzahl der : 22,3 Millionen – 4,57 Milliarden • Kardinalität von : 1,9 – 500,4 Milliarden • Beispiele: FFT, GCC, Water, Ocean, …

  27. 4. Bewertung der Verfahren Effektivität: Reduktionsfaktor Ergebnisse (Auswahl) • 99,78% aller Experimente reduziert, meistens 99,99% • Größenordnung 3 – 6 für die meisten Anwendungen • 0,004% der Fehler repräsentieren 99% aller Fehler! • Reduktionsraten bei unoptimierten Anwendungen (viel) höher • Beispiel (FFT) optimiert: 48,7 Mrd. (initial) 0,3 Mio. (reduziert) unoptimiert: 61,18 Mrd. (initial) 0,16 Mio. (reduziert) • Verfahrensanteile an Gesamtreduktion: (optimiert)

  28. 4. Bewertung der Verfahren Genauigkeit von Heuristiken Bewertungsmodell der Genauigkeit • Wie genau repräsentieren die Piloten ihre Population? • Beispiel: FI in Pilot maskiert, FI in 98% maskiert, 2% SDC Genauigkeit 98% • Gesamtgenauigkeit: Gewichteter aller Piloten mit • Praktisch unmöglich: „FI in“! • Alternative (machbar): • Population zufällig abtasten • Nur in jedes 8-te Bit injizieren • Beschränke Piloten, sodass Simulationen 1 Mio.

  29. 4. Bewertung der Verfahren Genauigkeit von Heuristiken Ergebnisse (Auswahl) • 96% Genauigkeit über Kontroll- und Speicheräquivalenz • Beinhaltet Vorhersage-basierte Techniken 100% Genauigkeit! • Speziell für Kontrolläquivalenz: • 95,7% für FI in Register • 94,5% für FI in Adressregister • Pro Anwendung über alle Techniken gemittelt: > 91% • Schwachstelle: • Beschränkung auf Basisblock-Ebene

  30. 4. Bewertung der Verfahren Genauigkeit von Heuristiken Zusammenfassung & Fazit • Optimierungszielewaren: • Reduktion des Fehlerraums • Beschleunigung der Experimente • Kernideen waren: • Fehlerauswirkung vorherzusagen oder • Fehler in Äquivalenzklassen einteilen • Ergebnisse: • Hohe Reduktionsraten erzielbar (… ggf. mit Heuristiken) • Stark abhängig vom Kontext (Compiler, Target, Verfahren)

  31. Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion

  32. 5. Diskussion Diskussion Vielen Dank für die Aufmerksamkeit! Fragen? Anmerkungen? Kritik?

  33. Literaturverzeichnis Literatur & Quellen (1) Wichtigste Grundlage des Vortrags: • „Relyzer: Exploiting Application-Level Fault Equivalence to Analyze Application Resiliency to Transient Faults”; S. K. S. Hari, S. V. Adve, H. Naeimi und P. Ramachandran; Proceedings of the 17th international conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '12), http://rsim.cs.illinois.edu/Pubs/12-ASPLOS-Hari.pdf Weitere Quellen: • „Fault-list collapsing for fault-injection experiments“; A. Benso, M. Rebaudengo, L. Impagliazzound P. Marmo; Proceedings of the Annual Reliability und Maintainability Symposium, 1998;http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=653808 • „Fail*: Towards a Versatile Fault-Injection Experiment Framework“; H. Schirmeier, M. Hoffmann, R. Kapitza, D. Lohmann und O. Spinczyk; 25th International Conference on Architecture of Computing Systems (ARCS '12), 2012; http://danceos.org/publications/VERFE-2012-Schirmeier.pdf • „New Techniques for Speeding-up Fault-injection Campaigns“; L. Berrojo, I. González, F. Corno, M. SonzaReorda, G. Squillero, L. Entrena und C. Lopez; Proceedings of the conference on Design, automation and test in Europe, 2002; http://www.date-conference.com/proceedings/PAPERS/2002/DATE02/PDFFILES/08D_4.PDF

  34. Literaturverzeichnis Literatur & Quellen (2) Weitere Quellen: • „Investigating the limitations of PVF for realistic program vulnerability assessment“; B. Döbel, H. Schirmeier und M. Engel. InProceedings of the 5rd HiPEAC Workshop on Design for Reliability (DFR '13), Berlin, Germany, Jan. 2013; http://danceos.org/publications/HiPEAC-DFR-2013-Doebel.pdf

More Related