Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
170 Paralelizacija GA za rešavanje nekih NP-kompletnih problema<br />
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />
nekoj drugoj fazi. Zbog toga je definisan kontekst komunikacije, koji obezbeđuje<br />
mogućnost različitih vrsta poruka između istih procesa.<br />
Komunikator predstavlja grupu procesa sa definisanim kontekstom<br />
komunikacije, i on je osnovna konstrukcija MPI standarda. Po oblasti dejstva se<br />
komunikatori mogu podeliti na lokalne i globalne. Lokalni komunikator vrši<br />
komunikaciju unutar grupe, dok globalni komunikatori mogu vršiti komunikaciju<br />
između procesa koji pripadaju različitim grupama. Osim oblasti delovanja, ista<br />
su sva ostala svojstva lokalnih i globalnih komunikatora, pa se oni mogu<br />
potpuno ravnopravno primenjivati u svim primenama.<br />
Pojam grupe procesa je eksplicitno definisan, pa su dozvoljene manipulacije<br />
sadržajem i ostalim osobinama postojećih grupa. Nasuprot tome, kontekst<br />
komunikacije nije spolja dostupan, pa se ne mogu vršiti nikakve eksplicitne<br />
operacije nad njim, već samo implicitno preko odgovarajućeg komunikatora.<br />
Zbog toga poruka poslata preko nekog komunikatora, može biti primljena samo<br />
od procesa koji ima komunikator sa odgovarajućim kontekstom.<br />
D.1.2 Virtuelne topologije<br />
Osnovni model paralelizacije MPI standarda podrazumeva mogućnost<br />
komunikacije svakog procesora sa svim ostalim. Međutim ovakav model nije<br />
uvek pogodan, naročito u slučajevima kada je paralelna aplikacija posebno<br />
projektovana za određeni tip arhitekture. U tim slučajevima MPI standard<br />
omogućuje korišćenje virtuelne topologije definisane od strane korisnika.<br />
Virtuelna topologija koja dobro prati fizičke veze između procesora je važan<br />
preduslov za postizanje dobrih performansi cele paralelne aplikacije, naročito u<br />
slučaju velike međuprocesorske komunikacije.<br />
MPI podržava zadavanje virtuelnih topologija na dva načina: grafom veza<br />
između procesa (procesora) ili n-dimenziona mreža u Decartes-ovim<br />
koordinatama. Prvi način je opštiji, i može se definisati proizvoljna topologija, ali<br />
zaheva veliki trud oko opisa veza između procesa. Drugi način je specifičan<br />
samo za date mrežne arhitekture, ali se lako opisuje.<br />
D.<strong>1.3</strong> Tipovi podataka za međuprocesorsku komunikaciju<br />
MPI sistemski podržava međuprocesorsku komunikaciju nad većim brojem<br />
osnovnih tipova podataka. Pošto se svi izvedeni tipovi podataka sastoje od<br />
osnovnih tipova, na taj način se mogu obezbediti sve potrebe za<br />
međuprocesorskom komunikacijom.<br />
Međutim iako je ovaj način funkcionalan, u praksi se pokazao kao relativno<br />
spor. To je posledica korišćenja raznih protokola za prenošenje poruka, koji<br />
obezbeđuju sigurnost i fleksibilnost međuprocesorske komunikacije. Pošto<br />
svaka poruka ima svoje zaglavlje određene fiksne dužine i zahteva neko<br />
konstantno vreme za prijem, mnogo je efikasnije slati manji broj poruka veće<br />
dužine, nego obratno.<br />
Zbog toga je MPI standard predvideo slanje celokupnih nizova osnovnih<br />
tipova podataka u jednoj poruci, umesto slanja član po član. Međutim, ne mogu<br />
se svi složeniji podaci opisati nizom, pa je bilo nužno efikasno realizovati i<br />
njihov prenos. U ovom slučaju nije moguće direktno slanje cele strukture, jer<br />
operativni sistem rezerviše memorijski prostor onako kako mu trenutno najviše<br />
odgovara, pa bi prijemni proces smestio promenljive na pogrešna mesta.<br />
Dodatni problem predstavlja to što podaci u istoj strukturi ne moraju biti