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.5. Gedistribueerde algoritm<strong>en</strong> 33<br />
door AES, de “Advanced Encryption Standard”. De aanval was niet gebaseerd op gesofisticeerde<br />
wiskundige eig<strong>en</strong>schapp<strong>en</strong> van het DES-coderingsschema, maar wel op brute kracht. DES<br />
gebruikt e<strong>en</strong> sleutel van 56 bits, m.a.w. er zijn slechts 2 56 mogelijke sleutels om te controler<strong>en</strong>.<br />
E<strong>en</strong> typische PC op dat mom<strong>en</strong>t kon zo’n 2 miljo<strong>en</strong> sleutels in één seconde uitprober<strong>en</strong>, zodat<br />
één PC ongeveer 2 56 /(2 × 10 2 ) second<strong>en</strong>, of ongeveer 1000 jaar, nodig zou gehad hebb<strong>en</strong> om<br />
alle sleutels te prober<strong>en</strong>. Wanneer 100 000 PCs in parallel op dit probleem werk<strong>en</strong>, wordt deze<br />
tijd gereduceerd tot ongeveer 4 dag<strong>en</strong>.<br />
Gelijkaardige gedistribueerde project<strong>en</strong> zijn inmiddels opgezet voor tak<strong>en</strong> zoals het factoriser<strong>en</strong><br />
van grote getall<strong>en</strong> (e<strong>en</strong> andere bezigheid die interessant is voor crypto-analyst<strong>en</strong>), het zoek<strong>en</strong><br />
van grote priemtweeling<strong>en</strong>, <strong>en</strong> zelfs voor het zoek<strong>en</strong> naar buit<strong>en</strong>aardse intellig<strong>en</strong>tie (het SETI<br />
project).<br />
Al deze project<strong>en</strong> verton<strong>en</strong> e<strong>en</strong> typische eig<strong>en</strong>schap van gedistribueerde berek<strong>en</strong>ing: de taak die<br />
moet uitgevoerd word<strong>en</strong>, parallelliseert goed. De taak is op te brek<strong>en</strong> in zeer onafhankelijke<br />
deeltak<strong>en</strong>, waarbij weinig communicatie tuss<strong>en</strong> de deeltak<strong>en</strong> nodig is. Bijvoorbeeld, in het DESproject<br />
werd<strong>en</strong> de sleutels opgesplitst in grote blokk<strong>en</strong>, die uitgedeeld werd<strong>en</strong> aan verschill<strong>en</strong>de<br />
processor<strong>en</strong>.<br />
De belangrijkste vraag in gedistribueerde berek<strong>en</strong>ing<strong>en</strong> is niet zozeer of, <strong>en</strong> hoe, e<strong>en</strong> probleem<br />
parallelliseert, maar wel hoe de grote hoeveelheid processor<strong>en</strong> e<strong>en</strong> gedistribueerde berek<strong>en</strong>ing<br />
kan opzett<strong>en</strong> <strong>en</strong> handhav<strong>en</strong> in e<strong>en</strong> onbetrouwbare <strong>en</strong> soms zelfs vijandige omgeving. Wat moet<br />
er gebeur<strong>en</strong> wanneer e<strong>en</strong> PC die gewerkt heeft op e<strong>en</strong> bepaald blok sleutels, ge<strong>en</strong> resultaat teruggeeft?<br />
Is de communicatie verlor<strong>en</strong> gegaan of is de computer afgeslot<strong>en</strong>? Gev<strong>en</strong> we het blok<br />
sleutels aan e<strong>en</strong> andere processor, of wacht<strong>en</strong> we? Wat wanneer één van de PCs gekraakt werd<br />
<strong>en</strong> nu opzettelijk verkeerde resultat<strong>en</strong> teruggeeft? Kunn<strong>en</strong> we herk<strong>en</strong>n<strong>en</strong> wanneer dit gebeurt?<br />
En wie is “we”?<br />
In alle voorbeeld<strong>en</strong> die we tot nu toe vermeld hebb<strong>en</strong>, is er één c<strong>en</strong>trale processor die de tak<strong>en</strong><br />
uitbesteedt (ook “farming” g<strong>en</strong>oemd) aan beschikbare werkers <strong>en</strong> die de ganse berek<strong>en</strong>ing beheert.<br />
In het algeme<strong>en</strong> will<strong>en</strong> we echter niet veronderstell<strong>en</strong> dat er noodzakelijk e<strong>en</strong> aangestelde<br />
leider is. Bijvoorbeeld, ARPANET, de voorganger van het Internet, was door het US Departm<strong>en</strong>t<br />
of Def<strong>en</strong>se in 1969 opgericht als e<strong>en</strong> gedec<strong>en</strong>traliseerd communicati<strong>en</strong>etwerk teg<strong>en</strong> mogelijke<br />
nucleaire aanvall<strong>en</strong>. Zelfs wanneer sommige servers in het Internet uitvall<strong>en</strong>, is er nog steeds<br />
communicatie mogelijk. Wanneer de hoofdcomputer in e<strong>en</strong> gec<strong>en</strong>traliseerd netwerk uitvalt, stort<br />
het hele netwerk in elkaar.<br />
We zi<strong>en</strong> dus dat de studie van gedistribueerde algoritm<strong>en</strong> gestuurd wordt door vrag<strong>en</strong> die betrekking<br />
hebb<strong>en</strong> op basiscommunicatie tuss<strong>en</strong> de processor<strong>en</strong> die het gedistribueerde netwerk<br />
vorm<strong>en</strong>.<br />
Er zijn meerdere modell<strong>en</strong> van gedistribueerd berek<strong>en</strong><strong>en</strong>. Meestal wordt verondersteld dat de<br />
processor<strong>en</strong> slechts losweg gekoppeld (“loosely coupled”) zijn, m.a.w. er is informatie over kanal<strong>en</strong><br />
tuss<strong>en</strong> par<strong>en</strong> processor<strong>en</strong>, maar verder wordt ge<strong>en</strong> informatie gedeeld. In het bijzonder is<br />
er ge<strong>en</strong> sprake van e<strong>en</strong> globale toestand, zoals in e<strong>en</strong> gec<strong>en</strong>traliseerd algoritme. Occasioneel kan<br />
het echter zinvol zijn om te veronderstell<strong>en</strong> dat alle processor<strong>en</strong> synchroon kunn<strong>en</strong> werk<strong>en</strong>, via<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