diff --git a/README.md b/README.md new file mode 100644 index 0000000..068eb0b --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +# CPU-Migration-Analyse + +## Überblick +Dieses Repository dokumentiert das Experiment **cpu_migration_analysis**, eine Analyse der CPU-Migration und deren Einfluss auf Leistungsmuster bei Niesellicht-Tests in Passau. Ziel ist es, Muster in Trace-Daten zu erkennen, die durch CPU-Wechsel und Reorder-Effekte entstehen. + +**Link zum Artikel:** [https://donau2space.de/tag-117-1208-niesellicht-ueber-passau-und-ich-beweise-mir-mit-zwei-runs-dass-ohne-cpu-wechsel-fast-nie-ohne-reorder-heisst/](https://donau2space.de/tag-117-1208-niesellicht-ueber-passau-und-ich-beweise-mir-mit-zwei-runs-dass-ohne-cpu-wechsel-fast-nie-ohne-reorder-heisst/) +**Git-Repository:** [https://git.donau2space.de/Mika/cpu_migration_analysis](https://git.donau2space.de/Mika/cpu_migration_analysis) + +### Hinweis +Alle Inhalte wurden per KI generiert. + +Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert. + +--- + +## Inhalt des Repositories + +### 1. trace_analysis +- **Art:** Python-Skript +- **Ziel:** Linux-Userspace +- **Sprachen:** Python +- **Zweck:** Analyse von Trace-Daten zur Ermittlung von CPU-Wechseln und Reorder-Scores. +- **API-Funktion:** + - `analyze_trace(trace_data)` → Gibt `analysis_result` zurück. Führt eine datengetriebene Untersuchung von CPU-Migrationsmustern und Reorder-Korrelationen aus. +- **Datenstruktur:** + - `TraceData` (Typ: JSON) mit Feldern: `timestamp`, `cpu_path`, `reorder_score`, `mixed_snapshot_signature_count`. + +### 2. ci_smoke_gate +- **Art:** Python-Skript +- **Ziel:** Linux-Userspace +- **Sprachen:** Python +- **Zweck:** Implementiert CI-Prüfungen zur Überwachung von Publish-Reorder- und Mixed-Snapshot-Parametern. +- **API-Funktion:** + - `check_ci_gate(publish_reorder_count, mixed_snapshot_signature_count, seqcount_retry_count, reorder_score)` → Gibt `ci_status` zurück. Bewertet Stabilität und Wiederholbarkeit der Analyse-Läufe. + +### 3. json_export_extension +- **Art:** Python-Skript +- **Ziel:** Linux-Userspace +- **Sprachen:** Python +- **Zweck:** Erweiterung des JSON-Exports für zusätzliche Analysemetriken. +- **API-Funktion:** + - `extend_json_export(base_data)` → Gibt `extended_json` zurück. Erweitert bestehende Datensätze um erweiterte Metriken. +- **Datenstruktur:** + - `ExtendedJsonData` (Typ: JSON) mit Feldern: `seqcount_retry_count`, `mixed_snapshot_signature`. + +--- + +## Installation & Nutzung + +### Voraussetzungen +- Linux-basierte Umgebung +- Python ≥ 3.8 +- Standardmodule: `json`, `os`, `argparse`, `logging` + +### Installation +1. Repository klonen: + `git clone https://git.donau2space.de/Mika/cpu_migration_analysis` +2. In das Projektverzeichnis wechseln: + `cd cpu_migration_analysis` +3. Abhängigkeiten installieren (falls vorhanden): + `pip install -r requirements.txt` + +### Ausführung +Beispiele für manuelle Nutzung: +- **Trace-Analyse ausführen:** + `python trace_analysis.py --input traces/data_sample.json` +- **CI-Smoke-Test:** + `python ci_smoke_gate.py --check all` +- **Erweiterten JSON-Export durchführen:** + `python json_export_extension.py --extend results/base.json` + +--- + +## Typische Use-Cases +- Validierung von CPU-Migrationsmustern in Mikrobenchmarks. +- Vergleich von Reorder-Scores zwischen verschiedenen Kernel-Builds. +- Erweiterung bestehender Analysepipelines mit JSON-Exporten. +- Automatisierte CI-Validierung bei Änderungen im Performance-Test-Framework. + +--- + +## Struktur & Erweiterbarkeit +Das Repository ist modular aufgebaut. Jede Komponente (Analyse, CI-Überwachung, Export) kann einzeln genutzt oder in bestehende Pipelines integriert werden. +Erweiterungen können durch zusätzliche Skripte oder API-Funktionen erfolgen. Datenaustausch erfolgt standardisiert über JSON. + +Vorgesehene Erweiterungen: +- GPU-Unterstützung für Trace-Auswertung +- Visualisierung der Reorder-Scores +- Erweiterte CI-Berichterstattung mit Threshold-Tracking + +--- + +## Lizenz +Dieses Projekt steht unter der **MIT-Lizenz**. +Copyright (c) Mika Code Lab. +Die Inhalte wurden automatisch generiert. Nutzung erfolgt auf eigene Verantwortung. \ No newline at end of file