next up previous
Next: 3.2 Synchronisation paralleler Prozesse Up: 3. Parallelität auf algorithmischer Previous: 3. Parallelität auf algorithmischer

   
3.1 Einige Begriffe

Skalierbarkeit :  
Einfache Anpassung eines Programmes an eine real verfügbare Anzahl von Prozessoren.

Skalierbarkeit wird mittlerweile höher bewertet als höchste Effizienz (d.h. Gewinn an Rechenzeit durch Parallelisierung) auf einer speziellen Architektur.

Granularität :  
Größe der Programmabschnitte, welche ohne Kommunikation mit anderen Prozessoren ausführbar sind.

Feinkörniger Algorithmus : $\longrightarrow$ Systolische Felder [SIMD]

Bsp.: $\omega $-Jacobi-Iteration 

Laplace-Problem, mit dem 5-Punkte-Differenzenstern diskretisiert.

\begin{eqnarraystar}d_{i,j} &:=& c_{i,j} +
\left({ f_{i,j} - \omega
\left[ -...
... \right]
}\right) / 4 \\
\underline{c} &:=& \underline{d}
\end{eqnarraystar}




\begin{figure}
\unitlength0.02\textwidth
\mbox{}\hfill
\begin{picture}
(14,12)...
...2}} \put(1.5,12){\makebox(0,0){$j$ }}
%
\end{picture} \hfill\mbox{}
\end{figure}

Hier treten keinerlei Datenabhängigkeiten innerhalb einer Iteration auf.
$\Longrightarrow$ Gut parallelisierbar (und vektorisierbar).
Bsp.: $\omega $-Gauß-Seidel-Iteration (vorwärts) 

Laplace-Problem, mit dem 5-Punkte-Differenzenstern diskretisiert.

\begin{displaymath}\widehat{c} \makebox[0pt]{}_{i,j} \;:=\; c_{i,j} +
\left({ ...
...-1} + 4 c_{i,j} - c_{i+1,j} - c_{i,j+1} \right]
}\right) / 4
\end{displaymath}


 
Abbildung 3.1: Gauß-Seidel im systolischen Feld
\begin{figure}
\unitlength0.03\textwidth
\begin{center}
\begin{picture}
(12,1...
...ltiput(1,11)(3,3){1}{\makebox(0,0){1}}
%
\end{picture} \end{center}
\end{figure}

Die Werte $\widehat{c} \makebox[0pt]{}_{i-1,j}$ und $\widehat{c} \makebox[0pt]{}_{i,j-1}$ müssen berechnet sein, bevor $\widehat{c} \makebox[0pt]{}_{i,j}$ berechnet werden kann. 1. Iteration :
Zeitgewinn : $ \frac{t_{parallel}}{t_{seriell}} \,=\,
\frac{m+n-1}{mn} \,\approx\, \frac{m+n}{mn} \,\ge\,
\frac{2\sqrt{mn}}{mn} \,=\, \frac{2}{\sqrt{mn}}$
Ideal wäre aber ein Verhältnis $\frac{1}{P} \,=\, \frac{1}{mn}$ !

2. Iteration : Asymptotisch, d.h. bei vielen Iterationen wird der bestmögliche Zeitgewinn durch die Parallelisierung erzielt.


Grobkörniger Algorithmus : $\longrightarrow$ Mehrprozessorrechner [MIMD]
z.B. Blockvarianten von $\omega $-Jacobi- bzw. Gauß-Seidel-Iteration

Bemerkung : Heutzutage ist der Zeitbedarf für eine Kommunikation zwischen den Knoten/Prozessoren deutlich höher als für lokalen Speicherzugriff bzw. arithmetische Operationen. Daher sind grobkörnige Algorithmen für die Parallelisierung gefragt.

Funktionale Parallelität :  
Aufspaltung eines Algorithmus in funktional unterschiedliche, parallel abarbeitbare Teilschritte.

Bsp.: $E \,=\, (d \ast e \ast f + g + c) \ast b + a +h $




Aufgabe :

Teilen Sie obige Berechnungsvorschrift auf 3 Prozessoren auf. Nutzen Sie Umformungsregeln. (Ergebnis: 4 Zeitschritte)


Datenparallelität :  
Gleiche Programmabschnitte werden parallel über verschiedenen Datensegmenten ausgeführt.


Bsp.: Block-$\omega $-Jacobi 



Spezialfall : Geometrische Parallelität.

Die Aufspaltung der Daten in Teilmengen entsprechend geometrischer Überlegungen über der räumlichen Anordnung der Objekte (Teilchen, Diskretisierungspunkte etc.), bzw. Ausnutzung von Nachbarschaftsbeziehungen bei Diskretisierungsmethoden wie FEM, FDM, FVM.


next up previous
Next: 3.2 Synchronisation paralleler Prozesse Up: 3. Parallelität auf algorithmischer Previous: 3. Parallelität auf algorithmischer
Gundolf Haase
1998-12-22