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.
3.3. Interconnecti<strong>en</strong>etwerk<strong>en</strong> 25<br />
010<br />
110 111<br />
100<br />
011<br />
000 001<br />
Figuur 3.2: Labeling van de hyperkubus van dim<strong>en</strong>sie 3<br />
101<br />
0 1 0 1 0 1 0 0 1 0<br />
1 1 0 1 0 1 1 0 1 0<br />
1 1 1 1 0 1 1 1 1 0<br />
1 1 1 0 0 1 1 1 1 1<br />
1 1 1 0 1<br />
Figuur 3.3: Het verz<strong>en</strong>d<strong>en</strong> op e<strong>en</strong> hyperkubus<br />
<strong>en</strong> 1 gelabeld. De labels voor de d-dim<strong>en</strong>sionale hyperkubus word<strong>en</strong> dan recursief opgesteld.<br />
Veronderstel dat we reeds elke top van de (d −1)-dim<strong>en</strong>sionale hyperkubus gelabeld hebb<strong>en</strong> met<br />
string van d − 1 bits. De d-dim<strong>en</strong>sionale hyperkubus bestaat uit twee kopieën van de (d − 1)dim<strong>en</strong>sionale<br />
hyperkubus; geef de <strong>en</strong>e kopie label 0 <strong>en</strong> de andere label 1. Het label van e<strong>en</strong><br />
top in de d-dim<strong>en</strong>sionale hyperkubus bestaat uit de concat<strong>en</strong>atie van 0 of 1 (afhankelijk van de<br />
deelkubus waartoe hij behoort) <strong>en</strong> zijn label in de deelkubus. Figuur 3.2 toont de labeling van<br />
de driedim<strong>en</strong>sionale hyperkubus. Merk op dat twee processor<strong>en</strong> die in precies één coördinaat<br />
verschill<strong>en</strong>, rechtstreeks verbond<strong>en</strong> zijn door e<strong>en</strong> communicatiekanaal.<br />
Aangezi<strong>en</strong> verschill<strong>en</strong>de labels corresponder<strong>en</strong> met verschill<strong>en</strong>de topp<strong>en</strong>, kunn<strong>en</strong> we hieruit afleid<strong>en</strong><br />
dat de d-dim<strong>en</strong>sionale hyperkubus p = 2 d topp<strong>en</strong> bevat. De graad van elke top is d; de<br />
hyperkubus is dus e<strong>en</strong> reguliere graaf van graad d.<br />
De diameter van de hyperkubus is d = log 2 p, hetge<strong>en</strong> impliceert dat we e<strong>en</strong> boodschap van elke<br />
top naar om het ev<strong>en</strong> welke andere top kunn<strong>en</strong> stur<strong>en</strong> in hoogst<strong>en</strong>s d stapp<strong>en</strong>.<br />
Voorbeeld 3.3.2. E<strong>en</strong> e<strong>en</strong>voudig routing-algoritme is gebaseerd op het feit dat twee processor<strong>en</strong><br />
die in precies één coördinaat verschill<strong>en</strong>, rechtstreeks verbond<strong>en</strong> zijn door e<strong>en</strong> communicatiekanaal.<br />
Hierdoor kunn<strong>en</strong> we e<strong>en</strong> boodschap van processor Pi naar processor Pj stur<strong>en</strong> door het<br />
label i bit per bit in het label j te verander<strong>en</strong>. Bijvoorbeeld, om in de vijfdim<strong>en</strong>sionale hyperkubus<br />
e<strong>en</strong> boodschap van 01010 naar 11101 te stur<strong>en</strong>, kunn<strong>en</strong> we dit rout<strong>en</strong> over 01010, 11010,<br />
11110, 11100, 11101.<br />
Dit e<strong>en</strong>voudige routing-algoritme kan echter tot problem<strong>en</strong> leid<strong>en</strong>, wanneer meerdere boodschapp<strong>en</strong><br />
tegelijkertijd onderweg zijn. Bijvoorbeeld, beschouw het verstur<strong>en</strong> van e<strong>en</strong> boodschap<br />
van 01010 naar 11101 <strong>en</strong> e<strong>en</strong> boodschap van 10010 naar 11110. Figuur 3.3 illustreert het verz<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