next up previous
Next: 5.4.4.2 Variante 2 : Gauß-Seidel-Jacobi Up: 5.4.4 Das parallele Verfahren Previous: 5.4.4 Das parallele Verfahren

   
5.4.4.1 Variante 1 : formales Übertragen

Schreibt man den Updateschritt aus Algorithmus 5.7 mit den parallelen Datentypen, ist folgender Algorithmus denkbar :
 \begin{algorithmus}% latex2html id marker 17296
[H]\caption{Paralleler Updatesch...
...{red} \mathfrak{u} } }}^{k-1}_s \right)
\end{array}\end{array}$\end{algorithmus}
Auf den ersten Blick ist man mit Algorithmus 5.9 bereits am Ziel seiner Wünsche, jedoch werden sich bei der Implementierung Schwierigkeiten einstellen, welche eine effiziente Parallelisierung fast unmöglich machen. Die gewählte Datenverteilung ist in Abb. 5.4 dargestellt.
  
Abbildung 5.4: Gebietsaufteilung Einheitsquadrat
\begin{figure}
\unitlength0.05\textwidth
\begin{picture}
(10,10)
\put(0,0){\line(1,0){10}}
\put(0,0){\line(0,1){10}}
\end{picture} \end{figure}


Durch die Knotennumerierung analog zu Punkt 4.3.1 wird eine Matrix und Vektorstruktur analog zu (4.2) erzeugt.
Für eine detailierte Analyse schlüsselt man die Berechnungen in Algorithmus 5.9 entsprechend der entstehenden Blockstruktur auf:

       \begin{subequations}% latex2html id marker 41895\begin{eqnarray}
\underline{...
..._{j=i}^{N} {K}_{I,ij}{u}_{I,j}^{k-1}
\right)
\end{eqnarray}\end{subequations}

Die Summe  $\pmb{\sum\limits_{s=1}^{P}} A_{s,i}^T(\cdot)$ bedeutet in jedem Update einer Komponente $i$ die Akkumulation des Residuums dieser Komponente. Die Anzahl der übertragenen Worte ( $N_C=N_V+N_E$) ist hierbei genauso groß wie beim entsprechenden Updateschritt im $\omega $-Jacobi-Verfahren, jedoch sind dies hier $N_C$ einzelne Kommunikationen für welche auch $N_C$ Startupzeiten hinzukommen. Es gelte $t_{\mathrm{Startup}} = c\cdot t_{\mathrm{Word}}$, dann ergibt sich im Vergleich :

\begin{eqnarraystar}t_{\mathrm{Jacobi}} \,:=\,
t_{\mathrm{Startup}} + N_C\cdot...
...athrm{Word}}
\hspace{2em}\mathrm{falls}\hspace{1em}N_C \ge 1
\end{eqnarraystar}



In obiger Ungleichung hat der Faktor $c$ keinerlei Einfluß auf das Verhältnis der Kommunikationszeiten der zwei Verfahren, es gilt vielmehr

\begin{displaymath}t_{\mathrm{GS}} \;\ge\;
N_C\left[\frac{c+1}{c+N_C}\right] \...
...ty}{\longrightarrow}
(c+1) \cdot t_{\mathrm{GS}} \enspace ,
\end{displaymath}

d.h. die Effizienz des Gauß-Seidel-Verfahrens mit dem Updateschritt (5.3) wird weit unter dem Jacobi-Verfahren liegen.

Durch Ausnutzung von Nachbarschaftsbeziehungen kann dieses Kommunikationsverhältnis $N_C$ bis auf die maximale Anzahl von Daten auf einer Interfacekante reduziert werden.

Damit (5.3) überhaupt vernünftig parallelisierbar ist, müssen die Anforderungen 3a und 3a an das FE-Netz erfüllt sein, siehe Abb. 4.6 . Ist dies nicht der Fall, so müssen (5.3b) und (5.3d)) sequentiell abgearbeitet werden ! Ansonsten muß eine Red-Black-Numerierung der Interfacekanten durchgeführt werden, was bei allgemeinen Gebieten zu Problemen führt.


next up previous
Next: 5.4.4.2 Variante 2 : Gauß-Seidel-Jacobi Up: 5.4.4 Das parallele Verfahren Previous: 5.4.4 Das parallele Verfahren
Gundolf Haase
1998-12-22