Heterogene Architekturen: erster Entwurf

This commit is contained in:
Marco Ammon 2019-09-26 12:08:55 +02:00
parent 5f50d7eda8
commit 59dc1dc8b9
1 changed files with 29 additions and 1 deletions

View File

@ -1 +1,29 @@
\subsection{Heterogene Architekturen}
% !TeX spellcheck = de_DE
\subsection{Heterogene Architekturen}
\begin{itemize}
\item Heterogenität in Hard- und Software nimmt zu (Energieverbrauch, Spezialhardware, Beschleunigerkarten, \textellipsis)
\item MPI + \begriff{OpenMP} für Ausnutzung von Multi-Core-Rechnern: \begin{itemize}
\item Compiler-Direktiven und Hilfsbibliothek erlauben Multi-Threading über Shared Memory
\item grundlegendes Modell: \begriff{fork/join-Parallelismus}
\item im Vergleich zu reinem MPI muss pro Knoten (nicht Ausführungsthread!) eine MPI-Instanz laufen
\end{itemize}
\item MPI + \begriff{CUDA} für Unterstützung von (nVidia-) Grafikkarten: \begin{itemize}
\item Grafikkarten können mittlerweile für allgemeine, massiv-parallele Berechnungen (\begriff{GPGPU}) verwendet werden
\item Ausführungsmodell Single-Instruction-Multiple-Thread (\begriff{SIMT}): \begin{itemize}
\item Gruppierung zu Multiprozessoren/Threads
\item Threads weiter in Blöcke, diese in Gitter gruppiert
\item gleiche Instruktion für alle Blöcke, Datenzugriff durch Thread-ID
\end{itemize}
\item nicht-einheitliche Sprünge problematisch und keine Branch-Prediction
\item im Vergleich zur CPU sehr viele Register und sehr schnell angebundener Grafikspeicher
\item Programmierung: \begin{itemize}
\item explizite Kennzeichnung des Codes für CPU bzw. GPU
\item spezieller Compiler notwendig
\item verschiedene Qualifier für Funktionen und Speicherbereiche
\item \begriff{CUDA-aware MPI} kann auch Speicher auf GPUs direkt verwenden
\item Optimierungen wie \begriff{GPU-Direct} können GPUs direkt ohne Host über das Netzwerk kommunizieren lassen bzw. RDMA vornehmen
\end{itemize}
\end{itemize}
\item Mircoservers mit ARM-Prozessoren und \begriff{FPGA}s
\item neuartige Architekturen (z.B. Parallela)
\end{itemize}