Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt
Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt
Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
3.3. Interconnecti<strong>en</strong>etwerk<strong>en</strong> 21<br />
van poort<strong>en</strong> ter beschikking hebb<strong>en</strong>. Elke processor Pi, j heeft twee inputkanal<strong>en</strong>, kom<strong>en</strong>de van<br />
zijn linkerbuur Pi−1, j <strong>en</strong> van zijn bov<strong>en</strong>buur Pi, j−1. Verder heeft Pi, j twee outputkanal<strong>en</strong>, gaande<br />
naar zijn rechterbuur Pi+1, j <strong>en</strong> zijn onderbuur Pi, j+1.<br />
E<strong>en</strong> mogelijk systolisch algoritme bestaat erin de rij<strong>en</strong> van A synchroon, maar met e<strong>en</strong> verschuiving,<br />
van links naar rechts door de rij<strong>en</strong> van het rooster te stur<strong>en</strong>, terwijl de kolomm<strong>en</strong> van B<br />
synchroon, <strong>en</strong> ook met verschuiving, van bov<strong>en</strong> naar onder door de kolomm<strong>en</strong> van het rooster<br />
gestuurd word<strong>en</strong>. Wanneer processor Pi, j de inputwaard<strong>en</strong> Ai,ℓ <strong>en</strong> Bℓ, j ontvang<strong>en</strong> heeft, dan berek<strong>en</strong>t<br />
hij Ci, j ← Ci, j +Ai,ℓBℓ, j, <strong>en</strong> stuurt vervolg<strong>en</strong>s de inputwaarde Ai,ℓ door naar zijn rechterbuur<br />
<strong>en</strong> de inputwaarde Bℓ, j naar zijn onderbuur. Na O(n) dergelijke stapp<strong>en</strong> bevat elke processor Pi, j<br />
het correcte matrixelem<strong>en</strong>t Ci, j van het matrixproduct C = AB.<br />
Het aantal processor<strong>en</strong> is p = n 2 . De parallelle uitvoeringstijd van dit algoritme is Tp(n) = Θ(n).<br />
De kost van dit algoritme is Cp(n) = Θ(n 3 ).<br />
3.3 Interconnecti<strong>en</strong>etwerk<strong>en</strong><br />
3.3.1 Netwerktopologieën<br />
E<strong>en</strong> verzameling processor<strong>en</strong> met voorgeschrev<strong>en</strong> statische communicatiekanal<strong>en</strong> wordt e<strong>en</strong> interconnecti<strong>en</strong>etwerk<br />
g<strong>en</strong>oemd. Zoals reeds vermeld kunn<strong>en</strong> we de communicatiekanal<strong>en</strong> voorstell<strong>en</strong><br />
als bog<strong>en</strong> in e<strong>en</strong> graaf waarvan de topp<strong>en</strong> de processor<strong>en</strong> zijn. We sprek<strong>en</strong> van netwerktopologieën<br />
om bepaalde families van graf<strong>en</strong> aan te duid<strong>en</strong>.<br />
Voor het evaluer<strong>en</strong> van netwerktopologieën word<strong>en</strong> e<strong>en</strong> aantal parameters gebruikt. De grootste<br />
afstand tuss<strong>en</strong> twee processor<strong>en</strong> in het netwerk noem<strong>en</strong> we de diameter van het netwerk.<br />
E<strong>en</strong> kleine diameter in het netwerk betek<strong>en</strong>t doorgaans snelle communicatie. De graad van<br />
e<strong>en</strong> processor is het aantal communicatiekanal<strong>en</strong> van de processor<strong>en</strong>; de grootste graad van e<strong>en</strong><br />
processor in het netwerk wordt ook wel de graad van het netwerk g<strong>en</strong>oemd. De connectiviteit<br />
van het netwerk is het kleinste aantal topp<strong>en</strong> of bog<strong>en</strong> waarvan de verwijdering het netwerk<br />
niet-sam<strong>en</strong>hang<strong>en</strong>d maakt.<br />
Bijvoorbeeld, we kunn<strong>en</strong> de processor<strong>en</strong> verbind<strong>en</strong> in de stertopologie, waarbij alle processor<strong>en</strong><br />
verbond<strong>en</strong> zijn met één c<strong>en</strong>trale processor. In de stertopologie is elke processor hoogst<strong>en</strong>s twee<br />
stapp<strong>en</strong> verwijderd van elke andere processor. De stertopologie heeft diameter 2. Bov<strong>en</strong>di<strong>en</strong><br />
gebruikt de stertopologie slechts n communicatiekanal<strong>en</strong> om n + 1 processor<strong>en</strong> te verbind<strong>en</strong>,<br />
hetge<strong>en</strong> het minimum is.<br />
E<strong>en</strong> negatief punt is dat de stertopologie e<strong>en</strong> zeer lage connectiviteit heeft: het uitvall<strong>en</strong> van één<br />
<strong>en</strong>kele processor (nl. de c<strong>en</strong>trale processor) verbreekt het ganse netwerk <strong>en</strong> maakt communicatie<br />
tuss<strong>en</strong> alle andere processor<strong>en</strong> onmogelijk. Dergelijk gedrag is in vele situaties ontoelaatbaar;<br />
d<strong>en</strong>k bijvoorbeeld aan het uitvall<strong>en</strong> van het Internet door het uitvall<strong>en</strong> van één <strong>en</strong>kele machine.<br />
E<strong>en</strong> ander probleem ontstaat wanneer teveel processor<strong>en</strong> terzelfdertijd prober<strong>en</strong> te communicer<strong>en</strong>.<br />
Aangezi<strong>en</strong> alle communicatie door de c<strong>en</strong>trale processor moet gebeur<strong>en</strong>, is de snelheid<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