diff --git a/3-7-heterogene-architekturen.tex b/3-7-heterogene-architekturen.tex index 7901b9b..805c659 100644 --- a/3-7-heterogene-architekturen.tex +++ b/3-7-heterogene-architekturen.tex @@ -1 +1,29 @@ -\subsection{Heterogene Architekturen} \ No newline at end of file +% !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} \ No newline at end of file