Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet:...

22
Tracing unter L4/Fiasco 1 11.04.2003 Tracing unter L4/Fiasco Andreas Weigand Großer Beleg

Transcript of Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet:...

Page 1: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 111.04.2003

Tracing unter L4/Fiasco

Andreas Weigand

Großer Beleg

Page 2: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 211.04.2003

Überblick

� Einführung

� Entwurf und Implementation

� Tracing im Userland

� Tracing im Kern

� Messungen

Page 3: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 311.04.2003

DROPS

� Dresden Realtime Operating System

� Timesharing- und Echtzeitkomponenten

Page 4: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 411.04.2003

Derzeitiger Stand

� Eingeschränkte Debuggingmöglichkeiten

� Debugging mit printf()

� Kerndebugger JDB

� Profiling einzelner Programme

� Keine Visualisierung

Page 5: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 511.04.2003

Tracing allgemein

� Sammlung von Informationen

� Anwendung instrumentieren

� Entstandene Daten auswerten

� Visuelle Darstellung des Programmablaufs

� Erkenntnisse über Programmverhalten

� Verbesserung des Programms

Page 6: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 611.04.2003

VAMPIR

� Visualisation and Analysis of MPI Resources

� Einsatzgebiet: High Performance Computing

� VAMPIR-Primitive

� CPU ein Prozess oder Thread

� CLUSTER Sammlung von CPUs

� MESSAGE Nachrichten zwischen CPUs

Page 7: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 711.04.2003

Tracingmethoden

� Manuelles instrumentieren einer Anwendung

� Aufwändig

� Was ist interessant?

� Beispiel: Linux Tracing Toolkit

� Bibliotheken instrumentieren

� Mehrfachnutzung

� Beispiel: Vampirtrace MPI Library

Page 8: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 811.04.2003

Tracingmethoden (2)

� Automatisches instrumentieren

� Wenig Aufwand für den Nutzer

� gcc: -finstrument-functions

� Aber: Steuerung des Automatismus?

Page 9: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 911.04.2003

Tracing von Nutzerprogrammen

� Automatische Intrumentierung durch gcc

� Bibliothek mit

� Funktionen zur Tracingkontrolle

� gcc's Tracingfunktionen

� Tracepufferverwaltung

� Geringe Änderung am Programm

Page 10: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1011.04.2003

Tracepuffer

� Ein Puffer pro L4-Thread

� Puffer werden geleert

� Wenn sie voll sind

� Auf Anforderung des Programms

� Programmende

Page 11: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1111.04.2003

Kerntracing

� Aufzeichnung von Ereignissen, die für den Nutzeradressaum transparent sind

� Nachrichten (IPC)

� Kontextwechsel

� Instrumentierung von Kernfunktionen

� Erweiterung des Kerndebuggers

Page 12: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1211.04.2003

Kerndebuggererweiterungen

� Export des JDB-Tracepuffers in den Nutzeradressraum

� Interrupterzeugung bei vollem Puffer

� Atomares erstellen von Tracerecords

� Neue Eventtypen

� Tracingkontrolle über int3-Interface

Page 13: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1311.04.2003

Neue Eventtypen

� IPC-Tracing

� Bisher je ein Ereignis fürIPC-Eintritt und IPC-Ergebnis

� Jetzt nur noch ein Ereignis

� Datenmenge halbiert

� Eigener Pfad für IPC-Tracing

� Kontextwechsel

Page 14: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1411.04.2003

Traceserver

� Weiterleitung der Kerntracepuffer

� Konfiguration der JDB-Tracingdienste

� Synchronisation der Anforderungen verschiedener Programme

Page 15: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1511.04.2003

Datenauswertung

� Konvertierung in das VAMPIR-Format

� Rekonstruktion der Funktionsaufrufe aus Programmtracingdaten

� Symbolinformationen aus Binary herauslesen

� Funktionen gruppieren

� Eine VAMPIR-CPU pro instrumentierten Thread

� Threads eines Prozesses werden zu einem CLUSTER zusammengefasst

Page 16: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1611.04.2003

Datenauswertung (2)

� Rekonstruktion von Nachrichten und Kontextwechseln aus Kerntracingdaten

� Zusätzliche CPU "others"

� Anzeige und Auswertung des Tracefiles mit VAMPIR

� Analyse des Programmverhaltens

Page 17: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1711.04.2003

Messungen - Kern

Tracingart us Takte Kosten us Takte

Kein Tracing 6 821 - 6 841IPC Tracing 9 1308 487 40 5392Kontextwechsel 8 1149 327 45 6019Beides 12 1667 846 83 11123

Pentium 133, 64 MB Ram

Pingpong Benchmark, 100000 Zyklen

200000 IPC

Page 18: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1811.04.2003

Programmtracing

us Takte TracingfunktionKeine Instrumentierung 6 806 -Instrumentiert, Kein Tracing 7 926 30 TakteInstrumentiert, Tracing 12 1638 208 Takte

� Geringer Overhead bei deaktiviertem Tracing

� 4 Aufrufe pro Pingpong Zyklus

Page 19: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 1911.04.2003

Programmtracing (2)

Kerntracing Datenübertragung us Takte

Nein Nein 12 1638Ja Nein 26 3475Nein Ja 25 3433Ja Ja 103 13772

� 38 MB Tracingdaten in 10 Sekunden

� 6 MB Trace von Pingpong

� 32 MB Kerntrace

� Problem: Netzwerkübertragung

Page 20: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 2011.04.2003

Page 21: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 2111.04.2003

Ausblick

� Bessere Datenübertragung

� Einschränkung der Tracingdatenmenge

� Steuerung der Instrumentierung durch gcc

Page 22: Tracing unter L4/Fiasco€¦ · VAMPIR Visualisation and Analysis of MPI Resources Einsatzgebiet: ... Vampirtrace MPI Library. 11.04.2003 Tracing unter L4/Fiasco 8 Tracingmethoden

Tracing unter L4/Fiasco 2211.04.2003

?