inleiding tot de numerieke wiskunde - Mathematisch Instituut Leiden ...
inleiding tot de numerieke wiskunde - Mathematisch Instituut Leiden ...
inleiding tot de numerieke wiskunde - Mathematisch Instituut Leiden ...
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.