Raspodeljena memorija

S Vikipedije, slobodne enciklopedije
Ilustracija sistema raspodeljene memorije tri računara

U informatici, raspodeljena memorija se odnosi na multiprocesorske računarske sisteme, u kojima svaki procesor ima svoju privatnu memoriju. Računarski zadaci mogu da rade samo na lokalnim podacima, a ako su potrebni udaljeni podaci, računski zadatak mora da komunicira sa jednim ili više udaljenih procesora. Nasuprot tome, deljena memorija sa više procesora nudi jedan memoriski prostor koji se koristi od strane svih procesora. Procesori ne moraju da budu svesni gde boravi podatak, osim da mogu postojati kazne za performanse, kao i da trku uslova treba izbegavati.[1]

Arhihektura[uredi | uredi izvor]

U sistemu raspodeljene memorije obično ima procesor, memorija, i neki oblik povezivanja koji omogućava programima na svakom procesoru da komuniciraju jedni sa drugima. Povezivanje se može organizovati sa mrežnom topologijom ili poseban hardver može da obezbedi prebacivanje mreže. Mrežne topologije su ključni faktor u određivanju kako su više-procesorske mašine prilagodljive. Veze između čvorova mogu biti implementirane primenom nekih standardnih mrežnih protokola (na primer Eternet), koristeći negoveštene mrežne veze (koristi se, na primer u engl. Transputer), ili koristeći DPRAM.

Programiranje mašine za raspodeljenu memoriju[uredi | uredi izvor]

Ključno pitanje u programskim sistemima raspodeljene memorije je kako raspodeliti podatke preko memorija. U zavisnosti od rešenja problema, podaci se mogu raspodeliti statički, ili se mogu pomeriti kroz čvorove. Podaci mogu biti premešteni na zahtev, ili podaci mogu da se stave u nove čvorove, unapred.

Kao primer, ako se problem može opisati kao pipeline, gde se X podaci naknadno prerađuju kroz funkcije F, G, H, itd. (rezultat je H(G(F(X)))), onda to može biti izraženo kao problem raspodeljene memorije, gde se podaci prenose na prvi čvor koji obavlja F, koji prolazi rezultat na drugom čvoru, koji računa G, i konačno do trećeg čvora koji računa H. Ovo je takođe poznato kao statičko izračunavanje.

Podaci se mogu statički čuvati u čvorovima, ako se većina proračuna desi lokalno, a samo promene na ivicama moraju da budu prijavljene na drugim čvorovima. Primer za ovo je simulacija u kojoj se podaci modeluju pomoću matrice, a svaki čvor simulira mali deo veće matrice. Na svakoj iteraciji, čvorovi obaveštavaju sve susedne čvorove o novim podacima ivice.

Raspodeljena opšta memorija[uredi | uredi izvor]

Slično tome, u raspodeljenoj opštoj memoriji svaki čvor klastera ima pristup velikoj deljenoj memoriji kao dodatak svakom čvoru ograničene ne-deljene privatne memorije.

Deljena memorija nasuprot raspodeljene memorije nasuprot raspodeljene opšte memorije[uredi | uredi izvor]

Prednost (raspodeljene) deljene memorije je taj što nudi jedinstveni adresni prostor u kojem se mogu naći svi podaci.

Prednost raspodeljene memorije je taj što ona isključuje trku uslova, i taj što primorava programera da razmišlja o raspodeli podataka.

Prednost raspodeljene (opšte) memorije je ta što je lakše da napravimo mašinu koja skalira sa algoritmom

Raspodeljena opšta memorija krije mehanizam komunikacije - ona ne krije kašnjenje komunikacije.

Reference[uredi | uredi izvor]

  1. ^ Patterson, David A.; Hennessy, John L. (2006). Computer Architecture: A Quantitative Approach (4th izd.). Burlington, Massachusetts: Morgan Kaufmann. ISBN 978-01-2370490-0.