n40_runs_analysis/artifact.3/README.md
2026-01-21 17:37:37 +00:00

189 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Analyse der ersten 10 Runs des N40-Experiments
## Purpose
Zwischenanalyse der ersten zehn N40-Runs mit Fokus auf Performanceverteilung und Vergleich pinned vs unpinned.
**Problemstellung:** Bewerten, ob pinned-Runs konsistent geringere Mischfenster-Dauern und stabilere Verteilungen aufweisen als unpinned-Runs, basierend auf einer kleinen Stichprobe (n=5/5).
**Ziele:**
- Validierung der Datenintegrität und Stabilität der Aggregationskette
- Vergleich der Mischfenster-Metriken zwischen pinned und unpinned Runs
- Berechnung erster statistischer Tests zur Trennung der Gruppen
## Kontext & Hintergrund
Erste 10 Runs des N40-Experiments, bestehend aus 5 pinned- und 5 unpinned-Konfigurationen.
**Gruppierung:**
- pinned
- unpinned
**Trace-Metadaten / zusätzliche Tags:**
- corr_id-Konsistenzprüfung
- write_pre/write_post-Paarvalidierung
- Aggregator-Run-Summaries mit Metadaten (pinned_flag, runtime, config_hash)
**Domänenkontext:**
- CPU clocksource switch performance
- Kernel- und VM-Level Timingtraces
- seqcount_retry_count und Mischfenster-Dauer als korrelierte Metriken
**Outlier-Definition:**
- Methode: Empirische Sichtung der Maximalwerte (tails) der Mischfenster
- Beschreibung: Breite Fenster und hohe p95-Werte in unpinned als potenzielle Outlier-Indikation.
- Metrik: Mischfenster-Dauer (µs)
**Motivation:**
- Validierung der experimentellen Setup-Stabilität vor fortgesetzter Datenerhebung
- Frühe Indikation, ob pinned-Konfiguration stabilere Zeitverläufe liefert
## Methode / Spezifikation
**Übersicht:**
- Gleichbleibendes Setup für alle Runs (Kernel, VM, Last, Trace).
- Vergleich pinned vs unpinned anhand bisheriger 10 Runs.
- Berechnung von Verteilungen und Korrelationen aus Aggregator-Summaries.
**Algorithmen / Verfahren:**
- Berechnung p50, p95, max der Mischfenster-Dauer für mult↔shift und base_raw↔nsec_base.
- Berechnung der Korrelation (Pearson, Spearman) zwischen Mischfenster-Dauer und seqcount_retry_count.
- Mann-Whitney-U-Test auf p95-Dauern, Gruppen: pinned vs unpinned.
### Bootstrap-Übersicht
Kein Bootstrap-Verfahren in dieser Zwischenanalyse angewendet.
**Zielgrößen:**
### Abgeleitete Effektgrößen
**Risk Difference (Differenz der Raten):**
- Definition: Nicht berechnet in dieser Phase.
**Risk Ratio:**
- Definition: Nicht relevant für diesen Vergleich.
### C-State-Kontrolle
**Ziel:** Konstante Laufbedingungen über Runs sicherstellen.
**Vorgehen:**
- Fixierung aller C-State-beeinflussenden Parameter über alle Runs.
- Verwendung identischer Zielzahlen bei clocksource_switch-Ereignissen.
## Input / Output
### Input-Anforderungen
**Hardware:**
- Testsystem identisch über alle Runs
**Software:**
- Unveränderter Kernel und VM-Konfiguration
**Konfiguration:**
- Konstantes Trace-Setup mit fixer Zielzahl clocksource_switch pro Run
### Erwartete Rohdaten
**Felder pro Run:**
- pinned_flag
- corr_id_chain
- write_pre/write_post
- runtime
- config_hash
**Formatbeispiele:**
- pinned_flag=true, runtime=38.2s, hash=ab4d92e
**Trace-Daten:**
- Format: raw trace events
- Hinweis: clocksource_switch, seqcount_retry_count, Mischfenster-Dauer
### Analyse-Ausgaben
**Pro Gruppe / pro Governor:**
- retry-free-in-window/100 switches
- Mischfenster p50/p95/max
- Pearson and Spearman correlation coefficients
**Vergleichsausgaben:**
- pinned vs unpinned
- Tests: Mann-Whitney-U-Test Ergebnis (Trend erkennbar, bei n=5/5 nicht signifikant)
- C-State-Korrelation: Nicht gesondert analysiert.
- Trace-Muster: Hohe Konsistenz, keine defekten corr_id-Ketten.
## Workflow / Nutzung
**Analyse-Workflow:**
- Jeden Run direkt nach Durchführung aggregieren.
- Run-Summary generieren und integritätsprüfen.
- Ergebnisse für pinned und unpinned getrennt zusammenfassen.
- Vergleichstabelle mit Kernmetriken erzeugen.
- Statistischen Test auf p95-Werte anwenden.
### Trace-Template-Anforderungen
**Ziel:** Gleichförmige Datenbasis über alle Runs.
**Erforderliche Tags & Metadaten:**
- corr_id
- write_pre
- write_post
- pinned_flag
- config_hash
**trace-cmd-Setup:**
- Keine Änderungen an Trace-Target oder Samplingrate während Serie.
**Run-Design für Contributors:**
- Fortführung bis N40 komplett (20 pinned, 20 unpinned).
## Interpretation & erwartete Ergebnisse
**Kernbefunde:**
- Pinned-Runs zeigen im Median und p95 konsistent kleinere Mischfenster.
- Unpinned-Runs haben häufig breitere Verteilungen mit längeren Tails.
- Stärkere Korrelation zwischen Mischfenster-Dauer und seqcount_retry_count bei unpinned-Runs.
- Mann-Whitney-U-Test deutet auf Trennung, jedoch geringe Stichprobe.
**Implikationen für Experimente:**
- Aggregationspfad und Datenhygiene validiert.
- Experiment kann auf 40 Runs erweitert werden, ohne methodische Anpassung.
**Planungsziel:**
- Ziel: Vollständige Serie (N40) mit solider Effektgrößen- und Konfidenzanalyse.
- Vorgehen:
- Fortführung bis 20/20 Runs pro Gruppe.
- Nach Abschluss Berechnung von Cliffs delta und Konfidenzintervallen.
## Limitationen & Fallstricke
**Datenbezogene Limitationen:**
- Kleine Stichprobe (n=5 pro Gruppe) limitiert Signifikanz.
- Keine Kontrolle potenzieller Mikrovariationen in Runtime-Bedingungen.
**Bootstrap-spezifische Limitationen:**
- Bootstrap-Methoden noch nicht angewandt.
**Kausalität & Generalisierbarkeit:**
- Ergebnisse vorläufig, noch keine belastbare Generalisierbarkeit.
**Praktische Fallstricke:**
- Gefahr voreiliger Schlussfolgerungen bei geringen N.
- Offsets (~1,111s) in unpinned-Tails nur beobachtet, nicht geprüft.
## Nächste Schritte & Erweiterungen
**Geplante Experimente:**
- Vollständige N40-Laufserie (20 pinned / 20 unpinned) abschließen.
**Analyseziele:**
- Gesamtauswertung aller 40 Runs mit statistischer Absicherung und Konfidenzintervallen.
**Regression & Modellierung:**
- Erweiterung um Effektgrößenmaß (Cliffs delta) und Bootstrap-basiertes Vertrauen.
**Community-Beiträge:**
- Bereitstellung der stabilen Trace-Templates und Run-Summaries für Replikationszwecke.