You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
28 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
<strong>1.3</strong>.1 Modeli računara<br />
Postoji više podela računarskih sistema. Jedna od najpoznatijih je Flynn-ova<br />
podela (videti [Fly66] i [Fly72]), pri čemu se računari po arhitekturi dele na:<br />
• SISD (Single Instruction Single Data) u kojima postoji samo jedan procesor<br />
koji prima jedan tok instrukcija i operiše nad jednim tokom podataka. Najveći<br />
broj današnjih računara spada u ovaj model koji je projektovao John von<br />
Neumann sa sa<strong>rad</strong>nicima krajem 40-tih. Algoritmi za ovaj model su<br />
sekvencijalni, jer postoji samo jedan procesor.<br />
• MISD (Multiple Instruction Single Data) gde postoji N procesora, pri čemu<br />
svaki poseduje po jednu kontrolnu jedinicu, ali svi dele isti tok podataka. U<br />
svakom koraku, svi procesori obrađuju istovremeno jedan podatak<br />
prihvaćen iz zajedničke memorije. Svaki procesor obrađuje podatak prema<br />
instrukciji koju prima sa sopstvene upravljačke jedinice. Ovaj model je<br />
pogodan ukoliko nad istim podatkom treba izvršiti više operacija u isto<br />
vreme.<br />
• SIMD (Single Instruction Multiple Data) koji karakteriše N identičnih<br />
procesora. Svaki procesor poseduje sopstvenu lokalnu memoriju. Svi<br />
procesori <strong>rad</strong>e pod kontrolom jedne kontrolne jedinice, ili svaki procesor ima<br />
svoju kopiju istog programa u lokalnoj memoriji. Izvršavanje je sinhrono,<br />
odnosno, svaki procesor u isto vreme izvršava istu instrukciju, i ima svoj tok<br />
podataka.<br />
• MIMD (Multiple Instruction Multiple Data) je najsloženiji model, u kome svaki<br />
procesor poseduje kontrolnu jedinicu, aritmetičko logičku jedinicu i lokalnu<br />
memoriju. Svaki procesor ima svoj tok instrukcija i podataka, tako da<br />
procesori mogu izvršavati različite programe nad različitim podacima, što<br />
znači da tipično <strong>rad</strong>e asinhrono. Iako je najmoćniji model, sa<br />
višeprocesorskim računarima ovog modela je najteže <strong>rad</strong>iti, jer postoje<br />
problemi koji se ne javljaju kod ostalih modela: dodela procesa procesoru,<br />
čekanje procesa na slobodan procesor i razmena podataka između više<br />
procesora (procesa).<br />
Druga podela paralelnih računarskih sistema je po načinu komunikacije<br />
između procesora:<br />
• Višeprocesorski računari sa komunikacijom preko deljene memorije (shared<br />
memory multiprocessors).<br />
• Višeprocesorski računari sa komunikacijom prosleđivanjem poruka<br />
(message passing multiprocessors).<br />
<strong>1.3</strong>.1.1 Komunikacija preko deljene memorije<br />
U ovom modelu je celokupni memorijski prostor zajednički i dostupan za sve<br />
procesore. Ukoliko procesori žele da razmene neke podatke, to se vrši prostim<br />
upisom podatka od strane jednog i čitanja podatka od strane drugog procesora.<br />
Međutim, ovaj paralelni model, iako teorijski moćniji i fleksibilniji, nije u praksi<br />
dao rezultate koji se u teoriji predvidjaju. Razlozi su u težoj implementaciji dela<br />
za paralelno čitanje odnosno upis podataka i u njegovom sporijem izvršavanju,<br />
ukoliko je broj procesora veliki (videti [Akl89]). Programiranje na takvim<br />
sistemima je olakšano, jer operativni sistem sam vodi računa o paralelnom<br />
čitanju i upisu.