46 lines
2.5 KiB
TeX
46 lines
2.5 KiB
TeX
% !TeX spellcheck = de_DE
|
|
\subsection{Partitioned Global Address Space (PGAS)}
|
|
\begin{itemize}
|
|
\item verschiedene Adressräume: \begin{itemize}
|
|
\item viele lokale (z.B. für Stack, temporäre Variablen, \textellipsis)
|
|
\item ein globaler (z.B. für gemeinsam genutzte Datenstrukturen, Konstanten, \textellipsis) verteilt auf lokal zugeordnete Bereiche
|
|
\end{itemize}
|
|
\item damit auch von Adressraum abhängige lokale bzw. globale Referenzen
|
|
\item für Singlecore-Cluster: \begin{itemize}
|
|
\item \textsc{Unified Parallel C} (UPC): \begin{itemize}
|
|
\item C-Erweiterung
|
|
\item \texttt{shared}-Pointer für globale Referenzen
|
|
\item Bibliotheksprimitiven für parallele Ausführung, Synchronisation, kollektive Operationen, \textellipsis
|
|
\item Arrays können block-zyklisch verteilt werden: \texttt{shared[b] int a[n]} (Blockgröße $b$ bei $n$ Elementen)
|
|
\end{itemize}
|
|
\item \textsc{Titanium}: \begin{itemize}
|
|
\item Java-Erweiterung
|
|
\item \texttt{local} markiert lokale Daten
|
|
\item Bibliotheksprimitiven für Synchronisation, unveränderliche Datenstrukturen, \textellipsis
|
|
\item Datenverteilung: \begin{itemize}
|
|
\item mittels \texttt{broadcast}/\texttt{exchange}
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\item Multicore-Cluster: \begin{itemize}
|
|
\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} |