Add frozen_runs_report/README.md

This commit is contained in:
Mika 2026-01-24 12:03:30 +00:00
parent d10af0df59
commit 83e8eccd1f

View file

@ -0,0 +1,230 @@
# Frozen-Runs Analyse Zwischenbericht zu Metriken und Timing-Effekten
## Purpose
Analyse von Frozen-Runs zur Untersuchung von Timing-Stabilität und Metrikunterschieden zwischen pinned und unpinned CPU-Konfigurationen.
**Problemstellung:** Unklarheit über die Stabilität und Wiederholbarkeit von Timing-Metriken bei Frozen-Runs unter verschiedenen CPU-Bindungszuständen (pinned vs. unpinned).
**Ziele:**
- Vergleich der Metriken Mischfenster-Dauer, Retry-free-in-window Rate und seqcount_retry_count zwischen pinned und unpinned Runs
- Bewertung der metrischen Robustheit mittels Bootstrap-Konfidenzintervallen
- Identifikation belastbarer Trennmerkmale als Grundlage für spätere CI-Gates
## Kontext & Hintergrund
Vier N40-Frozen-Runs (#20#23) mit balanciertem Setup: pinned/unpinned alternierend, keine back-to-back-Ausführungen.
**Gruppierung:**
- pinned_flag
**Trace-Metadaten / zusätzliche Tags:**
- corr_id
- write_pre
- write_post
- clocksource_switch
**Domänenkontext:**
- System Performance Analysis
- CPU Binding Effects
- Timing Stability in Benchmark Runs
**Outlier-Definition:**
- Methode: Empirisch über Bootstrap-Stabilität der p95/max-Metriken
- Beschreibung: Ausreißer sind Runs, deren Metrikbeiträge stark variieren und über die Bootstraps nicht stabil reproduzierbar sind.
- Metrik: Mischfenster-Dauer (p95, max)
**Motivation:**
- Validierung der Frozen-Runs als stabile Baseline
- Quantifizierung der Einflüsse von CPU-Pinning auf Timing-Streuung
- Vorbereitung auf CI-taugliche Gate-Metriken
## Methode / Spezifikation
**Übersicht:**
- Balanciertes Frozen-Run-Design mit 2x pinned und 2x unpinned Ausführungen.
- Sanity-Checks zur Sicherstellung der Datenintegrität vor Analyse.
- Bootstrap-Resampling über Runs zur Robustheitsbewertung der Effektgrößen.
**Algorithmen / Verfahren:**
- Berechnung von p50, p95 und max der Mischfenster-Dauer pro Run.
- Berechnung der retry-free-in-window Rate und Korrelation mit seqcount_retry_count.
- Bootstrap-Resampling (n=10.000) über Runs, gruppiert nach pinned_flag.
- Berechnung von Effektgrößen (rank-biserial Correlation, Cliffs delta).
### Bootstrap-Übersicht
Resampling-Verfahren zur Schätzung von Konfidenzintervallen und Stabilität von Effektgrößen.
**Zielgrößen:**
- p95 Mischfenster-Dauer
- retry-free-in-window Rate
- Cliffs delta pro Metrik
### Resampling-Setup
- pinned
- unpinned
**Stichprobeneinheit:** Run
**Resampling-Schema:**
- 10.000 Resamples pro Gruppe mit Replacement
**Konfidenzintervalle:**
- Niveau: 0.95
- Typ: percentile
- Ableitung: aus den empirischen Bootstrap-Verteilungen
### Abgeleitete Effektgrößen
**Risk Difference (Differenz der Raten):**
- Definition: Differenz der retry-free-in-window Raten zwischen pinned und unpinned Runs.
- Bootstrap: Bootstrapped 95%-Konfidenzintervall über Gruppenmittelwerte.
**Risk Ratio:**
- Definition: Relatives Risiko eines niedrigen retry-free Anteils bei unpinned Runs.
- Bootstrap: Bootstrap-Schätzung der RR-Verteilung über Run-Resamples.
### C-State-Kontrolle
**Ziel:** Vermeidung von Störfaktoren durch CPU-Zustandswechsel (C-States).
**Vorgehen:**
- Frozen-Setup ohne Dynamikänderungen von CPUFreq governor.
- Enge Kontrolle über run sequence und clocksource stability.
## Input / Output
### Input-Anforderungen
**Hardware:**
- Mehrkernsystem mit identischen Cores
- CPU-Pinning-Unterstützung im Kernel
**Software:**
- trace-cmd
- Auswerteskripte mit Bootstrap-Unterstützung
- Statistik-Tool für Effektgrößen
**Konfiguration:**
- Frozen-Setup aktiv
- Clocksource switch tracebar
- Keine parallelen Systemlasten
### Erwartete Rohdaten
**Felder pro Run:**
- run_id
- pinned_flag
- mischfenster_p50
- mischfenster_p95
- mischfenster_max
- retry_free_rate
- seqcount_retry_count
**Formatbeispiele:**
- 21, unpinned, 1.2ms, 4.9ms, 7.3ms, 0.94, 12
**Trace-Daten:**
- Format: trace-cmd output mit clocksource_switch-Ereignissen
- Hinweis: Jeder Trace enthält korrelierte write_pre/write_post-Einträge mit fortlaufenden corr_id-Werten.
### Analyse-Ausgaben
**Pro Gruppe / pro Governor:**
- p50
- p95
- max
- bootstrap CI-Bereich
- Cliffs delta
**Vergleichsausgaben:**
- pinned vs unpinned
- Δ: retry-free-in-window Rate differiert um ca. mehrere Prozentpunkte
- CI(Δ): 95%-CI ohne Überlappung in einigen Runs
- RR: unpinned > pinned (breitere Tails, höhere Varianz)
- CI(RR): enge Bandbreite, robuste Trennung beim p95
- C-State-Korrelation: nicht signifikant unter frozen setup
- Trace-Muster: unpinned zeigt breitere Latenzverteilungen im Mischfenster
## Workflow / Nutzung
**Analyse-Workflow:**
- Alle Runs erfassen und sanity-check durchführen.
- Kernmetriken extrahieren und pro Run speichern.
- Bootstrap-Resampling mit Gruppierung nach pinned_flag ausführen.
- Effektgrößen und Konfidenzintervalle vergleichen und validieren.
### Trace-Template-Anforderungen
**Ziel:** Eindeutige Erkennung der clocksource_switch- und write_pre/post-Ereignisse.
**Erforderliche Tags & Metadaten:**
- corr_id
- run_id
- pinned_flag
- timestamp
**trace-cmd-Setup:**
- trace-cmd record -e clocksource:*
- constantes Tracing-Intervall pro Run
**Run-Design für Contributors:**
- abwechslungsweise pinned/unpinned Läufe
- keine Back-to-back-Ausführung
## Interpretation & erwartete Ergebnisse
**Kernbefunde:**
- unpinned Runs zeigen erhöhte Varianz in p95 und max Mischfenster-Dauer.
- retry-free-in-window Rate bleibt über Gruppen stabil mit engen CIs.
- Bootstrap-Schätzungen trennen signifikant auch bei kleinen Run-Zahlen.
**Implikationen für Experimente:**
- p95 ist robustere Metrik als max für künftige CI-Gates.
- retry-free-in-window eignet sich als ergänzender Stabilitätsindikator.
**Planungsziel:**
- Ziel: Vorbereitung auf CI-basierte Metrik-Gates für Performance-Regression-Checks.
- Vorgehen:
- Kombination von Effektgröße und Bootstrap-CI als Entscheidungskriterium
- Identifikation von stabilen Metriken mit geringer CI-Streuung
## Limitationen & Fallstricke
**Datenbezogene Limitationen:**
- Kleine Stichprobenzahl (n=4) limitiert Teststärke.
- Frozen-Setup kann externe Effekte kaschieren.
- Keine volle Zeitreproduzierbarkeit bei möglichen Migrationen außerhalb frozen runs.
**Bootstrap-spezifische Limitationen:**
- Bootstrap stabilisiert nur im Rahmen vorhandener Varianz.
- Run-Korrelationen können zu unterschätzten CIs führen.
**Kausalität & Generalisierbarkeit:**
- Effekte gelten nur für identisches Hardware-Setup.
- Keine kausale Aussage über CPU-Pinning allgemein.
**Praktische Fallstricke:**
- clocksource_switch Events müssen vollständig geloggt sein.
- Fehlende corr_id oder write_post können Analyse verzerren.
## Nächste Schritte & Erweiterungen
**Geplante Experimente:**
- Zusätzliche 46 Runs im strict frozen Setup.
- Gate-Prototyp zur Bewertung stabiler Metriken.
**Analyseziele:**
- CI-fähiger Vergleich von p95 vs. retry-free-in-window als Leitmetrik.
- Überprüfung der Bootstrap-Verlässlichkeit bei größeren Samples.
**Regression & Modellierung:**
- Einführung einfacher Gate-Prototypen ohne harte Schwellen.
- Langfristig Modellierung von Timing-Varianz über pinned vs. unpinned.
**Community-Beiträge:**
- Feedback zu priorisierten Gate-Metriken einholen (p95 vs retry-free).
- Offene Diskussion über standardisierte Frozen-Benchmarks.