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:

  1. Einfache Inkrementierung:
    64-Bit Version
    128-Bit Version
  2. Berechnung der gaußsche Summenformel (Kleiner Gauß)
    64-Bit Version
    128-Bit Version
  3. Berechung von Pi nach Leibniz-Reihe:
    64-Bit Version
    128-Bit Version
  4. Vektoradditionen (1D/2D/3D):
    1D-Vektoraddition (64-Bit Version)
    1D-Vektoraddition (128-Bit Version)
    2D-Vektoraddition (64-Bit Version)
    3D-Vektoraddition (64-Bit Version)
  5. 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)
  6. Matrixmultiplikationen (2D):
    Integer (64-Bit Version)
    Real/float (64-Bit Version)
  7. Sortieralgorithmen (seriell: BubbleSort, parallel: OetSort):
    64-Bit Version
  8. Suchalgoritmus (Integer-Suche):
    64-Bit Version

Beispiele für die [GP]GPU-Parallelisierung ([General-Purpose] computing on Graphics Processing Units) mit CUDA v4.0:

  1. 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)
  2. Berechung von Pi nach Leibniz-Reihe (64-Bit-Version, CUDA-only):
    1 GPU und 14 SM (21504 GPU-Threads)
  3. 2D-Matrixmultiplikation (64-Bit-Version, CUDA-only):
    1 GPU und 14 SM (21504 GPU-Threads)
  4. 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