Fixed: Grammatical issues

This commit is contained in:
Yashar
2026-07-18 23:23:27 +02:00
parent 4a6d8cb9c1
commit 9c733cd1fa
+6 -6
View File
@@ -2,7 +2,7 @@
## 1. Ziel des Projekts ## 1. Ziel des Projekts
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. Ziel ist ein C-Programm, welches einen Ausschnitt des Tricorn-Fraktals berechnet und als BMP-Datei abspeichert. Ü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.
## 2. Implementierungen ## 2. Implementierungen
@@ -24,9 +24,9 @@ $$
Die Testsuite enthält ein farbiges 1920×1080-Bild, ein 7680×4320-Bild mit niedriger Iterationszahl, einen vergrößerten Fraktalrand und einen nahezu schwarzen Bereich mit hoher Iterationszahl. Für einen fairen Versionsvergleich müssen in jedem Szenario identische Parameter verwendet werden Die Testsuite enthält ein farbiges 1920×1080-Bild, ein 7680×4320-Bild mit niedriger Iterationszahl, einen vergrößerten Fraktalrand und einen nahezu schwarzen Bereich mit hoher Iterationszahl. Für einen fairen Versionsvergleich müssen in jedem Szenario identische Parameter verwendet werden
Wir haben versucht die Tests so zu wählen, dass unsere Implementierung in verschiedene Situationen zu testen, die zu verschiedene Ergebnissen führen. Wir haben versucht die Tests so zu wählen, dass unsere Implementierungen in den verschiedenen Situationen auch zu merklich unterschiedlichen Ergebnissen kommen. Dies führt zu einer hohen Ausagekraft über die Stärken und Schwächen.
Alle Tests werden auf die Rechnerhalle ausgeführt, um die volles Potenzial, die Optimierungen für High-End-Hardware zu prüfen. Alle Tests wurden auf der Rechnerhalle ausgeführt, um das Potential unserer Optimierungen auf High-End Hardware zu ergründen.
#### Testumgebung: #### Testumgebung:
- **Host-System:** TUM lxhalle - **Host-System:** TUM lxhalle
@@ -42,7 +42,7 @@ Alle Tests werden auf die Rechnerhalle ausgeführt, um die volles Potenzial, die
*(Diese Spezifikationen werden aus der Ausgabe von `lscpu` und `lshw` Befehle auf `lxhalle`, der CIT wiki und der Message of the Day)* *(Diese Spezifikationen werden aus der Ausgabe von `lscpu` und `lshw` Befehle auf `lxhalle`, der CIT wiki und der Message of the Day)*
Alle Benchmarking-Tests werden 100 mal ausgeführt um eine genaue Messung zu erhalten. Alle Benchmarking-Tests wurden 100 mal ausgeführt um genaue Messwerte zu erhalten.
#### Test 1: Default 1920x1080 Bild #### Test 1: Default 1920x1080 Bild
@@ -83,9 +83,9 @@ Die Implementierungen erzeugen somit keine vollständig identischen Ergebnisse.
Zusätzlich wurden nicht durch vier teilbare Bildbreiten, positive und negative Höhen sowie Grau- und Farbausgabe getestet. Die verbleibenden Pixel am Zeilenende wurden durch den skalaren Restpfad verarbeitet. Bei umgekehrter Bildhöhe traten ebenfalls geringe Rundungsabweichungen auf. Zusätzlich wurden nicht durch vier teilbare Bildbreiten, positive und negative Höhen sowie Grau- und Farbausgabe getestet. Die verbleibenden Pixel am Zeilenende wurden durch den skalaren Restpfad verarbeitet. Bei umgekehrter Bildhöhe traten ebenfalls geringe Rundungsabweichungen auf.
Die Messungen zeigen, dass SIMD die skalare Berechnung deutlich beschleunigt. V3 erreicht gegenüber V1 einen Speedup zwischen 13,71 und 250,64. Der größte Vorteil tritt bei hohen Iterationszahlen auf, da der Aufwand für die Thread-Verwaltung gegenüber der eigentlichen Berechnung weniger ins Gewicht fällt. V0 und V2 besitzen dagegen in mehreren Tests nahezu identische Laufzeiten, sodass die Thread-Parallelisierung den größten zusätzlichen Performanzgewinn liefert. Die Messungen zeigen, dass SIMD die skalare Berechnung deutlich übertrifft. V3 erreicht gegenüber V1 einen Speedup zwischen 13,71 und 250,64. Der größte Vorteil tritt bei hohen Iterationszahlen auf, da der Aufwand für die Thread-Verwaltung gegenüber der eigentlichen Berechnung weniger ins Gewicht fällt. V0 und V2 besitzen dagegen in mehreren Tests nahezu identische Laufzeiten, sodass die Thread-Parallelisierung den größten zusätzlichen Performanzgewinn liefert.
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. 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-Zugriffen.
## 5. Individuelle Beiträge ## 5. Individuelle Beiträge