diff --git a/2-6-pgas.tex b/2-6-pgas.tex index 8be34f6..aa85159 100644 --- a/2-6-pgas.tex +++ b/2-6-pgas.tex @@ -16,15 +16,31 @@ \item \textsc{Titanium}: \begin{itemize} \item Java-Erweiterung \item \texttt{local} markiert lokale Daten - \item Bibliotheksprimitiven für Synchronisation, immutable Datenstrukturen, \textellipsis + \item Bibliotheksprimitiven für Synchronisation, unveränderliche Datenstrukturen, \textellipsis \item Datenverteilung: \begin{itemize} - \item \textbf{TODO} + \item mittels \texttt{broadcast}/\texttt{exchange} \end{itemize} \end{itemize} \end{itemize} \item Multicore-Cluster: \begin{itemize} - \item Chapel: \begin{itemize} - \item + \item häufig anderer Ansatz: Sicht auf globales Programm mit expliziter Parallelität und eigenständige Programmiersprachen statt Erweiterung bestehender imperativer Sprachen + \item \textsc{Chapel}: \begin{itemize} + \item explizite Parallelität: \begin{itemize} + \item Datenparallelität: verteilte Arrays mit Domänen auf verschiedenen Lokalitäten + \item Taskparallelität: leichtgewichtige Aktivitäten + \end{itemize} + \item Speicherlayout: \begin{itemize} + \item Zerlegung des globalen Adressbereichs in \texttt{locales}, welche jeweils einem Rechner entsprechen + \item Arrays werden über Domänen erzeugt, mit denen gerechnet werden kann, dann Zuordnung von Index zu Lokalität + \end{itemize} + \end{itemize} + \item \textsc{X10}: \begin{itemize} + \item Speicherlayout: \begin{itemize} + \item Zerlegung des Adressbereichs in \texttt{places} + \item Variablen unveränderlich, lokal und geteilt bei Deklaration + \item Zugriff auf Variablen über Aktivitätsgrenzen auf gleichen Place beschränkt + \item Zugriff auf Variablen in anderen Places durch (temporäre) Verlagerung des Programmflusses auf den jeweiligen Place + \end{itemize} \end{itemize} \end{itemize} \end{itemize} \ No newline at end of file