03.07.2013 Views

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!