03.07.2013 Views

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4 Hoofdstuk 1. Inleiding<br />

op basis van hun parallelle uitvoeringstijd <strong>en</strong> hun versnelling, maar ook op basis van het aantal<br />

processor<strong>en</strong> dat ze gebruik<strong>en</strong>. De kost Cp(n) van e<strong>en</strong> parallel algoritme is het product van het<br />

aantal processor<strong>en</strong> p <strong>en</strong> het aantal stapp<strong>en</strong> dat het algoritme uitvoert, m.a.w.<br />

Cp(n) = p × Tp(n).<br />

Merk op dat e<strong>en</strong> parallel algoritme met kost Cp(n) kan omgezet word<strong>en</strong> in e<strong>en</strong> sequ<strong>en</strong>tieel algoritme<br />

dat Θ(Cp(n)) uitvoeringstijd vraagt.<br />

Voorbeeld 1.1.3. Het parallelle algoritme uit Voorbeeld 1.1.2 heeft kost Cn(n) = Θ(nlogn),<br />

hetge<strong>en</strong> slechter is dan het sequ<strong>en</strong>tiële algoritme dat uitvoeringstijd (<strong>en</strong> dus kost) T ∗ (n) = Θ(n)<br />

heeft (aangezi<strong>en</strong> het n stapp<strong>en</strong> uitvoert op 1 processor). In term<strong>en</strong> van kost is het parallelle<br />

algoritme dus niet optimaal, omdat er e<strong>en</strong> ander algoritme bestaat dat minder kost vraagt.<br />

We noem<strong>en</strong> e<strong>en</strong> algoritme kost-optimaal als Cp(n) = Θ(T ∗ (n)). Zoals we verder zull<strong>en</strong> zi<strong>en</strong>,<br />

bestaan er techniek<strong>en</strong> die dikwijls toelat<strong>en</strong> om parallelle algoritm<strong>en</strong> kost-optimaal te mak<strong>en</strong>.<br />

1.2 Modell<strong>en</strong> van parallelle computers<br />

E<strong>en</strong> algeme<strong>en</strong> aanvaard model voor het ontwerp<strong>en</strong> <strong>en</strong> analyser<strong>en</strong> van sequ<strong>en</strong>tiële algoritm<strong>en</strong><br />

bestaat uit e<strong>en</strong> c<strong>en</strong>trale verwerkingse<strong>en</strong>heid, die verbond<strong>en</strong> is met e<strong>en</strong> random-access geheug<strong>en</strong>.<br />

De typische instructieset voor dit model omvat lez<strong>en</strong> uit <strong>en</strong> schrijv<strong>en</strong> naar het geheug<strong>en</strong>, ev<strong>en</strong>als<br />

elem<strong>en</strong>taire logische <strong>en</strong> rek<strong>en</strong>kundige bewerking<strong>en</strong>. Dit model heeft zijn welslag<strong>en</strong> te dank<strong>en</strong><br />

aan zijn e<strong>en</strong>voud <strong>en</strong>erzijds <strong>en</strong> aan het feit dat het de performantie van sequ<strong>en</strong>tiële algoritm<strong>en</strong> op<br />

computers van het von Neumann-type adequaat kan inschatt<strong>en</strong>.<br />

Jammer g<strong>en</strong>oeg is er voor parallelle berek<strong>en</strong>ing<strong>en</strong> ge<strong>en</strong> dergelijk algeme<strong>en</strong> aanvaard algoritmisch<br />

model beschikbaar. E<strong>en</strong> van de red<strong>en</strong><strong>en</strong> hiervoor is het feit dat de performantie van parallelle<br />

algoritm<strong>en</strong> afhankelijk is van e<strong>en</strong> complex geheel van factor<strong>en</strong> die machine-afhankelijk zijn.<br />

Deze factor<strong>en</strong> zijn onder meer de mate waarin berek<strong>en</strong>ing<strong>en</strong> kunn<strong>en</strong> geparallelliseerd word<strong>en</strong>, het<br />

toewijz<strong>en</strong> van processor<strong>en</strong> aan deeltak<strong>en</strong>, het plann<strong>en</strong> van tak<strong>en</strong> over verscheid<strong>en</strong>e processor<strong>en</strong>,<br />

aspect<strong>en</strong> van communicatie <strong>en</strong> synchronisatie.<br />

In de praktijk word<strong>en</strong> meerdere verschill<strong>en</strong>de modell<strong>en</strong> voor parallelle computers gebruikt.<br />

We kunn<strong>en</strong> bijvoorbeeld de complexiteit van de gebruikte processor<strong>en</strong> beperk<strong>en</strong>. Wanneer e<strong>en</strong><br />

parallel algoritme op hardware-niveau wordt geïmplem<strong>en</strong>teerd, kan het gebeur<strong>en</strong> dat we niet aan<br />

elke processor de algeme<strong>en</strong>heid van e<strong>en</strong> doorsnee-processor will<strong>en</strong> gev<strong>en</strong>. Bijvoorbeeld, bij het<br />

berek<strong>en</strong><strong>en</strong> van het maximum hebb<strong>en</strong> we <strong>en</strong>kel e<strong>en</strong> kleine gespecialiseerde poort nodig die het<br />

maximum van twee inputs kan berek<strong>en</strong><strong>en</strong>. Deze poort heeft zelfs ge<strong>en</strong> lokaal geheug<strong>en</strong> nodig; ze<br />

moet <strong>en</strong>kel de grootste van de twee inputs verder doorgev<strong>en</strong>. Modell<strong>en</strong> van parallelle computers<br />

die op dit fijne niveau van parallellisme werk<strong>en</strong>, word<strong>en</strong> circuits g<strong>en</strong>oemd, naar analogie met<br />

elektrische circuits.<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

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

Saved successfully!

Ooh no, something went wrong!