Raspodeljeno izračunavanje

Raspodeljeno izračunavanje je polje informatike koje proučava raspodeljene sisteme. Raspodeljeni sistem je softverski sistem u kojem komponente postavljene na povezane računare komuniciraju i koordiniraju svoje akcije slanjem poruka. Komponente interaguju jedna sa drugom kako bi postigle zajednički cilj.[1] Postoji mnogo alternativa ovom sistemu, uključujući konektore poput RPC i redovi poruka. Bitne karakteristike rapodeljenih sistema su: konkurentnost komponenti, nedostatak globalnog takta, i nezavisno crkavanje komponenti. Bitan cilj i izaziov ovih sistema je transparencija lokacije. Primeri raspodeljenih sistema variraju od SOA sistema preko MMOG do P2P aplikacija.

Računarski program koji radi u raspodeljenom sistemu se zove rapodeljeni program, i rapodeljeno programiranje je proces pisanja takvih programa.

Raspodeljeno izračunavanje se takođe odnosi na raspodeljene sisteme koji rešavaju računske probleme. U raspodeljenom izračunavanju, problem se deli na mnogo zadataka, od kojih se svaki rešava korišćenjem jednog ili više računara, koji koji komuniciraju preko poruka.

Uvod uredi

Reč raspodeljeno u terminima poput raspodeljeni sistem, raspodeljeno programiranje i raspodeljeni algoritam su se odnosili na računarske mreže gde su pojedinačni računari bili fizički raspodeljeni u nekoj geografskoj oblasti. Ovi termini se danas koriste u mnogo širem smislu, čak se odnose i na autonomne procese koji rade na istom fizičkom računaru i interaguju jedan sa drugim porukama. Ima više definicija raspodeljenog sistema, pa se sledeća svojstva koriste pri definisanju:

  • Postoje nekoliko autonomnih računarskih entiteta, od kojih svaki ima svoju lokalnu memoriju.
  • Entiteti komuniciraju jedan sa drugim preko slanja poruka.

Na ovoj stranici, računarski entiteti se zovu računari ili čvorovi.

Raspodeljeni sistem može imati zajednički cilj, kao što je rešavanje velikog računskog problema. Alternativno svaki računar može imati sopstvenog korisnika sa posebnim potrebama, i cilj rapodeljenog sistema je da koordiniše korišćenje deljenih resursa i da obezbedi komunikacijske usluge svojim korisnicima.

Ostale osobine raspodeljenih sistema uključuju sledeće:

  • Sistem mora da toleriše kvarove u pojedinačnim računarima.
  • Struktura sistema (topologija mreže, latencija, broj računara) se ne zna unapred, sistem se može sastojati iz različitih vrsta računara i mrežnih veza, i sistem se može promeniti tokom izvršavanja raspodeljenog programa.
  • Svaki računar ima ograničen i nepotpun pogled na sistem. Svaki računar može znati samo jedan deo ulaza.
 
(a)–(b) Raspodeljeni sistem
(c) Paralelni sistem.

Paralelno i raspodeljeno izračunavanje uredi

Raspodeljeni sistemi su grupe povezanih računara, koji imaju isti cilj svog rada. Termini "Konkurentno izračunavanje", "Paralelna obrada" i "raspodeljeno izračunavanje" imaju mnogo preklapanja, i ne postoji jasna distinkcija. Isti sistem se moće okrarakterisati kao paralelni i raspodeljen. Procesori u tipičnom rapodeljenom sistemu rade konkurentno paralelno. Ipak je moguća gruba klasifikacija konkurentih sistema kao paralelnih ili raspoređenih koristeće sledeće kriterijume:

  • U paralelnoj obradi svi procesori mogu imati pristup deljenoj memoriji za razmenu informacija između procesora.
  • U raspodeljenom izračunavanju, svaki procesor ima svoju privatnu memoriju (raspoređenu memoriju). Infomacije se prenose porukama među procesorima.

Slika sa desne strane ilustruje razliku između raspoređenih i paralelnih sistema. Prikaz (a) je šematski prikaz tipičnog distribuiranog sistema. Kao i obično, sistem se prikazuje kao mrežna topologija u kojoj je svaki čvor računar i svaka linija koja povezuje čvorove je veza za komuniciranje. Prikaz (b) prikazuje isti raspoređeni sistem sa više detalja: svaki računar ima svoju lokalnu memoriju, i informacija može biti prenesena samo razmenjujući poruke od jednog do drugog čvora koristeći dostupne veze za komunikaciju. Prikaz (c) pokazuje paralelni sistem u kojem svaki procesor ima direktan pristup deljenoj memoriji.

Sistuacija se dalje komplikuje tradicionalnim korišćenjem termina paralelni i raspodeljeni algoritmi koji se ne slažu sa gornjim definicijama tako nazvanih sistema. Ipak kao pravilo, paralelna obrada visokih performansi u multiprocesoru sa deljenom memorijom koristi paralelne algoritme dok koordinacija velikih raspodeljenih sistema koristi raspodeljene algoritme.

Istorija uredi

Korišćenje konkurentnih procesa koji komuniciraju slanjem poruka ima korene u arhitekturama operativnih sistema izučavanih 60-ih godina. Prvi široko raspoređeni sistemi su bili LAN mreže kao što je Eternet, koji je napravljen 1960—ih godina.

ARPANET je prethodnik Interneta, i stvoren je krajem 1960-ih, i ARPANET elektronska pošta je stvorena krajem 70-ih. Elektronska pošta je postala najuspešnija primena ARPANETA, i verovatno je najraniji primer široko rapsrostranjene aplikacije.

