29.08.2013 Views

inleiding tot de numerieke wiskunde - Mathematisch Instituut Leiden ...

inleiding tot de numerieke wiskunde - Mathematisch Instituut Leiden ...

inleiding tot de numerieke wiskunde - Mathematisch Instituut Leiden ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

14 1.7 Vectorcomputers en parallelle computers<br />

De som van twee vectoren x en y (x, y ∈ R n met componenten respectievelijk ξ1, ξ2, . . . , ξn en<br />

η1, η2, . . . , ηn) wordt nu als volgt bepaald:<br />

1. Deeloperatie D1 start met het paar (ξ1, η1).<br />

2. Na één klokcyclus is D1 voltooid. Nu start D2 met het resultaat van D1 en start D1 met het<br />

paar (ξ2, η2).<br />

3. Na weer een klokcyclus zijn D1 en D2 klaar. Nu start D3 met het resultaat van D2, start D2<br />

met het resultaat van D1 en start D1 met het paar (ξ3, η3).<br />

4. Na <strong>de</strong> <strong>de</strong>r<strong>de</strong> klokcyclus zijn D1, D2 en D3 voltooid. Nu starten D4, D3 en D2 met <strong>de</strong> resultaten<br />

van resp. D3, D2 en D1 en start D1 met het paar (ξ4, η4).<br />

5. Na <strong>de</strong> vier<strong>de</strong> klokcyclus zijn D1, D2, D3 en D4 klaar. De som van ξ1 en η1 is bepaald en D4,<br />

D3 en D2 starten met <strong>de</strong> resultaten van resp. D3, D2 en D1. D1 start met het paar (ξ5, η5).<br />

Enzovoorts.<br />

Na ie<strong>de</strong>re klokcyclus is weer een som van twee componenten bepaald. De som van <strong>de</strong> twee vectoren<br />

x en y wordt zodoen<strong>de</strong> in n + 3 klokcycli berekend. Vergeleken met een ‘gewone’ (sequentiële)<br />

computer is dit dus ongeveer vier maal zo snel.<br />

1.7.2 Parallelle computers<br />

Sommige algoritmen bevatten veel berekeningen die on<strong>de</strong>rling onafhankelijk zijn. Zulke algoritmen<br />

zijn uitermate geschikt om te wor<strong>de</strong>n uitgevoerd op een parallelle computer. Zo’n computer beschikt<br />

over een aantal, van elkaar onafhankelijke, processoren, die gegevens met een centraal geheugen (of<br />

met elkaar) kunnen uitwisselen.<br />

Voorbeeld 1.12 Zij gegeven <strong>de</strong> matrix A = (ai,j) ∈ R n,n en <strong>de</strong> vector b = (βi) ∈ R n . Gevraagd<br />

wordt het product c = (γi) = A b ∈ R n te berekenen.<br />

Neem aan dat <strong>de</strong> parallelle computer, die we gebruiken, over p = n processoren beschikt. Elke<br />

processor kan dan precies één component γi van c berekenen. De i-<strong>de</strong> processor voert <strong>de</strong> volgen<strong>de</strong><br />

algoritme uit:<br />

1. s := 0<br />

2. for j := 1 to n do s := s + ai,j × βj<br />

3. γi := s<br />

Elke processor moet dus <strong>de</strong>zelf<strong>de</strong> hoeveelheid rekenwerk uitvoeren. Vergelijken we <strong>de</strong>ze wijze van<br />

berekening van c met <strong>de</strong> berekening van c op een sequentiële computer, dan zien we dat <strong>de</strong> berekening<br />

op <strong>de</strong> parallelle computer p maal zo snel verloopt als op een computer met slechts één<br />

processor.<br />

In voorbeeld 1.12 hebben we geen rekening gehou<strong>de</strong>n met <strong>de</strong> tijd die per processor nodig is voor het<br />

ophalen van elementen van A en b uit het centrale geheugen. Op veel parallelle computers gebeurt<br />

het verzen<strong>de</strong>n van data in eenhe<strong>de</strong>n van zgn. packets. Een packet kan een beperkt aantal reële<br />

getallen bevatten, b.v. 64. Het verzen<strong>de</strong>n van één reëel getal kost dan evenveel als het versturen<br />

van 64 getallen. Het is <strong>de</strong>rhalve zinvol voorbeeld 1.12 als volgt te generaliseren.<br />

Voorbeeld 1.13 Zij gegeven <strong>de</strong> matrix A ∈ R n,n en <strong>de</strong> vector b ∈ R n . Gevraagd wordt het<br />

product c = A b te berekenen.<br />

Neem aan dat <strong>de</strong> parallelle computer, die we gebruiken, over p = n<br />

k<br />

processoren beschikt.

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

Saved successfully!

Ooh no, something went wrong!