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