Studija rapsrostranjenog izračunavanja je postala svoje polje u informatici u kasnim 70im i ranim 80im godinama. Prva konferencija u ovom polju, Symposium on Principles of Distributed Computing (PODC) je bila 1982, a evropski ekvivalent International Symposium on Distributed Computing (DISC) je prvi put održan 1985.

Primene uredi

Razlozi za korišćenje raspoređenih sistema i izračunavanja su:

  • Sama priroda aplikacije možda zahteva korišćenje komunikacione mreže koja povezuje više račuanra. Na primer, podaci proizvedeni na jednoj fizičkoj lokaciji i traženi na drugoj.
  • Postoje razni slučajevi u kojima bi korišćenje računara bilo moguće, ali bi raspodeljeno računanje imalo više beneficija. Na primer, može biti efikasnije i jeftinije dobiti nivo performansi od više slabijih računara, umesto jedan veom jak. Raspoređeni sistem može biti pouzdaniji od drugih sistema. Štaviše raspoređeni sistem može biti jednostavniji za širenje i upravljanje od monolitnog jednoprocesorskog sistema.

Primeri uredi

  • Telekomunikacione mreže
    • Telefonske i mobilne mreže
    • Računarske mreže kao što je internet
    • Bežične senzorne mreže
    • Algoritmi rutiranja
  • Mrežne primene
    • Internet i P2P
    • Raspoređene baze podataka i upravljački sistemi
    • Mrežni sistemi podataka
    • Raspodeljeni sistemi procesuiranja podataka
  • Kontrola procesa u realnom vremenu
    • Kontrola avionskih sistema
    • Kontrola industrijskih sistema
  • Paralelna obrada
    • Nauno računarstvo
    • Raspodeljeno renderovanje

Izborni koordinator uredi

Kako bi izvršili koordinaciju, raspoređeni sistemi koriste koncept koordinatora. Problem izbornog koordinatora je da izavere proces iz grupe procesa na različitim procesorima u raspoređenom sistemu da se ponaša kao centralni koordinator. Postoji nekoliko algoritama za izbor koodrinatora.

Siledžijski algoritam uredi

Pri korišćenju ovog algoritma, bilo koji proces šalje poruku trenutnom koordinatoru. Ako nema odgovora u određenom vremenskom razdoblju, proces pokušava da izabere sebe za vođu.

Čeng i Robertsov algoritam uredi

Čeng i Robertsov algoritam je izborni algoritam baziran na prstenu, i koristi se za pronalaženje procesora sa najvećim jedinstvenim identifikacionim brojem.

Arhitekture uredi

Razne hadrverske i softverske arhitekture se koriste raspoređeno izračunavanje. Na nižem nivou, neophodno je povezati više CPJ-a sa nekom vrstom mreže, bez obzira da li je ta mreža na štampanoj ploči ili je povezana kablovima. Na višem nivou, neohodno je povezati procese koji rade na tim CPJ-ama sa nekim komunikacionim sistemom.

Raspoređeno programiranje tipično upada u jedan od nekoliko osnovnih arhitektura ili kategorija: klijent-server, n-rang arhitekture, raspodeljeni objekti, labavo spajanje ili tesno spajanje.

Klijent-server: Pametn klijentov kod kontaktira servere za podatke i onda ih formatira i prikazuje korisniku. Ulaz kod klijenta se vraća do servera gde predstavlja promenu.

  • Arhitektura trećeg ranga: Tri sistema ranga pomeraju podatke o klijentu u srednji rang kako bi klijenti bez statusa mogli biti korišćeni. Ovo olakšava razvoj aplikacije. Većina Veb aplikacija su sa tri ranga.
  • Arhitektura sa n rangova: n-rang se tipično odnosi na veb aplikacije koje dalje prosleđuju svoje aplikacije sa servisima preduzeća. Ovaj tip alikacije je najzaslužniji za uspeh aplikacionih servera.
  • Visoko upareni (klaster): odnose se na klaster mašina koje rade blisko zajedno, i izvršavaju deljeni proces paralelno. Zadatak je podeljen na delove koji su pravljeni pojedinačno i onda sastavljeni da naprave konačni rezultat.
  • P2P: arhitektura gde ne postoji posebna mašina ili mašine koji prižaju uslugu ili upravljaju mrežnim resursima. Umesto toga, sve odgovornosti su jednako raspoređene na sve mašine, koje se zovu vršnjaci. Vršnjaci mogu služiti kao serveri i klijenti.
  • Bazirano na prostoru: odnosi se na infrasturkturu koja pravi iluziju (virtuelizaciju) jednog adresnog prostora. Podaci se transparentno preliciraju po potrebama aplikacije.

Još jedan prost aspekat arhitekture raspoređenog izračunavanja je metod komunikacije i koordinacije posla između konkurentnih procesa. Kroz razne protokole slanja poruka procesi mogu komunicirati direktno jedan sa drugim tipično u gospodar-rob odnosu.

Reference uredi

  1. ^ Coulouris, George; Dollimore, Jean; Kindberg, Tim; Blair, Gordon (2011). Distributed Systems: Concepts and Design (5th izd.). Boston: Addison-Wesley. ISBN 978-0-13-214301-1. 

Litaratura uredi

Knjige
Članci
Veb stranice
Knjige
Artikli
Izveštaji sa konferencije
  • Rodriguez, Carlos; Villagra, Marcos; Baran, Benjamin (2007). „Asynchronous team algorithms for Boolean Satisfiability”. 2007 2nd Bio-Inspired Models of Network, Information and Computing Systems. Bionetics. str. 66—69. S2CID 15185219. doi:10.1109/BIMNICS.2007.4610083. 

Spoljašnje veze uredi