Parallelisierung am AIU
Vortrag zum Thema Parallisierung am AIU (PDF-Dokument) gehalten am 03.02.2012 im Institusseminar des AIU.
Anwendungen der Parallelisierung
Test-System:
CPU-Modell: | | 2 x Intel(R) Xeon(R) X5690 @ 3.47GHz |
CPU-Typ: | | x86-64 |
Anzahl CPU-Kerne total: | | 12 physische, 12 logische = 24 CPU-Kernel (= CPU-Threads) |
RAM: | | 48 GByte |
|
GPU-Modell: | | 2 x NVIDIA Tesla C2070 |
GPU-Typ (Architektur): | | Fermi (GF100) |
GPU-RAM: | | ca. 6 GByte |
Bus: | | PCIe v3.0 |
Standard-Applikation mit OpenMP + CUDA: "Hello World parallel" (CPU & GPU)
Beispiele für die CPU-Parallelisierung (Mehrkernmaschinen) mit OpenMP v3.0:
- Einfache Inkrementierung:
64-Bit Version
128-Bit Version
- Berechnung der gaußsche Summenformel (Kleiner Gauß)
64-Bit Version
128-Bit Version
- Berechung von Pi nach Leibniz-Reihe:
64-Bit Version
128-Bit Version
- Vektoradditionen (1D/2D/3D):
1D-Vektoraddition (64-Bit Version)
1D-Vektoraddition (128-Bit Version)
2D-Vektoraddition (64-Bit Version)
3D-Vektoraddition (64-Bit Version)
- Matrixadditionen (2D/3D):
2D-Matrixaddition (64-Bit Version)
2D-Matrixaddition optimiert 1 (64-Bit Version)
2D-Matrixaddition optimiert 2 (64-Bit Version)
3D-Matrixaddition (64-Bit Version)
3D-Matrixaddition optimiert 1 (64-Bit Version)
3D-Matrixaddition optimiert 2 (64-Bit Version)
- Matrixmultiplikationen (2D):
Integer (64-Bit Version)
Real/float (64-Bit Version)
- Sortieralgorithmen (seriell: BubbleSort, parallel: OetSort):
64-Bit Version
- Suchalgoritmus (Integer-Suche):
64-Bit Version
Beispiele für die [GP]GPU-Parallelisierung ([General-Purpose] computing on Graphics Processing Units) mit CUDA v4.0:
- Einfache (1D) Vektoradditionen (64-Bit-Version, CUDA-only):
1 GPU und 1 GPU-Thread
1 GPU und 24 GPU-Threads
1 GPU und max. GPU-Threads (67107840 GPU-Threads)
1 GPU und 1 SM (1536 GPU-Threads)
1 GPU und 14 SM mit Speicherbegrenzung (21504 GPU-Threads)
1 GPU und 14 SM ohne Speicherbegrenzung(21504 GPU-Threads und Partitionierung der Input-Daten)
- Berechung von Pi nach Leibniz-Reihe (64-Bit-Version, CUDA-only):
1 GPU und 14 SM (21504 GPU-Threads)
- 2D-Matrixmultiplikation (64-Bit-Version, CUDA-only):
1 GPU und 14 SM (21504 GPU-Threads)
- Einfache (1D) Vektoradditionen (64-Bit-Version, Multi-GPU, OpenMP + CUDA):
2 GPU's mit je 14 SM (2*21504 GPU-Threads total)
Erstellt am 16.02.2012 von Kevin Erler und Jügen Weiprecht