Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt
Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt
Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.3. Het werk-tijd-paradigma 17<br />
Algoritme 2.9 Berek<strong>en</strong><strong>en</strong> van de veralgeme<strong>en</strong>de som van e<strong>en</strong> rij getall<strong>en</strong> (WT-scheduling)<br />
Input: array a met n = 2 k getall<strong>en</strong>; p = 2 q ≤ n processor<strong>en</strong>; ℓ = n/p; processornummer r<br />
Output: som s = ∑ n i=1 ai<br />
1: for j = 1 to ℓ do<br />
2: Stel b ℓ(r−1)+ j ← a ℓ(r−1)+ j<br />
3: for h from 1 to log 2 n do<br />
4: if k − h − q ≥ 0 th<strong>en</strong><br />
5: for j from 2 k−h−q (r − 1)+1 to 2 k−h−q r do<br />
6: Stel b j ← b2 j−1 ⊕ b2 j<br />
7: else if r ≤ 2 k−h th<strong>en</strong><br />
8: Stel br ← b2r−1 ⊕ b2r<br />
9: if r = 1 th<strong>en</strong><br />
10: Stel s ← b1<br />
wordt door n/2 h = 2 k−h . Als 2 k−h ≥ p = 2 q , dus als k − h − q ≥ 0, dan kunn<strong>en</strong> de bewerking<strong>en</strong><br />
gelijkmatig verdeeld word<strong>en</strong> over p processor<strong>en</strong>. Anders word<strong>en</strong> ze verdeeld over de 2 k−h<br />
“eerste” processor<strong>en</strong>. Algoritme 2.9 geeft de pseudocode voor dit PRAM-algoritme.<br />
De parallelle uitvoeringstijd van dit algoritme wordt gegev<strong>en</strong> door<br />
<br />
n<br />
Tp(n) = O<br />
p +<br />
log 2n ⌈ n<br />
2hp ⌉<br />
<br />
n<br />
= O + logn .<br />
p<br />
∑<br />
h=1<br />
<br />
W(n)<br />
Merk op dat Tp(n) = O p + T(n) , zoals voorspeld door het WT-scheduling-principe. De<br />
kost van dit algoritme is Cp(n) = p × Tp(n) = O(n+ plogn).<br />
In het vervolg zull<strong>en</strong> we PRAM-algoritm<strong>en</strong> doorgaans <strong>en</strong>kel in hun WT-pres<strong>en</strong>tatie besprek<strong>en</strong>.<br />
Het weglat<strong>en</strong> van de details van het WT-scheduling niveau wordt gemotiveerd door het feit dat<br />
deze uitwerking doorgaans ge<strong>en</strong> nieuwe ideeën vereist, maar eerder bestaat uit programmeerdetails<br />
die de beschrijving van het algoritme veel ingewikkelder mak<strong>en</strong>.<br />
<strong>Algoritm<strong>en</strong></strong> <strong>en</strong> Datastructur<strong>en</strong> <strong>III</strong> Veerle.Fack@UG<strong>en</strong>t.be