Add frozen_runs_report/README.md
This commit is contained in:
parent
d10af0df59
commit
83e8eccd1f
1 changed files with 230 additions and 0 deletions
230
frozen_runs_report/README.md
Normal file
230
frozen_runs_report/README.md
Normal 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, Cliff’s 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
|
||||||
|
- Cliff’s 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
|
||||||
|
- Cliff’s 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 4–6 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.
|
||||||
Loading…
Reference in a new issue