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<br />
U ovom dodatku će biti prikazana C verzija MPI standarda verzije 1.1 iz<br />
1995. godine. Većina MPI funkcija vraća celobrojnu vrednost (int), tako da to<br />
nećemo navoditi, osim ako vraćaju vrednost nekog drugog tipa. Zbog<br />
ograničenog prostora detaljnije su opisane samo konstrukcije koje su korišćene<br />
za realizaciju PGANP implementacije, a ostale funkcije su samo navedene.<br />
Detaljan opis svih konstrukcija MPI standarda i nekih saveta za njegovo<br />
uspešno korišćenje pri paralelizaciji se može naći u knjigama [Gro94] i [MPI95].<br />
D.1 Opis MPI standarda<br />
Pri definisanju MPI standarda korišćene su već postojeće konstrukcije raznih<br />
paralelnih programskih sistema koje su se dokazale u praktičnoj primeni. One<br />
su uklopljene u jednu celinu, tako da je postignuta maksimalna izražajnost<br />
paralelnog programiranja, uz očuvanje efikasnosti. Neki od najvažnijih aspekata<br />
MPI standarda su:<br />
• Grupisanje procesa u jednu celinu i pojam komunikatora koji fleksibilno<br />
opisuje grupu procesa i njihov zajednički komunikacioni kontekst;<br />
• Mogućnost zadavanja virtuelne topologije višeprocesorskog računara od<br />
strane korisnika;<br />
• Tipovi podataka koji se koriste za međuprocesorsku komunikaciju mogu biti<br />
sistemski ili ih može definisati sam korisnik;<br />
• Efikasne pojedinačne i kolektivne komunikacije;<br />
• Globalne operacije koje se izvršavaju na većem broju procesa.<br />
D.1.1 Grupe procesa i komunikatori<br />
Grupisanje procesa u jednu celinu je važna karakteristika koja obezbeđuje<br />
efikasno paralelno izvršavanje. Grupe procesa se mogu koristiti na dva osnovna<br />
načina:<br />
• Označavanje procesa koji učestvuju u kolektivnoj komunikaciji;<br />
• Pomoć u podeli poslova na pojedinačne procese, gde procesi u različitim<br />
grupama izvršavaju različite zadatke.<br />
Grupe mogu biti kreirane i brisane u svakom trenutku, a svaki proces može<br />
pripadati istovremeno u više grupa. Članovi grupe se ne mogu menjati u toku<br />
<strong>rad</strong>a programa, već se u tom slučaju mora formirati nova grupa. Ova operacija<br />
može biti izvršena lokalno ili kolektivno podelom neke postojeće grupe.<br />
Ovako definisan pojam grupe nije dovoljan, pa je u takvom kontekstu<br />
moguće da poruka poslata u jednoj fazi programa bude pogrešno primljena u