Add results_documentation/README.md

This commit is contained in:
Mika 2026-02-24 13:33:07 +00:00
parent 7c0b86d349
commit 6d25b2544b

View file

@ -0,0 +1,176 @@
# Ergebnisdokumentation der Laufanalyse (Run #3)
## Purpose
Analyse der Timing-Differenzen und Zustandseffekte zwischen pinned und unpinned Läufen zur Beurteilung der PolicyEntscheidung.
**Problemstellung:** Unklare Zuordnung der WarnRateSpitzen zu spezifischen TimingZuständen in unpinned Läufen verursachte unpräzise Systementscheidungen.
**Ziele:**
- Validierung der Hypothese, dass der WARNSpike durch unpinned + Δt < 0 verursacht wurde
- Überprüfung der Auswirkung des unpinned2PhaseReadDelayCommits auf die ΔtVerteilung
- Definition einer versionierbaren Entscheidungsregel für zukünftige Runs
## Kontext & Hintergrund
Messdaten aus mehreren Runs mit identischen policy_hashWerten, Gruppierung nach pinned vs. unpinned und ΔtStatus.
**Gruppierung:**
- pinned / unpinned
- Δt ≥ 0 / Δt < 0
**Trace-Metadaten / zusätzliche Tags:**
- t_index_visible
- t_gate_read
- policy_hash
**Domänenkontext:**
- TimingOptimierung in Systementscheidungsprozessen
- PolicyReglerVerfeinerung basierend auf ΔtVerteilungen
**Outlier-Definition:**
- Methode: ΔtSignumVergleich
- Beschreibung: Negative Δt werden als zeitlich rückläufige, potenziell fehlerhafte Ereignisse klassifiziert.
- Metrik: Δt = t_index_visible t_gate_read
**Motivation:**
- Reduktion von False Positives in WarnEntscheidungen
- Sicherung der Vergleichbarkeit zwischen Runs
- Stabilisierung der Systemantwort durch konsistente TimingVerhältnisse
## Methode / Spezifikation
**Übersicht:**
- Analyse der Kennzahlen warn_rate und unknown_rate getrennt nach pinned und unpinned Läufen
- Berechnung und Vergleich der ΔtVerteilungen zwischen Runs #2 und #3
- Erstellung einer 2×2Matrix: pinned/unpinned × Δt ≥ 0 / Δt < 0 zur Identifikation dominanter Quadranten
**Algorithmen / Verfahren:**
- Vergleich des policy_hash zwischen Runs zur Sicherstellung identischer Bedingungen
- Aggregierte Auswertung von ΔtSignen zur Quadrantenermittlung
- Proportionsvergleich der Quadrantenanteile ( insbesondere unpinned & Δt < 0)
### Abgeleitete Effektgrößen
**Risk Difference (Differenz der Raten):**
- Definition: Differenz der negativen ΔtAnteile zwischen Run #2 und Run #3 innerhalb des unpinnedStratums.
- Bootstrap: Optionales BootstrapResampling möglich, zur robusten Schätzung von Konfidenzintervallen über Quadrantenanteile.
**Risk Ratio:**
- Definition: Verhältnis der Wahrscheinlichkeit für Δt < 0 im unpinnedStratum zwischen Run #2 und Run #3.
- Bootstrap: BootstrapResampling zur Bestimmung der Unsicherheitsbreite implementierbar.
## Input / Output
### Erwartete Rohdaten
**Felder pro Run:**
- t_index_visible
- t_gate_read
- policy_hash
- pinned_flag
- warn_rate
- unknown_rate
**Formatbeispiele:**
- {run_id:3, pinned: false, t_index_visible: 171.253, t_gate_read: 171.268, policy_hash: 'd9acb2', warn_rate: 0.042}
**Trace-Daten:**
- Format: strukturierte Logdateien oder CSVExports pro Lauf
- Hinweis: Zeitstempel konsistent in gleicher Auflösung (z.B. nsbasiert).
### Analyse-Ausgaben
**Pro Gruppe / pro Governor:**
- warn_rate
- unknown_rate
- Anteile pro ΔtQuadrant
**Vergleichsausgaben:**
- Run #2 (unpinned) vs Run #3 (unpinned)
- Δ: Δ Anteil Δt < 0 = x%
- CI(Δ): 95% CI [y%, z%]
- RR: r ≈ 0.XX
- CI(RR): 95% CI [a, b]
- Trace-Muster: QuadrantenmatrixVisualisierung zur schnellen Erkennung dominanter Ausreißerzonen
## Workflow / Nutzung
**Analyse-Workflow:**
- Run-Datensatz mit Referenzpolicy (Run #2) vergleichen
- policy_hashAbgleich durchführen
- ΔtDifferenzen pro Stratum berechnen
- 2×2Matrix erstellen
- Differenzen und Verteilungen bewerten
- PolicyEntscheidung dokumentieren
### Trace-Template-Anforderungen
**Ziel:** Reproduzierbare Umgebung mit identischem timinglogging setup
**Erforderliche Tags & Metadaten:**
- policy_hash
- run_id
- t_index_visible
- t_gate_read
**trace-cmd-Setup:**
- loggingfrequenz definieren
- timestamp precision auf Nanosekundenebene sicherstellen
**Run-Design für Contributors:**
- mindestens drei konsekutive Runs mit gleichem policy_hash durchführen
- keine zusätzlichen Messgrößen zwischen den Runs einführen
## Interpretation & erwartete Ergebnisse
**Kernbefunde:**
- Deutlicher Rückgang negativer Δt im unpinnedStratum
- PinnedStratum bleibt unverändert
- Quadrant unpinned & Δt < 0 signifikant geschrumpft
- Mechanismus validiert: 2PhaseDelay beeinflusst Ursache, nicht Symptom
**Implikationen für Experimente:**
- Beibehaltung des unpinnedDelay und MODE=warn
- Einführung einer versionierbaren ExitRegel für die Policy
- Ziel: stabile Warnraten ohne höhere Fehlklassifikation
**Planungsziel:**
- Ziel: Reduktion von Fehlalarmen durch präzise TimingStratifizierung
- Vorgehen:
- nur noch Warnungen bei Δt < 0 im unpinnedStratum nach Stabilitätsnachweis
- Verifikation über drei Folgeruns mit konstantem policy_hash
## Limitationen & Fallstricke
**Datenbezogene Limitationen:**
- RunDrift durch unbewusste Parameteränderungen möglich
- ΔtSchwankungen empfindlich gegenüber Messauflösung
**Bootstrap-spezifische Limitationen:**
- BootstrapCIBreite abhängig von RunAnzahl und ΔtVarianz
**Kausalität & Generalisierbarkeit:**
- Ergebnisse spezifisch für das verwendete policy_hashSetup
- keine direkte Übertragbarkeit auf abweichende HardwareKonfigurationen
**Praktische Fallstricke:**
- Fehlende Reproduzierbarkeit bei neuen Seeds
- Verwechslung von Symptom (ΔtVerzögerung) und Ursache (SchedulingEffekt)
## Nächste Schritte & Erweiterungen
**Geplante Experimente:**
- Durchführung von zwei bis drei weiteren Läufen mit identischen Bedingungen
- Vergleich der 2×2DriftMatrix als Zeitreihe
**Analyseziele:**
- Überprüfung der Stabilität des unpinnedQuadranten
- Evaluierung langfristiger Reduktion der warn_rate ohne ΔtVerschlechterung
**Regression & Modellierung:**
- Erweiterung der ΔtAnalyse um lineare DriftModelle oder ZeitverlaufsRegression
**Community-Beiträge:**
- Bereitstellung der DriftMatrixAnalyse als reproduzierbares Template für RunVergleiche