From 4431ff93579874d9be6b5916dcbd6222ad57f626 Mon Sep 17 00:00:00 2001 From: Nikola Date: Wed, 15 Jul 2026 21:01:00 +0200 Subject: [PATCH] Fixed numbering --- Projektbericht.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Projektbericht.md b/Projektbericht.md index ace6caa..2583687 100644 --- a/Projektbericht.md +++ b/Projektbericht.md @@ -4,7 +4,7 @@ Ziel ist ein C-Programm, das einen Ausschnitt des Tricorn-Fraktals berechnet und als BMP-Datei speichert. Über Kommandozeilenargumente werden Startpunkt, Bildgröße, Auflösung, maximale Iterationszahl, Ausgabedatei, Farbmodus und Implementierungsvariante festgelegt. Neben der skalaren Vergleichsversion enthält das Projekt SIMD- und Thread-Varianten, deren Laufzeiten miteinander verglichen werden. -## 4. Implementierungen +## 2. Implementierungen **V1** ist die skalare Vergleichsimplementierung. Real- und Imaginärteil werden direkt mit `float`-Operationen berechnet. Das Bild wird zeilenweise durchlaufen und die Koordinaten werden inkrementell erhöht. @@ -14,7 +14,7 @@ Ziel ist ein C-Programm, das einen Ausschnitt des Tricorn-Fraktals berechnet und **V3** erweitert die optimierte SIMD-Berechnung um POSIX-Threads. Die verfügbaren logischen Prozessoren werden mit `sysconf` beziehungsweise `GetSystemInfo` bestimmt. Jeder Thread erhält einen zusammenhängenden Zeilenbereich und schreibt ausschließlich in diesen Teil des gemeinsamen Bildpuffers. Bei kleinen Bildern wird die Threadzahl reduziert, sodass ungefähr mindestens zehn Zeilen pro Thread verbleiben. -## 5. Tests und Performanzanalyse +## 3. Tests und Performanzanalyse Die Laufzeit wird mit `clock_gettime(CLOCK_MONOTONIC)` gemessen. Im Benchmark-Modus wird die gewählte Berechnung mehrfach ausgeführt; die BMP-Ausgabe liegt außerhalb der Messung. Der Mittelwert ist Gesamtzeit geteilt durch Wiederholungszahl. Der Speedup gegenüber einer Referenz \(R\) lautet @@ -75,7 +75,7 @@ Alle Benchmarking-Tests werden 100 mal ausgeführt um eine genaue Messung zu erh | V2 | 1.573 | 3.55 | | V3 | 0.022 | 250.64 | -## 6. Korrektheit und Fazit +## 4. Korrektheit und Fazit Zur Korrektheitsprüfung wurden V0, V1, V2 und V3 mit identischen Parametern ausgeführt. Die erzeugten Graustufenbilder wurden mit ImageMagick und der Metrik `AE` pixelweise verglichen. Von insgesamt 523776 Pixeln unterschieden sich V0 und V1 an 5864 Pixeln (1,120 %), V2 und V1 an 5523 Pixeln (1,054 %) sowie V3 und V1 an 5993 Pixeln (1,144 %). @@ -87,7 +87,7 @@ Die Messungen zeigen, dass SIMD die skalare Berechnung deutlich beschleunigt. V3 Insgesamt zeigt das Projekt die schrittweise Optimierung von einer skalaren Implementierung über SIMD bis zur Kombination aus SIMD und Multithreading. Grenzen bleiben Rundungsabweichungen, unterschiedlich lange aktive SIMD-Lanes, der Aufwand der Thread-Verwaltung und die Geschwindigkeit von RAM-Zugriffe. -## 7. Individuelle Beiträge +## 5. Individuelle Beiträge **Yashar Alan Zenker:**