run_timing_experiment/results_documentation/README.md

6.1 KiB
Raw Permalink Blame History

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