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.

Dodatak D Karakteristike MPI standarda 171<br />

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯<br />

smešteni u neprekidnom memorijskom bloku, već mogu biti raštrkani po<br />

memoriji.<br />

Imajući u vidu prethodne činjenice, MPI standard je predvideo u<br />

međuprocesorskoj komunikaciji i mogućnost korišćenja složenih tipova<br />

podataka definisanih od strane korisnika. Time se mogu na siguran način slati<br />

čitave složene strukture u jednoj poruci, gde će prijemni proces svaku<br />

promenljivu smestiti na pravo mesto, nezavisno od načina alokacije<br />

memorijskog prostora.<br />

I ovakav pristup bi imao neke nedostatke, pošto prijemni proces mora znati<br />

unapred strukturu podataka u poruci koju prima. Na taj način ne bi bilo moguće,<br />

u jednoj poruci, slati nizove promenljive dužine, jer pri prijemu datom procesu<br />

mora biti unapred poznat broj članova niza koga prima. Ova anomalija je<br />

prevaziđena mogućnošću pakovanja u neprekidne uzastopne memorijske<br />

lokacije pre slanja, a po prijemu se vrši postepeno raspakivanje. Pri tome nije<br />

neophodno zadavanje unapred dužine cele poruke, već samo gornje granice te<br />

dužine.<br />

D.1.4 Pojedinačne komunikacije<br />

MPI podržava pojedinačne komunikacije gde je prosleđivanje i selekcija<br />

poruka bazirana na rangovima procesa, tagu poruke i komunikacionom<br />

kontekstu. Pri zadavanju rangova i taga poruke moguće su i opšte vrednosti<br />

(wildcards) koje omogućuju prijem poruke od svih procesa ili sa proizvoljnim<br />

tagom. Komunikacioni kontekst nije moguće zadati kao opštu vrednost, već on<br />

zavisi samo od konkretnog komunikatora. Pri svakoj komunikaciji su procesi za<br />

slanje odnosno prijem poruke jednoznačno određeni grupom procesa i rangom<br />

datog procesa unutar te grupe. Lokalni komunikator vrši komunikaciju unutar<br />

iste grupe, dok globalni komunikator vrši prosleđivanje poruke između procesa<br />

koji pripadaju različitim grupama.<br />

Postoje četiri načina pri pojedinačnim komunikacijama: standardni,<br />

baferisani, po zahtevu prijemnog procesa i sinhroni. Svi ovi načini komunikacije<br />

se mogu podeliti dalje po načinu izvršavanja, gde mogu biti blokirajući ili<br />

neblokirajući. To ukupno daje osam različitih mogućnosti za međuprocesorsku<br />

komunikaciju što može da zadovolji i najzahtevnije potrebe.<br />

Standardni način komunikacije vrši slanje i prijem poruka asinhrono,<br />

odnosno oni se mogu izvršavati nezavisno i u različitim vremenskim<br />

momentima. Na taj način po završetku slanja poruke pošiljalac nastavlja dalje<br />

sa <strong>rad</strong>om, nezavisno od toga kada će poruka biti primljena od strane prijemnog<br />

procesa.<br />

Baferisani mod podrazumeva da se data komunikacija ne odvija direktno,<br />

već preko pomoćnog bafera. I u standardnom modu je moguće korišćenje<br />

baferisanja, ali sistem sam bira način na koji se poruka prosleđuje, kako mu<br />

najviše odgovara u datom momentu. U tom slučaju sistem sam vodi računa o<br />

svemu, pa i o alokaciji memorije potrebne za bafer. Za razliku od toga, u<br />

baferisanom modu, programer mora sam eksplicitno da odvoji memorijski<br />

prostor za bafer.<br />

Ako je poruka poslata u sinhronom modu, slanje poruke počinje tek u<br />

momentu kada su oba procesa (pošiljalac i primalac) spemna za komunikaciju.<br />

Ukoliko je samo jedan od njih spreman, on čeka na spremnost drugog procesa.<br />

Za razliku od prethodnih načina komunikacije, gde pošiljalac započinje<br />

komunikaciju, u komunikaciji po zahtevu, primalac prvi šalje zahtev za prijem

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

Saved successfully!

Ooh no, something went wrong!