next up previous
Next: 5.4 Das Gauß-Seidel Verfahren Up: 5.3 Das -Jacobi Verfahren Previous: 5.3.2 Datengraph der Jacobi-Iteration

   
5.3.3 Das parallele Verfahren

Auch im parallelen Fall benötigt das $\omega $-Jacobi Verfahren die Hauptdiagonalelemente der assemblierten Steifigkeitsmatrix. Da diese verteilt gespeichert sind, muß die Hauptdiagonale separat assembliert und gespeichert werden. Die Parallelisierungsstrategie ähnelt dem Vorgehen beim CG-Verfahren in Abschnitt 5.1.2 .
  $\mbox{$\bullet$}$
Die invertierte assemblierte Diagonale wird als Vektor abgespeichert $\underline{{\ensuremath{\color{red} \mathfrak{d} } }} = {\ensuremath{\color{red...
...g}^{-1}(\sum_{i=1}^P A_s^T {\ensuremath{\color{green} {\sf K}} }_s A_s)\enspace$.
  $\mbox{$\bullet$}$
Die Matrix $K$ ist als ${\ensuremath{\color{green} {\sf K}} }$ (4.1) verteilt (Typ-II) gespeichert.
$\Longrightarrow$
Vektor $\underline{u}$ $\rightarrow$ $\underline{{\ensuremath{\color{red} \mathfrak{u} } }}$ ist akkumuliert (Typ-I), Vektoren $\underline{r}$, $\underline{f}$ $\rightarrow$ $\underline{{\ensuremath{\color{green} {\sf r}} }}$, $\underline{{\ensuremath{\color{green} {\sf f}} }}$ sind verteilt gespeichert.
$\Longrightarrow$ Matrix-mal-Vektor benötigt keine Kommunikation (4.8).
!!
Das Skalarprodukt benötigt unterschiedliche Vektortypen
$\Longrightarrow$ Akkumulation von $\underline{{\ensuremath{\color{green} {\sf r}} }}$ $\longrightarrow$ $\underline{{\ensuremath{\color{red} \mathfrak{w} } }}$.
!!
Mit dem akkumulierten Vektor $\underline{{\ensuremath{\color{red} \mathfrak{w} } }}$ läßt sich nunmehr die verbliebene DAXPY-Operation kommunikationsfrei ausführen.

 \begin{algorithmus}% latex2html id marker 16251
[H]\caption{Parallele Jacobi-Ite...
... \\
\multicolumn{3}{l}{ \mbox{\textbf{\sf end}}}
\end{array}$\end{algorithmus}
Die in Algorithmus 5.6 vorkommende Operation $\underline{{\ensuremath{\color{red} \mathfrak{d} } }} \circledast \underline{{\ensuremath{\color{red} \mathfrak{w} } }}$ bezeichnet die komponentenweise Multiplikation zweier Vektoren, d.h. $\{{\ensuremath{\color{red} \mathfrak{d} } }_i \cdot {\ensuremath{\color{red} \mathfrak{w} } }_i\}_{i=\overline{1,n} \makebox[0pt]{}}\enspace$, und ist nichts anderes als die Multiplikation einer Diagonalmatrix mit einem Vektor. Falls der Relaxationsparameter $\omega $ im Verlaufe der Iteration konstant bleibt, kann man ihn im Vorbereitungsschritt in den Vektor  $\underline{{\ensuremath{\color{red} \mathfrak{d} } }}$ multiplizieren.
Falls kein Abbruchtest nötig ist, z.B. bei Verwendung als Glätter mit einer fixen Anzahl von Schritten, dann kann man die Berechnung der Skalarprodukte weglassen und $\underline{{\ensuremath{\color{green} {\sf r}} }}$ kann identisch  $\underline{{\ensuremath{\color{red} \mathfrak{w} } }}$ gewählt werden.

Per Jacobi-Iterationsschritt tritt somit eine Vektorakkumulation und ein ALL/SMALL>_REDUCE einer reellen Zahl auf.


next up previous
Next: 5.4 Das Gauß-Seidel Verfahren Up: 5.3 Das -Jacobi Verfahren Previous: 5.3.2 Datengraph der Jacobi-Iteration
Gundolf Haase
1998-12-22