08.03.2015 Views

Ceo rad - PDF (1.3 MB)

Ceo rad - PDF (1.3 MB)

Ceo rad - PDF (1.3 MB)

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!