31.01.2014 Aufrufe

Parallele Algorithmen

Parallele Algorithmen

Parallele Algorithmen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

16 KAPITEL 2. MASCHINENMODELLE<br />

CREW PRAM zur Matrizenmultiplikation<br />

Verwendet werden n 3 Prozessoren P 000 P 001 :::P n;1n;1n;1 .<br />

Gegeben: zwei n n-Matrizen a b.<br />

Gesucht: ihr Matrizenprodukt c mit<br />

c ij =<br />

Xn;1<br />

k=0<br />

a ik b kj<br />

VAR a,b : ARRAY [0..n-1] [0..n-1] OF REAL<br />

FOR ALL 0 i, j, k n - 1 DO IN PARALLEL<br />

P ijk : tmp [i, j, k] := a[i, k] * b [k, j]<br />

END<br />

(* nun wird mit n 3 /2 Prozessoren *)<br />

(* das Array tmp [i, j, *] aufaddiert *)<br />

d := n<br />

REPEAT<br />

d := d DIV 2<br />

FOR ALL 0 k d - 1 DO IN PARALLEL<br />

P ijk : tmp[i, j, k] := tmp [i, j, 2 * k] + tmp [i, j, 2 * k + 1]<br />

END<br />

UNTIL d = 1<br />

Das Ergebnis c ij bendet sich in tmp [i, j, 0].<br />

Sequentialzeit: O(n 3 )<br />

Parallelzeit: O(log n)<br />

Speedup: O(n 3 = log n)<br />

Ezienz: O(n 3 =n 3 log n) =O(1= log n)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!