Skripta(2 Dio)

142
78 4.4.1. Hazardi uzrokovani zavisnošću po podacima Pristup zajedničkim varijablama za čitanje/pisanje od strane različitih instrukcija koje se nalaze u protočnom sistemu, može dovesti do različitih rezultata ako se instrukcije izvedu različitim redoslijedom. Ovaj tip zavisnosti između instrukcija se naziva zavisnost po podacima. Mijenjanje originalnog redoslijeda instrukcija je dopustivo samo ako to mijenjanje nema uticaja na konačan rezultat izvršenja programa. Ukoliko se instrukcije, između kojih postoji zavisnost po podacima, ne izvode po originalnom redoslijedu, dolazi do logičkih hazarda (sl. 4.9). Sl. 4.9 Mogući hazardi uslijed zavisnosti po podacima Posmatrajmo dvije instrukcije I i J, pri čemu J logički slijedi instrukciju I, a između njih postoji neka od zavisnosti sa sl. 4.9. Ukoliko dođe do promjene originalnog redoslijeda instrukcija, dolazi do nekorektnog čitanja ili upisa, odnosno dolazi do hazarda. Hazardi treba da budu onemogućeni tako da se spriječi izvođenje instrukcije J prije instrukcije I. Ako se sa D(I) označi domen instrukcije I (skup varijabli koje instrukcija I čita/ koristi kao operande), a sa R(I) označi opseg/skup varijabli u koje instrukcija I upisuje vrijednosti, onda između instrukcija I i J postoji zavisnost po podacima ako je: R(I) D(J) 0 ( RAW zavisnost po podacima) R(I) R(J) 0 ( WAW zavisnost po podacima) D(I) R(J) 0 ( WAR zavisnost po podacima)

Transcript of Skripta(2 Dio)

Page 1: Skripta(2 Dio)

78

4.4.1. Hazardi uzrokovani zavisnošću po podacima

Pristup zajedničkim varijablama za čitanje/pisanje od strane različitih instrukcija koje se

nalaze u protočnom sistemu, može dovesti do različitih rezultata ako se instrukcije izvedu

različitim redoslijedom. Ovaj tip zavisnosti između instrukcija se naziva zavisnost po podacima.

Mijenjanje originalnog redoslijeda instrukcija je dopustivo samo ako to mijenjanje nema uticaja

na konačan rezultat izvršenja programa.

Ukoliko se instrukcije, između kojih postoji zavisnost po podacima, ne izvode po

originalnom redoslijedu, dolazi do logičkih hazarda (sl. 4.9).

Sl. 4.9 Mogući hazardi uslijed zavisnosti po podacima

Posmatrajmo dvije instrukcije I i J, pri čemu J logički slijedi instrukciju I, a između njih

postoji neka od zavisnosti sa sl. 4.9. Ukoliko dođe do promjene originalnog redoslijeda

instrukcija, dolazi do nekorektnog čitanja ili upisa, odnosno dolazi do hazarda.

Hazardi treba da budu onemogućeni tako da se spriječi izvođenje instrukcije J prije

instrukcije I. Ako se sa D(I) označi domen instrukcije I (skup varijabli koje instrukcija I čita/

koristi kao operande), a sa R(I) označi opseg/skup varijabli u koje instrukcija I upisuje

vrijednosti, onda između instrukcija I i J postoji zavisnost po podacima ako je:

R(I) ∩ D(J) ≠ 0 ( RAW zavisnost po podacima)

R(I) ∩ R(J) ≠ 0 ( WAW zavisnost po podacima)

D(I) ∩ R(J) ≠ 0 ( WAR zavisnost po podacima)

Page 2: Skripta(2 Dio)

79

Ipak, mogućnost preuređenja redoslijeda izvršenja instrukcija je poželjna, jer se time može

postići veće iskorištenje protočnog sistema i povećati brzina obrade. Pri tome, međusobne relacije

u redoslijedu izvođenja između instrukcija između kojih postoji zavisnost po podacima treba da

budu sačuvane.

Primjer efekta preuređenja instrukcija dat je na sl. 4.10 za 7-stepeni protočni sistem. U fetch

stepenu (F), vrši se pribavljanje instrukcije iz memorije za jedan ciklus. U stepenu dekodiranja

(D), dekodira se funkcija koju treba realizovati, i identifikuju potrebni resursi (registri, magistrale,

funkcionalne jedinice). Stepen I vrši rezervisanje resursa onemogućavanjem pristupa resursima za

izvođenje drugih instrukcija. U ovoj fazi se takođe vrši očitavanje operanada iz registara i

dovođenje operanada na ulaz funkcionalnih jedinica. Instrukcije se izvode u jednom ili više

izvršnih (E)stepeni. U W stepenu se vrši upis rezultata u odredište.

Sl. 4.10 Protočno izvođenje instrukcija X = Y + Z, i A = B * C u originalnom i preuređenom

redoslijedu

Page 3: Skripta(2 Dio)

80

U primjeru je ilustrovano izvođenje instrukcija visokog nivoa X = Y + Z, i A = B * C u

protočnom sistemu. Na slici 4.10 b) je predstavljeno izvođenje po originalnom redoslijedu

instrukcija. Osjenčeni kvadratići reprezentuju cikluse kada je iniciranje instrukcija blokirano ili

zbog konflikta u pristupu resursima, ili zbog zavisnosti po podacima. Iniciranje izvršenja prve

dvije Load instrukcije je u sukcesivnim ciklusima. Add instrukcija čeka na iniciranje 3 ciklusa,

dok oba operanda ne postanu raspoloživa. Sličan je slučaj i sa smještanjem rezultata sabiranja u

memoriju. S obzirom da ova instrukcija mora da čeka, s jedne strane raspoloživost D stepena (3

ciklusa) a zatim i raspoloživost rezultata (2 ciklusa), smještanje rezultata operacije sabiranja u

memoriju ima ukupno 5 ciklusa kašnjenja. Slična razmatranja su i za izvođenje operacije

množenja.

Na sl. 4.10 c), prikazano je izvođenje istih operacija sa preuređenim redoslijedom. Ideja je da

se sve 4 load operacije izvedu na početku, a operacije add i multiply kasnije, čime se obezbjeđuje

bolja raspoloživost podataka za ove instrukcije i smanjenje broja ciklusa čekanja za izvršenje

ovih instrukcija.

Raspoređivanje instrukcija za izvođenje

Planiranje redoslijeda izvršenja instrukcija je moguće u fazi prevođenja (statičko

raspoređivanje) i u toku samog izvršenja (dinamičko raspoređivanje).

Statičko raspoređivanje obavlja prevodilac, na osnovu analize programa i utvrđivanja

zavisnosti po podacima između instrukcija. Prevodilac nastoji povećati rastojanje između

iniciranja izvršenja instrukcija kod kojih postoji zavisnost po podacima. Na taj način se

obezbjeđuje raspoloživost operanada za pristup od strane instrukcije čije izvršenje zavisi od

izvršenja neke prethodne instrukcije, kao što je to ilustrovano prethodnim primjerom. Ova tehnika

je jednostavnija za implementaciju, ali se u procesorima visokih performansi primjenjuje

dinamičko raspoređivanje instrukcija za izvršenje, za što je potrebna odgovarajuća hardverska

podrška.

Dinamičko raspoređivanje je prvi put implementirano u sistemu IBM 360/91 sa višestrukim

funkcionalnim jedinicama za operacije u pokretnom zarezu. Koncept hardverske platforme je

predstavljen na sl. 4.11.

Page 4: Skripta(2 Dio)

81

Sl. 4.11 Protočni procesor sa višestrukim funkcionalnim jedinicama i distribuiranim

stanicama za rezervaciju na bazi markiranja. (sl.6.12)

Šema (Tomasulov algoritam) razrješava konflikte u korištenju hardverskih resursa i

obezbjeđuje redoslijed izvršenja određen zavisnošću po podacima na bazi markacije registara

(register tagging) . Ukoliko pri iniciranju izvršenja instrukcija potrebni operandi nisu raspoloživi,

onda se instrukcija prosljeđuje u rezervacionu stanicu (RS) sa odgovarajućim markiranjem

potrebnih registara/operanada. Instrukcija čeka u RS dok se prethodno ne izvedu sve potrebne

instrukcije u cilju očuvanja zavisnosti po podacima i dok potrebni operandi ne postanu

raspoloživi. Kada se ti uslovi ispune (signaliziranjem odgovarajućom markacijom od strane tag

jedinice), instrukcija se iz RS prosljeđuje funkcionalnoj jedinici za izvršenje. Na sl. 4.12.

prikazano je izvršavanje instrukcija X = Y + Z, i A = B * C sa minimalnim brojem (3) registara,

koristeći Tomasulov algoritam. Kada se pojavi rezultat neke operacije na magistrali sa odnosnom

markacijom, onda i odredišni registar i RS koja očekuje odnosni podatak, ažuriraju svoj sadržaj.

Ako time neka instrukcija/operacija postaje raspoloživa za izvršenje, onda se ona prosljeđuje

funkcionalnoj jedinici sa potrebnim operandima.

Page 5: Skripta(2 Dio)

82

Sl. 4.12 Dinamičko raspoređivanje instrukcija Tomasulovim algoritmom.

Sl. 4.13 Dinamičko raspoređivanje instrukcija za izvršenje u CDC 6600 računaru.

Slično rješenje primijenjeno takođe davno, u računaru CDC 6600 (sl. 4.13). Instrukcije koje

dolaze u protočni sistem se iniciraju za izvršenje i prosljeđuje odgovarajućoj izvršnoj jedinici bez

Page 6: Skripta(2 Dio)

83

obzira na raspoloživost operanada. U izvršnim jedinicama, instrukcije sa svojim kontrolnim

informacijama čekaju u baferu na potrebne podatke, koje produkuju druge instrukcije. Za

kontrolu raspoloživosti podataka, omogućenje instrukcija i upravljanje funkcionalnim jedinicama

koristi se centralizovani kontroler (scoreboard).

4.4.2. Strukturni hazardi

Ovaj tip hazarda se javlja kada dolazi do konflikta u korištenju hardverskih resursa procesora.

Npr. ako posmatramo idealan slučaj rada skalarnog RISC procesora koji izvodi jednu instrukciju

u svakom ciklusu, onda je memorijski port stalno zauzet. Ukoliko se izvodi instrukcija

Load/Store onda će se zahtijevati (dodatno) obraćanje memoriji za pribavljanje/smještanje

operanda, što generiše konflikt u pristupu memoriji Sl. 4.14).

Sl. 4.14 Zastoji kod protočne obrade zbog strukturnih hazarda.

S obzirom na to da je procenat Load/Store instrukcija u ukupnom broju instrukcija koje se

izvršaaju visok, ovi konflikti mogu značajno da degradiraju performanse sistema. Da bi se riješio

ovaj problem RISC procesori često koriste dual-port memorije, tako da se instrukcijama i

podacima može pristupati nezavisno.

Sličan problem nastaje kada više instrukcija zahtijeva korištenje iste funkcionalne jedinice

istovremeno. U cilju eliminisanja ovakvih konflikata, kako je to prezentovano i u prethodnim

primjerima, realizuju se procesori sa višestrukim funkcionalnim jedinicama.

Page 7: Skripta(2 Dio)

84

4.4.3. Upravljački hazardi

Zastoj u protočnom sistemu može biti uzrokovan i promjenom instrukcionog toka

(uzrokovanom izvođenjem instrukcijama grananja i drugih instrukcija koje mijenjaju kontrolni

tok). Pri promjeni instrukcionog toka potrebno je izračunati ciljnu adresu grananja i eventualno

uslove na osnovu kojih se odlučuje o grananju (kod instrukcija uslovnog grananja). Ciljna adresa

nije uvijek unaprijed poznata: ona se često mora izračunati/dobiti u toku izvršenja instrukcije.

Izvršavanje instrukcija grananja posjeduje određene specifičnosti koje mogu uticati na pojavu

zastoja u protočnom sistemu a to su:

• Instrukcija koja se izvodi nakon instrukcije grananja zavisi od rezultata izvršenja same instrukcije grananja,

• Operand na osnovu kojeg se procjenjuje uslov grananja može zavisiti od neke ranije instrukcije,

• Ako se grananje obavlja, pribavljanje i izvršenje naredne instrukcije ne može početi sve dok se ne sračuna BTA (branch transfer addresss),

• Sračunavanje BTA može zavisiti od neke ranije instrukcije.

Zbog navedenog, kao i zbog činjenice da je procenat izvođenja instrukcija grananja visok,

posebna pažnja se posvećuje smanjenju negativnih efekata pri izvođenju ovih instrukcija.

Efekat izvršavanje instrukcije grananja na performanse protočnog sistema je ilustrovana

slikama 4.15 i 4.16. Pretpostavimo da se izvodi niz instrukcija:

Ii

Ii+1

Ii+2 (grananje na instrukciju Ij)

Ii+3

.

.

Ij

Ij+1

.

.

Sl. 4.15 Izvršavanje instrukcije grananja u nizu instrukcija

Page 8: Skripta(2 Dio)

85

S. 4.16 Izvršenje toka instrukcija u protočnom sistemu za slučaj grananja

Nakon kompletiranja instrukcije I2, izvršenje instrukcija I+3 … I+6 koje su započete se prekida

u protočnom sistemu (protočni sistem se prazni). Na taj način u ciklusima 9-12 ne dolazi do

kompletiranja instrukcija, pa su to izgubljeni ciklusi / cijena izvršenja instrukcije grananja.

U cilju analize efekata grananja, definišimo slijedeće pojmove:

• Ostvarenje grananja (branch taken), akcija pribavljanja ne-sekvencijalne/ udaljene instrukcije nakon izvođenja branch instrukcije,

• Meta grananja (branch target) je instrukcija koja se izvodi u slučaju ostvarenja grananja,

• Slotovi kašnjenja (delay slots), broj neiskorištenih ciklusa b u k-stepenom protočnom sistemu, između instrukcije u kojoj je došlo do ostvarenja grananja i mete grananja ( 0 ≤ b k-1 ). ≤

Za ilustraciju, posmatrajmo sl. 4.17, gdje ostvarenje grananja u toku izvršenja instrukcije Ib

uzrokuje pražnjenje svih instrukcija Ib+1 … Ib+k-1 iz protočnog sistema. Neka je p vjerovatnoća

instrukcije uslovnog grananja u programu, q vjerovatnoća da će se grananje ostvariti (tipične

vrijednosti su p = 20%, q = 60%). Cijena grananja je pqnbτ , jer je očekivani broj grananja pqn

a cijena jednog grananja bτ. Ukupno vrijeme izvođenja n instrukcija je:

Teff = kτ + (n – 1) τ + pqnbτ (4.2)

Page 9: Skripta(2 Dio)

86

( član kτ + (n – 1) τ je vrijeme izvođenja n instrukcija bez gubitaka ciklusa u protočnom

sistemu). Efektivna propusnost protočnog sistema Heff se definiše kao broj instrukcija koje se

kompletiraju u jedinici vremena:

pqnbnk

nfTnHett

eff+−+

==1

(4.3)

Kada n → , onda je najniža granična vrijednost za Η∞ eff (b = k – 1)

1)1(

*

+−=

kpqfHeff (4.4)

Kada je p = q = 0 (nema grananja), onda se dobija da je maksimalna propusnost protočnog sistema f = 1/τ.

Degradacija performansi protočnog sistema zbog efekta grananja je

1)1(

)1(1)1(

11*

+−−

=+−

−=−

=kpq

kpqkpqf

HfD eff (4.5)

Sl. 4.17 Grananje u protočnom sistemu sa b = k – 1 slotova kašnjenja.

Page 10: Skripta(2 Dio)

87

U cilju smanjenja cijene grananja koriste se različite tehnike:

A. Zakašnjeno grananje (delayed branch),

B. Predviđanje grananja,

C. Druge tehnike smanjenja cijene grananja.

A. Zakašnjeno grananje

Prilikom izvršenja instrukcije grananja, utvrđivanje da li će se grananje izvesti ili ne može se

realizovati u različitim stepenima protočnog sistema, zavisno od njegove implementacije. Zavisno

od toga u kom stepenu se donosi odluka o grananju, ciljna instrukcija se pribavlja sa određenim

brojem ciklusa zakašnjenja. Ako je to kašnjenje d ciklusa, onda se u protočnom sistemu nalazi d-

1 instrukcija između instrukcije grananja i mete - instrukcije na koju se grananje vrši (sl. 4.18).

Sl. 4.18 Koncept zakašnjenog grananja premještanjem nezavisnih ili NOP instrukcija u slot kašnjenja za 4-stepeni protočni sistem.

Page 11: Skripta(2 Dio)

88

Umjesto da se u slučaju grananja prazne sve instrukcije u protočnom sistemu između

instrukcije grananja i mete ( pri čemu dolazi do gubitka b = d - 1 ciklusa ), kod ove tehnike se

nastavlja sa izvršenjem jednog broja ( b ) instrukcija iza instrukcije grananja bez obzira na to da li

je grananje izvršeno ili ne. Ono što je potrebno obezbijediti je da su to korisne instrukcije, čije je

izvođenje iza instrukcije grananja valjano i za slučaj grananja i za slučaj kada nema grananja, ili

da su to instrukcije popune tipa NOP ( No OPeration). Po statističkim analizama, vjerovatnoća

mogućnosti premještanja jedne korisne instrukcije u slot kašnjenja je ~0.6, premještanja dvije

korisne instrukcije u slot kašnjenja je ~0.2, a tri korisne instrukcije je manja od 0.1.

Instrukcije koje se umeću u slot kašnjenja mogu biti (sl. 4.19):

• Instrukcije ispred instrukcije grananja,

• Instrukcije sa puta gdje se grananje obavlja,

• Instrukcije sa puta gdje se grananje ne obavlja.

Sl. 4.19 Različite varijante umetanja instrukcija u slot od jednog ciklusa zakašnjenja.

Prilikom umetanja instrukcija potrebno je sačuvati originalne relacije zavisnosti po

podacima između instrukcija i obezbijediti da modifikovani program produkuje isti rezultat kao

originalni program.

Primijetimo da umetanje instrukcije koja se nalazi ispred instrukcije grananja u slot kašnjenja

uvijek rezultuje izvršavanjem korisne instrukcije, i za slučaj grananja smanjuje kašnjenje u slotu

Page 12: Skripta(2 Dio)

89

(sl. 4.19a). Ubacivanje instrukcije sa puta grananja u slot kašnjenja je korisno samo u slučaju

grananja (sl. 4.19b), a instrukcije sa puta gdje se grananje ne obavlja ako nema grananja (sl.

4.19c). Primijetimo da je za slučaj b) originalna meta (ciljna instrukcija) grananja pomjerena u

slot kašnjenja i uvijek će se izvesti, a da je nova meta grananja slijedeća instrukcija iza originalne

mete (instrukcija na adresi L+1). Ako dođe do grananja izvešće se sekvenca:

Br > , L+1

R6 := R7 + R8 ; Jer se izvršavaju instrukcije u slotu kašnjenja

L+1: ---------------- ; Nova meta grananja,

a ako ne dođe do grananja izvela bi se sekvenca:

Br > , L+1

R6 := R7 + R8 ; Jer se izvršavaju instrukcije u slotu kašnjenja

R6 := R8 + R9 ; Instrukcija iz originalne sekvence, za slučaj da nema

grananja.

Primijetimo da će se, za slučaj kada nema grananja, u slotu kašnjenja izvesti instrukcija R6 :=

R7 + R8 koja u originalnoj sekvenci ne bi trebala da se izvede. Međutim. S obzirom na to da će

se nakon toga izvesti instrukcija R6 := R8 + R9 koja takođe modifikuje registar R6 i time

poništava efekat umetnute instrukcije R6 := R7 + R8. Dakle, umetnuta instrukcija u slučaju

grananja eliminisaće kašnjenje u slotu, a za slučaj da nema grananja izvođenje umetnute

insturkcije neće imati efekta. Slična razmatranja su i za slčučaj 4.19c).

Preuređenje programske sekvence u cilju popune slota kašnjenja je najčešće zadatak

programskog prevodioca. Međutim, problem sa prethodnom tehnikom gdje se insturkcije iz slota

kašnjenja uvijek izvode proizilaze iz teškoće da se slot popuni korisnim instrukcijama.

Alternativno rješenje je da se protočni sistem prazni ili ne u zavisnosti od toga da li se grananje

realizuje ili ne. Suštinski, postoje tri mogućnosti:

1. Instrukcije u slotu kašnjenja se uvijek izvode,

2. Protočni sistem se prazni (poništavaju se instrukcije u slotu kašnjenja), ako se grananje ne obavlja,

3. Protočni sistem se prazni (poništavaju se instrukcije u slotu kašnjenja), ako se grananje obavlja.

Page 13: Skripta(2 Dio)

90

Navedene varijante se mogu specifikovati od strane kompajlera kodiranjem u dvobitno polje

instrukcije (kod procesora koji dopuštaju takvu mogućnost). Ako prevodilac ne može

implementirati efikasno varijantu 1., i ako zaključuje da će se najčešće za neku instrukciju

grananja grananje i ostvariti, onda prevodilac popunjava slot kašnjenja instrukcijama sa puta

grananja, a u dvobitno polje instrukcije kodira varijantu 2. Primijetimo da ova varijanta povećava

obim/dužinu programa zbog kopiranja instrukcija sa puta grananja u slot kašnjenja.

B. Predviđanje grananja

Predviđanje da li će se grananje desiti ili ne, može se izvršiti statički – u fazi prevođenja (na

bazi karakteristika – koda instrukcije grananja), ili dinamički, na bazi istorije grananja

registrovane za vrijeme izvođenja programa.

Statistički podaci govore, da se kod instrukcija uslovnog grananja grananje češće događa ( >

50% u odnosu na ukupan broj izvršenja instrukcije) odnosno da se povoljniji rezultati dobijaju

ako se predviđa izvršenje grananja. Eksploatacija slotova kašnjenja za slučaj ispravnog

predviđanja grananja je opisana prethodno. Statičkim predviđanjem se može postići tačnost

predviđanja koja je veća od 75%.

Kod Dinamičke strategije grananja, predviđanje da li će doći do grananja ili ne pri izvođenju

neke instrukcije grananja se bazira na prethodnoj istoriji grananja odnosne instrukcije. Primjer

dinamičkog predviđanja grananja na bazi (ograničene) prethodne istorije grananja je

predstavljeno slikom 4.20. Za implementaciju dinamičkog grananja koristi se bafer ciljnog

grananja BTB (Branch target buffer)

Dinamičkim predviđanjem grananja sa jednim bitom istorije, može se postići tačnost

predviđanja između 86% i 96%,

C. Druge tehnike smanjenja cijene grananja

U cilju eliminisanja negativnih efekata grananja primjenjuju se i druge tehnike. Jedna od

mogućnosti je da procesor pribavlja istovremeno instrukcije sa oba puta: i sa puta grananja i sa

puta kada se grananje ne izvršava. Kada se utvrdi koji je put nekorektan, onda se efekti

Page 14: Skripta(2 Dio)

91

pribavljanja i izvršenja instrukcija sa tog puta poništavaju. Problem kod ovog rješenja je što kada

postoje 2 nerazriješena grananja, procesor treba da pribavlja instrukcije sa četiri puta.

Sl. 4.20 Bafer istorije grananja i dijagram stanja grananja za dinamičku predikciju grananja.

Tehnika višestrukih nezavisnih nizova instrukcija koristi nezavisne instrukcione tokove

(programski tok druge programske niti - thread, npr.) za popunjavanje slotova kašnjenja. S

obzirom da ne postoji zavisnost po podacima nezavisnih programskih niti, ove instrukcije se

mogu umetati u slotove kašnjenja, pri čemu je to izvršavanje uvijek korisno, te nema

neiskorištenih ciklusa u protočnom sistemu.

Page 15: Skripta(2 Dio)

92

4.5 Superskalarne i VLWI arhitekture

Arhitektura CISC i RISC skalarnih procesora može se dalje poboljšati implementacijom

koncepata superskalarnog ili vektorskog procesiranja. Dok skalarni procesori izvode jednu

instrukciju po ciklusu, kod superskalarnih procesora se koristi više funkcionalnih protočnih

sistema, čime se omogućava da se u jednom ciklusu inicira i kompletira izvršavanje više

instrukcija. Vektorski procesori izvršavaju vektorske instrukcije na nizovima podataka što je

pogodno za protočnu obradu (izvršenje skupa operacija kojima se implementira vektorska

instrukcija se ponavlja nad nizom podataka). O vektorskim procesorima biće riječi više u dijelu o

SIMD računarima.

Superskalarni procesori

Ovi procesori su projektovani sa ciljem eksploatacije paralelizma na instrukcionom nivou:

instrukcije između kojih ne postoji zavisnost po podacima se mogu izvoditi paralelno. Međutim,

statistički pokazatelji ukazuju da se prosječno mogu izvoditi svega dvije instrukcije paralelno u

prosječnom programu, bez specifičnih softverskih adaptacija programa (razmotavanje petlji,

npr.). Ovo limitira broj iniciranja izvršenja instrukcija po ciklusu na 2-5. Superskalarni procesor

stepena m može inicirati izvršenje m instrukcija po ciklusu.

Tok izvršenja instrukcija u superskalarnom protočnom sistemu sa iniciranjem 3 instrukcije po

ciklusu, ilustrovan je na sl. 4.21.

Sl. 4.21. Tok izvršenja instrukcija u 3-stepenom superskalarnom sistemu.

Page 16: Skripta(2 Dio)

93

Superskalarni procesor stepena m bi radio sa maksimalnim performansama ukoliko bi

kontinualno izvodio m instrukcija istovremeno. U praksi, zbog prethodno navedene zavisnosti

između instrukcija, u pojedinim ciklusima je broj instrukcija koje se iniciraju za izvršenje

(odnosno čije se izvršenje kompletira) manji od m. U tim ciklusima, neki segmenti nekih

protočnih sistema se mogu nalaziti u stanju zastoja. Tipična superskalarna arhitektura RISC

procesora predstavljena je na sl. 4.22. Instrukcioni keš omogućava pribavljanje i iniciranje

izvršenja više instrukcija u jednom ciklusu. Cjelobrojna jedinica i jedinica u pokretnom zarezu

sadrže više funkcionalnih jedinica, koje teoretski mogu istovremeno da vrše procesiranje. U cilju

podrške za efikasno i istovremeno izvođenje više instrukcija u različitim protočnim stepenima

implementiraju se stanice za rezervaciju i baferi preuređenja.

Primjer superskalarnih procesora su Intel i960, IBM RS/6000 i DEC 21064.

Sl. 4.22. Tipična arhitektura RISC superskalarnog procesora.

Page 17: Skripta(2 Dio)

94

Intel i960 je 32-bitni, RISC bazirani superskalarni procesor (sl. 4.23) je namijenjen za

računarske sisteme koji se 'ugrađuju' u procese (embedded computer systems). Na procesorskom

čipu su ugrađeni vremenski brojači, programibilni kontroler prekida i brzi RAM veličine 2Kb,

kontroler pristupa memoriji te instrukcioni keš i keš za podatke. Koncept 'zaključavanja' resursa

na bazi tabela (scoreboarding) obezbjeđuje logički integritet sekvencijalnog redoslijeda izvršenja

instrukcija koje se izvode paralelno. Procesor omogućuje izvođenje 2 instrukcije po osnovnom

taktu (max 40MHz, interni procesorski takt do 80MHz ) kontinualno, odnosno 3 instrukcije po

osnovnom taktu maksimalno, sa maksimalnim performansama od 150 miliona instrukcija/sec.

Ugrađeni mehanizam za predviđanje grananja smanjuje negativne efekte upravljačkih hazarda na

minimum. Registarski keš (dubine 15 stanja) omogućuje čuvanje stanja registara pri pozivu

procedura i restauraciju tog stanja nakon povratka iz pozvane procedure.

Sl. 4.23 Intel i960 procesor.

IBM je lansirao 1990 god. superskalarni procesor RISC System 6000 (Sl. 4.24), baziran na

arhitekturi PowerPC procesora. Aktuelna implementacija ovog superskalarnog procesora (pod

internim nazivom NorthStar, procesor se koristi u IBM AS/400 i RS/6000 sistemima) je stepena

4, sa 5 protočnih stepena u protočnom sistemu (sl.4.25), 64kb kešom za instrukcije i podatke na

čipu. Procesor ima 5 funkcionalnih jedinica:

• Procesor grananja (branch processor),

• 2 jedinice za cjelobrojna računanja (FXU),

• Jedinicu za računanja u pokretnom zarezu (FPU).

• Load/Store jedinicu

Page 18: Skripta(2 Dio)

95

Sl. 4.24 Organizacija IBM NorthStar procesora.

Raspoređivač instrukcija raspoređuje za izvršenje instrukcije na procesor grananja, te na

FXU/FPU instrukcije za cjelobrojne operacije/operacije u pokretnom zarezu. Procesor grananja

izvodi instrukcije grananja i operacije vezane za instrukcije uslovnog koda. Upravljačka jedinica

NorthStar procesora je sa direktnim (hardwired) upravljanjem. Interne magistrale su 32/64/128

bita. Trenutna radna frekvencija je 262 MHz, dok je u planu podizanje radne frekvencije na

675Mhz. Problem upravljačkih hazarda usljed instrukcija grananja je rješavan kombinacijom više

tehnika (prekoredna identifikacija grananja i rana priprema adrese grananja, pribavljanje

instrukcija sa oba puta grananja, primjena tehnike zakašnjelog grananja, sa poništavanjem

Page 19: Skripta(2 Dio)

96

izvedenih instrukcija za slučaj grananja), što je omogućilo smanjenje cijene grananja za slučaj

nekorektnog predviđanja na maksimalno 1 ciklus.

Sl. 4.25 Organizacija protočnog sistema NorthStar procesora

Za vrijeme fetch faze, pribavljaju se sekvencijalne instrukcije (iz L1 keš memorije) u bafer

sekvencijalnih instrukcija, dok se instrukcije grananja pribavljaju u bafer grananja. 'Gledanjem

unaprijed' u baferu raspoređivanja (dispetch buffer) (do 6 instrukcija), obezbjeđuje se ranije

sračunavanje ciljne adrese grananja i pribavljanje instrukcija na putu grananja u bafer grananja.

Pribavljanje instrukcija je u blokovima od 32 bajta.

U fazi raspoređivanja (dispatch) vrši se dekodiranje i raspoređivanje do 4 instrukcije (iz

bafera sekvencijalnih instrukcija ili bafera grananja) u svakom ciklusu. Operandi instrukcija se

čitaju iz registara, bafera kompletiranja operacija ili magistrala. U ovoj fazi se takođe generiše

ciljna adresa grananja.

U fazi izvršenja (execute) izvršavaju se aritmetičke, pomjeračke operacije te generiše adresa

za keš podataka. Svi rezultati su raspoloživi svim drugim izvršnim jedinicama u slijedećem

ciklusu. Ukoliko neki od operanada potrebnih za operaciju u nekom protočnom stepenu nije

raspoloživ, onda se rad protočnog stepena zaustavlja.

U fazi potvrđivanja operacija (commit) vrši se potvrđivanje rezultata ili njihovo odbacivanje

(u slučaju izvršenja instrukcija u nekorektnom putu kod instrukcija grananja, u slučaju prekida ili

straničnih grešaka – page faults). Podaci koji se pribavljaju u kešu podataka, mogu se direktno

proslijediti u izvršnu jedinicu.

U fazi upisa rezultata (writeback) rezultati se upisuju u registre nakon što su svi konflikti

razriješeni i rezultati potvrđeni u prethodnom stepenu.

Page 20: Skripta(2 Dio)

97

Procesori sa velikom dužinom riječi (VLIW – very large instruction word)

VLIW arhitekture su proistekle iz dva dobro profilisana i istražena koncepta: horizontalnog

mikrokodiranja i superskalarnog procesiranja. Tipični procesori ovog tipa imaju instrukcije

dužine nekoliko stotina bita, gdje različita instrukciona polja specifikuju operacije koje traba

istovremeno izvršiti u višestrukim funkcionalnim jedinicama procesora (Sl. 4.26).

Sl. 4.26 Arhitektura VLIW procesora i tok obrade u protočnim stepenima

Zadatak pakovanja operacija u VLIW instrukciju realizuje programski prevodilac. Iako je cilj,

kao i kod superskalarnih procesora, da se više operacija izvodi istovremeno u više funkcionalnih

jedinica, bitne razlike su u slijedećem:

Page 21: Skripta(2 Dio)

98

• Planiranje izvršenja instrukcija se vrši u fazi prevođenja,

• VLIW procesor ne može ostvariti vertikalnu programsku kompatibilnost sa procesorima koji koriste konvencionalni kratki format instrukcija,

• S obzirom na to da instrukcija sadrži i plan izvršenja operacija, dekodiranje instrukcija je jednostavnije,

• S obzirom da nije uvijek moguće specifikovati maksimalan broj operacija za istovremeno izvođenje (zbog hazardnih okolnosti), 'gustina' koda kod superskalarnih mašina je veća nego kod VLIW procesora,

Iako su prednosti ove arhitekture jednostavnost strukture hardvera i instrukcionog skupa,

potencijalno manji CPI parametar nego kod superskalarnih procesora (Multiflow trace računar

dozvoljava izvođenje do 7 operacija istovremeno, sa 256 bita po VLIW instrukciji) i dobre

performanse kod aplikacija sa predvidljivim programskim ponašanjem (naučne aplikacije npr.),

nedostaci su ozbiljni: znatno niže performanse u aplikacijama opšte namjene, i nemogućnost

kompatibilnosti sa kodom konvencionalnih računara, što je ovaj koncept ipak izmjestilo sa

glavnog toka aktuelnosti u oblasti računarskih arhitektura.

4.6 Intelova arhitektura IA-64

Smatra se da ova arhitektura predstavlja najznačajniji napredak u oblasti mikroprocesorskih

arhitektura od uvođenja 32-birnog mikroprocesora Intel 386 1985. god. Nakon 5 godina

zajedničkog istraživanja, god. 1999. Intel i Hewlett Packard su objavili detalje nove arhitekture

IA-64 ISA (Instruction Set Architecture) sa ciljem da razvojni inžinjeri širom svijeta ubrzaju

razvoj nove generacije aplikacija za platforme koje će biti bazirane na IA-64 procesorima. Prvi

model ove arhitekture nazvan je Merced i planiran je za realizaciju 2000. godine.

Cilj razvojnih napora Intela i HP-a je bio da se razvije arhitektura sa 64-bitnim instrukcionim

skupom za radne stanice visokih performansi, serverske stanice i računarske sisteme preduzeća. U

ovom domenu postoji niz aktuelnih aplikativnih oblasti koje zahtijevaju izuzetne performanse, sa

tendencijom stalnog povećanja zahtijeva za procesne mogućnosti računara: internet aplikacije,

elektronska trgovina, data warehousing, video konferencijski sistemi, procesiranje govora itd.

Ovaj osnovni cilj se želio ostvariti tako da se prevaziđu limiti u mogućnostima tradicionalnih

arhitektura, s jedne strane, ali i da primijenjeni koncept ostavi dovoljno prostora za budući razvoj.

Iz tog razloga, IA-64 je jedinstvena kombinacija više novih karakteristika, kao što su: eksplicitni

Page 22: Skripta(2 Dio)

99

paralelizam, predikacija, spekulativno izvođenje itd. Novi tehnološki koncept je nazvan EPIC:

Explicitly Parallel Instruction Computing.

IA-64 arhitektura obzbjeđuje takođe potpunu kompatibilnost sa IA-32 (Pentium)

arhitekturom, a takođe i sa Pakardovim PA-RISC procesorom. Ova kompatibilnost je bila jedan

od osnovnih projektnih zahtijeva. Procesor može raditi u IA-32 ili IA-64 okruženju, što zavisi od

operativnog sistema. IA-64 sistemsko okruženje omogućava izvođenje ili IA-32 ili IA-64

instrukcija u bilo kom trenutku: u tu svrhu su realizovane instrukcije koje prevode procesor iz

jednog moda u drugi.

• jmpe (IA-32 instrukcija) prevodi procesor u IA-64 mod, u kojem izvode IA-64

instrukcije,

• br.ia (IA-64 instrukcija) prevodi procesor u IA-32 mod, u kojem izvode IA-32 instrukcije,

• rfi (IA-64 instrukcija) 'povratak iz prekida', vraća procesor ili u IA-32 ili u IA-64 mod.

Karakteristike instrukcionog skupa

IA-64 uključuje arhitekturne karakteristike koje omogućavaju visoke performanse i koje

uklanjaju barijere za dalje poboljšanje performansi. IA-arhitektura je bazirana na slijedećim

principima:

• Eksplicitni paralelizam

− Mehanizam koji omogućuje kooperativne efekte programskog prevodioca i procesora,

− Veliki broj resursa koji mogu da iskoriste mogućnosti ILP (instruction level parallelism), npr. 128 cjelobrojnih i 128 registara u pokretnom zarezu, 64 predikatnih registara, 8 registara grananja, višestruke funkcionalne jedinice,

• Karakteristike koje poboljšavaju paralelizam na instrukcionom nivou

− Spekulativno izvođenje (minimizuje uticaj latentnosti memorije),

− Predikacija (eliminiše grananja),

− Softverska protočnost (omogućava efikasno iskorištenje programskih petlji),

− Predviđanje grananja, kojim se smanjuje cijena grananja.

• Karakteristike koje poboljšavaju softverske performanse

− Specijalne multimedijalne instrukcije,

Page 23: Skripta(2 Dio)

100

− Visoke performanse arhitekture za izvođenje operacija u pokretnom zarezu,

− Korištenje registarskih prozora promjenljive dužine kod poziva procedura,

− Mehanizme za nagovještavanje grananja, odnosno pogađanja keša (branch hints, cashe hints) kojima programski prevodilac može specifikovati svoju procjenu lokalnosti memorije (po mjestu i vremenu) kojoj se pristupa. Ovo omogućava povećanje mogućnosti nalaženja informacija u keš memoriji (cache hit) i smanjenje gubitaka zbog promašaja keša (cache miss).

ILP - Paralelizam na nivou instrukcija (instruction level paralelism)

ILP je mogućnost izvršavanja više instrukcija u isto vrijeme. IA-64 omogućava grupno

iniciranje izvršenja nezavisnih instrukcija (3 instrukcije u grupi, više grupa može biti inicirano za

izvršenje u jednom ciklusu). Specifikacija grupa vrši se u fazi prevođenja. Programski prevodilac,

za razliku od tradicionalnih arhitektura, ima mogućnost da koristi spekulativne informacije, koje

nisu garantovano korektne, i to bez žrtvovanja izvođenja korektnih sekvenci. Pored spekulativnog

izvođenja, i druge tehnike omogućavaju povećanje ILP (predikacija, predviđanje grananja itd.).

Spekulativno izvođenje

Postoje dva tipa spekulacije: upravljačka i spekulacija o podacima. U obe varijante kompajler

povećava ILP specifikacijom izvršenja neke operacije ranije, sa ciljem eliminisanja kašnjena na

kritičnom putu izvođenja instrukcija. Prevodilac specifikuje spekulativno izvršenje neke

instrukcije ranije, ako postoji značajna vjerovatnoća da će spekulacija biti ostvarena (da je

izvođenje instrukcije u saglasnosti sa sekvencijalnim tokom izvršenja) i ako ranijim izvršenjem

instrukcije dolazi do povećanja mogućnosti eksploatacije paralelizma. Npr. ako posmatramo

instrukciju:

if (a> b) load (ld_addr1, target1)

else load (ld_addr2, target2)

izvođenje operacije ld_addr1, target1 prije nego što je poznat uslov a > b se može

karakterizovati kao spekulacija da će uslov a> b biti istinit. Ranije izvođenje instrukcije ld_addr1,

target1 omogućava preklapanje izvođenja te instrukcije (koja traje duže zbog referenciranja

memorije) sa drugim instrukcijama, tako da su operacije specifikovane tom instrukcijom izvršene

u trenutku testiranja uslova. Nakon spekulativnog izvođenja instrukcije ld_addr1, target1 druge

instrukcije mogu takođe koristiti vrijednosti upisane u target1 i ažurirati druge elemente

Page 24: Skripta(2 Dio)

101

procesorskog stanja. Ažuriranje stanja registara spekulativnom instrukcijom postavlja jedan bit u

registrima procesora (NaT – Not a Thing), i svako naredno korištenje tog sadržaja kao operanda u

drugim instrukcijama, kojim se ažuriraju vrijednosti drugih registara, takođe postavljaju bit Nat u

tim registrima. Prilikom testiranja uslova, ukoliko je spekulacija bila dobra, svi rezultati se

prihvataju i potvrđuju, a ukoliko je spekulacija bila pogrešna, onda se ide na proceduru

‘oporavka’, kojom se poništavaju efekti pogrešne spekulacije, sadržaj target1 se restaurira i

ponavlja izvršenje instrukcija koje su koristile spekulativnu vrijednost u target1.

Spekulacija o podacima

Spekulacija o podacima je dobavljanje podataka iz memorije prije operacije smještanja u

memoriju koja prethodi tom pribavljanju, ako postoji potencijalna mogućnost da load i store

operacije referenciraju isti dio memorije. Npr.

Store (st_addr, data)

Load (ld_addr, target)

Use (target)

Ukoliko load i store instrukcije referenciraju različite memorijske lokacije, onda redoslijed

izvođenja može biti promijenjen. Međutim, ako u fazi prevođenja ovo ne može da se utvrdi, onda

se izvođenje load prije store operacije može smatrati spekulativnim, sa spekulacijom da load i

store instrukcije ne referenciraju istu memorijsku lokaciju. Prevodilac, ako je specifikovao

spekulativno dobavljanje (load), postavlja instrukciju provjere spekulacije na mjestu originalne

instrukcije punjenja, tj. gornji programski kod se mijenja u sekvencu:

aload (ld_addr, target)

store (st_addr, data) acheck(target, recovery_addr) use(target) Instrukcija acheck utvrđuje da li se upis na memorijsku lokaciju preklapa sa očitavanjem, i

ako je to tačno ide se na proceduru oporavka.

Predikacija

Predikacija je uslovno izvršenje instrukcija. U tradicionalnim arhitekturama, uslovno

izvršenje se implementira instrukcijama grananja. IA-64 ahitektura implementira ovu funkciju

Page 25: Skripta(2 Dio)

102

korištenjem predikatskih instrukcija. Vrijednost predikata se postavlja intrukcijom poređenja u

odnosni predikatski registar. Predikovana instrukcija se izvodi ako je vrijednost predikata 1 (1 –

bitna vrijednost u predikatskom registru), u suprotnom predikovana instrukcija ima isti efekat kao

i nop (no operation) instrukcija. Predikacijom se uklanjaju grananja koja se koriste za uslovno

izvršenje, stvaraju se veći blokovi sekvencijalnih instrukcija (bazični blokovi) i eliminišu gubici

koji nastaju zbog pogrešne procjene grananja. Npr. instrukcija bez predikata:

r1 = r2 + r3

kada je predikovana ima formu

if(p5) r1 = r2 + r3.

U ovom primjeru p5 je kontrolni predikat, koji odlučuje da li će se ili ne instrukcija izvesti i

ažurirati stanje mašine. Predikatima se, kao što je pomenuto, pridjeljuje vrijednost instrukcijama

poređenja.

Predikatskim izvođenjem se izbjegavaju grananja tako što se kontrolne zavisnosti

transformišu u zavisnost po podacima. Npr. ako je originalni kod:

if ( a > b ) c = c + 1

else d = d*e + f,

Grananje kod uslova se može eliminisati, ako se konvertuje gornji kod u predikatski kod:

pT, pF = compare (a > b )

if ( pT ) c = c + 1,

if ( pF ) d = d*e + f,

pa se originalni kod, koji sadrži grananja, transformiše u kod sa predikatskim instrukcijama,

kod kojih postoji zavisnost po podacima.

Operacije sa registrima

Cjelobrojni registri sadrže 64 bita + 1 NaT bit, registri za operacije u pokretnom zarezu

sadrže 82 bita. Registarski model procesora predstavljen je na sl. 4.27.

Page 26: Skripta(2 Dio)

103

Sl. 4.27 Registarski model procesora IA-64.

Mogućnosti cjelobrojnih operacija i operacija u pokretnom zarezu su raznovrsne; ovdje ćemo

ilustrovati tehniku korištenja registarskih prozora kod poziva procedura, kojom se izbjegava

tradicionalno čuvanje i restauriranje sadržaja registara (register spill and fill) prilikom poziva na

sličan način opisan za RISC procesore, ali umjesto fiksnog broja registara koji se pridjeljuju

proceduri, vrši se dinamičko pridjeljivanje samo potrebnog broja registara.

Registarski skup od 128 registara je podijeljen na dva podskupa: statički, koji sadrži registre

0-31 i magacinski (stacked) podskup. Statički podskup je vidljiv iz svih procedura, dok se

magacinski podskup dinamički dodjeljuje procedurama, redom kako se one pozivaju. CFM

(current frame marker) pokazuje na par cjelobrojnih indikatora sof (size of frame) i sol (size of

locals) koji specifikuju ukupan broj registara magacinskog podskupa koji je pridijeljen proceduri

(sof) i broj registara pridijeljen proceduri za njene lokalne potrebe na osnovu zahtjeva iz

procedure (specijalnom funkcijom alloc za dodjelu registara). PFM (previous frame marker)

sadrži ove informacije u tekućoj proceduri za prethodnu proceduru, iz koje je tekuća procedura

pozvana. Prilikom poziva neke procedure B iz procedure A, parametri koje prosljeđuje procedura

A (output A) proceduri B su u startu dio registarskog prozora procedure B, pri njenom pozivu.

Page 27: Skripta(2 Dio)

104

Preimenovanje registara se vrši automatski, tako da numeracija dodijeljenih registara svakoj

proceduri počinje sa brojem 32 pa nadalje. Procedura B alocira potreban broj registara alloc

funkcijom (za lokalne potrebe i za prosljeđivanje parametara drugim procedurama koje ona

poziva) (sl. 4.28).

Sl. 4.28 Pridjeljivanje registara pri pozivu (i povratku iz) procedura.

U prethodnom tekstu su navedeni samo neki najvažniji elementi novih koncepata

primijenjenih u IA-64 arhitekturi. S obzirom na izloženo i na ogroman napor uložen od strane

vodećih svjetskih kompanija, čini se da će ova arhitektura označiti novi prodor u organizaciji i

mogućnostima procesora i računarskih sistema. Radna frekvencija prvog procesora iz ove serije

(Merced) je različita za različite procesorske komponente: od 3 GHz u funkcionalnim i

registarskim jedinicama, pa do 100MHz za sistemsku magistralu.

Page 28: Skripta(2 Dio)

105

5. Hijerarhijska organizacija memorije

Jedinice za pohranjivanje podataka su često hijerarhijski organizovane u računarskom

sistemu, kako je to predstavljeno na Sl. 5.1. Memorijsku tehnologiju i organizaciju na svakom

nivou karakteriše 5 parametara:

− Vrijeme pristupa ti (access time), od CPU do i-tog memorijskog nivoa,

− Veličina (kapacitet) memorije si na nivou i (u bajtima),

− Cijena po bajtu ci na memorijskom nivou i,

− Propusni opseg bi (transfer bandwidth) između nivoa i i i+1,

− Jedinica transfera xi (obično izražena u bajtima) između nivoa i i i+1.

Sl. 5.1 Organizacija memorije sa 4 hijerarhijska nivoa.

Memorijske jedinice na nižim nivoima su brže za pristup, manje po kapacitetu i skuplje po

bajtu. Tj. imamo:

Page 29: Skripta(2 Dio)

106

ti-1 < ti , si-1 < si , ci-1 > ci , bi-1 > bi , i xi-1 < xi (i = 1, …, 4 ).

Registri i keš memorije su dijelovi procesorskog kompleksa, sa realizacijom ili na

procesorskom čipu, ili na procesorskoj ploči. Registri su specijalni memorisjki elementi: plan

korištenja registara često realizuje programski prevodilac, transfer podataka između registara je

pod kontrolom procesora (odnosno upravljačke jedinice) i izvršava se brzinom kojom radi

procesor (obično u jednom taktnom intervalu). Zbog toga se često registri i ne smatraju

memorijskim nivoom, pominjanje registara je prije svega iz razloga komparacije sa drugim

nivoima. Rad keša kontroliše jedinica za kontrolu pristupa memoriji (MMU – memory

managament unit). Rad keša ne zahtijeva nikakvo programiranje, on je za programera

transparentan. Keš takođe može biti realizovan na jednom ili više nivoa.

Pristup glavnoj (primarnoj) memoriji se odvija pod kontrolom MMU i operativnog sistema.

Glavna memorija takođe može da se organizuje u više modula i u više podnivoa.

Disk jedinice i jedinice magnetne trake rade pod kontrolom operativnog sistema, sa

ograničenom interakcijom operatera. Disk memorija je najviši memorijski nivo sa on-line

pristupom. Jedinice magnetne trake predstavljaju memorijski nivo sa off-line pristupom i koriste

se uglavnom u svrhu arhiviranja (programa i podataka).

5.1 Inkluzija, koherencija i lokalnost

Informacije smještene u hijerarhijski organizovanom memorisjkom sistemu (M1, M2, …, Mn)

imaju tri karakteristične osobine: inkluziju (uključenost), koherentnost i lokalnost, kao što je to

ilustrovano na Sl. 5.2. Skup svih adresibilnih riječi u Mn čini virtuelni adresni prostor računara.

Osobina inkluzije se iskazuje sa:

M1 ⊂ M2 ⊂ M3 ⊂ … ⊂ Mn.

Inkluzija skupova implicira da su sve informacije originalno pohranjene u spoljnjem nivou

Mn . U toku obrade, dio informacija se kopira u Mn-1. Analogno, podskup Mn-1 se kopira u Mn-2 itd.

Tj. ako se informaciona riječ nalazi u Mi, onda se kopije te informacije takođe nalaze u svim

višim nivoima Mi+1, Mi+2, … , Mn, ali informacija koja se nalazi u Mi+1 ne mora postojati u Mi u

posmatranom trenutku. Nepostojanje riječi u Mi (word miss) implicira nepostojanje te riječi u

svim nižim nivoima (Mi-1, Mi-2, … , M1). Najviši nivo je memorija za arhiviranje (backup storage)

gdje se mogu naći sve informacije.

Page 30: Skripta(2 Dio)

107

Sl. 5.2 Inkluzija i transfer podataka između susjednih nivoa u memorijskoj hijerarhiji.

Transfer informacija između CPU i keš memorije se izražava u riječima (4 ili 8 bajtova,

zavisno od dužine riječi procesora). Keš ( M1 ) je podijeljena u keš blokove. Tipična veličina keš

bloka je 32 bajta ( 8 riječi). Transfer između keš memorije i glavne memorije se izvodi u ovim

blokovima.

Glavna memorija je izdijeljena na stranice, veličine najčešće 4Kb. Svaka stranica sadrži 128

keš blokova za primjer sa Sl. 5.2. Stranice su jedinične količine informacija pri transferu između

Page 31: Skripta(2 Dio)

108

glavne memorije i disk jedinica. One se grupišu u segmente koji mogu biti različite veličine;

razmjena informacija između disk jedinica i jedinica magnetnih traka se zasniva na transferu

segmenata.

Svojstvo koherentnosti zahtijeva da informacija na nekom nivou, ima konzistentne

(identične) kopije na slijedećim - višim nivoima. Održavanje koherentnosti se može realizovati

slijedećim strategijama:

− Upis odmah ( write through - WT),

− Odgođeni upis ( write back - WB).

WT strategija ažurira odgovarajuću kopiju u Mi+1, čim je došlo do ažuriranja neke riječi u Mi.

WB metod odgađa ažuriranje informacije u Mi+1, sve do momenta dok se odnosna informacija ne

uklanja iz Mi.

Lokalnost referenciranja je svojstvo programa da memorijske adrese, generisane u toku

izvršavanja programa, imaju tendenciju grupisanja posmatrano sa aspekta vremena i prostora. U

najvećem broju programa, 90% vremena programskog izvršenja proističe izvršenjem 10%

programskog koda (90-10 pravilo, Hennesy/Patterson). Kao posljedicu imamo svojstvo

lokalnosti: ovo svojstvo ima tri dimenzije: temporalnu, prostornu i sekvencijalnu.

Temporalna lokalnost je svojstvo da će memorijske reference, generisane u najbližoj

prošlosti, vjerovatno ponovo biti generisane u skoroj budućnosti (ovo svojstvo je posljedica

iterativnih operacija u programu, programskih petlji, npr.). Prostorna lokalnost je svojstvo da se

generišu memorijske reference koje su bliske jedna drugoj (npr kod programskih rutina, makroa

itd.). Sekvencijalna lokalnost se odnosi na činjenicu da se često generiše sekvencijalni niz adresa

(npr. tokom sekvencijalnog izvođenja niza instrukcija, sve dok se ne naiđe na instrukciju

grananja, pristup nizovima podataka itd.).

Primjer referenciranja memorije u vremenu za tri procesa ( a, b, c) predstavljen je na Sl. 5.3.

Skup memorijskih adresa koji je generisan u vremenskom intervalu ( t, t + ∆ t ), naziva se radni

skup (working set - Denning, 1968). Za vrijeme izvršenja programa, radni skup se mijenja

postepeno, odnosno posjeduje određeni stepen kontinualnosti. To znači da se u toku izvođenja

informacije najčešće 'pogađaju' na nižim hijerarhijskim nivoima.

Page 32: Skripta(2 Dio)

109

Sl. 5.3 Tipični profil referenciranja memorije pri izvođenju procesa

5.2 Planiranje memorijske organizacije

Performanse memorijskog sistema zavise od efektivnog vremena pristupa (effective access

time) Teff bilo kom nivou u memorijskoj hijerarhiji, i od frekvencije pristupa tim nivoima.

Stopa pogađanja (hit ratio) hi je vjerovatnoća da je zahtijevana informacija raspoloživa u Mi.

Stopa promašaja (miss ratio) se definiše kao 1- hi.

Stopa pogađanja na sukcesivnim nivoima je slučajna varijabla sa područjem vrijednosti

između 0 i 1, i funkcija je kapaciteta memorije, politike upravljanja memorijom i ponašanja

programa.

Frekvencija pristupa (access frequency) nivou Mi se definiše kao:

fi = (1- h1) (1- h2) … (1- hi-1) hi.

Veličina fi je de facto vjerovatnoća uspješnog pristupanja nivou Mi, čemu je prethodilo i-1

promašaja na nižim nivoima. Primijetimo da je:

Page 33: Skripta(2 Dio)

110

11

=∑ =

n

i if , i f1 = h1 .

S obzirom na svojstvo lokalnosti, frekvencije pristupa opadaju veoma brzo od nižih ka višim

nivoima, tj. f1 >> f2 >> f3 … >> fn, odnosno unutrašnjim memorijskim nivoima se pristupa

mnogo češće nego vanjskim.

Efektivno vrijeme pristupa se definiše kao:

Teff = ∑=

n

iii tf

1

= h1 t1 + (1-h1) h2 t2 + (1- h1) (1- h2) h3 t3 + … + (1- h1) (1- h2) … (1- hn-1) tn,

gdje su t1, t2, …, tn vremenski gubici (cijena u vremenskim jedinicama) koja se mora platiti

za pristupanje slijedećem višem nivou u memorijskoj hijerarhiji. Vrijeme pristupa kešu (za slučaj

da informacija nije raspoloživa u registrima) je t1, cijena (vrijeme pristupa) zbog nepostojanja

informacija u kešu prvog nivoa (promašaj bloka – block miss) je t2, cijena zbog nepostojanja

informacija u glavnoj memoriji (promašaj stranice – page fault) je t3 (ako je glavna memorija

slijedeći nivo u memorijskoj hijerarhiji) itd. t1 < t2 < …< tn. Stone (1990) je pokazao da je cijena

promašaja keša 2-4 puta skuplja od cijene pogađanja keša, dok je cijena promašaja stranice u

glavnoj memoriji (page fault) 1000 – 10 000 puta veća od cijene pogađanja.

Optimizacija hijerarhijske organizacije memorije

Ukupna cijena hijerarhijskog memorijskog sistema se procjenjuje kao

Ctotal = ∑=

n

iii sc

1

S obzirom na to da je c1 > c2 > c3 … > cn hijerarhijski memorijski sistem se realizuje tako

da je s1 < s2 < …< sn. Optimalno projektovana hijerarhijska organizacija memorije treba biti takva

da je Teff blisko vremenu t1 (vremenu pristupa nivou M1), i ukupna cijena bliska cijeni cn nivoa Mn.

Problem projektovanja hijerarhijskog memorijskog sistema se svodi na problem minimizacije

Teff = , ∑=

n

iii tf

1

Page 34: Skripta(2 Dio)

111

uz slijedeća ograničenja:

si > 0, ti > 0 , za i = 1, 2, …, n,

Ctotal =∑ < C=

n

iii sc

10 .

Vrijednosti karakterističnih parametara za memorijski sistem tipičnog main-frame računara

dati su u tabeli 5.1 (podaci se odnose na 1993. god.).

Tabela 5.1 Karakteristične vrijednosti parametara memorijskog sistema

5.3 Koncept virtuelne memorije

Glavna memorija se često naziva i fizička memorija. U ovoj memoriji se nalaze programi u

toku izvršenja kao i podaci i rezultati koje ovi programi koriste/produkuju. S obzirom na to da je

veličina glavne memorije ograničena, svi programi ne mogu biti smješteni istovremeno u glavnoj

memoriji. Koncept virtuelne memorije omogućuje virtuelno proširenje glavne memorije

sekundarnom memorijom, čime se postiže da veći broj programa može istovremeno koristiti

fizičku memoriju. Samo aktivni programi, ili njihovi dijelovi, se nalaze u glavnoj memoriji u

jednom trenutku vremena. Programi (ili njihovi dijelovi) se učitavaju sa sekundarne memorije

(disk jedinice) u memoriju i vraćaju nazad na disk pod kontrolom operativnog sistema.

Page 35: Skripta(2 Dio)

112

Skup adresa, preko kojih se može pristupiti raspoloživim memorijskim lokacijama glavne

memorije čini fizički adresni prostor. Adrese koje generiše programski prevodilac prilikom

prevođenja izvornog programa, odnosno instrukcije prilikom izvođenja su virtuelne adrese.

Virtuelni adresni prostor je po pravilu veći od fizičkog adresnog prostora. Prilikom izvođenja

programa, potrebno je obezbijediti prevođenje virtuelnih adresa sadržanih u programu, u odnosne

fizičke adrese, odnosno realizovati mapiranje virtuelnog na fizički adresni prostor.

Neka je V skup virtuelnih adresa, generisanih programom koji se izvodi, i neka je M skup

fizičkih adresa pridjeljenih programu za izvođenje. Virtuelni memorijski sistem zahtijeva

automatski mehanizam za implementaciju mapiranja:

ft : V → M ∪ {0}

Mapiranje je dinamička funkcija koja varira u vremenu, pridjeljivanje fizičke memorije

programu koji se izvodi vrši se od strane operativnog sistema. Za bilo koju virtuelnu adresu v ∈

V, imamo:

ft (v) = Munalazinevadresomomlnvirtueanreferencirpodatakseako

vadresomomlnvirtueanreferencirpodataksadrziMmakom

,0

, ∋

Dakle, funkcija ft (v) prevodi virtuelnu adresu v u jedinstvenu fizičku adresu m, ako postoji

pogodak (memory hit) u M. Kada postoji promašaj, funkcija vraća vrijednost 0, čime se indicira

da se referencirana informacija ne nalazi u memoriji. Jasno je da efikasnost mapiranja ima izražen

uticaj na performanse virtuelne memorije. Koncept virtuelne memorije je znatno teže

implementirati u multiprocesorskim sistemima gdje se javljaju drugi složeni problemi kao što su:

održavanje koherentnosti i konzistentnosti, problem zaštite pristupa i drugi. U tekstu koji slijedi,

ukratko su izložena dva virtuelna memorijska modela multiprocesorskih sistema(Sl. 5.4.).

Privatna virtuelna memorija

U ovom modelu, svakom procesoru se pridjeljuje privatni virtuelni adresni prostor. Svaki

privatni virtuelni prostor je izdijeljen na stranice. Stranice različitih virtuelnih prostora se

mapiraju u stranice iste fizičke memorije, koja je zajednička za sve procesore. Ovaj koncept

omogućava korištenje relativno malih procesorskih adresnih prostora (32-bita),

zaključavanje/zaštitu svake stranice koja se zasniva na bazi procesa i korištenje privatnih

memorijskih mapa, koje ne zahtijevaju eksluzivan pristup. Problem predstavlja referenciranje

Page 36: Skripta(2 Dio)

113

istih fizičkih stranica iz različitih virtuelnih stranica istog ili različitih virtuelnih prostora

(problem sinonima). Problem koji se morao posebno rješavati je taj da iste virtuelne adrese u

različitim virtuelnim adresnim prostorima, mogu da referenciraju različite fizičke stranice u

glavnoj memoriji.

Sl. 5.4 Modeli virtuelne memorije za multiprocesorske sisteme.

Dijeljena virtuelna memorija U ovom modelu, virtuelni adresni prostori svih procesora se kombinuju u jedinstveni dijeljeni

virtuelni adresni model. Svakom procesoru se dodijeljuje dio jedinstvenog adresnog prostora.

Virtuelni adresni prostori različitih procesora mogu da se preklapaju.

Prednost ovog modela je to što su sve adrese jedninstvene. Procesori mogu da generišu adrese

veće od 32 bita a sinonimi nisu dozvoljeni.

Page 37: Skripta(2 Dio)

114

Pristup tabeli straničenja mora biti omogućen od strane više procesora; u cilju zaštićenog

pristupa tabeli straničenja koristi se zaključavanje. Obično se iznad koncepta straničenja realizuje

segmentacija što omogućava da svaki proces ima svoj adresni prostor.

5.3.1 Straničenje, TLB, Segmentacija

Kod tehnike straničenja, u cilju preslikavanja virtuelnog u fizički adresni prostor i virtuelni i

fizički adresni prostor se dijele na stranice iste dužine. Različite šeme translacije virtuelnih u

fizičke adrese su predstavljene na Sl. 5.5.

Sl. 5.5 Mehanizmi translacije virtuelnih u fizičke adrese.

Page 38: Skripta(2 Dio)

115

Šeme sa slike 5.5a, koriste translacione mape koje se mogu implementirati na različite

načine. Ove mape mogu biti smještene u keš memoriju, specijalnu asocijativnu memoriju ili u

glavnu memoriju. Svaka mapa sadrži određeni broj ulaza, a svakim ulazom (Sl. 5.6) se

specifikuje translacija. Pristup odgovarajućem ulazu u tabeli se vrši na bazi funkcije mapiranja,

koja se primjenjuje na virtuelnu adresu. Mapiranje se može implementirati hash ili kongruentnom

funkcijom.

Sl. 5.6 Struktura ulaza u tabelu straničenja

Varijante translacionih mapa su keš straničenja (TLB – table lookaside buffer) i tabela

straničenja (PT – page table).

TLB je brza memorija koja sadrži najčešće referencirane ulaze tabele straničenja.

Najpovoljnija varijanta je ako se translacija virtuelne u fizičku adresu realizuje preko TLB ulaza.

Ukoliko TLB ne sadrži ulaz koji specifikuje translaciju, onda se traženje nastavlja u tabeli

straničenja. Hadrverska organizacija sistema straničenja koja koristi TLB data je na Sl. 5.7.

Sl. 5.7 Straničenje sa korišćenjem TLB (St. 7.146)

Page 39: Skripta(2 Dio)

116

Tabele straničenja (PT) sadrže suštinski iste ulaze kao i TLB (koji specifikuju asocijaciju

između virtuelnih i fizičkih stranica – okvira). Ove tabele se kreiraju u glavnoj memoriji nakon

kreiranja korisničkih procesa (za svaki proces se kreira posebna PT). S obzirom da broj

aplikativnih procesa može biti veliki, broj PT u memoriji može takođe biti veliki. I TLB i PT se

moraju dinamički ažurirati kako bi odražavali aktuelno stanje. Mape translacije predstavljaju

tekući snimak stanja memorijskog referenciranja.

Ukoliko se tražena stranica ne nalazi u memoriji (ne postoji par (virtuelna stranica, fizička

stranica) u PT), onda se generiše stranična greška (page fault). U tom slučaju se tekući proces

suspenduje, aktivira se novi proces (izvršava se context switch), a tražena stranica se dobavlja sa

diska/jedinice magnetne trake, u memoriju. Nakon tog transfera suspendovani proces se stavlja u

listu spremnih procesa, i nakon njegovog aktiviranja, nastavlja se izvršenje od one instrukcije

koja je generisala straničnu grešku. PT se mogu implementirati i u više nivoa. Ovim se de-facto

formira stablo za prevođenje adresa, sa mogućnošću proširenja memorijskog prostora koji se

mapira i implementacijom sofistifikovane zaštite pristupa stranicama.

Primjer prevođenja virtuelnih u fizičke adrese kod tehnike straničenja, dat je na Sl. 5.8. U

navedenom primjeru, u posebnom registru se čuva tabela straničenja procesa. Broj virtuelne

stranice se koristi kao indeks u tebeli straničenja, iz koje se čita odgovarajući broj fizičke stranice

(broj okvira). Ovaj broj se kombinuje sa pomjerajem virtuelne adrese čime se dobija željena

realna (fizička) adresa.

Prethodno opisana tehnika (direktnog) straničenja je pogodna ako virtulni adresni prostor nije

izuzetno veliki (do 32 bita). U slučaju velikog virtuelnog adresnog prostora (52 bitne virtuelne

adrese kod IBM RS/6000, npr) PT bi postale izuzetno velike. U takvim slučajevima koriste se

invertovane tabele straničenja (IPT). Kod ove tehnike (Sl. 5.5c, Sl. 5.9) invertovana tabela

straničenja (IPT) sadrži jedan ulaz za svaku fizičku stranicu (frame). Prema tome, broj ulaza je

određen brojem fizičkih umjesto virtuelnih stranica.

Page 40: Skripta(2 Dio)

117

Sl. 5.8 Tehnika mapiranja virtuelnog u fizički adresni prostor straničenjem.

Polje veza formira lanac IPT ulaza koji imaju istu hash vrijednost. Npr, hash funkcija može

mapirati broj virtuelne stranice → indeks ulaza u IPT na slijedeći način:

indeks ulaza u IPT = broj virtuelne stranice mod n

gdje je n broj fizičkih stranica (frame-ova).

Sadržaj vrijednosti virtuelne adrese stranica# (vrijednost ključa) se upoređuje sa vrijednošću

str.# u ulazu u tabeli straničenja koji odgovara vrijednosti hash funkcije za datu virtuelnu

stranicu. Ako su vrijednosti iste, onda se odgovarajući broj fizičke stranice dobija u polju ulaz#.

Ako se vrijednosti ključa ne poklapaju, onda se preko polja ‘veza’ ide na slijedeći ulaz sa istom

hash vrijednošću i postupak ponavlja dok se ne pronađe fizička stranica, ili utvrdi da tekućoj

virtuelnoj adresi nije pridružena nijedna (fizička) stranica u glavnoj memoriji (frame). U

posljednjem slučaju generiše se stranična greška.

Page 41: Skripta(2 Dio)

118

Sl. 5.9 Mapiranje invertovanom tabelom straničenja

Segmentiranje. U memorijskom sistemu sa segmentiranjem, korisnički programi su

strukturirani u logičke segmente (Sl. 5.10) koji mogu biti različite dužine. Dakle, segmentacija

omogućava da se programski kod organizuje na bazi korisničke predstave programa. Virtuelna

adresa specifikuje broj segmenta i pomjeraj u okviru segmenta.

Sl. 5.10 Organizacija korisničke aplikaciju po segmentima

Page 42: Skripta(2 Dio)

119

Broj segmenta se koristi kao indeks u segmentnoj tabeli. Ulaz segmentne tabele sadrži pored

specifikacije bazne fizičke adrese i specifikaciju maksimalne dužine segmenta. Mehanizam

generisanja fizičke adrese predstavljen je na Sl. 5.11.

Sl. 5.11 Generisanje fizičke adrese iz virtuelne u memorijskom sistemu sa segmentacijom.

Tehnike segmentacije i straničenja moguće je kombinovati (straničenje segmenata). Kod ove

organizacije memorije, virtuelna adresa se sastoji iz tri dijela: broj segmenta, broj stranice (u

okviru segmenta), pomjeraj. Generisanje fizičke iz virtuelne adrese ovom tehnikom dato je na Sl.

5.12.

Sl. 5.12 Prevođenje adresa segmentacijom i straničenjem

Page 43: Skripta(2 Dio)

120

5.3.2 Politika zamjene stranica

Ukoliko se stranica ne nalazi u memoriji, onda je potrebno učitati traženu stranicu sa

sekundarne memorije u glavnu memoriju. Problem se pojavljuje kod odlučivanja u koju fizičku

stranicu (frame) treba učitati nove podatke, odnosno koju postojeću stranicu treba zamijeniti.

Postoji više politika zamjene stranica:

1) LRU (Least recently used), zamjenjuje onu fizičku stranicu u glavnoj memoriji koja najduže nije referencirana (posmatrano do tekućeg trenutka),

2) Optimalni (OPT), zamjenjuje onu stranu koja neće biti referencirana najduži period, posmatrano od tekućeg trenutka (ova politika se realno ne može implementirati, jer se buduća referenciranja ne mogu uvijek tačno predvidjeti),

3) FIFO (first in first out), zamjenjuje onu stranu koja je najduže u memoriji,

4) LFU (least frequently used), zamjenjuje onu stranu koja je najrjeđe referencirana u prošlosti,

5) Zamjena stranice na bazi slučajnog izbora itd.

LRU tehnika je najčešće korištena i najčešće daje najbolje rezultate (tj. najmanji broj transfera stranica između diska i glavne memorije).

Page 44: Skripta(2 Dio)

121

6

Vi{eprocesorske arhitekture

6.1 Ra~unarski sistemi upravqani kontrol-nim tokom

Najve}i broj ra~unarskih arhitektura koristi tradicionalni (von Neumann-ov)

sekvencijalni tok izvo|ewa ra~unawa u procesorskim elementima, odre|en kontro-

lnim tokom. Niz instrukcija, smje{tenih u memoriji, izvodi se sekvencijalno jedna

za drugom. Eksplicitni transfer kontrole na drugi sekvencijalni niz instrukcija

ostvaruje se programski, odgovaraju}om naredbom.

Po Flynn-ovoj klasifikaciji, vi{eprocesorski sistemi se dijele na:

• SIMD - ma{ine sa jednim tokom instrukcija i vi{estrukim tokom podataka,

• MISD - ma{ine sa vi{estrukim tokom instrukcija i jednim tokom podataka,

• MIMD- ma{ine sa vi{estrukim tokom i instrukcija i podataka.

Page 45: Skripta(2 Dio)

122

6.1.1 SIMD ra~unarski sistemi (Single instruction-multiple data)

Kod arhitektura ovog tipa postoji jedan sekvencijalni tok instrukcija i jedna

kontrolna jedinica koja upravqa istovremenim izvr{ewem svake instrukcije na

vi{e procesnih elemenata. Svi omogu}eni procesni elementi izvode (istu) instru-

kciju nad razli~itim podacima, ~ime se realizuje paralelna obrada na odre|enom

skupu podataka. Jednim instrukcionim tokom se izbjegava ponavqawe procesa doba-

vqawa instrukcije za svaku procesnu jedinicu. S obzirom na to da svi procesori

rade sinhronizovano, na osnovu upravqa~kih signala iz kontrolne jedinice, ovakve

arhitekture su pogodne za eksploataciju sitnozrnastog paralelizma. Osnovne

varijante ovih arhitektura predstavqene su na Sl. 6.1.

Procesorska poqa (array processors)

Kod ra~unara sa ovim tipom arhitekture, procesor se sastoji iz skupa procesnih

elemenata (PE) povezanih sinhronom mre`om. Svi procesni elementi rade pod

kontrolom jedne kontrolne jedinice (CU). Program koji se izvodi mo`e da se

nalazi ili u memoriji kontrolne jedinice, ili u procesnim elementima. Skalarne

ili kontrolne instrukcije izvodi direktno CU. CU dekodira vektorske instruk-

cije, odre|uje na kojim PE se teku}a instrukcija izvodi i inicira sinhrono

izvr{ewe na svim (omogu}enim) PE.

Podaci nad kojima PE izvode zahtijevanu operaciju se ili ve} nalaze u memorijskim

modulima dostupnim PE, ili se prethodno pune u memoriju (od strane CU (emisijom)

preko kontrolne magistrale, ili od strane eksterne jedinice preko sistemske

magistrale podataka). Na taj na~in, vi{e procesnih elemenata izvr{ava paralelnu

obradu nad odre|enim skupom podataka. Obra|ene podatke PE-i smje{taju u

memoriju. Memorija u kojoj se nalaze podaci mo`e biti ili lokalna memorija (LM)

procesnih elemenata ili globalni memorijski moduli (M), kojima mogu pristupiti

razli~iti PE. U oba slu~aja realizuje se mre`a za povezivawe, kojom se omogu}ava

izmjena podataka izme|u PE, odnosno pristup zajedni~kim podacima (Sl 6.1).

Smje{tawe podataka po memorijskim elementima mora biti takvo da omogu}i da

se elementima nizova podataka, koji treba da se procesiraju paralelno, pristupi

istovremeno i bez konflikta. Za ure|ewe podataka na opisani na~in ~esto je

potrebno mijewati raspored podataka po procesnim elementima, {to se realizuje

Page 46: Skripta(2 Dio)

123

mre`om za povezivawe i odgovaraju}im funkcijama usmjeravawa i prenosa (rutira-

wa).

Kontrolne linije

Linije podatakaPodaci i instrukcije

I/O

Spre`na mre`a

memorija

CU

PE0

LM0

PE1

LM1

PEN-1

LMN-1

Kontrola

a) PE-PE model.

b) PE - memorijski model.

Sl. 6.1 Varijante arhitektura SIMD ra~unara.

Page 47: Skripta(2 Dio)

124

Procesor sa poqem PE-a se normalno povezuje na ra~unar op{te namjene (host-

doma}in) preko kontrolne jedinice. Ra~unar op{te namjene izvr{ava standardne

sistemske funkcije i komunikaciju sa spoqnim svijetom, tako da se procesorska

poqa mogu smatrati pridodatom procesnom jedinicom za izvr{avawe specifi~nih

aplikacija ili dijelova aplikacija kao {to je linearno programirawe, matri~na

algebra, prepoznavawe oblika itd.

Ipak, programirawe ovakvih procesora nije jednostavno. Ono se realizuje ili

ekstenzijom postoje}ih jezika ili posebnom bibliotekom funkcija koje se pozivaju

iz dijela aplikacije koji se izvodi na ra~unaru doma}inu. Izvo|ewe skalarnih

operacija na ovim ma{inama je relativno sporo. Vr{ne performanse se ostvaruju

rijetko i u posebno pogodnim aplikacijama. Ovaj tip organizacije je karakterisao

niz ra~unara, od prvog superra~unara Illiac-a IV pa do aktuelnih Thinking Machine

CM-2 i MasPar MP-1. Primjer sra~unavawa parcijalnih suma niza elemenata Sk =

, gdje je A niz elemenata {A∑=

k

iiA

0i , i = 1, …n }, dat je na Sl. 6.2

Za ilustraciju, predstavi}emo organizaciju sada ve} istorijskog ra~unara Illiac-a IV

(Sl. 6.3) i dati primjere izvo|ewa operacija na ovom ra~unaru.

Illiac-a IV je ra~unar sa 64 procesora povezanih mre`om u formi re{etke.

(karakteristike ove spre`ne mre`e bi}e izlo`ene kasnije). Kontrolna jedinica

dekodira instrukcije koje se dobavqaju iz procesnih elemenata pod kontrolom

operativnog sistema, i vr{i distribuciju instrukcija za izvr{ewe ka potrebnim

procesnim elementima. Kontrolna jedinica tako|e izvodi proste skalarne

operacije. Prosqe|ivawe podataka izme|u procesnih elemenata se vr{i

instrukcijama rutirawa.

Procesni element (Sl. 6.4) ima 4 64-bitna registra (A – akumulator, B – operand

registar, R – registar za rutirawe, S – op{ti registar za prihvat podataka), 16 –

bitni indeks registar X i 8 – bitni statusni/mod registar D. Svaki procesni

element ima vezu / mo`e rutirati podatke, ka 4 druga procesna elementa.

Maric Slavko
Ubaciti materijal sa strane 23,24 radnog materijala ( primjer rada)
Slavko Maric
Godyear MPP, Borougs BSP, AMT DAP
Page 48: Skripta(2 Dio)

125

Sl. 6.2 Sra~unavawe parcijalnih suma niza elemenata na mre`nom procesoru.

Page 49: Skripta(2 Dio)

126

Sl. 6.3 Organizacija ra~unara Illiac-a IV.

Page 50: Skripta(2 Dio)

127

Xi

Di

Si

Sl. 6.4 Struktura procesnog elementa Illiac-a IV.

Primjer izvo|ewa proste vektorske operacije na ovom ra~unaru dat je na Sl. 6.5. i

Sl. 6.6.

Page 51: Skripta(2 Dio)

128

Sl. 6.5 Sabirawe dva vektora: du`ina vektora jednaka je broju procesnih elemenata.

Page 52: Skripta(2 Dio)

129

Sl. 6.6 Sabirawe dva vektora: du`ina vektora je ve}a od broja procesnih elemenata.

Page 53: Skripta(2 Dio)

130

Asocijativni procesori

Za razliku od klasi~nih ra~unara, gdje se referencirawe nekog podatka u memoriji

ostvaruje na osnovu adrese, asocijativni procesori referenciraju podatke u

memoriji na osnovu wihovog sadr`aja. Na taj na~in je mogu}e referencirawe vi{e

podataka istovremeno. Memorija koja ima navedene mogu}nosti, naziva se

asocijativna memorija.

Tipi~na organizacija asocijativne memorije data je na Sl. 6.7. Kqu~ za referenci-

rawe se specifikuje preko registra za komparaciju (CR) i registra za maskirawe

(MR). Upravqa~ka logika inicira komparaciju sadr`aja svih nemaskiranih dije-

lova CR sa svim lokacijama asocijativne memorije. Komparaciju izvodi kontrolna

logika pridru`ena svakoj memorijskoj lokaciji, i za one lokacije koje zadovoqavaju

tra`eni uslov, postavqa se logi~ka jedinica u korespondentni bit registra za

indikaciju. Komparacija se mo`e izvoditi serijski, bit po bit, ili paralelno

(svi biti se istovremeno procesiraju).

Indikator Privremeniregistar

Registar maskirawa

Registar za komparaciju

Sl. 6.7 Organizacija asocijativne memorije.

Maric Slavko
(str.27 RM)
Maric Slavko
(C u 27RM)
Page 54: Skripta(2 Dio)

131

Vi{e sukcesivnih selekcija se mo`e sa~uvati u podskupu privremenih

registara, a rezultantna selekcija se mo`e dobiti logi~kim operacijama nad

elementima ovog podskupa.

Asocijativni procesori se povezuju na ra~unar doma}in kao specijalizovani

procesori za odre|ene aplikacije. Modul za povezivawe sa okolinom (obi~no se

radi po korisni~kim zahtjevima) obezbje|uje {irok spektar mogu}nosti: direktan

pristup memoriji, paralelni U/I, spregu sa drugim specijalizovanim procesorima,

kori{tewe senzorskih ulaza itd. Sve ovo omogu}ava postizawe visokih performan-

si u aplikacijama kao {to su matri~ne operacije, upravqa~ki sistemi u stvarnom

vremenu, sistemi za upravqawe i manipulaciju podacima, gdje se sekvencijalno

procesirawe realizuje na konvencionalnom ra~unaru-doma}inu, a paralelne opera-

cije (prije svega selekcije na skupu podataka) na pridodatim asocijativnim

procesorima.

Zbog skupe realizacije komparatorske logike, asocijativne memorije su malog

kapaciteta i skupe, {to limitira wihovu upotrebu za specijalizovane namjene.

Zna~ajnu primjenu asocijativnih memorija imamo u realizaciji ke{ memorija, gdje

se utvr|ivawe raspolo`ivosti podatka/instrukcije u ke{u utvr|uje na bazi privje-

ska (tag) generisanog na bazi adrese. Primjeri kori{tewa asocijativne ke{ memo-

rije su IBM 3033, Motorola 88110, Intel Pentium procesori itd.

Primjer paralelne selekcije elemenata koji zadovoqavaju zahtijevani uslov dat

je na Sl. 6.8.

Slavko Maric
Kao predstavnike mo`emo navesti STARAN (Goodyear Aerospace) i PEPE (Bell Laboratories).
Page 55: Skripta(2 Dio)

132

Sl. 6.8 Selekcija elemenata po uslovu tra`ewa u asocijativnoj memoriji.

Page 56: Skripta(2 Dio)

133

Vektorski procesori

Mnogi, ra~unski zahtjevni algoritmi, sadr`e veliki broj operacija koje rade sa

ure|enim skupovima (nizovima) elemenata-vektorima. Ove operacije se mogu klasi-

fikovati u slijede}e osnovne grupe: f1: V → V, f2: V → S, f3: V x V → V, f4: V x S → V,

gdje su V i S vektorski odnosno skalarni operand, respektivno. Neke varijante

vektorskih instrukcija su predstavqene na Sl. 6.10. Zajedni~ka im je karakteri-

stika da se ista operacija ponavqa na svim elementima ili parovima elemenata

vektora. Izvo|ewe ovih operacija se mo`e optimizovati ako se izbjegne ponavqawe

dobavqawa i dekodirawa instrukcija za svaki element vektora, odnosno ako se

cijeli proces inicira jednom (vektorskom) instrukcijom. Vektorska instrukcija

sadr`i operacioni kod, adrese operanada, du`inu vektora i adresni inkrement.

Po{to se kod skalarnih ma{ina ove operacije implementiraju programskom

petqom, izbjegava se tako|e gubitak uslijed programske kontrole zavr{etka

petqe. Generalna organizacija vektorskog procesora prikazana je na Sl. 6.9.

Glavnamemorija

Jedinica zaprocesiraweinstrukcija

Skalarniregistri

Skalarni procesor

Ss1

Ss2

Ssn

Kontrolervektorskihinstrukcija

Kontrolervektorskog

pristupa

Vektorskiregistri

Sv1

Sv2

Svn

Vektorski procesor

Proto~ni stepeni

Sl. 6.9 Organizacija vektorskog procesora.

Svaki vektorski registar mo`e da sadr`i jedan vektor sa N elemenata. Jedinica

za procesirawe instrukcija dobavqa i dekodira instrukcije iz glavne memorije i

prosqe|uje skalarne instrukcije skalarnom procesoru, a vektorske kontroleru

vektorskih instrukcija. Skalarni i vektorski procesor se (svaki) sastoji iz vi{e

paralelnih proto~nih funkcionalnih sistema inplementiranih za efikasnu

proto~nu obradu skalarnih odnosno vektorskih instrukcija.

Page 57: Skripta(2 Dio)

134 134

Sl. 6.10 Neke varijante vektorskih instrukcija.

Page 58: Skripta(2 Dio)

135

Proto~ni procesori mogu biti jednofunkcionalni ili vi{efunkcionalni.

Vektorska instrukcija se inicira i izvodi pod kontrolom vektorskog instrukci-

onog kontrolera, koji vr{i raspore|ivawe izvr{ewa vektorske operacije na jedan

ili vi{e proto~nih funkcionalnih sistema vektorskog procesora, inicira priba-

vqawe operanada pod kontrolom vektorskog kontrolera pristupa, te inicira

po~etak izvr{ewa vektorske operacije u vektorskom procesoru. Vrijeme

pribavqawa operanada i postavqawa kontrolnih registara (pripremno vrijeme

vektorske operacije) je obi~no znatno ve}e od vremena procesirawa vektora tp ~ t1 *

N, gdje je t1 vrijeme izme|u sukcesivnih operanada, a N du`ina vektora. Nakon

inicirawa obrade, sukcesivni operandi ulaze u proto~ni funkcionalni sistem sa

periodom t1 i obra|uju se redom u proto~nim stepenima. Izlaz iz zadweg proto~nog

stepena se smje{ta ili u memoriju ili u vektorski registar. Kada se neki proto~ni

funkcionalni sistem i odgovaraju}i vektorski registri dodijele za izvo|ewe neke

vektorske operacije, ne mogu se dodijeliti za izvo|ewe slijede}e operacije sve

dok se teku}a operacija ne zavr{i. Da bi se mogu}nosti vektorskog procesora

iskoristile na adekvatan na~in, potrebno je generisati optimizovan izvr{ni kod,

sa ciqem maksimalnog kori{tewa proto~nih resursa i minimizacijom pripremnih

vremena vektorskih operacija, za {to su razvijeni vektoriziraju}i prevodioci.

Grafi~ki prikaz izvo|ewa operacija u vektorskom i osnovnom skalarnom

procesoru dat je na Sl. 6.11.

Prva generacija vektorskih superra~unara je razvijena krajem 60-tih godina i

reprezentuju je STAR-100 TI-ASC i CDC 6600/7600. Drugu generaciju ovih ma{ina

predstavqaju CRAY-1, Cyber-200, Fujitsu VP-200, svi procesnih mo}i ispod 500

Mfloaps-a. Posqedwe generacije ovih ma{ina reprezentuju Cray Y-MP te Fujitsu 2000,

NEC SX-X, Hitachi S800 sistemi.

Page 59: Skripta(2 Dio)

136

Sl. 6.11 Grafi~ki prikaz izvo|ewa operacija u vektorskom i osnovnom skalarnom

procesoru.

Page 60: Skripta(2 Dio)

137

6.1.2 MISD arhitekture (Sistoli~ni procesori)

Mnogi problemi koji zahtijevaju intenzivna ra~unawa (procesne resurse) i koji

sadr`e visok stepen paralelizma mogu se efikasno rije{iti primjenom jednosta-

vnih procesnih elemenata organizovanih u neku regularnu strukturu (mre`a,

stablo, linearno poqe i sl.). Ovakva organizacija procesirawa je pogodna za

implementaciju u VLSI tehnologiji, s obzirom na jednostavnost elemenata i

pravilnost strukture.

Informacije u ovaj (sistoli~ni) sistem se "upumpavaju" preko vawskih }elija,

preko kojih se ostvaruje i izlazna veza. Bazi~ni element naj~e{}e omogu}ava samo

jednostavne operacije, kao npr. sabirawe i mno`ewe, kako je to predstavqeno

primjerom na Sl. 6.12.

d

b

c

a b

ad = c + a * b

Sl. 6.12 Bazi~ni procesni element sistoli~nog procesora.

Procesni element mo`e da procesira podatke i ostvaruje vezu sa drugim elemen-

tima paralelno (vi{e bita odjednom) ili serijski, mo`e biti sa ili bez lokalne

memorije. Podaci ulaze u sistoli~no poqe, obra|uju se u procesnim elementima po

principu proto~ne obrade i prenose u slijede}e procesne elemente ritmi~no i

sinhrono. Komunikacija izme|u procesnih elemenata je jednostavna i lokalizovana

na najbli`e susjede, {to omogu}ava (zbog malog rastojawa) pove}awe frekvecnije

radnog takta. Primjer mno`ewa matrica koriste}i sistoli~ka poqa dat je na sl.

6.13.

Sistoli~ni procesori zahtijevaju specifi~no projektovawe algoritama za

odre|ene ra~unski intenzivne probleme i odgovaraju}u organizaciju sistoli~nog

poqa. Visoke performanse i niska cijena implementacije uticali su na primjenu

sistoli~kih poqa u mnogim oblastima (digitalna obrada signala, matri~na

izra~unavawa i sl.). Tehnolo{ki problemi u implementaciji velikog broja U/I

Page 61: Skripta(2 Dio)

138

veza na VLSI kolu, limitiraju veli~inu i mogu}nost sistoli~nih procesora, a time

i oblast wihove primjene.

Sl. 6.13 Mno`ewe matrica u sistoli~kom poqu

6.1.3 MIMD arhitekture

MIMD (Multiple Instruction Multiple Data) arhitekture se sastoje od niza procesorskih

elemenata, pri ~emu svaki procesor izvodi niz "svojih" instrukcija nad vlastitim

Page 62: Skripta(2 Dio)

139

tokom podataka, pod kontrolom autonomne kontrolne jedinice. Rad procesorskih

elemenata je asinhron, {to daje veliku fleksibilnost ovakvim sistemima. Ova

pogodnost MIMD arhitektura nije bez cijene, s obzirom da procesni elementi

moraju da kooperi{u u ciqu izvr{ewa jedinstvenog posla. Planirawe mehanizama

komunikacije i sihronizacije postaje od osnovne va`nosti. Budu}i da je komunika-

ciono i sinhronizaciono vrijeme znatno ve}e od vremena izvo|ewa instrukcija, od

interesa je eksploatacija paralelizma na vi{em nivou granularnosti (iako,

naravno, svaki procesor pojedina~no mo`e eksploatisati paralelizam na ni`em,

grupnom ili instrukcijskom nivou, zavisno od svoje arhitekture). MIMD arhitektu-

re se daqe dijele na visoko-paralelne (~vrsto spregnute) i labavo spregnute. U

kategorije labavo spregnutih sistema spadaju LAN (local area network) i WAN (wide

area network) ra~unarske mre`e. Sprega izme|u ra~unara u ovim sistemima se izvodi

serijskim linijama, a izme|u udaqenih ra~unara koriste se modemi i komutirane

veze. Po{to jedino visoko paralelni sistemi mogu efikasno eksploatisati

paralelizam sa vi{im nivoom granularnosti, daqa razmatrawa }emo ograni~iti na

ove arhitekture, uz napomenu da se procjep izme|u ovih arhitektura i lokalnih

ra~unarskih mre`a sve vi{e smawuje.

Visoko paralelni sistemi se daqe mogu klasifikovati na multiprocesore i

multira~unare. U prvom slu~aju procesori komuniciraju preko zajedni~ke memori-

je, a u drugom izmjenom poruka preko sistema (mre`e) za povezivawe. Ove arhitek-

ture se mogu predstaviti (sli~no SIMD) modelima na Sl. 6.14 i Sl. 6.15.

I jedne i druge arhitekture koriste brze ke{ memorije u ciqu uskla|ivawa

propusnog opsega procesora i glavne memorije (multira~unari) i u ciqu smawewa

konflikata pri pristupu memoriji i pristupu resursima spre`ne mre`e, te u ciqu

umawewa efekata ka{wewa uslijed transmisije kroz mre`u (latencije), kod

multiprocesora. Posebno su izra`eni problemi u realizaciji ke{ memorija kod

multiprocesorskih sistema, zbog potrebe o~uvawa konzistencije podataka.

Razli~ite strategije se primjewuju za implementaciju upisa i o~uvawe

konzistentnosti (sa razli~itim performansama u pogledu vjerovatno}e postojawa

podataka u ke{u, rastere}ewa pristupa glavnoj memoriji, cijeni implementacije

itd.) kao npr. upis jedanput, upis kroz ke{, upis mimo ke{a i sl.

Maric Slavko
Prvi put se upi{e (kroz ke{), u glavnu memoriju, slijede}i sukcesivni upisi su samo u ke{. Ke{ motri saobra}aj na bas-u i zna da li je podatak validan u ke{-u.
Maric Slavko
Svako obra}awe sistemskoj memoriji pri upisu ide kroz ke} , ako je podatak vaqan, ~ita se iz lokalne memorije ( Ke{-evi motre saobra}aj na magistrali).
Maric Slavko
Samo za sistemske (dijeqene) varijable, lokalne varijable se upisuju u ke}. Podjela na sistemske/lokalne varijable je poznata sistemu.
Page 63: Skripta(2 Dio)

140

Sl. 6.14 MIMD PE - PE model. LM ozna~ava lokalni memorijski modul, a PE procesni element.

Sl. 6.15 MIMD PE - memorijski model. M ozna~ava globalni memorijski modul.

Multiprocesori

U multiprocesorkim sistemima (IBM ES/9000, Sequent Symmetry, IBM RP3, BBN

Butterfly, Fujitsu VPP500) svi procesorski elementi imaju pristup zajedni~koj

memoriji preko spre`ne mre`e odre|ene strukture (varijanta sa kori{tewem

memorije sa vi{e ulaza je skupa i ograni~ena na mawi broj procesora). Zajedni~ka

memorija se realizuje obi~no u vi{e modula ~ime se obezbje|uje mogu}nost

istovremenog pristupa razli~itim modulima. S obzirom na to da procesori dijele

jedinstveni (globalni) adresni prostor, konflikti pri pristupawu istim

memorijskim modulima mogu biti veoma izra`eni, a samim tim i limitiraju}i

faktor u ekspanziji ovih sistema. Naime, intenzivna kooperacija izme|u

procesora zahtijeva ~est pristup zajedni~kim memorijskim resursima

(varijablama) i mo`e rezultovati ne`eqenim efektima. U ciqu smawewa broja

konflikata, procesori mogu imati lokalne memorije u koje se smje{taju lokalni

programi i podaci. Povezivawe procesorskih i memorijskih elemenata ostvaruje se

preko spre`nih mre`a (komunikacionih podsistema). Od na~ina povezivawa u

Page 64: Skripta(2 Dio)

141

znatnoj mjeri zavise performanse, mogu}nosti i naravno cijena ovakvih sistema.

Kao {to se vidi sa Sl.6.14 i Sl.6.15, spre`ne mre`e se koriste i za povezivawe i

komunikaciju izme|u ostalih dijelova sistema (PE-PE, PE-UI procesori). U tekstu

koji slijedi, opisane su razli~ite varijante i osnovne karakteristike spre`nih

mre`a.

Spre`ne mre`e

Zajedni~ka magistrala

Najjednostavniji na~in sprezawa modula paralelnog sistema je preko zajedni~ke

magistrale (Sl. 6.16).

Sl. 6.16 Povezivawe zajedni~kom magistralom.

Ovakav na~in povezivawa naj~e{}e se koristi kod multiprocesorskih paralelnih

sistema. Moduli glavne memorije su mapirani u virtuelni adresni prostor svakog

procesora i tipi~no su isprepleteni u ciqu postizawa ve}eg propusnog opsega.

Po{to samo jedan procesor mo`e zauzeti magistralu i pristupiti zajedni~koj

memoriji, broj procesora koji se mogu vezati na magistralu je ograni~en (naj~e{}e

do 20). U ciqu smawewa konflikata i pove}awa memorijskog propusnog opsega

koriste se ke{ memorije i arhitekture sa vi{estrukim magistralama (npr. Encore

Ultramax).

Maric Slavko
Str, 2.8 ??
Slavko Maric
VME bus, Multibus, Futurebus+, Wisconsin Multicube, npr
Page 65: Skripta(2 Dio)

142

Krosbar

Veza svakog procesora sa svakim modulom globalne memorije mo`e se ostvariti i

preko krosbar spre`ne mre`e (Sl. 6.17).

M1M0 MN-1

Sl. 6.17 Krosbar spre`na mre`a za povezivawe N procesorskih elemenata sa N memorijskih modula.

Mre`u ~ini niz ortogonalnih n x n linija, gdje se veza izme|u procesorskih

elemenata i memorijskih modula ostvaruje preko prekida~kih elemenata na svakom

presjeci{tu linija. Svi procesori mogu istovremeno i bez konflikta da pristupe

memoriji, sve dok pristupaju razli~itim modulima. Iako ova {ema znatno reducira

konflikte, cijena mre`e raste proporcionalno sa N2 (brojem prekida~kih eleme-

nata) {to nije prihvatqivo za sisteme sa velikim brojem procesnih elemenata.

Primjer kori{tewa krosbar mre`e su IBM ES/9000, Fujitsu VPP500 i Cray Y-MP

multiprocesori.

Kao rezultat kompromisa izme|u performansi i cijene, nastale su mnoge

varijante spre`nih mre`a, pri ~emu se nijedna, generalno, ne mo`e smatrati

najboqom. Terminologija, u daqem opisu, }e se odnositi na procesorsko-

procesorski model povezivawa, iako su rje{ewa tako|e primjenqiva na procesor-

sko-memorijski sistem.

Za paralelni sistem koji se sastoji od N procesorskih elemenata, ~ije adrese

~ine skup P = {0,1, ... ,N-1}, spre`na mre`a se mo`e definisati skupom funkcija

povezivawa, gdje je svaka funkcija povezivawe bijekcija sa P na P. Kada se izvr{ava

neka funcija povezivawa f, onda se ostvaruje veza od procesora i ka procesoru f(i)

(procesor i {aqe podatke procesoru f(i)).

Slavko Maric
(1:1 preslikavawe)
Page 66: Skripta(2 Dio)

143

Jednostepene spre`ne mre`e

Ove mre`e se mogu predstaviti Sl. 6.18, gdje se veza ulaznih i izlaznih modula

ra~unarskog sistema ostvaruje odgovaraju}im povezivawem ulaznih selektora

(demultipleksera) i izlaznih selektora (multipleksera). Ove mre`e se nazivaju i

recirkuliraju}e, jer podatak mo`e da pro|e kroz mre`u nekoliko puta prije nego

{to stigne do odredi{ta.

0 U S 0

1 U S 1

U SN - 1

I S0

I S1

I SN-1

0

1

N-1N-1

Sl. 6.18 Principijelna {ema jednostepenih mre`a.

Hiper-kocka

Neka je ukupan broj procesora N = 2m, i neka je binarna reprezentacija adrese

svakog od N procesora . Funkcije povezivawa za ovu spre`nu

mre`u date su izrazom:

0111 ...... ppppp iiim −+−

01110111 ......)......( ppppppppppCube iiimiiimi −+−−+− = za 10 −≤≤ mi ,

gdje je ip bit komplement od . ipSvaki procesni element se mo`e funkcijama povezivawa povezati sa m drugih

procesora, tako da je ukupan broj mogu}ih povezivawa m , odnosno broj veza

je . Funkcije povezivawa i 3-dimenzionalna strukturna

reprezentacija za N = 8, date su na Sl. 6.19.

m2*

2/)2*( mm

Maric Slavko
(str.65 RM), IS(US, OS(IS
Slavko Maric
Vidjeti povezivanje seme i primjera za hiperlocku ?
Page 67: Skripta(2 Dio)

144

000 001

011

111

101100

110

010

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

(Cube 0)

(Cube 1)

(Cube 2)

Sl. 6.19 Struktura hiper-kocke i funkcije povezivawa.

)......( 0111 pppppCube iiimi −+−

1Cube

mapira bilo koju adresu na drugu, koja ima na i-tom

mjestu komplementiran bit. U predstavi na kocki, povezuje ~vorove na

horizontalnim, na dijagonalnim a Cube na vertikalnim linijama. Za

transfer su potrebna 1, 2 ili 3 koraka (recirkulacije) zavisno od izvora i

odredi{ta.

0Cube

2

Posmatraju}i konceptualnu predstavu jednostepenih spre`nih mre`a sa Sl.

2.11 funkcije povezivawa hiper-kocke bi se dobile tako da se ulazni selektori

USA ( 0 ) sa adresom A = ve`u na m izlaznih

selektora (IS) ~ije su adrese

1−≤≤ NA 0111 ...... aaaaa iiim −+−

01...aaa ii − 011... aa im +− , ( 1−≤≤ mi

0111 ...... tttt iii −+−

). S druge strane,

svaki izlazni sektor sa adresom , je povezan sa ulaznim

selektorima (US) sa adresama

tm

011 ... ttt ii − 01... tim +−t , ( 1−≤≤ mi ). Hiper-kocka je

primijewena u Caltec Cosmic Cube MIMD ma{ini, nCUBE (MIMD), Intel iPSC

(MIMD), CM-2 (SIMD) itd.

Spre`na mre`a PM2I

Funkcije povezivawa za ovu mre`u su definisane izrazom:

N, mod )2 - (P (P) PM2 N, mod )2 (P (P) PM2 ii-

ii =+=+ (N = 2 m , ) 10 −≤≤ mi

i predstavqene su na Sl. 6.20. Ukupno ima 2m funkcija povezivawa.

U ovoj {emi povezivawa, procesor sa adresom P mo`e poslati podatke svim

drugim procesorima ~ije su adrese (P ± 2i) mod N. Odre|ivawe rute za komunika-

ciju izme|u procesora mo`e se bazirati na razlici adresa odredi{nog i

izvori{nog procesora. Npr. za komunikaciju izme|u procesora 1 i 12 (N = 16),

Slavko Maric
(Fig 9,10) str. 66 RM)
Slavko Maric
m-1, umjesto n-1 ???.
Maric Slavko
Izvr{avawe funkcije rezultuje selek ci jom izlaznog selektora za ulazni selektor USj, dok bi svaki izlazni selektor ISj selektovao ulazni selektor , za svako ( ).
Slavko Maric
Takodje poznat kao barell shifter. Ovaj tip spre`nih mre`a kori{}en je u Novel Multi proce sor Array i Omen Computer sistemima.
Slavko Maric
m-1, umjesto m?
Slavko Maric
2m ????
Page 68: Skripta(2 Dio)

145

razlika adresa je 11, pa podatak mo`e sti}i na odredi{te kori{tewem funkcija

PM2I+0, PM2I+1, PM2I+3, prolaze}i kroz ~vorove 2,4. Razli~it skup funkcija

rezultova}e istim odredi{tem, ako je vrijednost ∑ i2 jednaka razlici adresa

odredi{ta i izvori{ta, gdje je i indeks PM2I funkcija iz skupa. Data manipulator

vi{estepene spre`ne mre`e su bazirane na PM2I mre`ama.

N=8

Sl. 6.20 Funkcije povezivawa PM2I spre`ne mre`e.

Re{etka (~etiri najbli`a susjeda)

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

a b c d

e

f

g

h

f

g

h

e

a b c d

Sl. 6.21 Re{etka (FNN).

Funkcije povezivawa za ovu mre`u predstavqene su na Sl. 6.21 i definisane sa:

FNN+1(P) = (P+1) mod N

FNN-1 (P) = (P -1) mod N

FNN+n(P) = (P + n) mod N FNN-n(P) = (P - n) mod N gdje se n = N podrazumijeva kao cijeli broj.

Maric Slavko
(str.69)
Page 69: Skripta(2 Dio)

146

Sli~no kao kod PM2I mre`a, rutirawe u FNN mre`i se mo`e ostvariti na bazi

razlike adresa odredi{nog i izvori{nog procesora. Ako posmatramo PM2I i

FNN mre`u gdje obe povezuje N procesora i gdje je N = 2m za PM2I i n = N (cije-

li broj) za FNN mre`u (odnosno n = ), onda je PM2I2/m2 +0 = FNN+1, PM2I–0 = FNN–1,

PM2I+m/2 = FNN+n, PM2I– m/2 = FNN–n.

Implikacija je da su FNN funkcije povezivawa podskup PM2I funkcija. Ovaj

tip spre`nih mre`a (sa razli~itim podvarijantama) je ~esto kori{ten u

aktuelnim sistemima: Intel Paragon, CM-2, ASCI Red, Cray T3E (3D-torus) itd.

Mije{awe i izmjena (Shuffle - Exchange)

Ova mre`a ima dvije funkcije povezivawa:

Shuffle = i )...( 0121 pppp mm −− )...( 1012 −− mm pppp

Exchange = )...( 0121 pppp mm −− )...( 0121 pppp mm −− .

Rutirawe podataka se realizuje nizom perfektnih mije{awa i izmjena, a

maksimalan broj rutirawa je 2m (m mije{awa i m izmjena).

Vi{estepene mre`e

Vi{estepene mre`e, generalno, obezbje|uju povezivawe N sistemskih resursa sa M

drugih resursa. Sastoje se iz odre|enog broja stepeni, pri ~emu se u svakom stepenu

nalazi odre|eni broj a x b krosbar prekida~kih elemenata. Naj~e{}e, vi{estepne

mre`e povezuju N ulaza sa N izlaza koriste}i 2 x 2 krosbar prekida~ke elemente,

koji mogu biti postavqeni u jedno od 4 stawa (Sl. 6.22).

Prekida~ki element

a 0 a 1

Direktna veza

Izmjena

Emisija odozdo

Emisija odozgo

a 0

a 0

a0

a0

a 1

a 1

a1

a1

b0

b0

b1

b1

b0

b1

b0

b1

b0

b1

Sl. 6.22 Funkcije stawa 2x2 krosbar prekida~kih elemenata.

Slavko Maric
Mnogi zna~ajni algoritmi se mogu realizovati primjenom funkcija mije{awa i izmjene (sra~unavawe polinoma, sortirawe i sl.). Ovaj tip povezivawa koristi OMEN ra~unar, RAP sistem, NYU Ultracomputer itd.
Maric Slavko
Funkcija mije{awa - Primjer =============== N Shuffle 0 0 1 2 2 4 3 6 4 1 5 3 6 5 7 7
Maric Slavko
(str.70RM)
Page 70: Skripta(2 Dio)

147

Mre`a vr{i prenos podataka od izvori{nih do odredi{nih elemenata komunika-

cionim putovima odre|enim stawima prekida~kih elemenata u pojedinim

stepenima. Stawe prekida~kog elementa se odre|uje kontrolnim bitovima na ulazu,

koji je obi~no, za i-ti stepen, i-ti bit adresne informacije rutirawa. (Naj~e{}e se

na 2x2 prekida~kom elementu koristi 1 kontrolni bit, a drugi uzima za komplement

prvog).

U tekstu koji slijedi, izlo`ene su osnovne karakteristike vi{estepenih mre`a

na primjeru generalizovane kocke.

Generalizovana kocka

Ova mre`a se sastoji iz m = log2N stepeni, gdje je N broj ulaznih odnosno izlaz-

nih elemenata koji se povezuju. U svakom stepenu postoji N/2 prekida~kih

elemenata (ukupno m * N/2) i po N ulaznih i izlaznih veza, ozna~enih od 0 … N-1.

Ako se veze ozna~e tako da gorwi (dowi) ulazi (izlazi) prekida~kih elemenata

imaju istu oznaku, onda stepen i generalizovane kocke implementira funkciju

povezivawa Cube , jer vr{i povezivawe linija ~ije se adrese razlikuju u i-toj bit

poziciji.

i

Ako se ostvaruje veza svih ulaza na po jedan izlaz, onda se koriste samo

direktna i unakrsna stawa prekida~kih elemenata. Ako je neki prekida~ki

element u stepenu i postavqen u stawe unakrsnog povezivawa, onda on izvr{ava

funkciju povezivawa. Ako se vr{i povezivawe ulaza S =

sa izlazom D = ( , onda stawe odgovaraju}eg prekida~kog elementa

u stepenu i mora biti postavqeno za unakrsno povezivawe, ako je

iCube )...( 0121 ssss mm −−

1

)... 0121 dddd mm −−

=⊕ ii ds , u

suprotnom - za direktno povezivawe. Primjer povezivawa ulaza 1 sa izlazom 4

dat je na Sl. 6.23.

Maric Slavko
Sl. 19, str. 71
Page 71: Skripta(2 Dio)

148

Sl. 6.23 Put od ulaza 1 do izlaza 4 u generalizovanoj kocki sa 8 PE.

Prekida~ki elementi su postavqeni u stawe za unakrsno povezivawe u stepenima

2 i 0 ( Cube , ) i direktno u stepenu 1. Za slu~aj prosqe|ivawa od jednog

izvora ka vi{e odredi{ta istovremeno, koristi se stawe emisije odozgo

(odozdo) prekida~kih elemenata. Za prosqe|ivawe poruka kroz mre`u, mo`e se

koristiti adresa rutirawa (routing tag) T = S ⊕ D, inicijalne du`ine m-bita, gdje

su S i D adrese izvori{ta/odredi{ta. U narednom stepenu, odnosni bit

kori{ten u prethodnom stepenu mo`e se odbaciti. Ako se koristi prenos na

vi{e odredi{ta (emisija), potrebno je 2m bita za adresu rutirawa.

2 0Cube

Topologije ekvivalentne generalizovanoj kocki su vi{estepene mre`e tipa

omega, delta i dr. Ovaj tip spre`nih mre`a kori{ten je u velikom broju paralel-

nih arhitektura: NY Ultracomputer/IBM RP3, Illinois Cedar, BBN Butterfly, i dr.

Sve navedene mre`e mogu se primijeniti u SIMD ili MIMD arhitekturama. Neke

mre`e se mogu podijeliti na nezavisne mre`e, pri ~emu svaka podmre`a ima stan-

dardne mogu}nosti odgovaraju}eg tipa i veli~ine (hiper-kocka, PM2I mre`e imaju

takvu osobinu) te mogu biti primijewene i u MSIMD (vi{estrukom SIMD) ili

razdjeqivim SIMD/MIMD sistemima. Ovakvi sistemi se mogu razdijeliti u mawe

nezavisne ma{ine razli~ite veli~ine, koje mogu raditi u SIMD ili MIMD modu

(CM-5, PASM npr.).

Spre`ne mre`e se karakteri{u na osnovu operativnog moda, upravqa~ke strate-

gije, metodologije prekidawa i topologije.

Maric Slavko
Sl. 19. Str. 71
Maric Slavko
Sl.20 [7], Siegel - promjeniti primjer).
Page 72: Skripta(2 Dio)

149

Operativni mod mo`e biti sinhroni ili asinhroni. Sinhroni mod rada mre`a se

koristi kod SIMD sistema, gdje se povezivawa i transferi (instrukcija i podataka)

realizuju upravqawem iz jedne kontrolne jedinice. Asinhroni mod karakteri{e

rad MIMD sistema (multiprocesori i multira~unari). U nekim sistemima realizo-

vana je kombinacija sinhronog/asinhronog na~ina rada.

Upravqa~ka strategija defini{e na~in upravqawa prekida~kim elementima, i

mo`e biti centralizovana, gdje centralni kontroler, fizi~ki izdvojen od logike

za prenos podataka, upravqa stawem prekida~kih elemenata, i distribuirana, gdje

je upravqa~ka logika implementirana u prekida~kim elementima.

Prekida~ki metod mo`e biti paketni (packet switching) ili baziran na fizi~kom

povezivawu na nivou kola (circuit switching). U prvom slu~aju, podaci se prenose od

izvori{ta do odredi{ta u paketima odre|ene du`ine, prolaze}i kroz niz

prekida~kih elemenata. U drugom slu~aju, podskup prekida~kih elemenata se

postavqa u stawa koja omogu}avaju postojawe direktne fizi~ke veze izme|u

izvori{ta i odredi{ta za vrijeme trajawa transfera (npr. u Intel iPSC-2 sistemu,

uspostavqawe veze izme|u izvori{ta i odredi{ta zahtijeva 350 sµ , sa brzinom

transfera od 2.8 Mbyte/s).

Mre`e koje omogu}avaju da se istovremena veza izme|u vi{e parova ulazno-

izlaznih elemenata ostvaruje bez konflikata u prekida~kim elementima mre`e

ili komunikacionim linijama, nazivaju se neblokiraju}e.

Kod mre`a za paketni prenos, postoji vi{e tehnika kojima se paketi usmjeravaju

od izvori{ta do odredi{ta. Ako je {irina prenosnog puta W (bita), i ako se

podaci iz izvora ubacuju u mre`u sa periodom Tc, onda je propusni opseg kanala

W/Tc. Efektivna brzina prenosa je mawa jer, pored informacionih podataka,

paketima se dodaju adresne informacije i informacije za detekciju/korekciju

gre{aka. Dodatno, prenosnim putovima se mogu prosqe|ivati i drugi paketi u svrhu

sinhronizacije i dijagnostike u okviru mre`e, paketi potvrde prijema drugih

paketa i sl.

Tehnika "prosqe|ivawa bez pam}ewa" (wormhole routing) prosqe|uje najmawe

dijelove paketa koji se mogu prenijeti (w bita) slijede}em elementu u prenosnom

putu, ~im su oni raspolo`ivi (jedan paket koji se prenosi mo`e da ima dijelove u

svim ~vori{tima prenosnog puta). Ako je L du`ina poruke, D broj segmenata

prenosnog puta kojima se prenosi paket, a Ts vrijeme pripreme poruke i

Page 73: Skripta(2 Dio)

150

inicijalizacije kanala, onda je (za slu~aj da nema ~ekawa zbog blokirawa u

prenosnom putu) vrijeme prenosa Ts + Tc * (L /W + D). Kod tehnika "zapamti pa pro-

slijedi" (store and forward), svako ~vori{te kroz koje poruka prolazi prvo primi

kompletnu poruku, a zatim je prosqe|uje slijede}em ~voru, pa je du`ina prenosa od

izvori{ta do odredi{ta (pod pretpostavkom da nema ~ekawa na resurse) Tn = Ts+Tc *

(L / W)*D.

Tehnika sa pam}ewem po potrebi (virtual cut through), omogu}ava prenos poruka bez

zadr`avawa, sve dok se po~etak poruke (adresno zaglavqe) daqe prosqe|uje. Ako je

slijede}e ~vori{te (izlazni kanal) zauzet, onda se poruka prikupqa i ~uva u

prihvatniku posqedweg dostignutog ~vora. Kako ulazni kanal ne bi bio zauzet u

slu~aju jedne blokirane poruke u ~voru, ~esto se realizuju ~vori{ta sa ve}im

brojem prihvatnika.

Topologija mre`e se mo`e opisati grafom kod kojeg ~vorovi predstavqaju

prekida~ke elemente, a lukovi komunikacione putove. Kod stati~kih topologija

(Sl. 6.24) veza izme|u ~vorova je fiksna i ustanovqene veze se ne mogu rekonfi-

gurisati, dok dinami~ke topologije dozvoqavaju dinami~ku promjenu

komunikacionih veza.

Sl. 6.24 Stati~ke topologije povezivawa.

Broj ~vorova grafa predstavqa veli~inu mre`e (network size). Osnovni

parametri koji se koriste za procjenu komunikacionih mogu}nosti, kompleksnosti

i cijene mre`e su: stepen ~vora (node degree-broj komunikacionih veza u jednom

Maric Slavko
str 64, RM
Page 74: Skripta(2 Dio)

151

~voru) i dijametar mre`e (maksimalni najkra}i put izme|u bilo koja dva ~vora

mre`e).

Multira~unari

Multira~unari se sastoje iz skupa procesnih elemenata (svaki sa procesorom,

lokalnom memorijom i komunikacionom jedinicom) povezanih prema odre|enom

rasporedu (topologiji). Svaki procesni element izvodi asinhrono instrukcije iz

svoje lokalne memorije. Komunikacija sa drugim procesnim elementima u sistemu

se ostvaruje izmjenom poruka. S obzirom na to da su cijena i kompleksnost limiti-

raju}i faktori za potpuno povezivawe svih procesnih elemenata, svaki procesni

element je ograni~en na povezivawe sa odre|enim brojem susjednih elemenata.

Poruka, tipi~no, treba da pro|e kroz odre|eni broj PE prije nego {to do|e do

kona~nog odredi{ta. Topologija povezivawa se ~esto bira tako da je pogodna za

implementaciju algoritama ciqnih aplikacija na odnosnoj arhitekturi. Budu}i da

je teoretski kapacitet ovakve mre`e po ~voru srDWn *

=Γ , gdje je n stepen ~vora

topolo{kog grafa (broj veza prema susjedima), W {irina puta za prenos

informacija i du`ina sredweg puta poruke, te`i se za minimalnim dijametrom

grafa (~ime se smawuje ). U ovu klasu MIMD sistema spadaju Intel iPSC2, n-CUBE,

Paragon, Cray T3E, ASCI Red i drugi. Naj~e{}e isticana prednost multira~unara je

mogu}nost jednostavnog pro{irewa dodavawem novih elemenata ({to je bio jedan od

osnovnih projektnih parametara Inmos transpjutera), dok im je mana ka{wewe u

prenosu poruka ka udaqenim procesnim elementima.

srD

srD

U daqem tekstu date su osnovne karakteristike NYU Ultracomputer-a i Intel Paragon

ra~unara, kao primjera multiprocesorske, odnosno multira~unarske arhitekture.

Page 75: Skripta(2 Dio)

152

NYU Ultracomputer

Blok {ema ovog MIMD ra~unara sa dijeqenom memorijom data je na Sl. 6.25.

Procesni elementi tako|e imaju lokalnu memoriju. Za povezivawe bilo kojeg

procesnog elementa sa bilo kojim globalnim memorijskim modulom koristi se

vi{estepena Omega spre`na mre`a, sa implementacijom koncepata objediwavawa

(combining) i Fetch & Op funkcija u prekida~kim elementima, sa ciqem pribli`ava-

wa konceptu "para-ra~unara" (PRAM, J.Schwartz: bilo koji broj PE mo`e ~itati

sadr`aj neke lokacije zajedni~ke memorije istovremeno (u jednom ma{inskom ci-

klusu); bilo koji broj PE mo`e upisivati u neku memorijsku lokaciju istovremeno).

Sl. 6.25 Blok {ema NYU Ultracomputer-a. PNI (MNI) ozna~avaju procesorski (memorisjki) mre`ni interfejs.

Dijeqenoj memoriji se pristupa indirektno, u vi{e ciklusa, preko spre`ne mre`e.

Procesni elementi su vezani na mre`u preko procesorskog mre`nog interfejsa, a

memorijski moduli preko memorijskog mre`nog interfejsa. Usmjeravawe prenosa u

j-om stepenu mre`e je odre|eno vrijedno{}u j-tog bita odredi{ne adrese (‘0’

realizuje direktno povezivawe u odgovaraju}em prekida~kom elementu u j-tom

stepenu, ‘1’ realizuje unakrsno povezivawe).

Svaki ~vor u mre`i ima mogu}nost prikupqawa i objediwavawa poruka. Poruke

koje se ne propu{taju na izlaz zbog zauzetosti odredi{ta, prikupqaju se u

prihvatniku ~vora, te se ne zahtijeva transmisija. Funkcijom objediwavawa u sva-

kom ~voru se objediwavaju zahtjevi vi{e procesnih elemenata za pristup zajedni-

~koj memorijskoj lokaciji. Tako npr., vi{e zahtjeva za o~itavawe jedne memorijske

Page 76: Skripta(2 Dio)

153

lokacije se objediwava i daqe prosqe|uje kao jedan. Po dobijawu tra`ene vrijedno-

sti u ~voru u kojem je realizovano objediwavawe, emisijom se prosqe|uje dobijena

vrijednost svim procesnim elementima koji su tra`ili o~itavawe. Kod istovreme-

nog zahtjeva za ~itawe i pisawe, vrijednost koja se upisuje {aqe se u memoriju, a

istovremeno i vra}a procesnim elementima koji su tra`ili ~itawe. Kod vi{estru-

kog upisa, primjewuje se princip serijalizacije. Fetch&add je jedna forma Fetch&op

operacije koja se izvr{ava u ~vorovima mre`e i predstavqa mo}nu generalizaciju

test&set sinhronizacione primitive.

Intel Paragon.

Blok {ema ovog multira~unara data je na Sl. 6.26. Spre`na mre`na ima topologiju

re{etke, a struktura svakog ~vora u re{etki je data na Sl. 6.27.

U/I ~voroviServisni~vorovi

Mre`a

Sl. 6.26 Blok {ema Intel Paragon ra~unara.

Procesor je i860XP, RISC arhitekture sa radnim taktom 50 MHz, 16Kb instrukcio-

nim i 16Kb ke{-om za podatke, i proto~nom jedinicom za operacije u pokretnom

zarezu. Vr{ne performanse su 75 Mflops-a za operacije u duploj preciznosti i

100Mflops-a za operacije u jednostrukoj preciznosti.

Page 77: Skripta(2 Dio)

154

i860 XPAplikacioni

procesor

Mre`niinterfejs

i860 XPprocesor

porukaPort

za pro{irewe

RPM

Memorijskikontroler

16 MB

DRAM

32 MB

Takt 50MHz 400MB/s

Sl.6.27 Struktura procesnog elementa.

Komunikacija izme|u procesora odvija se na bazi poruka. Svaki ~vor koji {aqe

poruku drugom procesoru dijeli poruku u pakete, koji se prenose odvojeno. Poruke

se prenose kao niz 16 bitnih rije~i preko MRC-u (Mesh Routing Component) (Sl. 6.28).

Algoritam usmjeravawa je E-Cube, gdje se svi podaci prvo usmjeravaju horizontalno,

a zatim vertikalno za razliku odstojawa po horizontali/vertikali (Sl. 6.29). Na

hardverskom nivou, koristi se tehnika "prosqe|ivawa bez pam}ewa".

iMRC

10 jednosmjernih portova

16 bitni paralelni transfer+ paritet

200 po portu MBytes/s

Sl. 6.28 Komponenta za rutirawe u re{etki.

Page 78: Skripta(2 Dio)

155

GP~vor

GP~vor

Sl. 6.29 E-cube rutirawe (GP ozna~ava procesni element).

2.1.1 Ra~unarski sistemi upravqani tokom podataka

Izvo|ewe nekog algoritma na ra~unarskom sistemu realizuje se ure|enim skupom

operacija (ma{inskih instrukcija) izme|u kojih postoje relacije pretho|ewa i

koje se izvode nad odre|enim podacima. Dok se kod von Neumann-ovih ma{ina

operacije izvode sekvencijalno, pri ~emu je sekvenca odre|ena tokom programa, kod

sistema upravqanih tokom podataka izvr{avaju se one operacije koje imaju

raspolo`ive potrebne operande (uz uslov raspolo`ivosti procesnih resursa).

Dakle, operacije se izvode paralelno i asinhrono, i nema ne`eqenih efekata koji

se javqaju u multiprocesorskim sistemima uslijed istovremenih i nesinhronizova-

nih pristupa zajedni~koj memoriji. ^im se realizuje neka operacija, ona produkuje

izlaz (nove podatke), a novi podaci ~ine spremnim za izvr{ewe novi skup operaci-

ja. Dakle, izvr{ewe operacija upravqano je tokom podataka u sistemu. Ovaj proces

se modelira grafom, gdje se ~vorovima (aktorima) modeliraju operacije i pravilo

okidawa (izvr{ewa), a lukovima podaci potrebni za izvo|ewe operacija, te produ-

kti operacija i transmisija podataka.

Postoje dva tipa ovih arhitektura: stati~ke i dinami~ke. Stati~ke arhitekture

dopu{taju postojawe samo jednog podatka na bilo kom luku u bilo kom trenutku

(Static Dataflow ma{ina). Dinami~ke arhitekture dopu{taju da se generi{e vi{e

podataka izme|u dva ~vora tako {to se podaci iz razli~itih produkcija (iteracija)

posebno markiraju za jedinstvenu identifikaciju i za adekvatno uparivawe sa

odgovaraju}im podacima na drugim ulaznim granama neke operacije (Manchester

ma{ina).

Page 79: Skripta(2 Dio)

156

2.1.2 Sistemi upravqani zahtjevom

Kod ovih sistem izvode se samo one instrukcije, ~iji su rezultati potrebni za

izvo|ewe drugih instrukcija. Sve operacije ~ine ugnije`den skup, gdje se u svakom

koraku vr{i redukcija izra~unavawem najdubqe ugnije`denih operacija.

2.1.3 Performanse paralelnih sistema

Postoji {irok interes za ocjenu performansi paralelnih i uop{te ra~unarskih

sistema i to tako da se performanse iska`u nekim jednostavnim indeksom, koji, s

jedne strane, treba da iska`e mogu}nost sistema, a s druge strane, da bude osnov za

komparaciju razli~itih sistema.

Za ovo interes imaju prije svega krajwi korisnici koji bi na taj na~in

raspolagali va`nim parametrom za izbor jedne od opcija pri nabavci ra~unarske

opreme. Tako|e, ovakav parametar bi bio veoma va`an za procjenu mogu}nosti

sistema da zadovoqi predvi|eni rast zahtjeva za obradu u budu}nosti.

Ovakav indeks je potreban i proizvo|a~ima kako bi optimizovali arhitekturu,

operativni sistem i programske prevodioce i realizovali proizvod za `eqenu

ciqnu grupu, kao i mnogim drugima: ekonomistima, menaxmentu itd.

Postoji nekoliko osnovnih problema za dobijawe takvog indikatora: prvi je

objektivna te{ko}a da se kompleksni, me|usobno isprepleteni faktori redukuju u

jedan reprezentativni indikator; drugi je potreba za verifikovanim standardom i

nezavisnom institucijom koja bi verifikovala proklamovane karakteristike. Na

kraju, problem predstavqa i obezbje|ewe izvo|ewa testirawa u pribli`no

jednakim radnim uslovima.

Jedan od najranijih poku{aja da se performanse ra~unara kvantifikuju datira

po~etkom 60-tih godina (J.C.Gibson), i zasniva se na mjerewu i sra~unavawu vremena

izvr{ewa "prosje~ne" instrukcije; recipro~na vrijednost ove veli~ine daje broj

izvr{ewa prosje~nih instrukcija u sekundi (MIPS). Ovaj test ne uzima relativnu

snagu "prosje~nih" instrukcija u razli~itim arhitekturama, pa se zato mo`e kori-

stiti samo za komparciju ~lanova iz iste arhitekturne familije. Iz navedenog

razloga, razvijeni su sinteti~ki test programi, sa ciqem da se reprezentuju

tipi~ne aplikacije, pisane u jeziku visokog nivoa. Whestone test reprezentuje

izvo|ewe milion "Whestone" instrukcija (nagla{eno numeri~kih i FP instrukcija),

Page 80: Skripta(2 Dio)

157

a inverzna vrijednost vremena izvr{ewa (u sekundama) daje performanse u

milionima (Whestones) instrukcija. Dhrystone test uzima u obzir strukturu podataka

i operacija koje se sre}u u programima. LINPACK test je u po~etku bio FORTRAN

program kojim se rje{ava sistem od 100 linearnih jedna~ina u duploj preciznosti

(rezultat testa se iskazuje u poznatim MFLOPS-a). U ciqu boqe ocjene

performansi, test je modifikovan za rje{avawe jedna~ina sa 1000 nepoznatih sa

mogu}no{}u vlastite implementacije testa. Kako su procesne mogu}nosti

superra~unara dramati~no rasle, rje{avawe ovog sistema jedna~ina se izvodilo u

veoma kratkom vremenskom intervalu, te su pravila za LINPACK test modifikovana

tako da je mogu}e koristiti sistem jedna~ina sa proizvoqnim brojem nepoznatih

(MP-LINPACK).

Iako iz navedenih razloga ovi testovi daju samo orijentaciju o mogu}nostima

razli~itih arhitektura, ipak, mnogi drugi aspekti mogu biti i zna~ajniji za

korisnika prilikom izbora ra~unarske opreme kao npr. mogu}nosti U/I podsiste-

ma, sistema za upravqawe bazama podataka, komunikacioni protokoli, podr{ka za

odr`avawe, procesni zahtjevi aplikacija i naravno cijena.

Slavko Maric
Jov. napomena
Page 81: Skripta(2 Dio)

158

7

Programirawe paralelnih sistema

Iako se, iz prethodno izlo`enog, vidi izuzetna kompleksnost i raznovrsnost

problema u podru~ju arhitektura, jo{ ve}i izazovi postoje u podru~ju programira-

wa paralelnih sistema. Napredak u ovoj oblasti tekao je sporije iz dva osnovna

razloga: objektivna kompleksnost problema i nepostojawe jedinstvenog modela

paralelne arhitekture kao generalne paradigme za paralelno procesirawe, analog-

ne modelu Von Neuman-ove ma{ine za sekvencijalno programirawe.

Rje{ewe problema le`i u odgovoru na jednostavno pitawe: "Kako realizovati

program, kojim se rje{ava `eqeni aplikativni problem, tako da wegovo izvo|ewe

na paralelnoj arhitekturi bude optimalno?". Optimalno izvo|ewe podrazumijeva

postojawe funkcije ciqa koja mo`e biti: minimalno vrijeme izvr{ewa programa

(algoritma), ravnomjerno optere}ewe procesnih resursa, minimalna cijena izvo|e-

wa i sl.

Uobi~ajena funkcija ciqa za izvo|ewe neke aplikacije na paralelnom sistemu u

teoretskim razmatrawima je minimizacija vremena izvr{ewa, a za skup nezavisnih

programa, optimalan balans optere}ewa po procesnim elementima. U praksi,

naj~e{}e je od interesa dobijawe najpovoqnijeg odnosa performansa/cijena, gdje

cijena ukqu~uje ne samo cijenu procesirawa nego i razvoja aplikacije.

Prethodno navedeno pitawe implicira inherentno postojawe paralelizma u

aplikativnom problemu, te optimalnu eksploataciju istog u paralelnom sistemu.

Aplikativni problem se mo`e rije{iti odre|enim ure|enim skupom operacija -

algoritmom, koji se mo`e posmatrati na razli~itim nivoima apstrakcije: nivou

zadataka, podzadataka, procedura, grupa instrukcija, samih instrukcija ili elemen-

tarnih operacija. Izme|u odre|enih operacija (na svakom nivou) mo`e postojati

Page 82: Skripta(2 Dio)

159

zavisnost u pogledu redoslijeda izvo|ewa (proistekla iz zavisnosti po podacima

ili kontrolnoj zavisnosti). Za operacije izme|u kojih ne postoji zavisnost,

ka`emo da se mogu izvesti (procesirati) istovremeno (paralelno).

Ponovimo uslove nezavisnosti grupa operacija (iz ta~ke 4.4.1 – upravqa~ki

hazardi) onako kako je to prvobitno definisao Bernstein (1966), koriste}i

ulazno/izlazne skupove podataka. Varijable se klasifikuju u 4 kategorije:

varijable koje se samo ~itaju, varijable koje se samo upisuju, varijable koje se

prvo ~itaju, a zatim upisuju, varijable koje se prvo upisuju, a zatim ~itaju.

Ako se skupovi ovih tipova varijabli ozna~e sa W , onda se grupe opera-

cije sa Sl. 7.1 a) mogu izvesti kao na Sl. 7.1 b), pod uslovom da je:

iiii ZYX ,,,

1) 0)()( 222111 =ZYXZYW UUIUU ,

2) 0)()( 222111 =ZYWZYX UUIUU ,

3) . 0)( 3321 =YWXX UII

Ako navedeni uslovi nisu ispuweni, onda postoji antizavisnost, direktna

zavisnost ili izlazna zavisnost po podacima, respektivno.

U svakom trenutku u procesu izvo|ewa, za skup operacija izme|u kojih ne postoji

zavisnost u pogledu redoslijeda izvo|ewa i koje su spremne za izvo|ewe ka`emo da

~ine slobodan skup (intuitivno, optimalan raspored treba da omogu}i izvo|ewe

{to ve}eg broja slobodnih operacija u svakom slijede}em vremenskom intervalu).

1 P

P3

P2

P1

P3

P2

a) Serijska b) Paralelno-serijska Sl. 7.1 Sekvence izvo|ewa operacija.

Page 83: Skripta(2 Dio)

160

Bez obzira na to na kom nivou se razmatra problem, krajwi rezultat je raspodjela

izvr{ewa bazi~nih (ma{inskih) instrukcija po procesorima. Problem optimalnog

izvo|ewa (sa stanovi{ta zadate funkcije ciqa) u osnovi se sastoji iz:

• problema grupisawa (podjele problema na zrna (grains), veli~ine konkurentnih

modula-zrna koja se raspore|uju po procesnim elementima i strukture elemen-

tarnih operacija po zrnima),

• problema optimalnog raspore|ivawa zrna po procesnim elementima.

Rje{avawe ovih problema zahtijeva da se u razmatrawe ukqu~i i niz dodatnih para-

metara: karakteristike i mehanizmi me|uprocesorske komunikacije, te mogu}nost

preklapawa komunikacionih i ra~unskih operacija, heterogenost procesorskih i

memorijskih elemenata i sl.

U realnim sistemima, naglasak je na {to efikasnijoj eksploataciji parale-

lizma, uz {to mawe optere}ewe programera. Automatska identifikacija i eksploa-

tacija paralelizma, sofistikovano okru`ewe i alati, pogodni mehanizmi i metode

za eksplicitnu specifikaciju i eksploataciju paralelizma su odnosni aspekti u

ovom domenu koji su predmet kontinualnog istra`ivawa i usavr{avawa.

7.1 Vremenski gubici u paralelnim sistemima

Teoretski, maksimalno ubrzawe koje se mo`e posti}i izvo|ewem programa na

paralelnom sistemu sa N procesora jednako je broju procesora. U takvom scenariju,

svih N procesora bi izvodilo samo korisne instrukcije, i svi bi po~eli i zavr{i-

li procesirawe u istim vremenskim trenucima. U praksi, ostvarivawe ovakvih

maksimalnih performansi se ne posti`e zbog gubitaka vremena prouzrokovanih:

• komunikacionim ka{wewima,

• sinhronizacijom izme|u procesora,

• nezaposleno{}u procesora (prazni hodovi procesora),

• neophodnim upravqa~kim aktivnostima operativnog sistema.

Komunikaciona ka{wewa i mehanizmi

Kao {to smo prethodno pomenuli, izvo|ewe ra~unawa (procesa, niti, grupa instru-

kcija) se u paralelnim sistemima raspodjequje po procesnim elementima. Proceso-

ri koji izvode ra~unawa izme|u kojih postoji zavisnost po podacima, moraju imati

Page 84: Skripta(2 Dio)

161

mogu}nost me|usobne komunikacije u ciqu izmjene podataka. Procesori izmjewuju

podatke na dva osnovna na~ina: preko zajedni~ke memorije ili preko komunikaci-

onih kanala (kompromisni koncept je koncept po{tanskog sandu~eta). Implikacije

me|uprocesorske komunikacije su komunikaciona ka{wewa i konflikti zbog

kori{tewa zajedni~kih (komunikacionih) resursa. Komunikaciona ka{wewa se

odnose na vrijeme koje je potrebno za transfer podataka od izvora do odredi{ta, a

konflikti u kori{tewu resursa nastupaju kada se pojavi vi{e zahtjeva za

kori{tewe jednog resursa, {to rezultuje dodjeqivawem resursa jednom zahtjevu i

~ekawem ostalih.

Prilikom prenosa poruka kroz spre`nu mre`u npr., vi{e poruka istovremeno

mo`e zahtijevati prolaz kroz jedan ~vor, uz mogu}u degradaciju komunikacionog

saobra}aja ne samo u okolini navedenog ~vora, nego i u cijeloj mre`i. Za

redukovawe ovih konflikata koriste se razli~ite tehnike: npr. objediwavawe

istih komunikacionih zahtjeva u komunikacionim ~vorovima, primijeweno u NYU

Ultracomputer/IBM RP3, ili razli~ite softverske adaptivne tehnike usmjeravawa

poruka koje uzimaju i obzir i teku}e stawe saobra}aja u mre`i. Prema tome,

ka{wewa uslijed izmjene podataka izme|u procesora, mogu u znatnoj mjeri uticati

na performanse paralelnog izvo|ewa.

Za ilustraciju, u tabeli 7.1 za neke paralelne i distribuirane sisteme date su

aproksimativne vrijednosti parametara komunikacionih ka{wewa Ts i Tw u [ sµ ]

(vrijeme incijalizacije kanala i vrijeme prenosa izme|u procesora po rije~i).

Tipi~no ka{wewe pri transferu 100 bajtne poruke izme|u procesora je, za prvu

generaciju multira~unara (1983-1987) 6000 sµ , za drugu generaciju (1988-1992) 5 sµ

i tre}u (aktuelnu) generaciju ispod 0.5 sµ [45].

Tabela 7.1 Aproksimativne vrijednosti parametara komunikacionih ka{wewa za neke paralelne ra~unarske sisteme.

Sistem Ts [ sµ ] Tw [ sµ ]

Cray-T3E 0.013

Intel Paragon 121 0.07

Thinking Machines CM-5 82 0.44

Intel DELTA 77 0.54

nCUBE-2 154 2.4

Radna stanica na Ethernet-u 1500 5.0

Maric Slavko
Modifikovati tabelu
Page 85: Skripta(2 Dio)

162

Mehanizam komunikacije kod multiprocesora je (naj~e{}e) direktan pristup

dijeqenim varijablama u zajedni~koj memoriji. Ovakvi mehanizmi podlo`ni su

nepredvi|enim i ne`eqenim efektima: kod asinhronog izvo|ewa ra~unawa po

procesorima bilo koja izmjena u sekvenci pristupa zajedni~kim varijablama mo`e

produkovati razli~it krajwi rezultat (alternativno, procesori mogu komunici-

rati i mehanizmom poruka).

Kod multira~unara, komunikacija se realizuje na bazi prenosa poruka,

kori{tewem specifi~nih naredbi odre|enog programskog jezika ili biblioteke

funkcija. Nijedan pristup jo{ uvijek nema adekvatno rje{ewe za fundamentalne

probleme memorijske latentnosti i komunikacionih ka{wewa.

Problemi sa odr`awem koherentnosti ke{ memorija i nagomilavawem

konflikta na magistrali, kod sistema sa zajedni~kom memorijom, limitiraju

pove}awe broja procesora u ovim sistemima. Cijena komunikacije izme|u proce-

sora kod MIMD multira~unara sa distribuiranom memorijom name}e eksploataciju

krupnozrnastog paralelizma na globalnom nivou: ra~unawa (implicitno) treba da

izvedu hiqade instrukcija bez prekida (promjene konteksta) ili poziva

operativnog sistema. Cijena kreirawa, blokirawa, destrukcije, komunikacije i

sinhronizacije za ra~unawa, mo`e iznositi stotine (pa i hiqade) procesorskih

ciklusa. Npr. kod sistema baziranih na standardnim mikroprocesorima,

pristizawe poruke u neki procesni element mo`e:

• generisati prekid za odredi{ni procesor, uz aktivirawe sekvence za obradu

poruke,

• detektovati sam procesor periodi~nim ispitivawem da li je poruka stigla,

• biti detektovano strukturom programa, ako se obezbijedi, da za svako slawe

poruke iz izvori{nog procesora, odredi{ni procesor izvede korespondentu

prijemnu primitivu.

Svi navedeni na~ini su relativno spori i neefikasni za sitnozrnastu

komunikaciju, neophodnu za eksploataciju sitnozrnastog paralelizma.

Napori za prevazila`ewe ovih problema i}i }e vjerovatno u pravcu razvoja

vi{enitnih arhitektura, gdje }e cijena upravqawa nitima biti relativno mala.

Sa programskog aspekta, komunikacija se realizuje odgovaraju}im

konstrukcijama programskih jezika.

Page 86: Skripta(2 Dio)

163

CSP (communicating sequential programs) jezici podr`avaju iskqu~ivo komunikaciju

preko kanala: komunikacija se realizuje eksplicitnim imenovawem odredi{ta

komunikacije. Izlazna naredba ima format:

<output command> : = <destination> ! < expression >

a prijem se inicira ulaznom naredbom

<input command> : = <source> ? target variable.

Osnovni koncept komunikacije u ADA programskom jeziku su randevui: randevu

se ostvaruje sa dva doga|aja:

• pozivom koji jedan zadatak upu}uje drugom,

• prihvatom komunikacije od strane drugog zadatka izvo|ewem ACCEPT

naredbe (Sl. 7.2).

Ipak, ADA dozvoqava i komunikaciju preko dijeqenih varijabli

kategorizacijom varijable SHARED kvalifikatorom.

CALL ACCEPT

Sl. 7.2 ADA randevui.

H.F.Jordan , predla`e slijede}e tipove varijabli u programskim jezicima za parale-

lno procesirawe u sistemima sa distribuiranom memorijom:

• private - jedno ime varijable ovog tipa referencira u memoriji svakog procesora

specifi~nu memorijsku lokaciju,

• unique - jedna varijabla ovog tipa postoji samo u memoriji jednog procesora,

• cooperative update - postoji jedna kopija varijable u svakom memorijskom modulu.

A`urirawe se mora izvesti istovremeno nad svim kopijama.

• replicated - a`urirawe se izvodi nad lokalnim kopijama podataka (npr. kod

indeksne varijable koja uzima isti opseg vrijednosti u svim procesorima).

Page 87: Skripta(2 Dio)

164

Tako|e se predla`u globalni komunikacioni mehanizmi: emisija (broadcast),

univerzalna emisija i univerzalna izmjena za prosqe|ivawe i izmjenu podataka.

Concurrent Pascal zahtijeva eksplicitnu specifikaciju dijeqenih varijabli te ko-

ntrolisan pristup preko definisanih procedura za rad nad dijeqenim varijablama.

Compositional C++ (CC++, Caltec/Chandy, Kesselman) ima ekstenziju standardnog C++

jezika kojom se defini{u procesorski objekti koji se koriste za reprezentaciju

lokalnog adresnog prostora: ra~unawa koja se izvode u procesorskom objektu i koja

rade sa podacima definisanim u tom objektu, rade u lokalnom (i zato "jeftinom")

adresnom prostoru. Za referencirawe podataka i funkcija u drugim procesorskim

objektima, koriste se globalni pokaziva~i. Primjer pristupa ne-lokalnim podaci-

ma iz nekog ra~unawa (niti) iz procesorskog objekta , dat je na Sl. 7.3. 1objp

Svako referencirawe podataka u drugom procesorskom objektu se realizuje:

• formirawem i slawem poruke udaqenom procesorskom objektu (uz

blokirawe niti ra~unawa koje je iniciralo referencirawe),

• kreirawem nove niti za pristup udaqenom objektu. Pristup se realizuje

zavr{etkom izvo|ewa kreirane niti na udaqenom procesoru,

• vra}awem tra`ene vrijednosti inicijalnoj niti i nastavkom izvo|ewa iste.

pobj2 pobj1

*gptr var_x

*gptr = 3var_x = 3 *

? var_x var_y += *gptr

write(*gptr,3)

ack

value = 3

read (*gptr)

Sl. 7.3 Udaqeno pisawe/~itawe.

MPI (message passing interface) procesi izvode programe pisane u standardnim

sekvencijalnim jezicima. Komunikacija izme|u procesa se realizuje u odre|enim

ta~kama pozivom odgovaraju}ih funkcija iz MPI biblioteke za slawe i prijem

poruka (MPI-SEND i MPI-RECV). Grupa procesa mo`e biti istovremeno ukqu~ena u

proces grupne komunikacije (emisije npr.) kroz MPI mehanizam komunikatora.

Page 88: Skripta(2 Dio)

165

Prosqe|ivawe poruka je nedeterministi~ko (ako procesi A i B {aqu poruku

procesu C, bez obzira na redoslijed slawa, redoslijed prijema nije odre|en).

Sinhronizacija

Ra~unawa u procesnim elementima se izvode brzinom koja se ne mo`e ta~no

predvidjeti. Posqedica toga je asinhrono generisawe akcija, doga|aja i podataka

koji se koriste u drugim procesima u paralelnom sistemu. U ciqu ure|ivawa ovih

doga|aja, uvodi se skup ograni~ewa (sinhronizacija) koja se koriste za odga|awe

izvo|ewa odre|enih ra~unawa, kako bi se zadovoqili potrebni uslovi. Osnovni

tipovi sinhronizacije kod multiprocesora su me|usobno iskqu~ivawe i

sinhronizacija uslova. Me|usobno iskqu~ivawe obezbje|uje da procesi pristupaju

ekskluzivno fizi~kim ili virtuelnim resursima. Dio koda koji se izvodi

ekskluzivno od strane nekog procesa i u kojem se (eksluzivno) pristupa dijeqenoj

varijabli, naziva se kriti~na sekcija.

Sinhronizacija uslova je tip sinhronizacije gdje procesi moraju da ~ekaju dok

stawe dijeqene varijable, koje zavisi od rezultata izvo|ewa grupe procesa, ne

dobije `eqenu vrijednost.

Kod me|usobnog iskqu~ivawa proces detektuje status kriti~ne sekcije, i ako je

slobodna, postavqa status kriti~ne sekcije u zauzeto a zatim izvodi kriti~nu

sekciju. Ako je kriti~na sekcija zauzeta, proces mo`e nastaviti sa ispitivawem

statusa kriti~ne sekcije (kontinualno ili periodi~no) ne osloba|aju}i procesor,

ili se mo`e implementirati mehanizam koji proces stavqa u stawe ~ekawa a

procesor osloba|a za druge aktivnosti.

Proces koji ekskluzivno izvodi kriti~nu sekciju, na izlasku iz kriti~ne

sekcije postavqa indikator statusa kriti~ne sekcije u slobodno. Ako su neki

procesi u redu ~ekawa za kriti~nu sekciju, onda se aktivira jedan od procesa sa

liste ~ekawa, na bazi odre|enog prioriteta.

Naj~e{}a implementacija ovog mehanizma je preko nedjeqivih P(s) i V(s) primi-

tiva (Dijkstra), gdje P primitiva osigurava ekskluzivan ulaz u kriti~nu sekciju; s je

varijabla stawa zauzetosti kriti~ne sekcije, a V primitivom se reguli{e

napu{tawe kriti~ne sekcije. Pro{ireni semafor koji je razvio Agervala (1977)

omogu}ava da proces zahtijeva vi{e resursa istovremeno. Uslovno kriti~na sekcija

je strukturirani, korisni~ki orijentisani mehanizam (csect v do await c:s) koji

obezbje|uje da proces ne mo`e u}i u kriti~nu sekciju s dok se ne ispuni uslov c, i da

Page 89: Skripta(2 Dio)

166

ne mo`e do}i do preklapawa izvo|ewa razli~itih kriti~nih sekcija nad istim

dijeqenim resursom v.

Ekstenzije uslovno kriti~nih sekcija su monitori, koji ~ine skup dijeqenih

podataka i skup funkcija preko kojih se jedino mo`e pristupiti strukturama

dijeqenih podataka. Monitorske funkcije obezbje|uju sinhronizaciju konkuren-

tnih procesa.

Sinhronizacija uslova se naj~e{}e realizuje mehanizmom barijere. Svi procesi

moraju sti}i na barrier naredbu (koja se stavqa u kod svakog procesa). Samo jedan

proces (nakon {to su svi stigli na barijeru), prolazi kroz barijeru, i izvodi kod

izme|u barrier i endbarrier naredbe (Sl. 7.4). Nakon toga, svi procesi mogu nastaviti

izvo|ewe naredbe iza barijere.

barrier

endbarrier

Sl. 7.4 Sinhronizacija na barijeri.

Varijanta fazi-barijere dopu{ta da izvo|ewe procesa bude u nekoj sekciji koda

prilikom sinhronizacije.

Sinhronizacija mehanizmom doga|aja, koristi primitive wait i signal. Wait

primitiva obezbje|uje stavqawe procesa u stawe ~ekawa na doga|aj (ili

kombinaciju doga|aja). Drugi, aktivni procesi, signaliziraju primitivom signal

nastanak odre|enih doga|aja i kada se desi doga|aj na koji blokirani proces ~eka,

operativni sistem ga prevodi u stawe procesa spremnog za izvo|ewe.

U paralelnim multira~unarskim sistemima, sinhronizacija se realizuje meha-

nizmom poruka. Neke od varijanti primitiva za izmjenu poruka, opisane su

prethodno.

Za implementaciju sinhronizacije pri pristupu zajedni~kim resursima

neophodna je bila realizacija nedjeqivih operacija ispitivawa i a`urirawa

memorijskih lokacija na hardverskom/instrukcionom nivou. Razli~iti sistemi

imaju razli~itu formu ovih instrukcija: TEST-AND-SET (TAS), COMPARE-AND-SWAP

Page 90: Skripta(2 Dio)

167

(CAS) i sl. U vi{eprocesorskim sistemima mora se obezbijediti da procesor koji

izvodi navedene instrukcije, ima kontrolu nad pristupom memoriji za cijelo

vrijeme izvo|ewa instrukcije.

Fetch & add operacija omogu}ava konkurentno izvr{avawe generalizovane TAS

instrukcije uz serijalizaciju pristupa memoriji. Kod sinhronizacionih metoda na

bazi bit mapa (HEP sistem), svakoj dijeqenoj varijabli se pridru`uje sync i data

poqe. Svaka sinhronizaciona instrukcija je nedjeqiva i sadr`i poqe maske, koje

sadr`i informacije potrebne za ispitivawe i modifikaciju sync poqa (forma: OP

Address, Mask). Operacija ~itawa, npr. testira odre|eni bit sync poqa, i ako je on

‘1’ (raspolo`iv) ~itawe se realizuje, a odnosni bit postavqa u ‘0’.

Prazni hodovi procesora

Prazni hodovi procesora su periodi u kojima procesor ne obavqa korisne

instrukcije. U paralelnim sistemima (zbog zavisnosti po podacima ra~unawa

(operacija) na razli~itim procesorima) prazni hodovi su naj~e{}e uzrokovani:

• ~ekawem na zavr{etak ra~unawa koja produkuju podatke,

• ~ekawem na prosqe|ivawe podataka (komunikaciona ~ekawa),

• ~ekawem na dodjelu posla.

Navedena, ~ekawa mogu poticati od neodgovaraju}eg rasporeda ra~unawa po proces-

nim elementima, redoslijeda izvo|ewa ra~unawa i dr. Navedene pojave produ`avaju

vrijeme izvr{ewa programa, smawuju iskori{tewe procesora i pove}avaju cijenu.

Gubici uslijed aktivnosti operativnog sistema

U paralelnim sistemima operativni sistem je, kao i kod jednoprocesorskih siste-

ma, odgovoran za upravqawe izvr{ewem programa. Ove aktivnosti podrazumijevaju

stati~ko/dinami~ko mapirawe procesa po procesnim elementima, upravqawe

procesima i resursima, nadgledawe aktivnosti u sistemu i sl. Iako su funkcije

operativnih sistema visoko optimizovane, ove aktivnosti tako|e produ`avaju

vrijeme izvo|ewa programa u paralelnom okru`ewu.

Page 91: Skripta(2 Dio)

168

7.2 Granularnost paralelizma

Da bi se neki program izveo na paralelnoj arhitekturi konkurentnim procesira-

wem na vi{e procesnih elemenata, on se mora razdijeliti na parcijalno ure|en

skup zadataka (T, ). Efikasnost paralelnog izvo|ewa zavisi od vi{e parametara:

broja i karakteristika procesora i komunikacionih resursa, broja modula na koje

se program dijeli za izvo|ewe i strukture veza izme|u razdijeqenih modula, iznosa

pojedinih komponenata vremenskih gubitaka itd. Pove}awe broja modula i broja

procesora koji se pridjequju programu za izvr{ewe mo`e rezultovati degradacijom

performansi, ako vremenski gubici (zbog intenzivirawa me|uprocesorske komuni-

kacije) znatno rastu sa porastom broja modula i procesora.

p

Granularnost modula-zrna ima zna~ajan uticaj na kvalitet razdiobe i defini{e

se kao odnos potrebnog vremena ra~unawa u odnosu na komunikaciona ka{wewa

generisana zrnom (R/C). Ka`e se da je zrno sitno ako je odnos R/C mali (<< 1), a

krupno ako je odnos R/C relativno visok (>> 1). Sitna zrna su mikrooperacije i

instrukcije; grupe instrukcija ~ine zrna sredweg nivoa granularnosti, a krupna

zrna su funkcije i procesi (zadaci). Generalno, dekompozicija na sitna zrna

implicira ve}i iznos paralelizma, ali i ve}e gubitke vremena, zbog pove}awa

iznosa komunikacije i sinhronizacije. Analogno, krupnija zrna impliciraju mawi

stepen paralelizma, ali i mawe vremenske gubitke.

Kako je to prethodno izlo`eno paralelizam na nivou mikrooperacija i

instrukcija eksploati{e se na hardverskom nivou, paralelizam sredweg nivoa se

mo`e eksploatisati hardverski, softverski ili kombinovano (programske petqe,

niti) dok se krupnozrnasti paralelizam eksploati{e softverskim tehnikama.

Da bi se ostvarile dobre performanse izvo|ewa, potrebno je napraviti balans

izme|u iznosa paralelizma me|u programskim modulima i odgovaraju}eg iznosa

vremenskih gubitaka. Zato je u odre|enim slu~ajevima potrebno grupisati

sitnozrnaste zadatke u ve}a zrna, a u drugim dekomponovati krupna zrna u

sitnozrnaste module. Da bi se paralelizam eksploatisao, potrebno je prvo

izvr{iti identifikaciju istog, a zatim ga na odgovaraju}i na~in specifikovati

ma{ini.

Identifikacija i specifikacija paralelizma, mo`e se realizovati:

Page 92: Skripta(2 Dio)

169

• automatski u fazi prevo|ewa, a na osnovu relacija zavisnosti po podacima

pojedinih grupa naredbi,

• eksplicitno od strane programera, odgovaraju}im instrukcijama programskog

jezika,

• kombinovano.

7.3 Automatska identifikacija i specifikacija paralelizma

U ovom pristupu, sav teret identifikacije i specifikacije na~ina na koji }e se

eksploatisati paralelizam (prestrukturirawe, particionisawe, mapirawe) preu-

zimaju programski prevodioci, a korisnici realizuju programe koriste}i standar-

dne jezike. Pored toga {to korisnik ne ula`e nikakav dodatni napor u odnosu na

sekvencijalno programirawe, ovaj pristup omogu}ava direktnu eksploataciju

postoje}ih sekvencijalnih programa (ponovo prevedenih paraleliziraju}im

prevodiocem) na paralelnim sistemima. Osnovni problem je {to paraleliziraju}i

kompajleri te{ko mogu, u op{tem slu~aju, identifikovati visok nivo paralelizma

(npr. zbog nemogu}nosti da odrede vrijednosti pokaziva~a u fazi prevo|ewa, zbog

ogromnog broja kompleksnih me|uzavisnosti i sl.). Cijena koja se pla}a za komodi-

tet programera je, ~esto, zna~ajno umawewe ubrzawa izvo|ewa aplikacije i iskori-

{tenosti resursa paralelne ma{ine.

Paraleliziraju}i kompajleri koriste razli~ite postupke transformacije

izvornog programa u ciqu postizawa {to ve}eg iznosa paralelizma u

trasformisanom kodu, naravno uz o~uvawe semanti~kog integriteta izvornog

programa.

Optimizacija po tragu (trace scheduling) npr., je tehnika globalne optimizacije,

koja se zasniva na selidbi operacija (prije/poslije granawa) u ciqu pove}awa bazi-

~nih blokova (i time iznosa paralelizma) po najvjerovatnijem putu izvo|ewa.

Optimizacija programskih petqi je od vitalnog zna~aja za eksploataciju parale-

lizma, jer petqe potencijalno sadr`e veliki iznos paralelizma i izvo|ewe petqi

je naj~e{}e dominantni dio izvo|ewa programa.

Osnovne tehnike optimizacije su vektorizacija, razmotavawe petqi i softver-

ska proto~nost. Tehnika vektorizacije nastoji iskazati operacije u petqi skupom

vektorskih operacija; razmotavawem petqi za odre|eni broj iteracija pove}ava se

Page 93: Skripta(2 Dio)

170

bazi~ni blok u tijelu petqe, i na taj na~in pove}ava iznos paralelizma koji se

mo`e eksploatisati pri izvo|ewu. Tehnikom softverske proto~nosti, transfor-

mi{e se tijelo petqe u ciqu omogu}ewa direktne eksploatacije paralelizma

izme|u iteracija i u okviru jedne iteracije (Sl. 7.5).

Neki od ad-hok optimizacionih postupaka su: zamjena indukcionom varijablom u

izrazima u petqi, preimenovawe skalarnih varijabli, zamjena slijede}ih referen-

cirawa skalara wegovim izrazom, dijeqewe petqi, dijeqewe domena podataka, i sl.

a : i←i +1

b : j←i +h

c : k←i +g

d : l←j +1

0: a 1: b, c 2: d, a 3: b, c 4: d

1: a 2: b, c 3: d, a

1: a 2: b, c 3: d

a) b) c)

a) Sekvencijalna petqa b) Dvostruko razmotana petqa c) Proto~na petqa

Sl. 7.5 Optimizacija petqe.

Modulza prikaz

Analiza

Katalogtransform.

FORTRAN 77program

Internapredstava

BACK END

Paralelizovani

programSUPRENUM FORTRAN

Interakt.modul

FRONT END

Sl. 7.6 Struktura sistema SUPERB.

Kao primjer automatske identifikacije i specifikacije parelelizma, navedimo

SUPERB (Suprenum Parallelizer Bonn), interaktivni paralelizator koji

Maric Slavko
(Pod uslovom da arhitektura dozvoqava izvo|ewe svih slobodnih operacija u jednom ciklusu, 2 prolaza sekvecijalne petqe se izvode za 6 ciklusa, dvostruko razmotanee petqe za 5 ciklusa, a proto~ne petqe za 4 ciklusa?).
Page 94: Skripta(2 Dio)

171

transformi{e standardne FORTRAN 77 sekvencijalne programe u semanti~ki

ekvivalentne paralelne SUPRENUM FORTRAN programe, za SUPRENUM MIMD

ma{inu . Struktura sistema je predstavqena na Sl. 7.6.

Front End trasformi{e FORTRAN 77 program u internu reprezentaciju. Modul za

analizu sadr`i alate za analizu toka programa i analizu zavisnosti: izlaz iz ovog

modula su informacije o nizovima definicija varijabli i nizovima kori{tewa,

zavisnosti izme|u naredbi, `ivotu varijabli, raspolo`ivo{}u izraza i sl. Na

osnovu tih informacija vr{i se paralelizacija, i to u dvije faze:

• identifikuje se krupnozrnasti paralelizam i raspodjequje u skup procesa

(MIMD paralelizacija). Paralelizacija se bazira na razdiobi domena

podataka, pri ~emu svaki segment predstavqa lokalni adresni prostor

procesa,

• svaki proces se analizira, identifikuju se programske petqe koje se

prestruktui{u kao vektorske operacije (SIMD paralelizacija-vektoriza-

cija). Time se posti`e visok stepen paralelne obrade u ~vorovima koji

izvode procese i koji imaju mogu}nost efikasnog procesirawa vektorskih

operacija.

Interaktivni sistem ipak dopu{ta korisniku mogu}nost pra}ewa i pode{avawa

procesa transformacije. Back End modul, na osnovu transformisane interne repre-

zentacije, generi{e paralelizovan SUPRENUM FORTRAN program. Sli~an pristup

koristi Parafrase prevodilac razvijen na univerzitetu u Ilinoisu, Buldog prevodilac

(Yale) i dr. Neka rje{ewa omogu}avaju da se odre|eni problemi specifikuju jezikom visokog

nivoa, baziranim na apstraktnim tipovima podataka - objektnim klasama, koji

sadr`e kako definiciju potrebnih struktura podataka za navedene probleme, tako

i operacija pridru`enih odnosnoj klasi. Ovakva specifikacija ne sadr`i

specifi~ne konstrukcije za paralelno programirawe. Sistem automatski prevodi

ovakvu specifikaciju visokog nivoa u paralelni programski jezik (SUPRENUM

FORTRAN).

U programskom jeziku BLAZE poku{ava se na}i kompormisno rje{ewe izme|u

sekvencijalnog programirawa i eksplicitne identifikacije i specifikacije

paralelizma u paralelnim programskim jezicima. Sa izuzetkom naredbe "forall", tok

kontrole u BLAZE jeziku je potpuno sekvencijalan. Intencija jezika je da se ostvari

Page 95: Skripta(2 Dio)

172

visoko paralelizovano izvo|ewe na razli~itim SIMD i MIMD arhitekturama uz

potpuno osloba|awe korisnika od detaqa paralelnog izvo|ewa (korisnik nema

predstavu o mogu}im vi{estrukim nitima toka kontrole u fazi izvo|ewa npr.).

Realizaciju ovog ciqa u potpunosti preuzima prevodilac i run-time okru`ewe.

Jezik ima sintaksu sli~nu PASCAL-u. Da bi prevodilac mogao izvr{iti

kvalitetnu paralelizaciju, napravqene su odre|ene restrikcije: pokaziva~i nisu

implementirani jer spre~avaju efikasnu identifikaciju paralelizma. Dodatno,

procedure imaju funkcionalnu semantiku: efekat izvo|ewa procedure mo`e biti

samo pridjeqivawe povratne vrijednosti procedure. U okviru procedure dozvoqen

je pristup samo lokalnim podacima. Gnije`dewe procedura nije dozvoqeno. Ovakav

koncept procedura je karakteristi~an za funkcionalne jezike (bazirane na toku

podataka). Ipak, za razliku od funkcionalnih jezika BLAZE dopu{ta vi{estruko

pridjeqivawe istoj varijabli. Dakle, jezik omogu}ava programirawe na na~in

veoma blizak konvencionalnom, {iroko kori{tenom PASCAL-u, a s druge strane

automatsku identifikaciju i specifikaciju paralelizma u toku prevo|ewa, i

eksploataciju istog u fazi izvo|ewa programa. Sli~ne karakteristike imaju i

funkcionalni jezici SISAL, VAL ili ID.

7.4 Projektovawe i razvoj paralelnih programa

I pored toga {to kori{tewe paraleliziraju}ih prevodilaca osloba|a korisnika

dodatne dimenzije kompleksnosti programirawa u paralelnom okru`ewu, ipak ono

ima i nekoliko ozbiqnih nedostataka. Osnovni nedostatak je nemogu}nost prevodi-

laca da mijewa semantiku programa, odnosno strukturu sekvencijalnih algoritama,

koji ~esto ne sadr`e mnogo inherentnog paralelizma. Prestrukturirawem postoje-

}ih algoritama ili konstrukcijom novih, mo`e se obezbijediti znatno pove}awe

iznosa (pa prema tome i eksploatacije) paralelizma. Konkurentnost se pojavquje

kao fundamentalni zahtjev za algoritme i programe.

Daqe, mnogi postoje}i sekvencijalni jezici sadr`e konstrukcije koje

limitiraju mogu}nost detekcije paralelizma u postoje}im programima (pokaziva~i,

mnogostruko ugnije`dene procedure sa mogu}no{}u pristupa dijeqenim

varijablama, "alias" varijable i sl.). Sekvecijalni programi nisu automatski

prilagodqivi za izvo|ewe za slu~aj pove}awa broja procesora u sistemu i obima

problema. Mogu}nost pro{irewa (scalability) u navedenom smislu se tako|e name}e

Maric Slavko
SISAL - Streams and Iterations in a Single¬Asignment Language.
Maric Slavko
VAL - Value Oriented Algorithmic Longuage.
Slavko Maric
?????
Page 96: Skripta(2 Dio)

173

kao jedan od bitnih zahtjeva za paralelne programe. Kompleksnost paralelnog

programirawa izrazito potencira modularnost kao fundamentalni princip

programirawa. Aspekti modularnosti sekvencijalnog programirawa moraju biti

pro{ireni, s obzirom na specifi~nost paralelnih sistema.

Prirodan ciq je da se navedena svojstva iska`u adekvatnim konstrukcijama

odgovaraju}eg programskog jezika, ne optere}uju}i programera detaqima komunika-

cije i koordinacije me|u procesorima. Pored programskog jezika, od su{tinskog

zna~aja za razvoj i realizaciju paralelnih programa je postojawe generalnog modela

paralelne ma{ine, koji bi omogu}io razvoj generalnih tehnika i metoda programi-

rawa paralelnih ma{ina, primjenqivih na najve}em broju sistema. Tako|e, ovakav

generalni model bi olak{ao proces standardizacije operativnih sistema i

razvojne radne okoline.

I pored navedenih argumenata u prilog eksplicitno paralelnog programirawa,

MIMD sistemi za sada mogu da, na me|uprocesorskom nivou, efikasno eksploati{u

samo krupnozrnasti paralelizam. Za efikasno izvo|ewe ra~unawa po procesnim

elementima novijih (RISC baziranih) arhitektura i daqe }e biti od interesa

optimalno ure|ewe niza instrukcija u fazi prevo|ewa.

7.4.1 Programski modeli paralelnih ma{ina

Robusnost i jednostavnost von-Neuman-ovog modela (sekvencijalnog) ra~unara

omogu}io je razvoj generalnih tehnika programirawa, standardizaciju programskih

jezika pa i arhitektura i operativnih sistema (UNIX npr.) sekvencijalnih ma{ina.

Odgovaraju}a paradigma neophodna je i za paralelne sisteme. U daqem tekstu dat je

kratak pregled postoje}ih varijanti.

PRAM (Paralel Random Access Machine) model je idealizovana i pojednostavqena

predstava paralelnih sistema sa dijeqenom memorijom, gdje svaki procesor u

svakom ciklusu izvodi ili jednu elementarnu operaciju, ili ~ita/pi{e iz lokalne

ili dijeqene memorije. Razli~ite varijante PRAM modela defini{u pristup

memoriji sa vi{e ili mawe restrikcija: kod EREW (Exclusive Read Exclusive Write)

PRAM modela nije dozvoqen istovremeni pristup dijeqenoj memoriji od strane

razli~itih procesora niti za ~itawe niti za upis. CREW (Concurrent Read Exclusive

Write) model dozvoqava istovremeno ~itawe ali ekskluzivan upis, dok CRCW nema

ograni~ewa na pristup zajedi~kim lokacijama. Ovakav upro{ten model nije

Page 97: Skripta(2 Dio)

174

primjenqiv kao generalna platforma za paralelno programirawe, iako omogu}ava

dobijawe uvida u strukturu i kompleksnost paralelnog ra~unawa.

Model programirawa koji odgovara ovom ma{inskom modelu zasniva se na skupu

procesa koji dijele podatke u istom adresnom prostoru, i kojem pristupaju asinhro-

no. Koordinacija aktivnosti i kontrolisan pristup zajedni~kim resursima,

zahtijeva eksplicitno i pa`qivo programirawe i realizuje se sinhronizacionim

mehanizmima tipa semafora, monitora i sl. Navedeni koncept ne obezbje|uje u

su{tini zahtjeve za modularno programirawe i ne uzima u obzir druge aspekte

(lokalnost npr.), veoma zna~ajne za druge modele paralelnih ma{ina.

Multira~unar Ovaj model paralelnog sistema je idealizovana predstava

MIMD paralelnih sistema i mo`e se predstaviti istom {emom (Sl. 6.14, 6.15).

Svaki ra~unar izvodi svoj vlastiti program iz lokalne memorije. Lokalni procesi

imaju direktan pristup podacima u lokalnoj memoriji, a komunikacije sa procesima

u drugim ra~unarima se ostvaruju slawem i prijemom poruka preko spre`ne mre`e

(u op{tem smislu, ovim mehanizmom se ostvaruje pristup udaqenim memorijama,

distribuiranim po drugim procesnim elementima). U idealizovanoj mre`i, cijena

transfera poruka zavisi samo od du`ine poruke. Bitna karakteristika modela je

lokalnost tj. svojstvo sistema da je cijena pristupa lokalnoj memoriji mnogo mawa

od cijene pristupa udaqenoj memoriji.

Programi razvijeni za ovaj model, mogu se efikasno implementirati i na

multiprocesorske sisteme, budu}i da isti podr`avaju komunikacione mehanizme na

bazi poruka.

Postoji nekoliko modela programirawa koji odra`avaju arhitekturne

karakteristike multira~unarskog modela paralelnih sistema. Oni se zasnivaju na

prostim apstrakcijama kojima se mogu iskazati konkurentnost, lokalnost/global-

nost te mogu}nost pro{irewa i modularnog programirawa.

Model zasnovan na zadacima i kanalima se sastoji iz varijabilnog skupa zadataka

koji se izvode konkurentno. Zadatak se izvodi u lokalnoj memoriji nekog od

procesnih elemenata nad lokalnim podacima. Komunikacija sa zadacima na drugim

procesorima se realizuje preko U/I portova, mehanizmom poruka. U/I portovi

razli~itih zadataka mogu biti spojeni dinami~ki kreiranim kanalima. Zadaci se

mapiraju na procesore; mapirawe ne smije uticati na semantiku programa.

Slavko Maric
prevod ????
Page 98: Skripta(2 Dio)

175

Sli~ne su{tinske karakteristike imaju model prosqe|ivawa poruka (message

passing model) i objektno orijentisani model u kojem objekti konceptualno

odgovaraju zadacima.

SPMD (single program multiple data) programski model se reprezentuje jednim

programom, koji se izvodi nad disjunktnim skupovima podataka. On odgovara

podskupu gore navedenih modela, za slu~aj fiksnog broja identi~nih zadataka koji

iste operacije izvode nad razli~itim podacima. Ovaj model je primjenqiv za MIMD

arhitekture sa velikim brojem procesnih elemenata. Koncepti ovog modela vodili

su razvoju FORTRAN-a 90 i High Performance Fortran-a (HPF).

SIMD model paralelnih sistema reprezentuje odgovaraju}u specijalizovanu klasu

arhitektura, koja nije pogodna kao generalna platforma za paralelno procesirawe,

iako su ovi sistemi izrazito pogodni za rje{avawe dosta {iroke klase

specijalizovanih i dobro strukturiranih nau~nih problema. Adekvatan model

programirawa za ovaj model arhitektura se zasniva na paralelizmu podataka, koji

podrazumijeva mogu}nost fine granularnosti operacija. Programer treba da

specifikuje strukture podataka nad kojima se (iste) operacije mogu izvesti para-

lelno, a prevodilac generi{e odgovaraju}i kod. Ovaj model programirawa pogodan

je i za MIMD arhitekture sa velikim brojem procesnih elemenata i regularnom

strukturom povezivawa.

Kriti~ki osvrt na aktuelne modele programirawa i arhitektura dao je

Dennis, uz tvrdwu da nijedan navedeni model ne zadovoqava principe modularnog

programirawa (a samim tim ni generalnost programirawa), te da modeli

arhitektura ne uzimaju adekvatno u obzir fundamentalna pitawa latentnosti

memorije i me|uprocesorske sinhronizacije. Predla`e se generalni semanti~ki

model predstavqen na Sl 7.7.

Predlo`eni model ima izvori{te u argumentaciji da se koncept modularnosti

najpogodnije implementira ako je mogu}e aktivirati funkcije (procedure) uz

specifikaciju korektnih parametara, bez obzira na to gdje se funkcije ili

argumenti nalazili. Svaki objekat ima jedinstven identifikator (pokaziva~ na

objekat). Aktivirawe modula se onda defini{e parom (procedure_pointer,

argument_pointer) (argument_pointer se odnosi na strukturu koja sadr`i skup

vrijednosti argumenata za proceduru).

Page 99: Skripta(2 Dio)

176

EPIR

x:Z:

n

Programski DAG

Aktivnost

Pointerprocedure

Okvir

Ofset Varijableokvira

Tekst

Stablo aktivacije

Heap DAG

Zapisi

Poqe

1 n. . .

Sl. 7.7 Generalni semanti~ki model paralelnog procesirawa.

Model se sastoji iz 3 komponente (od kojih se svaka mo`e predstaviti acikli~kim

orijentisanim grafom). Prvi dio sadr`i kod procedura kojim se defini{u aktiv-

nosti. Svaki luk u grafu indicira poziv neke procedure iz nadre|enog modula.

Korespondentni graf je stablo aktivacije, gdje svaki ~vor sadr`i lokalne podatke

za aktiviranu proceduru. Tre}i dio je sistemski heap, ~iji ~vorovi reprezentuju

strukture podataka, a podre|eni ~vorovi elemente struktura. U ovakvom modelu

aktivnost se defini{e parom instrukciona_referenca (IR), pokaziva~_okru`ewa

(EP). Instrukciona referenca identifikuje programski modul i instrukciju u

modulu, spremnu za izvr{ewe. Pokaziva~ okru`ewa identifikuje aktivaciono

stablo pridru`eno programskom modulu. Neka operacija u modelu mo`e da: izvodi

lokalna ra~unawa, selektuje slijede}u operaciju na bazi neke lokalne vrijednosti,

manipuli{e strukturama na heap-u i inicira ili zavr{i aktivirawe nekog modula.

Sistem dopu{ta postojawe vi{e konkurentnih aktivnosti u istom modulu i vi{e

instanci jednog modula. Implementacione varijante za koordinaciju aktivnosti su

fork i join operacije u nitima, ili uslovi aktivacije po konceptu ma{ina upravqanih

podacima.

Page 100: Skripta(2 Dio)

177

Model nije baziran na nekoj postoje}oj arhitekturi ili tehnologiji, ve}

suprotno, ima ambiciju da trasira puteve za projektovawe arhitektura koje }e

zadovoqiti fundamentalne zahtjeve za paralelno programirawe. Model tako|e

uva`ava fizi~ke limite kapaciteta memorije, fiksnu {irinu rije~i i sl. ali i

implementacione aspekte. Vi{enitni koncepti i principi upravqawa na bazi

toka podataka se predla`u kao bazni za razvoj arhitektura novih ma{ina.

7.4.2 Projektovawe paralelnih programa

Projektovawe i realizacija paralelnih programa je kompleksan zadatak, koji nije

mogu}e formalizovati skupom precizno definisanih koraka i postupaka. Stoga je

neophodan odre|eni metodolo{ki pristup koji apostrofira razmatrawe bitnih

faktora i razli~itih opcija od kojih zavisi kvalitet rje{ewa, i koji obezbje|uje

kriterijume za izbor izme|u razli~itih alternativa.

Projektovawe paralelnih programa je u uskoj vezi sa algoritamskom podlogom i

veoma ~esto zahtijeva prestrukturirawe postoje}eg algoritma ili razvoj adekva-

tnijeg. Bez obzira na ma{inski ili programski model, rezultat projekta treba da

bude skup modula (zadataka) koji obavqaju odre|ena ra~unawa i izme|u kojih

postoje precizno definisane interakcije, te wihov raspored po procesnim elemen-

tima paralelnog sistema. Naravno, konkurentno izvo|ewe modula raspodjeqenih po

procesnim elementima, mora realizovati `eqenu funkciju.

Realizacija navedenog ciqa se mo`e ostvariti strukturirawem

projektovawa u ~etiri faze: particionisawe, ustanovqavawe veza (komunikacija),

ukrupwavawe i mapirawe (Sl. 7.8). U praksi, proces nije strogo sekvencijalan:

nezadovoqavaju}e alternative u nekoj fazi mogu implicirati ponovno razmatrawe

varijanti u prethodnim fazama.

Particionisawe ima za ciq da se cijeli proces izdijeli na {to ve}i broj

zadataka izme|u kojih postoji potencijalno velika mogu}nost konkurentnog

procesirawa. Zadaci obuhvataju kako ra~unawa (skup operacija) tako i podatke nad

kojima se ra~unawa izvode. Dobra podjela implicira ravnomjernu raspodjelu, kako

ra~unawa, tako i podataka po zadacima. Osnovne komplementarne tehnike razdiobe

su dekompozicija domena (podataka) i funkcionalna dekompozicija. Generalno,

zadaci ne treba da sadr`e redundantna ra~unawa ili podatke i, broj zadataka koji

se dobijaju dekompozicijom treba da je u proporciji sa veli~inom problema.

Page 101: Skripta(2 Dio)

178

Zadovoqavawem navedenih principa, dolazi se do rje{ewa sa izra`enom

konkurentno{}u i adaptibilno{}u u odnosu na obim problema.

Povezivawe je faza u kojoj se ustanovqava zavisnost izme|u zadataka i potrebni

transferi (komunikacije) podataka izme|u wih. Za specifikaciju komunikacije

potrebno je definisati, kako same podatke koji se izmjewuju odre|enim komunika-

cionim mehanizmom (porukama npr.), tako i komunikacione veze (kanale) izme|u

zadataka.

PROBLEM

Mapirawe

Komunikacija

Particionisawe

Ukrupwavawe

Sl. 7.8 Proces projektovawa paralelnih programa.

Komunikacionu strukturu dekomponovanog sistema karakteri{e lokalnost, struk-

turnost, dinami~nost i sinhronizam. Dobra dekompozicija obezbje|uje da zadaci

komuniciraju sa malim skupom susjednih zadataka (lokalnost), tj. obezbje|uje

balansiranu dekompoziciju komunikacija, tako da susjedni zadaci formiraju

regularnu strukturu. Kod stati~kih komunikacija, svaki zadatak izmjewuje podatke

samo sa unaprijed odre|enim zadacima. Za realizaciju sinhronih transfera, zadaci

Slavko Maric
Prouciti primjer
Page 102: Skripta(2 Dio)

179

koji su ukqu~eni u transfer moraju da kooperi{u za realizaciju transfera (kod

asinhronih transfera slawe/prijem su nezavisni). Komunikacije tako|e treba da

imaju mogu}nost konkurentnog izvr{ewa i mogu}nost preklapawa sa ra~unawima.

Ykrypwavawe grupisawe zadataka se vr{i u ciqu smawewa komunikacionih

aktivnosti (i vremenskih gubitaka) uz zadr`avawe {to je mogu}e ve}eg iznosa

paralelizma. Dodatno, potrebno je odr`ati prilagodqivost (scalability) rje{ewa

obimu problema, i prihvatqivu cijenu programske implementacije. U ovoj fazi

potrebno je, tako|e, uzeti u obzir implementacione aspekte (broj procesora, na~in

komunikacije i sl.).

/

Smawewe odnosa komunikacija/ra~unawe po zadatku, grupisawem susjednih zada-

taka koji me|usobno komuniciraju u jedan (ve}i) zadatak, zasniva se na efektu

odnosa povr{ina i volumena (komunikacioni zahtjevi su proporcionalni povr{i-

ni, a kompjutacioni volumenu pod-domena), tako da se pove}awem pod-domena posti-

`e `eqeni efekat. Daqe, grupisawe zadataka sa sekvencijalnom zavisno{}u ne

smawuje paralelizam, a omogu}ava smawewe iznosa komunikacije (u slu~aju postoja-

wa dovoqnog broja procesnih elemenata). Smawewe komunikacionih gubitaka mo`e

se ostvariti i vi{estrukim ponavqawem izvo|ewa istog ra~unawa u razli~itim

procesnim elementima. Neki od agoritama za grupisawe datog skupa zadataka,

predstavqenog acikli~nim orijentisanim grafom (DAG), koji se baziraju na

prethodnim principima, opisani su ukratko u tekstu koji slijedi.

Grupisawe po vertikalnim slojevima je metoda koja se bazira na grupisawu sekven-

cijalnih ~vorova u ve}i ~vor. DAG, koji reprezentuje sistem zadataka, se transfo-

rmi{e u ekvivalentni graf sa horizontalnim slojevima, tako da je du`ina puta od

korijena grafa do svih ~vorova u jednom sloju ista. Zatim se svi ~vorovi koji

pripadaju kriti~nom putu grupi{u u jedan ~vor (particiju), ~vorovi iz formirane

particije se virtuelno uklawaju iz grafa i postupak ponavqa na preostalom skupu.

Grupisawe eliminisawem komunikacionog ka{wewa, se zasniva na grupisawu

~vorova, uz uslov da se ukupno vrijeme izvr{ewa ne produ`ava. Naime, grupisawem

susjednih ~vorova (nekog ~vora i wegovih prethodnika/nasqednika) pove}ava se

vrijeme ra~unawa, ali se elimini{u vremena komunikacije. Grupisawe se nastavqa

dok se ukupno vrijeme izvo|ewa ne pove}ava.

Algoritam grupisawa koji se zasniva na vi{estrukom ponavqawu izvo|ewa

zadataka smawuje iznos komunikacije izme|u zadataka multiplicirawem izvo|ewa

Page 103: Skripta(2 Dio)

180

zadatka na vi{e procesnih elemenata (Sl. 7.9). Cijena za smawewe ukupnog vremena

izvo|ewa je pove}awe zauze}a memorijskih i procesnih resursa.

Vrijeme PE1 PE2 Vrijeme PE1 PE2

0 1 0 1 1

1 2 1 2 3

2 3 2 3 5

3 5 3 4

4 4 4

1

5

2

1

1

1

1

1 1

1

4

3 1 1

1

a)

b)

Sl. 7.9 Raspored na dvoprocesorskom sistemu: a) bez duplicirawa zadataka b) sa duplicirawem zadataka.

Mapirawe zadataka po procesnim elementima sa ciqem minimizacije funkcije

ciqa je, u op{tem slu~aju, kompleksan problem. Ako je funkcija ciqa mininizacija

vremena izvo|ewa sistema zadataka na paralelnoj arhitekturi, onda se govori o

algoritmima raspore|ivawa (task scheduling algorithms).

Za postizawe navedene funkcije ciqa, algoritmi raspore|ivawa se baziraju na

strategiji raspore|ivawa konkurentnih zadataka na razli~ite procesore (u ciqu

paralelnog izvr{ewa), i na strategiji objediwavawa izvr{ewa zadataka na jednom

procesoru, u ciqu smawewa komunikacionih aktivnosti. Kako su navedene

strategije opre~ne, algoritmi raspore|ivawa uvijek ukqu~uju kompromis ova dva

bazi~na principa.

Ako je funkcija ciqa ravnomjerno optere}ewe procesnih elemenata u sistemu,

onda se mapirawe zadataka naziva balansirawe optere}ewa (load balancing). U

odre|enim slu~ajevima (kada su zadaci me|usobno nezavisni), optimizacija

rasporeda optere}ewa rezultuje i optimizacijom vremena izvo|ewa skupa zadataka.

Page 104: Skripta(2 Dio)

181

7.4.3 Implementacioni mehanizmi

Koncept rje{avawa problema paralelnog izvo|ewa skupa zadataka potrebno je

izraziti na pogodan na~in u programskom jeziku adekvatnih mogu}nosti. Kompleks-

nost problema implicira neophodnost modularnog programirawa, tj. izgradwe

kompleksnih modula (i na kraju cijelog programa) od komponentnih. U sekvenci-

jalnom programirawu module mo`emo posmatrati kroz funkcije i kroz ulazno/-

izlazni skup podataka koji je povezan sa izvo|ewem funkcije. Kod paralelnih

programa, u razmatrawe treba ukqu~iti tako|e zadatke-aktivnosti koji se

generi{u u modulu i wihovo mapirawe na procesore, dekompoziciju podataka po

zadacima, te karakteristike komunikacije.

U paralelnim sistemima, moduli se mogu na razli~ite na~ine komponovati u

programski sistem (Sl. 7.10).

Sekvencijalna kompozicija je karakteristi~na za SPMD programe, gdje se isti

program izvodi u svim procesnim elementima tako da se razli~ite komponente

(moduli) pozivaju i izvode sekvencijalno jedna za drugom. Paralelna kompozicija

mapira svaku komponentu na razli~it procesor, uz paralelno izvo|ewe istih.

Konkurentna kompozicija omogu}ava konkurentno izvo|ewe razli~itih

komponenata na svakom od procesorskih elemenata.

Mnogi programski jezici obezbje|uju podr{ku za specifikaciju paralelizma

(identifikovanog kroz fazu projektovawa), komunikaciju izme|u zadataka, imple-

mentaciju koncepta modularnog programirawa i mapirawe zadataka po procesnim

elementima.

Maric Slavko
C* Modul je za eksternog korisnika u potpunosti definisan interfejsom - na~inom veze modula sa korisnikom. Modularnost nije samo stvar programskog jezika, nego i hw/sw podr{ke cijelog sistema, jer se modularno{}u trebaju obezbjediti - skrivawe informacija - princip Invarijantnog pona{awa (nezavisnost pona{awa modula od mjesta i konteksta izvo|ewa), - princip generalnosti podataka: prosle|ivawe bilo kog tipa podatka u bilo koji modul - sigurnost argumenta - onemogu}ewe side-efekata - Rekurzivnost - Sistemsko upravqawa resursima (manipulaciju objektima u memoriji mora izvoditi OS, a ne sam program)
Page 105: Skripta(2 Dio)

182

Paralelna kompozicija

Konkurentna kompozicija

Sekvencijalna kompozicija modula

Vrijeme

Sl. 7.10 Varijante kompozicije programa u programski sistem. Sjen~ewem su ozna~ena dva programska modula koji se izvode na ~etiri procesorska elementa.

Osnovni koncept paralelnog kodirawa opisao je M.R. Conway (1963), sugeri{u}i

par instrukcija (ma{inskog jezika) FORK, JOIN za kreirawe konkurentnih procesa.

S obzirom da for petqa ~esto sadr`i nezavisne iteracije, za specifikaciju

kreirawa nezavisnih procesa za svaku interaciju koristi se varijanta parallel for

instrukcija. Blok strukturiranu konstrukciju predlo`io je Dijkstra ~ija je forma:

begin S0; cobegin S1; S2; ...., Sn; coend Sn+1 ; end.

S0 se izvodi prije (grupa) naredbi S1, S2, ... , Sn, koje se pak mogu izvesti konkurentno.

Nakon kompletirawa svih naredbi S1, S2, ... , Sn izvodi se naredba . (Analogno

ovoj konstrukciji koriste se konstrukcije parbegin-parend). Hoare, na temequ gorwe

konstrukcije, defini{e paralelnu komandu za specifikaciju paralelnih procesa:

1+nS

<parallel command > := [<process> { || <process>}]

OCAM jezik, koristi PAR i SEQ naredbe za eksplicitnu specifikaciju paralel-

nog/sekvencijalnog izvo|ewa.

U konkurentnom Pascal-u, defini{u se tipovi i instance procesa; procesi se

iniciraju (startuju) init naredbom, a za sinhronizaciju pristupa dijeqenim resursi-

Slavko Maric
M. R. Conway, “A Multiprocessor System Design”, AFIPS FJCC, 1963, str. 139-46.
Maric Slavko
jedno ili vi{e ponavqa konstr.u zagradi.
Page 106: Skripta(2 Dio)

183

ma izme|u procesa koriste se monitori. U ADA programskom jeziku paralelni

procesi se specifikuju preko TASK konstrukcije. Svaki task ima svoju deklaraciju

i definiciju. Instance task-ova se kreiraju i aktiviraju pozivom procedura u

kojima su definisani. Komunikacija izme|u task-ova se realizuje ili mehanizmom

randevua ili preko dijeqenih varijabli.

Pored ovih osnovnih konstrukcija za podr{ku paralelnom procesirawu, kojima

se omogu}ava eksplicitna specifikacija paralelizma, savremeni paralelni

programski jezici sadr`e i druge konstrukcije za podr{ku.

CC++ (Compositional C++) je ekstenzija standardnog C++ jezika, koji pored apstrak-

cija "procesorski objekat" i "globalni pokaziva~" pomenutih u dijelu 7.1. ima i

apstrakcije "thread", "sync variable", "atomic function" i "transfer functions".

Niti (threads) se kreiraju i izvode u okviru procesorskog objekta. Inicijalno,

program se izvodi sa jednom niti kotrole; vi{estruke niti se kreiraju pomo}u par,

parfor i spawn naredbi. Dok se niti formirane sa par i parfor ne kompletiraju, ne

mo`e se izvesti slijede}a aktivnost.

Spawn dozvoqava kreirawe nezavisnih niti. Ovim konstrukcijama se

implementira koncept konkurentnog izvr{ewa, a procesorska apstrakcija

implementira koncept lokalnosti. Niti se izvode (podrazumijevaju}e) u procesor-

skom objektu u kojem su kreirane. Na~in komunikacije i sinhronizacije izme|u

niti je pomenut prethodno. Za sinhronizaciju ~itawa/upisa iz dijeqene varijable

koristi se modifikator sync u deklaraciji dijeqene varijable. (Ako nit ~ita iz

sync varijable u koju vrijednost nije upisana, ona se blokira dok vrijednost ne bude

upisana). Modifikator atomic omogu}ava implementaciju kriti~nih sekcija: dvije

atomic funkcije istog objekta ne mogu se izvesti istovremeno. Transfer podataka

proizvoqnog tipa izme|u procesorskih objekata se realizuje transfer funkcijama.

Mapirawe na fizi~ke procesore se realizuje tako da se niti mapiraju na

procesorske objekte, a procesorski objekti na fizi~ke procesore. Za definisawe

fizi~ke lokacije procesorskih objekata, koriste se konstruktorske funkcije (proc-

t i node-t).

FORTRAN M je ekstenzija standardnog FORTRAN-a 77. Omogu}ava eksplicitnu

specifikaciju zadataka i wihovog paralelnog izvr{ewa, kanala, slawa i prijema

poruka te mapirawa na virtuelnu ma{inu.

Procesi se deklari{u istom sintaksnom konstrukcijom kao i potprogrami, s

tim da se koristi kqu~na rije~ PROCESS umjesto SUBROUTINE. Procesi koji se

Page 107: Skripta(2 Dio)

184

pozivaju u bloku PROCESSES/ENDPROCESSES se aktiviraju za konkurentno

izvr{ewe. Petqom PROCESSDO/ENDPROCESSDO se kreiraju vi{estruke instance

istog procesa. Za komunikaciju izme|u procesa kreiraju se kanali (konstrukcijom

CHANNEL) sa ulaznim i izlaznim vratima(portom). Procesi koji imaju adrese

ulaznih/izlaznih vrata (up/ip) otvorenog kanala mogu da komuniciraju primitivama

SEND(ip) i RECEIVE(up). MERGER je kanal koji omogu}ava komunikaciju tipa mnogi-

na-jedan. Navedeni koncept kanala omogu}ava kreirawe dinami~ke strukture

kanala i povezivawe tipa mnogi-na-mnogi, te implementaciju sinhrone/asinhrone

komunikacije.

Za specifikaciju virtuelnog ra~unara sa strukturom procesora u n dimenzija,

koristi se direktiva PROCESSORS (I1, I2, ... , In). LOCATION (I1, I2, ... , In) direktiva

specifikuje elemenat u vi{edimenzionalnoj strukturi procesora, na kojem se

proces izvodi. SUBMACHINE konstrukcija, omogu}ava mapirawe procesa na

podskup procesora virtuelne ma{ine.

FORTRAN 90 i wegova ekstenzija HPF (High Performance Fortran) su jezici koji

eksploataciju paralelizma baziraju na paralelizmu koji se dobija primjenom istih

operacija na razli~itim segmentima nekog skupa podataka (ovaj tip paralelizma se

ozna~ava terminom paralelizam podataka (data parallelism)).

Strukture podataka podr`ane u navedenim jezicima za ovakav tip eksploatacije

paralelizma su nizovi podataka. Ako su A, B, C nizovi, onda A = B * C prevodilac

automatski prepoznaje kao operaciju sa paralelizmom podataka. Prevodilac tako|e

poku{ava automatski detektovati paralelizam u programskim petqama. Prevodi-

lac transformi{e program u SPMD formu, gdje vi{e procesora izvode isti pro-

gram nad razli~itim segmentima podataka. Ako izvo|ewe na nekom procesoru zahti-

jeva komunikaciju sa drugim procesorom, u ciqu dobijawa podataka iz susjednog pod-

domena, u fazi prevo|ewa se automatski ume}u potrebni mehanizmi. PROCESSORS

direktiva omogu}ava deklaraciju organizacije virtuelnih procesora (uobi~ajeno

se deklari{e jedan apstraktni za jedan fizi~ki procesor). DISTRIBUTE direktiva

se koristi za specifikaciju domena po virtuelnim procesorima. Pored toga {to se

konkurentnost eksploati{e direktno iz operacija nad poqima, paralelne operaci-

je se iniciraju FORALL (triplet, triplet, ... , triplet, mask) assignment naredbom

pridjeqivawa, gdje se paralelno izvode sve naredbe pridjeqivawa sa indeksima

definisanim tripletima, pod uslovima da je mask izraz istinit. Za eksplicitnu

specifikaciju nezavisnosti iteracija petqe koristi se direktiva INDEPENDENT.

Page 108: Skripta(2 Dio)

185

Pored navedenih paralelnih jezika, postoje i drugi paralelni programski

jezici: paralelni logi~ki jezici (Multilisp, Concurrent Prolog i sl.) i paralelni

funcionalni jezici (VAL, SISAL, ID, npr.).

Funkcionalni jezici ne dozvoqavaju operacije koje mogu proizvesti grani~ne

(side) efekte; funkcije ne mogu mijewati vrijednost varijabli koje nisu lokalne, a

ulazno/izlazni parametri mogu biti samo vrijednosti, a ne reference. Pridjeqiva-

we nekoj varijabli dozvoqeno je samo jedanput, tako da se zavisnost po podacima

veoma jednostavno identifikuje, naravno uz cijenu znatno ve}ih memorijskih

zahtjeva.

7.5 Operativni sistemi

Da bi ostvarili generalne zahtjeve koji se postavqaju pred operativne sisteme kao

{to su: obezbje|ewe programskog interfejsa prema ma{ini, upravqawe resursima,

sinhronizacija svih aktivnosti i mehanizama za implementaciju korisni~kih

koncepata visokog nivoa, aspekti neosjetqivosti na gre{ke itd. operativni siste-

mi paralelnih ma{ina moraju uzeti u obzir i specifi~ne arhitekturne karakteri-

stike kao i specifi~nosti koncepata paralelnog programirawa. Navedeni elemen-

ti otvaraju niz dodatnih dilema, ne samo u pogledu funkcija nego i same organiza-

cije operativnih sistema. Centralizovana organizacija se koristi uglavnom kod

paralelnih ma{ina sa dijeqenom memorijom, sa dvije varijante: (prva) master-slave,

gdje jedan procesor izvodi rutine operativnog sistema i dijeli posao "podre|enim"

procesorima, i druga, gdje su procesori ravnopravni i istovremeno mogu da

izvr{avaju rutine (jedinstvenog) operativnog sistema. U distribuiranoj varijanti

koja se koristi kod multira~unarskih sistema, operativni sistem je jedinstven, ali

fizi~ki distribuiran po procesnim elementima. Svaki procesni element preko

lokalnog (mikro) jezgra operativnog sistema obezbje|uje servise lokalnim

procesima, ali obezbje|uje i spregu sa ostalim procesorima kako u ciqu

kooperativnog procesirawa tako i u ciqu obezbje|ewa pristupa i kori{tewa

zajedni~kih resursa: U/I podsistema, sistema datoteka, dijeqenih objekata i

funkcija i sl.

U ciqu efikasne eksploatacije paralelizma u okviru jednog procesa, savremeni

operativni sistemi moraju da podr`e koncept konkurentnog izvo|ewa vi{estrukih

niti. Sve aktivirane niti mogu da se izvode paralelno pod uslovom raspolo`ivosti

Page 109: Skripta(2 Dio)

186

procesorskih resursa. Iako postoji vi{e varijanti naj~e{}e se koristi

implementacija niti kao "laganih" procesa. U takvoj varijanti, sve niti generisane

u okviru jednog procesa dijele najve}i dio konteksta tog procesa: kod, stati~ke i

globalne podatke, heap, i sve atribute procesa kojima manipuli{e jezgro

operativnog sistema (identifikator vlasnika, deskriptore otvorenih datoteka i

sl.). Privatni konteksti niti minimalno sadr`e stawe registara, identifikator i

prioritet niti. Rudimentarni kontekst niti omogu}ava brzu promjenu konteksta,

odnosno prelaz izvo|ewa sa jedne niti na drugu. Kernel ne u~estvuje u kreirawu,

aktivirawu, sinhronizaciji i ga{ewu niti. Ove funkcije se standardno realizuju

bibliotekom sistemskih funkcija za implementaciju vi{enitnog koncepta

izvo|ewa.

Varijante niti koje raspore|uje jezgro operativnog sistema, nazivaju se "te{ke"

niti (heavy weight threads).

Dakle, arhitekture paralelnih sistema i principi paralelnog programirawa

imali su presudan uticaj na evoluciju operativnih sistema u pravcu obezbje|ewa

podr{ke za rad u navedenom okru`ewu; specijalno kroz koncepte mikrokernela

(mikrojezgra) operativnog sistema, vi{enitnog izvo|ewa, memorijski mapiranih

datoteka, aktivirawa funkcija na udaqenim procesorima i sl. Za ilustraciju,

operativni sistem Intel Paragon ra~unara je multira~unarski UNIX, sa podr{kom za

vi{enitno izvo|ewe, konceptom virtuelne memorije i strani~ewa, mogu}no{}u

mapirawa korisni~kih procesa na jedan ili vi{e procesora. Operativni sistem

ima jedinstvene sistemske strukture i distribuirano upravqawe procesima. Struk-

tura programskog sistema u svakom procesnom elementu data je na Sl. 7.11.

Sistem koristi Mach mikrokernel, razvijen na Carnegie-Mellon univerzitetu,

OSF/1 Unix server i NX-protokol za prosqe|ivawe poruka. Funkcije mikrokernela

su upravqawe procesima i nitima, komunikacija izme|u procesa, upravqawe

virtuelnom memorijom i upravqawe ure|ajima. Server obezbje|uje podr{ku za

mre`nu komunikaciju i pristup datotekama.

Maric Slavko
Prevod ???
Page 110: Skripta(2 Dio)

187korisni~ki proces

kernel

serverNX

API

hardver

Mach 3.0mikrokernel

OSF/1 UNIX sa multikorisni~kimpro{irewima

NX aplikacioniinterfejs

Sl. 7.11 Intel Paragon OSF/1 arhitektura.

7.6 Razvojno okru`ewe

Te{ko}e u razvoju softvera, iskazane terminom "softverska kriza" jo{ 1968

(Int.Cont. on Software engineering, Garmish) forsirale su stvarawe metodologija i

tehnika za razvoj softvera, ali i odgovaraju}ih sredstava za primjenu istih,

odnosno odgovaraju}eg razvojnog okru`ewa. S obzirom na nagla{enu kompleksnost

paralelnog programirawa, takvo okru`ewe se pojavquje kao imperativ. Pored

programskih jezika (opisanih u prethodnom dijelu), razvojno okru`ewe ~ine

sredstva za konstrukciju programa, analizu i izbor odgovaraju}ih varijanti

raspore|ivawa, instrumentalizaciju i testirawe/verifikaciju.

Sredstva za konstrukciju u naj{irem smislu sadr`e alate za analizu, specifika-

ciju, projektovawe, kodirawe aplikacija, vo|ewe projekta i sl. Primjeri su

programski paketi za strukturno ili objektno orijentisanu analizu i projektova-

we, formalni jezici za specifikaciju zahtjeva i algoritama rje{ewa, sintaksno-

semanti~ki orijentisani procesori teksta, paketi za upravqawe i vo|ewe projekta

i sl. Alati za raspore|ivawe zadataka u vi{eprocesorskom sistemu dobili su

adekvatnu pa`wu tek u posqedwe vrijeme. Ovi alati poma`u korisniku u procesu

particionisawa problema na skup zadataka te pri raspore|ivawu zadataka po pro-

cesnim elementima date arhitekture. Ovi alati moraju imati jednostavan, grafi-

~ki orijentisan interfejs prema korisniku. Razli~ite implementacije sadr`e

razli~ite varijacije komponentnih alata opisanih u tekstu koji slijedi.

Page 111: Skripta(2 Dio)

188

Alat za specifikaciju aplikacija omogu}ava prezentaciju aplikacija u grafi~koj

formi (obi~no u formi orijentisanog acikli~kog grafa). Ova predstava se

koristi u fazi particionisawa i raspore|ivawa sistema zadataka. Kreirawe

grafi~ke ekvivalentne forme programa mogu}e je automatskom transformacijom

iz izvornog programa (PARSA). Odre|eni alati koriste specijalni kod za

izra`avawe paralelizma u programu i specifikaciju wegove strukture (OREGAMI),

a neki alati zahtijevaju od korisnika specifikaciju programa u formi grafa.

Obi~no, grafi~ka reprezentacija zahtijeva i specifikaciju procjene izvo|ewa

pojedinih aktivnosti predstavqenih u grafu.

Alat za particionisawe omogu}ava transformaciju grafa u ekvivalentnu formu

u ciqu smawewa me|uprocesorske komunikacije.

Alat za raspore|ivawe omogu}ava mapirawe zadataka na arhitekturu, na osnovu

odre|enog algoritma. Arhitektura i algoritmi raspore|ivawa mogu biti fiksni

ili korisnik mo`e vr{iti selekciju na osnovu vi{e mogu}ih opcija, ili ~ak

implementirati vlastite opcije. U sklopu ovog modula (ili kao poseban modul)

realizuje se vizuelni prikaz performansi programa pri izvo|ewu na simuliranoj

ili stvarnoj arhitekturi. Vizuelizacija obi~no ukqu~uje prikaz aktivirawa

procesa i stawa procesora u toku izvo|ewa, komunikacije podataka, te parametre

kao {to su ubrzawe, iskori{tewe procesora, ukupno vrijeme izvr{ewa i sl.

Testirawe aplikacija u paralelnim sistemima ne ukqu~uje samo verifikaciju

korektnosti nego i eksperimentisawe sa vi{estrukim parametarskim opcijama u

ciqu postizawa efikasne implementacije. Prvi korak u sferi eksperimentisawa

je instrumentalizacija: registrovawe, mjerewe, akvizicija i analiza podataka i

doga|aja. U praksi se koriste razli~ita sredstva instrumentalizacije: softverski,

hardverski, hibridni, mre`ni monitori; prirodni i sinteti~ki generatori

optere}ewa; softverski alati za analizu strukture podataka i sl.

Primjer implementacije okru`ewa za instrumentalizaciju je IIE (Integrated

Instrumentation Environment for Multiprocessors [108]), razvijen na Carnegie Mellon

univerzitetu (Sl. 7.12).

Page 112: Skripta(2 Dio)

189

Instrumentali-zovana pobuda

Menaxer{ema

Baza pod.

Kontrolerpobuda

Relacionimonitor

Rezidentnimonitor

Instrumentali-zovani OS

Sl. 7.12 IIE Programsko okru`ewe.

IEE se zasniva na konceptu integracije vi{e instrumentalnih sredstava u

jedinstveno okru`ewe za upravqawe eksperimentima. Za definisawe skupa

mogu}ih eksperimenata defini{e se {ema eksperimenta, a konkretni eksperiment

predstavqa instancu {eme. Menaxer {eme, na osnovu definisane {eme

(eksperimenta) i podataka o stawu okoline, daje potrebne informacije za

generisawe ulaznih vrijednosti u pojedinim ta~kama programa u toku

eksperimenata. Rezidentni monitor u koordinaciji sa operativnim sistemom, vr{i

registrovawe i mjerewe podataka i veli~ina od interesa, koji se preko menaxera

eksperimenata zapisuju u bazu eksperimenata za kasniju analizu.

Pored navedenih, mnogi drugi projekti bavili su se razvojem okru`ewa za

programirawe u paralelnim sistemima:

• Spice projekt (CMU), sa ciqem konstrukcije programskog i radnog okru`ewa

za nau~na istra`ivawa na mre`i ra~unara,

• PRESTO je sistem za objektno-orijentisano (C++ bazirano) programirawe u

multiprocesorskom (Sequent Balance) okru`ewu,

• Argus projekat (MIT), predmet istra`ivawa je okru`ewe za analizu dinami~ke

varijacije paralelnog softvera.

• ISSOS projekat (PARTS Labs, Ohio) se bavi razvojem jezi~kih primitiva i

programskog sistema koji podr`ava razvoj i eksperimentisawe te pode{avawe

paralelnih programa,

Page 113: Skripta(2 Dio)

190

• i drugi (Gypsy projekat (Texas/Austin), Cedar (Xerox Parc), SARA (UCLA) itd.).

7.7 Ostali aspekti

Ostali aspekti programirawa paralelnih sistema ukqu~uju aspekte pouzdanos-

ti/(ne)osjetqivosti na gre{ke, programirawa u stvarnom vremenu, standardizacije

(CORBA standard npr.) i sl.

Za odre|enu klasu aplikacija (vojni sistemi, upravqawe hemijskim i

nuklearnim procesima, elektroenergetski sistemi, komunikacioni sistemi i sl.),

pouzdanost sistema je faktor od osnovnog zna~aja. U ciqu obezbje|ewa ve}e

pouzdanosti i raspolo`ivosti sistema moraju postojati dodatni hardverski i

programski moduli (dijagnosti~ki podsistem), koji mogu detektovati pojavu otkaza

u sistemu i prebaciti funkcije sa elementa koji je otkazao na ispravan modul.

Neosjetqivost na gre{ke (fault tolerance) je tako|e va`na karakteristika spre`nih

mre`a. Fault tolerance parametar f spre`ne mre`e se defini{e kao broj ~vorova koje

je mogu}e ukloniti iz mre`e, a da mre`a i daqe bude povezana (tj. da nijedan ~vor ne

postaje izolovan). Drugi va`an parametar je dijametar mre`e u slu~aju otkaza (fault

diameter) - maksimalni dijametar koji se dobija uklawawem iz spre`ne mre`e f

~vorova.

fnd

Slavko Maric
Ubaciti rad “dijagnostika u viseracunarskim sistemima”
Slavko Maric
Ubaciti definicije i osnovne karakteristike
Page 114: Skripta(2 Dio)

8

Raspore|ivawe zadataka na procesore u vi{eprocesorskim sistemima

8.1 Uvod i generalna specifikacija problema raspore|ivawa

Teorija raspore|ivawa tretira {irok spektar problema iz domena upravqawa resursima,

domena elektro-in`iwerstva, primijewene matematike i ra~unarske tehnike.

Jednu klasu problema ~ini raspore|ivawe m poslova Ji , i = 1, ... ,m za procesirawe na n

ma{ina Mj, j = 1, ... ,n. Raspored za svaki posao Ji je pridjeqivawe jednog ili vi{e intervala

vremena za taj posao na jednoj ili vi{e ma{ina. Raspored je vaqan, ako nema preklapawa

intervala pridjeqivawa na jednoj ma{ini, niti preklapawa intervala pridjeqenih jednom

poslu, te ako su ispuweni drugi zahtjevi specifi~ni za odre|eni problem.

Rasporedi procesirawa mogu se predstaviti Gantt-ovim dijagramima (Sl 8.1). Svaki posao

Ji se sastoji od operacija Oi1, Oi2, ... ,O , a svaka operacija Oini, ij ima procesne zahtjeve pij. Tako-

|e, svakoj operaciji Oij je pridru`en podskup µ ij skupa M ma{ina, na kojima se Oij mo`e

izvoditi. Uz poslove mogu biti pridru`eni i vrijeme lansirawa ri (najranije vrijeme kada je

prva operacija raspolo`iva za izvo|ewe), krajwe vrijeme zavr{etka posla di, te funkcija

fi(t) koja specifikuje cijenu ako se posao Ji zavr{i u vremenskom trenutku t.

Slavko Maric
mogu} prihvatqiv
Page 115: Skripta(2 Dio)

8.1 Uvod i generalna specifikacija problema raspore|ivawa 192

Op{ti problem ove klase se specifikuje u formi γβα // , gdje α reprezentuje karakte-

ristike ma{ina, β karakteristike poslova, a γ kriterijum optimalnosti. βα, i γ su defi-

nisani nizovi karaktera i wihove kombinacije, kojima se izra`avaju razli~ite mogu}e

karakteristike poslova, ma{ina i ciqnih funkcija. Kod generalnog modela raspore|ivawa

(general job shop), izme|u bilo kojih operacija Oij posla Ji mogu postojati relacije pretho-

|ewa. Svaka operacija se izvodi na namjenskoj ma{ini (svi µ ij su skupovi od jednog elemen-

ta). Specijalni slu~ajevi su job shop, flow shop, open shop i mixed shop. Relacije pretho|ewa

izme|u operacija kod job shop problema su u formi

1iO → ... → O i = 1, ... , m. 2iO →ini ,

U op{tem slu~aju je µ i j ≠ µ i, j+1.

J1

J4

J3

J4

J2

J3

J3

J1

J1

Sl. 8.1 Gantt-ov dijagram.

Flow shop je specijalni slu~aj job shop problema, kada je broj operacija u svakom poslu jednak

broju ma{ina, i svaka operacija Oij se izvodi na ma{ini Mj. Open shop se defini{e kao flow

shop, s tim da izme|u operacija ne postoje relacije pretho|ewa. Mixed shop je kombinacija job

shop i open shop problema.

Ako je Ci vrijeme zavr{etka posla Ji , onda se vrijednosti Ci pridjequje vrijednost fun-

kcije fi (Ci) koja reprezentuje cijenu zavr{etka posla Ji u trenutku Ci. Neke od funkcija fi su:

MSPi = Ci (raspon izvo|ewa(makespan))

Li = Ci – di (ka{wewe(lateness))

Ei = max (0, di – Ci) (ranije izvr{ewe(earliness))

Ti = max (0, Ci – di) (kasnije izvr{ewe(tardiness))

Na bazi funkcije fi (ili kombinacije ovakvih funkcija), na razli~ite na~ine se mo`e

definisati ciq-funkcija ukupne cijene, npr. γ = max{ fi }, γ = max { ii f*ϖ }, γ =∑ if , γ =

, gdje je ∑ ii fϖ iϖ te`inski faktor. Ciq odre|ivawa rasporeda je da se na|e vaqan

raspored koji minimizuje ukupnu cijenu izvo|ewa n poslova na m ma{ina.

Drugu klasu problema ~ini projektno raspore|ivawe (project scheduling). Kod ovih

problema projekt se reprezentuje mre`om zadataka izme|u kojih postoje relacije

Slavko Maric
makespan
Slavko Maric
lateness
Slavko Maric
earlines
Slavko Maric
tardiness
Page 116: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 193

pretho|ewa. Najpoznatije tehnike projektnog raspore|ivawa su metod kriti~nog puta (CPM)

i tehnike procjewivawa i revizije projekta (PERT). Ciq ovih tehnika je minimizacija

vremena zavr{etka projekta kao i identifikacija kriti~nih puteva realizacije.

CPM metod najprije za svaki zadatak sra~unava najranije mogu}e vrijeme po~etka EST(Ti) =

max{EST(Tj ) + τ j} gdje je Tj neposredni prethodnik zadatka Ti, a τ j je wegovo trajawe. Proce-

dura se primjewuje od po~etnog zadatka (startno vrijeme = 0) pa do zavr{nog. Analogno tome,

za svaki zadatak sra~unava se najkasnije vrijeme po~etka (polaze}i od zavr{nog zadatka za

koji se uzima da je najkasnije vrijeme po~etka izvr{ewa jednako najranijem), na osnovu

izraza:

LST(Ti) = min {LST (Tj) – τ i} , Tj ∈ SUCC(Ti).

Na osnovu ova dva vremena, svakom zadatku se pridjequje raspon kao razlika najkasnijeg i

najranijeg vremena po~etka realizacije. Ovaj raspon reprezentuje vremenski opseg u kojem se

mo`e zapo~eti izvr{ewe zadatka, a da se ukupno vrijeme trajawa projekta ne produ`i. Za

zadatke koji imaju raspon po~etka realizacije jednak nuli, ka`e se da le`e na kriti~nom

putu. Svako ka{wewe izvo|ewa zadataka na kriti~nom putu ima za posqedicu i ka{wewe

realizacije cijelog projekta. PERT metoda je u osnovi ekstenzija CPM tehnike, s tim da se

bazira na specifikaciji najvjerovatnijeg, optimisti~kog i pesimisti~kog trajawa zadatka.

Metoda daje probabilisti~ku procjenu optimisti~kog, o~ekivanog i pesimisti~kog trajawa

projekta. Implicite se podrazumijeva da za realizaciju projekta broj potrebnih resursa

nije ograni~en.

Problem raspore|ivawa izvo|ewa zadataka u vi{eprocesorskim sistemima je izuzetno

intenzivno analiziran i istra`ivan. Formulacija problema je jednostavna: kako mapirati

skup zadataka T = {Ti}, i = 1, ... , m izme|u kojih mogu da postoje ograni~ewa pretho|ewa, na

skup procesora {Pk}, k = 1, ... , n tako da se ostvari `eqena funkcija ciqa (npr. minimalno

vrijeme zavr{etka izvo|ewa cijelog skupa). Ograni~ewa pretho|ewa se specifikuju DAG-

om (orijentisanim acikli~kim grafom) G = {T, A}, gdje je T skup zadataka(~vorova) a A = {Aij}

skup orijentisanih lukova. Ako je orijentisani luk Aij ∈ A, onda on reprezentuje ograni~ewe

da zadatak Tj mo`e po~eti izvr{ewe samo nakon zavr{etka izvo|ewa zadatka Ti. Ti je

neposredni prethodnik zadatka Tj, a Tj je neposredni nasqednik zadatka Ti.

Svaki zadatak Ti karakteri{e potrebno vrijeme (cijena) procesirawa. Ako su svi

procesori identi~ni (homegeni vi{eprocesorski sistem) onda je cijena procesirawa

zadatka Ti identi~na na svim procesorima. U heterogenim sistemima, cijena izvo|ewa

zadatka Ti na procesoru Pj se specifikuje elementom (matrice)τ ij, i = 1, ... , m, j = 1, ... , n. Sva-

ki orijentisani luk Aij A ima te`inu D∈ ij, koja reprezentuje koli~inu podataka koji se

izmjewuju izme|u zadataka Ti i Tj. Odgovaraju}a cijena komunikacije je 0, ako se zadaci Ti i Tj

izvode na istom procesoru, a Cij u suprotnom.

Page 117: Skripta(2 Dio)

8.1 Uvod i generalna specifikacija problema raspore|ivawa 194

Funkcija raspore|ivawa se mo`e posmatrati i kao resurs za upravqawe resursima, a

osnovna struktura procesa se mo`e prikazati slikom Sl 8.2.

Resursi Potro{a~

Raspore|iva~

Politika/ strategija

Sl. 8.2 Sistem za raspore|ivawe.

Raspore|ivawe se mo`e posmatrati i ocjewivati sa stanovi{ta uticaja strategije na

potro{a~e i/ili resurse. Zahtjev sa stanovi{ta potro{a~a je da raspore|ivawe resursa

bude "kvalitetno" (odnosno da su performanse raspore|ivawa dobre), i da bude efikasno

(tj. da kompleksnost strategije ne generi{e veliko re`ijsko vrijeme). U navedenoj predsta-

vi, potro{a~i su procesi a resursi procesori. Raspore|ivawe (zadataka) i alokacija

(resursa/procesora) su termini koji se ~esto koriste za opis istog mehanizma sa stanovi{ta

potro{a~a/resursa.

Za razliku od projektnog raspore|ivawa, raspore|ivawe u vi{eprocesorskim sistemima

generalno podrazumijeva ograni~ene procesorske i druge resurse, a mo`e da sadr`i i niz

drugih specifi~nih karakteristika (topologija povezivawa procesora, komunikaciona

ka{wewa, heterogenost, zahtjevi za obradu u stvarnom vremenu i sl.). Metode za rje{avawe

navedenog problema mogu se klasifikovati prema Sl. 8.3 .

Lokalno raspore|ivawe se odnosi na klasi~no raspore|ivawe procesa koje realizuje

operativni sistem na jednom (lokalnom) procesoru, i koje se sastoji iz pridjeqivawa

procesora nekom zadatku (procesu) u odre|enom vremenskom intervalu. Globalno raspore|i-

vawe se odnosi na odlu~ivawe o lokaciji, odnosno procesorskom resursu za izvo|ewe

zadatka u vi{eprocesorskom sistemu, i mo`e se klasifikovati u dve grupe: metode za

stati~ko i metode za dinami~ko raspore|ivawe. Kod stati~kog raspore|ivawa, pridjeqivawe

zadataka procesorskim elementima vr{i se u fazi prevo|ewa programa, i bazira se na

pretpostavqenim vrijednostima vremena izvr{ewa zadataka i komunikacionih ka{wewa

izme|u procesora. Tehnike dinami~kog raspore|ivawa odluku o (pre)alokaciji donose u

fazi izvo|ewa. Pod pretpostavkom da su procjene trajawa izvo|ewa zadataka i komuni-

kacionih ka{wewa ta~ne u fazi prevo|ewa, odre|ivawe rasporeda mo`e biti optimalno

ili podoptimalno. Optimalno raspore|ivawe podrazumijeva pretra`ivawe cijelog prosto-

ra rje{ewa i poznato je kao ra~unski kompleksan problem (eksponencijalne kompleksno-

sti). Broj koraka za nala`ewe optimalnog rje{ewa se mo`e redukovati kori{tewem

Maric Slavko
Str. 2 [15] Shirazi
Page 118: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 195

tehnike "granaj i ograni~i" (branch and bound), kojom se na bazi procjene granica optimalnog

rje{ewa odbacuje (preska~e) tra`ewe rje{ewa u oblasti za koju je izvjesno da ne sadr`i

optimum.

heuristi~ko na bazi teorije poslu`ivawa

matem. program.

graf – teoretsko

“nabrajawem”

aproksimativno

optimalno podoptimalno

aproksimativno heuristi~ko

kooperativno ne-kooperativno

ne-distribuir.

optimalno distribuir. podoptimalno

dinami~ko stati~ko

globalno lokalno

Sl. 8.3 Klasifikacija metoda raspore|ivawa (Casavant 1988).

Druga grupa metoda stati~kog raspore|ivawa produkuje rje{ewa koja nisu optimalna, ali su

"dovoqno dobra", odnosno blizu optimalnog rje{ewa, uz prihvatqivu (polinomsku)

kompleksnost. Aproksimativni algoritmi pretra`uju prostor rje{ewa dok algoritam na

bazi odre|enog kriterijuma ne zakqu~i da je rje{ewe dovoqno dobro.

Aproksimativni i optimalni algoritmi mogu se zasnivati na metodama "nabrajawa"

(enumerative), teoriji grafova, teoriji poslu`ivawa ili matemati~kom programirawu.

Metode za dinami~ko raspore|ivawe zadataka polaze od (realnije) pretpostavke da se

naj~e{}e vrijeme izvo|ewa zadataka i drugi uslovi ne mogu kvalitetno procijeniti u fazi

prevo|ewa, dakle odlu~ivawe se mora realizovati u toku izvo|ewa. Ako se odlu~ivawe

vr{i na jednom mjestu, onda se radi o centralizovanom (ne-distribuiranom) raspore|ivawu,

a u suprotnom o distribuiranom raspore|ivawu.

Ako je odlu~ivawe o raspore|ivawu zadataka distribuirano na razli~ite procesore,

onda procesori prilikom odlu~ivawa mogu me|usobno da kooperi{u ili ne. Kooperativno

raspore|ivawe mo`e biti optimalno ili podoptimalno, sa karakteristikama opisanim za

Slavko Maric
Shen/Tsai \(vidi ref.\), ... “ A graph matching approach ...”: global, static, optimal,enumerative.
Slavko Maric
Primjeri: 1. “A shortest tree algorithm for optimal assignments across space and time in a distributed processor system” IEEE Trans, Softw. Eng., vol. SE-7, no.6, pp. 335-341, Nov 1981. kw: global, static, optimal, mathematical programming, intended for tree structured applications. 2. “ Task allocation in a distributed computer systems”, K. W. Doty, P. L. McEntire, Ieee InfoCom, 1982: kw: global, static, optimal, mathematical programming, \(nonlinear spatial dynamic programming\). 3. Ma \(vidi referencu: branch&bound \(mathematical programming\)
Page 119: Skripta(2 Dio)

8.2 Kompleksnost raspore|ivawa 196

stati~ko raspore|ivawe. Pored ove, hijerarhijske klasifikacije metoda raspore|ivawa,

postoje i druge specifi~ne karakteristike koje pojedine metode iz navedene hijerarhije

mogu imati. Adaptivni algoritmi koriste informacije o stawu sistema za dono{ewe

odluka, dok ne-adaptivni odlu~ivawe vr{e na bazi fiksnog modela ili na bazi fiksne

distrubicije vjerovatno}a pojedinih varijanti odlu~ivawa. Dinami~ko raspore|ivawe

mo`e u fazi izvo|ewa alocirati zadatak procesoru sa ili bez mogu}nosti prealocirawa.

Metode za balansirawe optere}ewa karakteri{e dinami~ka preraspodjela optere}ewa

izme|u procesora sa ciqem da se ostvari boqe iskori{tewe resursa i vrijeme odziva.

Raspore|ivawe sa preuzimawem polazi od pretpostavke da zadatak mo`e biti prekinut u

toku izvo|ewa, uz dodjelu procesora drugom zadatku, i nastavqawe i kompletirawe

prekinutog zadatka u nekom kasnijem trenutku. Pri raspore|ivawu bez preuzimawa, bilo

koji zadatak ~ije je izvr{ewe zapo~eto na nekom procesoru izvr{ava se neprekidno do

kompletirawa izvo|ewa.

Heuristi~ki algoritmi se baziraju na parametrima koji su u korelaciji sa funkcijom

ciqa koja se `eli optimizovati. Ovi parametri se koriste za specifikaciju heuristi~ke

funkcije, na osnovu koje se donosi odluka o raspore|ivawu.

Navedena taksonomija pokazuje raznovrsnost i kompleksnost problematike, iako mnogi

algoritmi sadr`e specifi~nosti koje nisu obuhva}ene navedenom klasifikacijom (raspore-

|ivawe zadataka koje karakteri{u zahtjevi za izvo|ewe u stvarnom vremenu, npr.).

8.2 Kompleksnost raspore|ivawa

Kqu~na karakteristika algoritama za raspore|ivawe zadataka je wihova kompleksnost,

odnosno vrijeme koje je potrebno za nala`ewe rje{ewa. Sa ovog stanovi{ta, neki algoritmi

su efikasni, a neki ne. O~igledno, ova konstatacija je veoma uop{tena, i potrebno je dati

precizniju kvalifikaciju ove karakteristike algoritama.

Algoritam (u op{tem smislu) ~ini kona~na sekvenca preciznih instrukcija kojima se

dolazi do rje{ewa problema. Problem Q predstavqa relaciju na skupu X instanci problema

i skupu S rje{ewa problema.

Vrijeme sra~unavawa rje{ewa algoritmom je obi~no funkcija "veli~ine" problema, koja

se mo`e reprezentovati odre|enom karakteristikom ulazne veli~ine u problem - instance

problema x∈X: npr. broj jedna~ina/nepoznatih za problem rje{avawa sistema linearnih

jedna~ina, broj zadataka kod problema raspore|ivawa na vi{eprocesorski sistem, ili broj

elemenata u nizu za probleme sortirawa. Dakle, ulaz se mo`e na odre|eni na~in

kvantifikovati wegovom veli~inom ili du`inom, od koje zavisi vrijeme trajawa

Page 120: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 197

algoritma. Da bi se procijenilo vrijeme trajawa algoritma, od interesa je odre|ivawe

gorwe granice broja koraka koje je potrebno izvesti L(n) u zavisnosti od veli~ine obima

problema n = | x |. Umjesto preciznog izraza za L(n) naj~e{}e se posmatra aproksimacija

granice: ka`e se da je gorwa granica L(n) algoritma reda O(g(n)), ako postoje konstante C i n0

takve da je L(n) C * g(n) za . Problem je rje{iv u polinomskom vremenu, ako postoji

polinom p takav da je gorwa granica algoritma O (p(n)).

≤ 0nn ≥∀

Problemi koji imaju opseg rje{ewa {da, ne} spadaju u grupu problema odlu~ivawa. Ovi

problemi se mogu smatrati funkcijama koje svaku instancu x problema mapiraju na Q(x) ∈

{da,ne}. Za probleme odlu~ivawa koji su rje{ivi u polinomskom vremenu ka`e se da spadaju

u klasu P . Problemi raspore|ivawa se mogu formulisati kao problemi odlu~ivawa, npr. o

tome da li se dati skup zadataka reprezentovan sa G = {T,A}, mo`e rasporediti na skup

procesora {Pk}, tako da je raspon izvo|ewa ≤ K. Rje{ewe sa vrijedno{}u "da" se mo`e

specifikovati sertifikatom; npr "raspored s je mogu}, sa rasponom ≤ K", gdje s specifikuje

konkretan raspored. U op{tem slu~aju, sa N P se ozna~ava klasa problema odlu~ivawa, tako

da svako rje{ewe sa odgovorom "da" za neko x ima sertifikat y, pri ~emu je | y | ograni~eno

polinomski u zavisnosti od | x |, i da postoji algoritam koji verifikuje u polinomskom

vremenu da je y vaqan sertifikat za x. Svaki problem odlu~ivawa koji je rje{iv u

polinomskom vremenu pripada skupu N P problema, odnosno P ⊆ N P (ako za neki problem

odlu~ivawa postoji algoritam koji za svaki x sra~unava u polinomskom vremenu odgovor Q(x)

{da, ne}, onda se (polinomski) algoritam kojim se rje{ava problem mo`e lako

konvertovati u algoritam za verifikaciju (verifikacija se mo`e izvr{iti samim

algoritmom u polinomskom vremenu)). Pitawe da li je P = N P , jo{ je otvoreno, iako

indikacije ukazuju da je P ≠ N P . Ako imamo dva problema odlu~ivawa P i Q, onda ka`emo da

se P mo`e reducirati na Q (P∝ Q) ako postoji funkcija g (sa polinomskom kompleksno{}u)

koja transformi{e instance problema P u instance problema Q tako da, ako je x instanca

problema P za koju je rje{ewe "da", onda g preslikava x u g(x) koji je instanca problema Q za

koju je rje{ewe tako|e "da". Lako se pokazuje da, ako su P i Q problemi odlu~ivawa i P

∝ Q,

onda Q∈P = > P∈ P .

Problem Q je N P - kompletan ako je Q∈N P i ako za ∀ P ∈N P imamo P∝ Q. Klasu N P

– te{kih problema ~ine problemi na koje se mogu reducirati neki (a time i svi) N P -

kompletni problemi. Intuitivno, N P problemi nisu te`i od N P -kompletnih problema,

a N P -te{ki problemi nisu lak{i od N P –kompletnih. S obzirom na navedene definicije,

ako bi rje{ewe bilo kojeg N P -kompletnog problema bilo u P , onda bi svi N P problemi

bili u P , i analogno, ako bi se dokazalo da bilo koji N P -kompletan problem nema rje{ewa

Page 121: Skripta(2 Dio)

8.3 Algoritmi za stati~ko raspore|ivawe 198

u P , onda bi to va`ilo i za sve N P -kompletne probleme. Dakle, ~iwenica da za N P -

kompletne probleme nisu prona|eni algortmi u polinomskom vremenu ne zna~i i tvrdwu

(ve} samo preovla|uju}e uvjerewe, na osnovu osobina takvih problema) da takva rje{ewa ne

postoje.

Neki problemi su N P -kompletni, ako maksimalna vrijednost pojedinih karakteristika

objekata nije ograni~ena. Ako se ograni~i maksimalna vrijednost relevantnih karakteri-

stika objekata, problem prelazi u klasu P . Odgovaraju}i algoritmi se nazivaju pseudopoli-

nomski, jer imaju polinomski ograni~eno vrijeme ra~unawa samo ako je vrijednost relevan-

tnih karakteristika objekata ograni~ena.

Primjeri N P -kompletnih problema odu~ivawa su problemi particionisawa skupa od n

cjelobrojnih elemenata u dva podskupa sa osobinom da je suma elemenata u oba podskupa

jednaka; problem utvr|ivawa da li u neorijentisanom grafu G = (T, A) (T-skup ~vorova, A-

skup lukova izme|u ~vorova) postoji podgraf C sa k ili mawe ~vorova, tako da za svaki luk

(u,v) A, barem jedan ~vor na luku (u,v) pripada podgrafu C i sl. Zna~aj ovih poznatih

problema je u tome {to se polinomskom transformacijom novog problema u neki od

navedenih, mo`e identifikovati pripadnost problema klasi N P -kompletnih problema.

Problem optimalnog raspore|ivawa zadataka na skup procesora (sa minimalnim vreme-

nom izvr{ewa kao funkcijom ciqa) je poznat (u op{tem slu~aju) kao N P - kompletan

problem. Npr. raspore|ivawe skupa zadataka sa proizvoqnim vremenima izvr{ewa na dva

procesora, mo`e se jednostavno reducirati na navedeni problem particionisawa. Ovo

implicira da je problem raspore|ivawa ra~unski kompleksan, {to je i osnovni razlog za

{iroku primjenu algoritama koji daju podoptimalna, ali dovoqno kvalitetna rje{ewa u

polinomskom vremenu.

8.3 Algoritmi za stati~ko raspore|ivawe

Kao {to je prethodno pomenuto, stati~ko raspore|ivawe zadataka po procesorskim

elementima vr{i se prije po~etka izvo|ewa. Pretpostavke od kojih polazi najve}i broj

algoritama jesu: graf zadataka je orijentisan, acikli~an i stati~an; zadatak pridijeqen

nekom procesoru ne mo`e kasnije biti prealociran; svi procesori su me|usobno (direktno

ili indirektno) povezani i mogu izmjewivati podatke; zadaci imaju procesne i komunikaci-

one karakteristike koje se ne mijewaju i koje su poznate prije izvo|ewa (u fazi prevo|ewa);

zadatak koji generi{e podatke, prosqe|uje ih zadacima koji ih koriste nakon {to je wegovo

izvo|ewe zavr{eno; komunikacija podataka od jednog zadatka ka razli~itim zadacima-kori-

Slavko Maric
veli~ina
Slavko Maric
podsjetiti se
Page 122: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 199

snicima se odvija paralelno. Pretpostavke koje variraju u razli~itim algoritmima su:

homogenost/heterogenost procesora; izvo|ewe zadataka bez preuzimawa/sa preuzimawem;

specifi~nosti komunikacionog podsistema i sl.

Tipi~na funkcija ciqa za koju se `eli na}i minimum je ukupno vrijeme izvo|ewa skupa

zadataka. Da bi se ovaj ciq ostvario potrebno je, s jedne strane, minimizovati komunikaci-

ona ka{wewa, a s druge strane, maksimalno paralelizovati procesirawe zadataka. Po{to se

minimizacija komunikacionih ka{wewa ostvaruje grupisawem zadataka za izvr{ewe na

istom procesoru, {to zna~i sekvencijalizacijom izvr{ewa, a s druge strane, paralelizacija

procesirawa podrazumijeva izvo|ewe zadataka na razli~itim procesorima, jasno je da

optimalno rje{ewe sadr`i kompromis dva navedena suprotna principa. Budu}i da je

problem nala`ewa optimalnog rje{ewa u op{tem slu~aju N P - kompletan, naj~e{}e se

koriste algoritmi koji daju podoptimalna rje{ewa u polinimskom vremenu. Kao {to je

prethodno navedeno, ovi algoritmi mogu biti aproksimativni i heuristi~ki. Naj~e{}e

kori{teni aproksimativni algoritmi se baziraju na metodi simulacije kaqewa, metodama

matemati~kog programirawa i ograni~enog pretra`ivawa prostora rje{ewa. Heuristi~ki

algoritmi se naj~e{}e baziraju na tehnikama raspore|ivawa po listama prioriteta (list

scheduling), te na tehnikama objediwavawa u grupe (clustering).

U daqem tekstu su ukratko opisani neki algoritmi za stati~ko raspore|ivawe.

3.3.1 Algoritmi za optimalno raspore|ivawe

Razli~iti algoritmi za optimalno raspore|ivawa podrazumijevaju odre|ene specifi~nosti

strukture i karakteristika grafova koji reprezentuju sistem zadataka.

Ako se sistem sastoji od m nezavisnih zadataka, ~ija su vremena izvo|ewa 1τ , 2τ , ... , mτ i n

procesora onda je optimalno vrijeme raspore|ivawa sa preuzimawem dato sa (Muntz i Coffman):

{ }

= ∑=≤≤

m

iii

mio nT

11

1,maxmax ττ

Deterministi~ki optimalni algoritmi raspore|ivawa sa preuzimawem, u homogenim vi{e-

procesorskim sistemima, koji produkuju rje{ewe u vremenu ograni~enom polinomskom fun-

kcijom zavisnosti od broja zadataka (bez ra~unawa komunikacionih ka{wewa) su svedeni na

slijede}e specijalne slu~ajeve:

1) Graf G se sastoji od ~vorova (zadataka) koji imaju me|usobno proporcionalna vremena

izvo|ewa, a broj procesora je ograni~en na 2.

Page 123: Skripta(2 Dio)

8.3 Algoritmi za stati~ko raspore|ivawe 200

2) Svaki ~vor u grafu G ima najvi{e jednog nasqednika, odnosno, graf G ima formu

stabla (rooted tree). Vremena izvo|ewa ~vorova su me|usobno proporcionalna, a broj

procesora je ≥ 2.

Za nepreuzimaju}e raspore|ivawe, uslov dobijawa optimalnog algoritma za slu~ajeve 1) i 2)

je da zadaci imaju ista vremena izvr{ewa. Algoritmi koji daju optimalna rje{ewa za

navedene slu~ajeve predstavqaju razli~ite varijante i ekstenzije Hu-ovog bazi~nog algorit-

ma. U osnovi, ovi algoritmi formiraju sortiranu listu zadataka po pridijeqenim priori-

tetima, a zatim (dok se lista ne isprazni) dodjequju zadatak najvi{eg prioriteta iz liste,

spreman za izvo|ewe, prvom slobodnom procesoru na izvr{avawe.

Iako navedeni algoritmi nisu direktno primjenqivi u realnim sistemima, dobijeni

analiti~ki rezultati daju odre|ene smjernice o tome kako eksploatisati paralelizam u

vi{eprocesorskim sistemima. Tako|e, oni mogu pomo}i u procjewivawu granica ubrzawa

koje se posti`e paralelnim izvo|ewem, najlo{ijih slu~ajeva itd. Npr. odnos vremena

izvr{ewa (ϖ ) m zadataka (sa ograni~ewima pretho|ewa) na n procesora, raspore|enih bilo

kojim algoritmom na bazi prioritetne liste (list scheduling) koji ne uzima u obzir

komunikaciona ka{wewa, u odnosu na vrijeme optimalnog rasporeda ( 0ϖ ), dat je sa ϖ / 0ϖ

= n12 − .

Optimalni deterministi~ki algoritmi u op{tem slu~aju daju (optimalno) rje{ewe u

vremenu koje se ne mo`e ograni~iti polinomskom funkcijom zavisnosti od broja zadataka.

Iako su za prakti~nu primjenu od interesa samo algoritmi koji daju rje{ewa u vremenu

ograni~enom polinomskom funkcijom, navedeni algoritmi imaju veliki zna~aj u analizi i

procjewivawu heuristi~kih algoritama, uo~avawu i korigovawu wihovih "slabih ta~aka",

analizi najlo{ijih slu~ajeva i sl.

Algoritam koji je predlo`io Stone se bazira na primjeni Ford/Fulkersonovog (max tok/min

presjek) algoritma, kojim se maksimalni protok (robe) u mre`i dobija nala`ewem

minimalnog presjeka grafi~kog modela mre`nog toka. Mre`a kojom se mogu realizovati

razli~iti tokovi se modelira grafom, gdje postoje izvori, odredi{ta i me|u~vorovi

povezani lukovima. Lukovima se pridjequju te`ine, koje reprezentuju maksimalni protok

izme|u ~vorova.

Slavko Maric
Ullman, J.D., “Polynomial Complete Scheduling Problems”, Proc. 4th Symp. on Operating Systems Principles \(1973\), 96-101.
Page 124: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 201

Specifi~ni tok se reprezentuje orijentisanim grafom, gdje te`ine na pojedinim granama

predstavqaju iznos toka (robe npr.) izme|u ~vorova. Suma ulaznih i izlaznih tokova za

unutra{we ~vorove mora biti ista, a suma (izlaznih) tokova iz izvora mora biti jednaka

sumi (ulaznih) tokova odredi{ta. Maksimalni tok u mre`i se dobije sumom te`ina na

lukovima koji pripadaju minimalnom presjeku. Presjek lukova mora biti takav da u

potpunosti dijeli izvore od odredi{ta. Ovaj model optimizacije, zasnovan na grafovima,

iskori{ten je za odre|ivawe pridjeqivawa zadataka heterogenim procesorima, sa ciqem

minimizacije ukupne cijene izvo|ewa i komunikacije. Struktura zadataka predstavqa se

grafom, gdje ~vorovi reprezentuju same zadatke, a te`ine na lukovima cijenu komunikacije

izme|u zadataka ako se oni izvode na razli~itim procesorima. Vremena izvo|ewa zadataka

na svakom procesoru se daju posebnom tabelom Sl. 8.4.

D

C

B

A

P 1 P 0

4 8

5 10

9 2

12 6

D C

B

A 2

4

3 5

Sl. 8.4. Specifikacija izvo|ewa sistema zadataka u heterogenom sistemu.

Za slu~aj izvo|ewa zadataka na dva procesora, dodaju se dva ~vora So i S1 (koji reprezentuju, s

jedne strane procesore, a s druge strane izvore/odredi{te u modelu mre`nog toka). Tako|e

se dodaju lukovi koji povezuju ~vorove So i S1 sa ~vorovima zadataka. Te`ina na luku kojem

pripada So i neki zadatak X odgovara vremenu izvo|ewa tog zadatka na P1 i obrnuto, luk koji

povezuje ~vor S1 i zadatak X ima te`inu koja je jednaka vremenu izvo|ewa zadatka X na Po. Za

prethodni primjer, pro{ireni graf izgleda kao na Sl. 8.5.

Konstrukcija grafa je takva da odgovara modelu mre`nog toka, a presjek koji dijeli

izvore i odredi{ta odre|uje alokaciju zadataka po procesorima. Suma te`ina svih lukova

na presjeku, predstavqa sumu ukupne cijene izvo|ewa (procesorske i komunikacione).

Problem alokacije zadataka, za datu funkciju ciqa, svodi se na problem nala`ewa

minimalnog presjeka mre`nog toka, {to se realizuje direktno Ford/Fulkerson-ovim algorit-

mom (koji je reda O(n5)). Odre|ivawe redoslijeda i startnih vremena izvo|ewa zadataka na

procesorima, ostavqa se za fazu izvo|ewa.

Page 125: Skripta(2 Dio)

8.3 Algoritmi za stati~ko raspore|ivawe 202

53

42

A

B

C D

12

9

6

2

8

4

5

10

S0

S1

Sl. 8.5 Modifikovani graf i presjek koji odre|uje pridjeqivawe modula.

Navedeni metod, principijelno razvijen i za sistem sa n procesora, za vi{e od 3 procesora

postaje ra~unski neupravqiv. Osim toga, za slu~aj da su procesori homogeni, funkcija ciqa

je takva da se svi zadaci mapiraju na jedan procesor.

Interesantno je napomenuti da autor isti~e primjenqivost ove tehnike ne samo za

stati~ko nego i za dinami~ko raspore|ivawe zadataka.

Slavko Maric
Primjer: Stone _______________________________________________________________________________ So=Po Co Comm C1 S1=P1 total _______________________________________________________________________________ 0 0 0 29 ABCD 29 A 6 7 18 BCD 31 B 2 8 21 ACD 31 C 10 6 25 ABD 31 D 8 7 26 ABC 41 AB 8 5 9 CD 22 AC 16 9 13 BD 38 AD 14 14 14 BC 42 BC 12 14 16 AD 42 BD 10 9 17 AC 36 CD 18 5 21 AB 44 ABC 18 7 4 D 29 ABD 16 6 5 C 27 ACD 24 8 9 B 41 BCD 20 7 12 A 39 ABCD 26 0 0 0 26 __________________________________________________________________
Slavko Maric
Vlastito optimalno rasporedjivanje
Page 126: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 203

3.3.2 Heuristi~ki algoritmi

Heuristi~ki algoritmi donose odluku o raspore|ivawu zadataka na bazi uticaja odre|enih

parametara na funkciju ciqa koja se optimizuje. Na primjer, kriti~ni put odre|uje raspon

izvo|ewa, i algoritmi koji se baziraju na ovom parametru u svakom koraku nastoje maksi-

malno da smawe kriti~ni put. Ovi algoritmi polaze od odre|enih, a priori pretpostavki o

strukturi zadataka i uslova eksploatacije, i naj~e{}e garantuju podoptimalno rje{ewe u

odre|enim granicama. Vrijeme raspore|ivawa je znatno kra}e u odnosu na druge tehnike,

{to ove metode ~ini najatraktivnijim za primjenu. Dva naj~e{}e kori{tena generalna

pristupa su raspore|ivawe po listama prioriteta (list scheduling) i objediwavawe u grupe

(clustering).

Raspore|ivawe po listama prioriteta

Raspore|ivawe po listama prioriteta je jednostavna i efikasna tehnika, koja u najve}em

broju slu~ajeva, daje dovoqno dobre rasporede. Princip raspore|ivawa je slijede}i:

zadacima se pridjequju prioriteti na osnovu odre|ene heuristi~ke funkcije, a zatim se oni

stavqaju u listu, sortiranu prema navedenom prioritetu. Ukoliko postoje ograni~ewa

pretho|ewa u izvo|ewu zadataka, onda, u posmatranom trenutku, zadaci ~iji su svi pretho-

dnici zavr{ili izvo|ewe se ozna~avaju spremnim za izvo|ewe, a procesori koji ne procesi-

raju zadatke se ozna~avaju raspolo`ivim. Ako u posmatranom trenutku postoje raspolo`ivi

procesori i zadaci spremni za izvo|ewe, onda se prvo vr{i pridjeqivawe spremnog zadatka

sa najvi{im prioritetom procesoru iz skupa raspolo`ivih. Zatim se pridijeqeni zadatak

uklawa iz prioritetne liste, a procesor iz skupa raspolo`ivih. Proces se u odnosnom

trenutku ponavqa za slijede}e zadatke spremne za izvo|ewe, po opadaju}em redoslijedu

prioriteta, i zavr{ava se kada se iscrpe svi spremni zadaci ili raspolo`ivi procesori.

Zatim se inkrementira globalni takt, sve do trenutka kada neki od procesora ne postaje

raspolo`iv, ili novi zadatak spreman za izvo|ewe, nakon ~ega se opisani proces

pridjeqivawa ponavqa. Najjednostavnija ilustracija raspore|ivawa po listama prioriteta

je za slu~aj nezavisnih zadataka. Na primjer, LPT (Largest Processing Time) algoritam vr{i

raspore|ivawe nezavisnih zadataka, pri ~emu je prioritet zadatka ve}i ako mu je vrijeme

izvo|ewa du`e. Opis ovog algoritma je dat u tekstu koji slijedi.

Neka je dat skup {Ti} i = 1, ... , m nezavisnih zadataka koji se izvode na n procesora. Vrije-

me potrebno za izvo|ewe zadataka Ti ozna~imo sa iτ . U svakom posmatranom trenutku postoji

parcijalni raspored zadataka na procesore. Neka je Fj teku}e vrijeme zavr{etka procesi-

rawa procesora Pj (tj. vrijeme kada procesor Pj postaje raspolo`iv).

Page 127: Skripta(2 Dio)

8.3 Algoritmi za stati~ko raspore|ivawe 204

procedure LPT

1) Postavi k = 1 i Fj = 0 za 1 ≤ j ≤ n. Stavi zadatke Ti, i = 1, ... , m u listu L i sortiraj listu po opadaju}im vremenima izvo|ewa zadataka iτ .

2) Izaberi procesor Pj sa najmawim Fj (tj. procesor sa minimalnim teku}im vremenom zavr{etka).

3) Pridijeli zadatak Tk, sa k-tog ulaza liste prioriteta, procesoru Pj, i a`uriraj Fj na vrijednost Fj = Fj + kτ .

4) Ako je k m inkrementiraj k i idi na 2. U suprotnom, algoritam zavr{ava pri ~emu je raspon izvo|ewa jednak maksimalnoj vrijednosti F

≠j, j = 1, ... ,n.

end LPT

Ukoliko izme|u zadataka postoje relacije pretho|ewa, onda se samo spremni zadaci mogu

rasporediti za izvo|ewe.

Najpoznatiji heuristi~ki algoritam za raspore|ivawe zadataka izme|u kojih postoje

relacije pretho|ewa je HLFET (Highest Level First with Estimated Times), ili metod kriti~nog

puta. Algoritam ne uzima u obzir komunikaciona ka{wewa izme|u zadataka. Svakom zadatku

Ti se pridjequje prioritet, koji je jednak sumi vremena izvo|ewa svih zadataka, na najdu`em

putu od Ti do nekog zavr{nog ~vora. Raspore|ivawe po HLFET {emi realizuje se prema

slijede}oj proceduri:

procedure HLFET

1) Inicijalizacija. Svakom zadatku Ti, i = 1, ... , m , pridijeli prioritet koji je jednak sumi

vremena izvo|ewa svih zadataka na najdu`em putu od Ti do nekog zavr{nog ~vora.

Postavi k = 1 i Fj = 0 za 1 j ≤ ≤ n. Stavi zadatke Ti u listu L i sortiraj L po opadaju}oj

vrijednosti prioriteta zadataka. Iniciraj t = 0. Uz svaki Ti zadatak postavi vrijednost

INDEGREE (Ti) jednaku broju wegovih neposrednih prethodnika. Zadatak Ti je spreman za

izvo|ewe ako je vrijednost parametra INDEGREE (Ti) = 0.

2) Pridijeli zadatak Ti spreman za izvo|ewe (sa najvi{im prioritetetom u posmatranom

trenutku) slobodnom procesoru. Ukloni Ti iz liste L i procesor Pj iz skupa raspolo`i-

vih. Pove}aj k za 1 i Fj = Fj + iτ . Ponovi 2 sve dok ima zadataka spremnih za izvo|ewe i

raspolo`ivih procesora u posmatranom trenutku.

3) Ako je k = m algoritam zavr{ava. Raspon izvo|ewa je Fj

max j. U suprotnom postavi t =

Fj

min j, j pripada skupu procesora koji vr{e procesirawe. Za svaki procesor Pj koji

zadovoqava gorwi uslov i korespondentni zadatak Ti koji zavr{ava izvo|ewe na Pj u

trenutku t,

Page 128: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 205

- stavi procesor Pj u listu raspolo`ivih,

- za svaki ~vor Tl koji je nasqednik Ti a`uriraj INDEGREE(Tl) = INDEGREE(Tl) – 1 a

zatim idi na korak 2.

end HLFET

HLFET algoritam nastoji u svakom koraku da smawi najdu`i put, prioritetnim raspore-

|ivawem zadatka koji se nalazi na tom putu. Takva strategija mo`e rezultovati neravno-

mjernim balansom optere}ewa procesora, i time du`im rasponom izvo|ewa. Na primjer, ako

se rasporedi zadatak sa najve}im prioritetom (na kriti~nom putu), onda je potrebno

pridijeliti izvo|ewe drugih zadataka drugim procesnim elementima za vrijeme izvo|ewa

pomenutog zadatka. Ali, ako je pomenuti zadatak "kontrolni" on mo`e da blokira

raspore|ivawe drugih zadataka dok se ne zavr{i wegovo izvo|ewe.

Predlo`ena ekstenzija HLFET algoritma [G.Sih] uzima u obzir komunikaciona ka{wewa.

Zadatku se dodjequje dinami~ki nivo/prioritet, koji se mijewa u toku procesa raspore|i-

vawa. Dinami~ki nivo DL(Ti, Pj, ∑ )(t ) odra`ava pogodnost raspore|ivawa izvo|ewa sprem-

nog zadataka Ti na procesoru Pj u stawu ∑ )(t , gdje ∑ )(t obuhvata kako stawe procesirawa

(prethodno raspore|enih zadataka) tako i stawe komunikacionih resursa (prethodno

aktiviranih i mapiranih transfera podataka) u trenutku t. DA(Ti, Pj, ) je najranije

vrijeme kada su svi podaci potrebni za izvo|ewe zadatka T

∑ )(t

i, raspolo`ivi na procesoru Pj za

stawe . S obzirom da raspolo`ivost podataka potrebnih za izvo|ewe T∑ )(t i zavisi od topo-

logije povezivawa procesora, ova veli~ina se izra~unava u topolo{ki zavisnom modulu

raspore|iva~a, koji uzima u obzir stawe komunikacionih resursa u datom trenutku.

Dinami~ki nivo izra`ava se sa:

DL(Ti, Pj, ) = SL(T∑ )(t i) - max{t, DA (Ti, Pj, ∑ )(t }.

gdje SL(Ti) ozna~ava stati~ki prioritet.

U svakom koraku za izvo|ewe se selektuje zadatak spreman za raspore|ivawe i raspolo`ivi

procesor (par), za koji prethodni izraz ima najve}u vrijednost.

Page 129: Skripta(2 Dio)

8.3 Algoritmi za stati~ko raspore|ivawe 206

Dinami~ki nivo ima jednostavnu interpretaciju. Drugi ~lan u izrazu predstavqa

najranije vrijeme kada su podaci, potrebni za Ti, raspolo`ivi na Pj. Stati~ki prioritet,

koji se odre|uje na isti na~in kao i za HLFET, se umawuje za navedeni ~lan. To zna~i, da

zadatak koji }e dugo ~ekati na podatke, ne treba odmah pridijeliti procesoru za izvo|ewe

(jer se on ionako ne}e izvoditi zbog ~ekawa na podatke) uprkos wegovom visokom stati~kom

prioritetu. Odnosno, povoqnije je rasporediti zadatak sa mawim stati~kim prioritetom,

koji }e prije biti spreman za izvo|ewe, i na taj na~in smawiti prazan hod procesora. Ovaj

pristup autor naziva HDLFET algoritam (Highest Dynamic Level First with Estimated Time).

Osnovni nedostatak HDLFET algoritma je nemogu}nost da se procesor dr`i u praznom hodu.

Naime, algoritam u svakom koraku raspore|ivawa, koji je odre|en globalnim taktom,

dodjequje zadatak sa najve}im dinami~kim prioritetom raspolo`ivom procesoru, nastoje}i

eksploatisati raspolo`ivi paralelizam. Ovakav pristup nije pogodan za slu~aj sitnozrnas-

tog paralelizma, gdje je komunikaciono vrijeme izra`eno, ve} je potrebno omogu}iti serija-

lizaciju izvo|ewa paralelnih zadataka na jednom procesoru, u ciqu minimizacije efekta

komunikacionih ka{wewa. Npr. DAG na Sl. 8.6, ima optimalan raspored izvo|ewa kada se

svi zadaci raspodijele na jedan procesor.

4

14 C B

51 3

A9

2 D

Sl. 8.6. Sitnozrnasti DAG.

Da bi se rije{io navedeni problem, autor predla`e fundamentalnu modifikaciju

HDLFET algoritma raspore|ivawa, dozvoqavaju}i da svi procesori u svakom koraku

raspore|ivawa budu raspolo`ivi, {to omogu}ava da se nekom procesoru sukcesivno

dodijeli vi{e zadataka (pogodnih za izvo|ewe na tom procesoru). Iz navedenog razloga, u

modifikovanom algoritmu, ne koristi se globalni takt za napredovawe procesa raspore|i-

vawa.

Dinami~ki nivo koji se dodjequje spremnim zadacima je:

DL(Ti, Pj ) = SL(Ti) - max {DA(Ti, Pj, ∑) , TF(Pj, ∑) },

Slavko Maric
processor idling
Slavko Maric
C* DSL algoritam ne procjewuje adekvatno cijenu za ne-raspore|ivawe nekog ~vora na neki procesor. Posmatrajmo primjer grafa na slijede}oj slici koji se raspore|uje na 2 procesorskom sistemu (uz preth.navedene pretpostavke) Inicijalno DSL raspore|uje ~vor “0” na procesor P1. Nakon {to P1 zavr{i procesirawe ~vora “0”, oba procesora su slobodna i ~vorovi “1” i “2” su spremni za raspore|ivawe. Algoritam sra~unava dinami~ke prioritete za izvo|ewe ~vorova “1” i “2” na procesorima P1 i P2: “1” “2” P1 -7 -10 P2 -9 -25 i pridjequje procesoru P1 ~vor “1”, a nakon toga istom procesoru i ~vor “2” {to rezultuje rasporedom sa rasponom izvo|ewa 34. Optimalan raspored je izvo|ewe ~vorova “0” i “2” na procesoru P1 i ~vora “1” na P2 sa rasponom 29. Kao {to se vidi, povoqniji procesor i za ~vor “1” i za ~vor “2” je P1. Algoritam daje prednost izvo|ewu ~vora “1” na P1 zbog ve}eg dinami~kog prioriteta, ali na odre|ivawe dinami~kog prioriteta u odnosnom slu~aju uticaj ima samo stati~ki prioritet. Algoritam ne sagledava pri prvoj alokaciji ~vora, da neizvo|ewe ~vora “2” na P1 ko{ta 15 vremenskih jedinica ka{wewa, a ~vora “1” samo 2 jedinice vremena.
Page 130: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 207

gdje je TF(Pj, najranije vrijeme kada procesor P∑) j zavr{ava procesirawe pridijeqenih

zadataka za stawe ∑ . Autor tako|e predla`e ekstenzije algoritma za stati~ko raspore|i-

vawe zadataka u heterogenom vi{eprocesorskom okru`ewu, uzimawem u obzir pogodnosti

raspore|ivawa zadatka na svakom procesoru, pogodnosti raspore|ivawa na odre|eni

procesor sa stanovi{ta nasqednika, te raspolo`ivosti vi{e istovrsnih procesora.

Tako|e, razmatra se kori{tewe drugih postupaka, kao {to su, na primjer, te`inski faktori

pojedinih ~lanova, raspore|ivawe unazad i uvo|ewe dodatnih ograni~ewa pretho|ewa koja

poboq{avaju raspored, ali i uvode dodatna re`ijska vremena.

Algoritmi na bazi grupisawa (Clustering algorithms)

U prisustvu komunikacionih ka{wewa, optimalno raspore|ivawe se ne dobija uvijek

maksimalnom eksploatacijom paralelizma. Problem dobijawa optimalnog rasporeda mo`e

se posmatrati i kao problem grupisawa zadataka, pridjeqivawa grupa procesorima i

odre|ivawa redoslijeda izvr{ewa u okviru svake grupe (procesora). Za ilustraciju, posma-

trajmo jednostavan graf zadataka na Sl. 8.7.

Dxz

x

Dxy

zτyτ

z y

Dxy, Dxz - koli~ina jedini~nih podataka koji xτ , yτ , zτ - Vrijeme potrebno za

se prosqe|uju od x ka y odnosno z. izvr{ewe zadataka x, y, z.

Sl. 8.7 Jednostavan graf zadataka sa komunikacionim ka{wewima.

Optimalan raspored grafa sa Sl. 8.7 na 2 identi~na procesora, ako je funkcija ciqa

minimalni raspon izvo|ewa, zavisi od vrijednosti Dxy, Dxz, yτ , zτ . Zbog jednostavnosti,

pretpostavimo da komunikacija D jedini~nih podataka izme|u 2 procesora zahtijeva D vre-

menskih jedinica. Vrijeme komunikacije izme|u zadataka, ako se zadaci izvedu na istom

procesoru, je zanemarqivo. Onda je

Topt = xτ + min { yτ + zτ , max { yτ , zτ + Dxz }, max { zτ , yτ + Dxy}}

Ako je ~lan yτ + zτ minimalan, onda je optimalan raspored kada se svi zadaci izvode na

jednom procesoru; ako u "min" izrazu minimalnu vrijednost ima ~lan max { yτ , zτ + Dxz}, onda

Page 131: Skripta(2 Dio)

8.3 Algoritmi za stati~ko raspore|ivawe 208

se optimalan raspored dobija izvo|ewem x i y na P1 i z na P2; u suprotnom, x i z treba

izvr{iti na P1, a y na P2.

Dakle, komunikaciona ka{wewa imaju bitnu ulogu u odre|ivawu grupa zadataka

(klastera) koja se pridjequju procesorima. Algoritmi na bazi grupisawa nastoje formirati

grupe, koje }e minimizovati komunikaciona ka{wewa pri izvo|ewu, nakon wihovog

mapirawa na procesore, uz {to je mogu}e ve}u eksploataciju paralelizma.

Jasno je da su navedeni ciqevi opre~ni: eliminisawe komunikacionih ka{wewa se

ostvaruje grupisawem zadataka na jednom procesoru, dakle serijalizacijom, dok se s druge

strane eksploatacija paralelizma posti`e disperzijom konkurentnih zadataka na razli~ite

procesore (~ime se pove}avaju komunikaciona vremena). Optimalno rje{ewe je dakle

najboqi kompromis dve navedene (opre~ne) strategije i, u op{tem slu~aju, problem wegovog

nala`ewa je N P -kompletan.

Formalno, problem grupisawa, za sistem specifikovan u dijelu 3.1, se mo`e iskazati kao

problem mapirawa DAG-a na g grupa {G1, G2, ..., Gg },

map(Ti) = Gk , i = 1, ... , m, (1 ≤ k ≤ g ≤ n),

tako da se zadovoqi funkcija ciqa. Ako je funkcija ciqa minimalno vrijeme izvo|ewa

(raspon izvo|ewa - "paralelno" vrijeme) na vi{eprocesorskom sistemu sa n procesora, onda

se problem svodi na odre|ivawe grupa Gk, k = 1, ... , g, pridjeqivawe grupa procesorima i

odre|ivawe redoslijeda izvo|ewa svakog zadatka u grupi, tako da se za dati raspored ostvari

uslov

})}({max{min:1

imis

TCT=

,

gdje je CT(Ti) vrijeme kompletirawa zadatka Ti, a s skup svih mogu}ih rasporeda izvo|ewa

skupa T na P (min-max kriterijum).

Tehnike linearnog grupisawa, na osnovu polaznog DAG-a, formiraju grupe (clusters)

zadataka, pri ~emu svaka grupa sadr`i zadatke koji imaju najvi{e jednog prethodnika i

najvi{e jednog nasqednika u grupi (linearne grupe). U (linearnoj) grupi ne mogu biti

me|usobno nezavisni zadaci. Primjeri tehnika linearnog grupisawa su algoritmi koje su

predlo`ili Kim i Browne i Lee .

Prvi algoritam, u svakom koraku, identifikuje orijentisani put sa najve}om te`inom

(sumom procesnih i komunikacionih zahtjeva), i izdvaja zadatke na tom putu u linearnu

grupu. Zatim zadatke iz navedene grupe uklawa iz DAG-a i postupak ponavqa za preostale

~vorove, sve dok se kompletan graf ne razdijeli u linearne grupe. Izme|u linearnih grupa

postoje relacije pretho|ewa i komunikacioni tokovi odre|eni polaznim DAG-om. Navedeni

algoritam, za mapirawe linearnih grupa na vi{eprocesorski sistem, primjewuje tehnike

koje se zasnivaju na teoriji grafova.

Page 132: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 209

Drugi pomenuti metod dobijawa linearnih grupa (dijeqewe po vertikalnim slojevima

(vertically layered partitioning)) izvodi se u dve faze: u prvoj fazi, polazni sitnozrnasti DAG se

transformi{e topolo{kim sortirawem u me|usobno disjunktne horizontalne slojeve. Svi

zadaci u sloju k su me|usobno nezavisni, i imaju barem jednog prethodnika u sloju k-1. U

modifikovanom grafu, identifikuje se direktni (vertikalni) put najve}e te`ine, i izdvaja

u linearnu grupu (Sl. 8.9). Izdvojeni ~vorovi se uklawaju iz grafa i postupak se ponavqa sa

preostalim ~vorovima modifikovanog grafa, sve dok se ne iscrpe svi ~vorovi

(modifikovanog) grafa.

0≥

Osnovna ideja navedenih algoritama je da se minimizuje kriti~ni put: zadaci koji su na

kriti~nom putu, zbog relacija pretho|ewa, moraju se izvesti sekvencijalno. Grupisawem

ovih zadataka na jednom procesoru, elimini{u se komunikaciama ka{wewa pri wihovom

izvo|ewu ~ime se nastoji dobiti najpovoqniji raspon izvo|ewa. Me|utim, grupisawem

zadataka na kriti~nom putu DAG-a, ne dobija se uvijek optimalan raspored izvo|ewa, kao

{to to pokazuje slijede}i primjer.

A

C

4

1

1

E

4

10

1 5 B

5

D

1

10

Sl. 8.8 Primjer sistema zadataka.

Kriti~ni put grafa je ABDE, jer je suma te`ina na putu 1+1+5+10+5+1+1=24 (suma te`ina na

putu ACE je 20). Ako raspore|ivawe vr{imo na 2 (identi~na) procesora, onda dodjeqivawe

grupe na kriti~nom putu (ABDE) jednom procesoru i dodjeqivawe preostalog zadatka C na

drugi procesor daje raspon izvo|ewa 20. Grupisawem zadataka BD na P1 i ACE na P2 dobija se

raspon izvo|ewa 14.

Slavko Maric
str 3.21a. Te`inu neke linije pove}avaju komunikaciono ka{wewa na sekvencijalnom dijelu gdje nema granawa i gdje nema osnova za separaciju izvo|ewa na razli~itim procesnim npr, Primjer: Ako bi grupisali P1 = AED, P2 = BC, imali bi raspon izvo|ewa 12. Te`ina komunikacije BC=10 imala bi dominantnu ulogu kod odre|ivawa kriti~nog puta, iako ona su{tinski ne igra ulogu, jer ako B,C idu u jedan klaster, efekat te linije se elimini{e.
Page 133: Skripta(2 Dio)

8.3 Algoritmi za stati~ko raspore|ivawe 210

1

2

3

4

5

67

8

9 10

a) Polazni DAG

1

2

3

4

5

6

7

8

9

10

b) Modifikovani graf sa horizontalnim slojevima

1

2

3

4

5

6

7

8

9

10

V3 V1 V2

Sl. 8.9 Grupisawe dijeqewem po vertikalnim slojevima.

Page 134: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 211

n2

n1

n4

n5n3

n6

n7

1

1

1

1

12.5

2.5

1

3

4

2

0.5n2

n1

n4

n5n3

n6

n7

1

1

1

1

12.5

2.5

1

3

4

2

0.5n2

n1

n4

n5n3

n6

n7

n2

n1

n4

n5n3

n6

n7

6 6

n2

n1

n4

n5

n6

n7

n2

n1

n4

n5n3

n6

n7

n2

n1

n4

n5

n6

n7

2 2

Po~etni DAG a) po~etno grupisawe b) korak 1

c) korak 2 d) korak 3

e) korak 4 f) korak 7

Sl. 8.10 Grupisawe Sarkar-ovim algoritmom

Sarkarov algoritam grupisawa se bazira na sukcesivnom poboq{awu grupisawa polaze}i od

inicijalnog, u kojem je svaki zadatak mapiran u posebnu grupu. U svakom slijede}em koraku,

algoritam nastoji da poboq{a grupisawe objediwavawem najpogodnijih grupa. Algoritam

prvo sortira lukove koji povezuju ~vorove(zadatke) po opadaju}im vrijednostima te`ina, i

onda vr{i grupisawe u a = | A | koraka (a je broj lukova). U svakom koraku se ispituje

slijede}i luk iz liste: ako se anulirawem te`ine luka ne pove}ava paralelno vrijeme

izvr{ewa, onda se zadaci povezani tim lukom (i automatski grupe kojima oni pripadaju)

objediwavaju.

Page 135: Skripta(2 Dio)

8.3 Algoritmi za stati~ko raspore|ivawe 212

Po{to je odre|ivawe paralelnog vremena tako|e N P - kompletan problem, a zahtijeva se u

svakom od a koraka, Sarkov algoritam koristi slijede}u strategiju za odre|ivawe redosli-

jeda izvr{ewa u okviru grupa: zadatak sa najdu`im putem do zavr{nog ~vora (blevel) ima

najvi{i prioritet, pri ~emu se koristi blevel vrijednosti ~vora iz prethodnog koraka. U

tom slu~aju kompleksnost ra~unawa paralelnog vremena je reda O(a+m) (m je ukupan broj

zadataka/~vorova), tako da je ukupna kompleksnog algoritma reda O(a * (a+m)). Primjer gru-

pisawa kori{tewem navedenog algoritma dat je dijagramima na Sl. 8.9 i Tabeli 8.1.

Tabela 8.1 Koraci grupisawa zadataka Sarkarovim algoritmom za primjer sa Sl.8.10

Korak Ispitivani luk

par.vrijeme ako se luk anulira

Anulirawe luka

paralel. vrijeme

0 13

1 (n4,n6) 13 Da 13 2 (n1,n2) 10 Da 10

3 (n3,n6) 10 Da 10

4 (n6,n7) 10 Da 10

5 (n2,n7) 11 Ne 10

6 (n1,n3) 11 Ne 10 7 (n5,n6) 10 Da 10

Pored navedenog algoritma grupisawa, Sarkar izla`e kompletan koncept za particionisawe

i raspore|ivawe, koji strukturira u faze:

1) Procjene komunikacionih i procesnih zahtjeva,

2) Ekspanzije strukture grafa zadataka,

3) Objediwavawa,

4) Pridjeqivawa procesora.

U prvoj fazi se procjewuje cijena komunikacije i izvr{ewa na osnovu analize programske

strukture. U drugoj fazi vr{i se ra{~lawivawe krupnijih programskih modula na kompo-

nentne dijelove, kako bi se eksponiralo dovoqno potencijalnog paralelizma za eksploata-

ciju na odnosnoj vi{eprocesorskoj arhitekturi. Nakon toga vr{i se objediwavawe kompone-

nata u grupe kako je prethodno opisano, sa ciqem da se elimini{u zna~ajna komunikaciona

vremena i time smawi raspon izvo|ewa (objediwavawe se vr{i samo ako se ne pove}ava

procijeweno paralelno vrijeme izvr{ewa). U fazi 4, vr{i se pridjeqivawe formiranih

grupa procesorima kori{tewem modifikovanog raspore|ivawa po prioritetnoj listi.

Svaka grupa se redom mapira na svaki od procesora, i bira se onaj procesor, za koji je

paralelno vrijeme izvo|ewa najkra}e.

Page 136: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 213

8.4 Dinami~ko raspore|ivawe

Kod dinami~kog raspore|ivawa, pridjeqivawe zadataka procesnim elementima (PE) se vr{i

u fazi izvo|ewa. Struktura i karakteristike skupa zadataka, procesnih elemenata i

komunikacionog podsistema mogu biti veoma razli~iti, a mogu se i dinami~ki mijewati.

Kao posqedicu imamo razli~ite algoritme i tehnike raspore|ivawa i funkcije ciqa koje

se `ele optimizovati.

Tehnike za dinami~ko balansirawe optere}ewa su u posqedwe vrijeme predmet intenziv-

nog istra`ivawa. One su prije svega od interesa u distrubuiranim sistemima op{te namjene

(lokalne mre`e radnih stanica npr.), gdje je od interesa efikasno kori{tewe raspolo`ivih

resursa, {to se ostvaruje ravnomjernom (balansiranom) raspodjelom optere}ewa - skupa

(nezavisnih) zadataka po procesnim elementima. Balansom optere}ewa se naj~e{}e posti`e

i minimizacija prosje~nog vremena izvr{ewa zadataka.

Dinami~ko raspore|ivawe zadataka u sistemima u stvarnom vremenu, s druge strane, ima

za ciq minimizaciju (vjerovatno}e) ka{wewa izvr{ewa zadataka u odnosu na krajwe zahti-

jevano vrijeme zavr{etka.

Svi algoritmi u osnovi sadr`e strategiju i mehanizme za:

• procjewivawe i distribuciju informacija,

• odlu~ivawe o isplativosti izvr{ewa transfera zadataka,

• lokaciju transfera,

• selekciju zadataka za transfer.

U fazi procjewivawa i distribucije informacija registruju se podaci od interesa za

slijede}u fazu algoritma: optere}ewe procesora, karakteristike zadataka (zahtjevi za

procesorskim i drugim resursima, krajwe vrijeme izvr{ewa, prioriteti) i sl.

Mehanizmi za odlu~ivawe o transferu, na osnovu registrovanih informacija i definisa-

nih kriterijuma, donose odluku o izvr{ewu transfera zadataka sa jednih PE na druge.

Kriterijumi zavise od funkcije ciqa, te stawa i karakteristika sistema. Dok se kod

tehnika za balansirawe optere}ewa odluka donosi na osnovu procjene dobitka koji se dobija

o~ekivanim balansom u odnosu na re`ijske gubitke, u sistemima u stvarnom vremenu

transfer se poduzima onda kada "negarantovani" zadatak (zadatak ~ije se vrijeme izvr{ewa

ne mo`e garantovati do zahtijevanog trenutka u nekom PE) mo`e postati "garantovan"

wegovim transferom na drugi PE.

U fazi locirawa transfera odre|uje se izvor i odredi{te transfera. Selekcija zadataka

specifikuje koji se zadaci (ili dijelovi zadataka) prebacuju iz izvora u odredi{ta.

Slavko Maric
(overhead)
Page 137: Skripta(2 Dio)

8.4 Dinami~ko raspore|ivawe 214

Navedeni mehanizmi se mogu implementirati centralizovano ili distribuirano (s tim da

se obi~no procjewivawe i distribucija informacija i selekcija zadataka realizuje lokalno,

odnosno distribuirano). Centralizovani pristup ima na raspolagawu stawe cijelog sistema

na jednom mjestu i na taj na~in mogu}nost dono{ewa ta~nih procjena i odluka. Ipak,

akumulacija informacija na ovaj na~in implicira znatno re`ijsko vrijeme - gubitke, kao i

ka{wewa koja mogu biti tolika da dolazi do zastarijevawa informacija. Alternativno, kod

distrubuiranog pristupa, iako nisu sve informacije na raspolagawu prilikom

procjewivawa stawa i odlu~ivawa, re`ijski gubici su znatno mawi, a informacije (zbog

maweg ka{wewa) ta~nije. S obzirom na to da se aktivnosti potrebne za dinami~ko raspore-

|ivawe raspodjequju po procesnim elementima, ovakav pristup je adekvatan i za slu~aj

pove}awa kompleksnosti sistema (pove}awa broja zadataka i procesnih elemenata).

S obzirom na na~in dono{ewa odluka o lokaciji transfera, algoritmi mogu biti

deterministi~ki, probabilisti~ki i adaptivni. Kod deterministi~kih algoritama trans-

fer zadataka iz preoptere}enog PE se vr{i po fiksnoj {emi: npr. ako je PEi preoptere}en,

transfer vi{ka optere}ewa }e se uvijek izvr{iti u PEj. Probabilisti~ki pristup vr{i

transfer vi{ka optere}ewa iz PEi u PEj sa vjerovatno}om pij. Adaptivni pristup uzima u

obzir teku}e stawe kod dono{ewa odluka. Stawe PE mo`e da karakteri{e broj zadataka koji

~ekaju na izvr{ewe, ukupno zahtijevano vrijeme izvr{ewa teku}ih zadataka, raspolo`ivost

razli~itih resursa i sl.

S obzirom na karakteristike akvizicije i distribucije informacija, Wang kategorizuje

algoritme za dinami~ku raspodjelu optere}ewa u distribuiranim sistemima u slijede}e

grupe:

Hijerarhijski: Raspore|ivawe je distribuirano i organizovano u vi{e hijerarhijskih

nivoa. Svaki raspore|iva~ u hijerarhiji je odgovoran za raspore|iva~e ili servere na

ni`em nivou hijerarhije. Balansirawe optere}ewa se inicira zahtjevima za procesne

resurse ka vi{im/ni`im hijerarhijskim nivoima, dok se ne ostvari ravnomjerna raspodjela.

Sekvencijalni: PE sistema ~ine virtualni prsten. Svaki PE ima svoj raspore|iva~, preko

kojeg zadaci u PE dobijaju dijeqene resurse u sistemu. Po virtuelnom prstenu se prosqe|uje

kontrolni `eton kojim se obezbje|uje serijalizacija aktivnosti raspore|iva~a PE pri

(de)alocirawu dijeqenih resursa. [eme ovog tipa naj~e{}e imaju osnovni naglasak na

rje{avawu konflikata pri konkurentnom pristupu zajedni~kim resursima, a ne na raspodje-

li optere}ewa. Raspore|iva~ koji je teku}i vlasnik kontrolnog `etona, ima mogu}nost

alokacije zajedni~kih resursa.

Pogodbeni: Kod ovih algoritama preoptere}eni PE {aqu "zahtjev za licitaciju" drugim PE

u sistemu za preuzimawe dijela optere}ewa (inverzna varijanta je da neoptere}eni PE {aqu

Slavko Maric
(token)
Slavko Maric
Contract bidding ???
Page 138: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 215

"zahtjev za licitaciju" drugim PE za slawe dijela optere}ewa). Po prijemu zahtjeva,

neoptere}eni PE (server) mo`e izvoru (po{iqaocu) poslati ponudu za preuzimawe posla.

Nakon dobijawa ponuda za servisirawe, izvor bira server (obi~no po kriterijumu najmawe

optere}enosti) i prosqe|uje mu vi{ak optere}ewa.

Inicirani nivoom: Optere}enost svakog PE se reprezentuje na osnovu pore|ewa teku}eg

optere}ewa i indeksa minimalnog/maksimalnog optere}ewa. Ako je optere}ewe ispod mini-

malnog, onda se {aqe informacija drugim PE o spremnosti za preuzimawe optere}ewa iz

drugih PE. Ako je PE preoptere}en, onda se poku{ava prebaciti dio zadataka na druge PE.

Ove {eme mogu generisati znatna komunikaciona re`ijska vremena, specijalno u slu~aje-

vima visokog ukupnog nivoa optere}ewa.

Sa odlu~ivawem na bazi stawa: Kod ovih {ema odlu~ivawe o transferu zadataka se vr{i

na bazi procjene stawa sistema koje se periodi~no a`urira. Algoritam nastoji proslije-

diti vi{ak optere}ewa u nekom PE ka najpovoqnijem PE, na bazi teku}e opservacije stawa i

usvojenih kriterijuma. Osnovni problem kod ovih algoritama je izbor parametara koji

odre|uju prostor stawa i wihova akvizicija. Kompleksnost prostora stawa i wegovo ~esto

a`urirawe stvara visok nivo re`ijskih gubitaka i ka{wewa. Rijetko uzorkovawe i a`uri-

rawe stawa sistema ~ini informacije zastarjelim. Potrebno je na}i kompromisno rje{ewe,

koje obezbje|uje da razlika izme|u procijewenog i stvarnog stawa sistema bude {to mawa.

U daqem tekstu, za ilustraciju, opisani su neki algoritmi za dinami~ko balansirawe

optere}ewa.

Difuzioni: Svaki PE kooperi{e sa susjedima u ciqu rje{avawa problema preraspodjele

optere}ewa iz preoptere}enih PE u neoptere}ene PE. Globalno balansirawe se posti`e na

taj na~in {to se zadaci iz preoptere}enih dijelova sistema, po principu difuzije,

prosqe|uju u malo optere}ene dijelove sistema.

Difuzija inicirana po{iqaocem {ema raspore|ivawa je potpuno distribuirana i asinhrona.

Svaki PE vodi evidenciju o optere}ewu u svom domenu, koji ~ini sam PE i wegovi najbli`i

susjedi. A`urirawe stawa optere}ewa PE iz domena vodi se na osnovu poruka, koje izmjewuju

PE iz svakog domena. Poruke se prosqe|uju ili periodi~no ili na osnovu promjene stawa

optere}ewa, kada se optere}ewe promijeni za neki iznos ∆ L, odnosno kada prelazi preko

odre|enog nivoa.

Odlu~ivawe o isplativosti balansirawa se vr{i tako da PEp prvo sra~una prosje~no

optere}ewe u svom domenu:

∑=

++

=K

kkpp ll

KL

1

)(1

1

Page 139: Skripta(2 Dio)

8.4 Dinami~ko raspore|ivawe 216

gdje je K broj susjednih PE a wihova optere}ewa. kl

Kriterijum za inicirawe balansa je da je

Hpp LLl >− . LH je prag odstupawa optere}ewa iznad kojeg se PE smatra preoptere}enim. U tom slu~aju se

vi{ak optere}ewa raspodjequje na susjedne PE u domenu, proporcionalno pridijeqenoj

te`ini hk ,

,

, 0{ pkkp

pk

LljeakolL

Lljeakokh<−

≥=

Ako je ukupni mawak optere}ewa u susjednim PE iz domena

Hp = ∑=

K

kkh

1

onda se susjednom PEk iz domena pridjequje iznos optere}ewa

min;)( δδδ ≥−= kp

kppk H

hLl

Ilustracija balansirawa optere}ewa ovom tehnikom data je na Sl. 8.11.

30

10

1 5

4

5

6

90

Sl. 8.11 Balansirawe optere}ewa difuzijom iniciranom po{iqaocem.

Preklapawem domena balansirawa posti`e se difuzija vi{ka optere}ewa navedenim meha-

nizmom, iz preoptere}enih dijelova sistema u mawe optere}ene segmente, odnosno balansi-

rawe na globalnom planu.

Za a`urirawe kompletnog stawa optere}ewa, PE treba da izmijene K*N poruka (N je broj

procesnih elemenata). U najgorem slu~aju, slu~aju velikog (ta~kastog) optere}ewa jednog PE,

Slavko Maric
???? Da li je nazna~eno {ta je N ???
Page 140: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 217

broj transfera je reda O(K*N). Difuzija inicirana prijemnikom je u osnovi inverzna

prethodno opisanoj tehnici, jer neoptere}eni procesori zahtijevaju optere}ewe od

preoptere}enih susjednih PE iz domena i dobijaju potvrdu za svaki zahtjev (ove poruke su

potrebne za svaki transfer).

Potrebno je napomenuti da su, s obzirom na razli~ite mogu}nosti a`urirawa stawa

optere}ewa, mogu}e varijacije ovih tehnika, kriterijuma isplativosti transfera i sl.

Gradijentni model koristi gradijentnu mapu udaqenosti neoptere}enih PE za transfer

optere}ewa sa preoptere}enih PE. Kod ovih algoritama, neoptere}eni procesori {aqu

poruke o (svom) stawu drugim procesorima u sistemu, a preoptere}eni procesori {aqu dio

svog optere}ewa najbli`em neoptere}enom procesoru. Optere}ewa se usmjeravaju na bazi

gradijenta udaqenosti. Udaqenost se defini{e kao najkra}i put od izvori{nog do

odredi{nog PE. Inicijalno, svaki PE inicijalizuje parametar udaqenosti na vrijednost

dijametra sistema (Wmax). Udaqenost PE postaje 0 ako optere}ewe PE padne ispod doweg praga

(Low-Water-Mark). Svaki PE p, ~iji su susjedni , sra~unava parametar udaqenosti inPE

proximity(PEp) = {proximity( )} + 1 i

mininPE

koji ne mo`e prema{iti vrijednost Wmax. Sistem ne zahtijeva balansirawe optere}ewa, ako

svi PE imaju vrijednost parametra udaqenosti Wmax. Ako se udaqenost PE mijewa, on mora

izvijestiti svoje susjede, {to uzrokuje lanac izmjena parametra udaqenosti u PE sistema.

Isplativnost transfera mo`e da se kontroli{e pragovima LWM i HWM (Low/High-Water-

Mark), tako {to se transfer zadataka od preoptere}enog PEp ka neoptere}enom PEq vr{i ako

je

L p - L q > HWM - LWM

gdje su L p i L q optere}ewa PEp i PEq.

Prosqe|ivawe optere}ewa (zadataka) od PEp ka PEq vr{i se na osnovu minimalnog

gradijenta udaqenosti, {to rezultuje transferom optere}ewa najkra}im putem do

najbli`eg neoptere}enog procesora. Iznos optere}ewa koji se prenosi sa preoptere}enog

na neoptere}eni PE mo`e se razli~ito selektovati u razli~itim implementacionim

varijantama: kao procenat teku}eg optere}ewa, fiksan broj zadataka i sl. Primjer ovog

modela dat je na Sl. 8.12, gdje dva preoptere}ena procesora prenose dio optere}ewa (δ )

najbli`im putem do neoptere}enog PE.

Page 141: Skripta(2 Dio)

8.4 Dinami~ko raspore|ivawe 218

1 1

1

1 22

2 2

2

2

3

3

3 3 4

0

Sl. 8.12 Gradijentna difuzija.

Hijerarhijski metod balansirawa kreira hijerarhijsku strukturu domena balansirawa.

Odre|enim procesorima se dodjequje nadle`nost za balansirawe domena na razli~itim

hijerarhijskim nivoima (Sl. 8.13).

0

0

0

0

4

4

4

2

2

6

61 3 5

1

2

3

7 0

Sl. 8.13 Hijerarhijski metod balansirawa optere}ewa.

Informacije o optere}ewu pojedinih PE/domena dobijaju se na osnovu poruka o stawu

optere}ewa na ni`im nivoima. U slu~aju da dva domena istog (ni`eg) nivoa imaju razli~ita

optere}ewa, onda se na osnovu vrijednosti te razlike donosi odluka (na prvom vi{em nivou)

o balansirawu optere}ewa izme|u domena. ^vor nadle`an za balansirawe obavje{tava

Page 142: Skripta(2 Dio)

Raspore|ivawe zadataka na procesore 219

preoptere}eni domen o koli~ini preoptre}ewa koje je potrebno prebaciti na neoptere}eni

domen. Svaki procesor iz preoptere}enog domena ima svoj odgovaraju}i par u koresponden-

tnom neoptere}enom domenu, kome prenosi svoj dio preoptere}ewa. Dakle, globalno balan-

sirawe se posti`e pewawem ka vrhu hijerarhije i balansirawem optere}ewa izme|u susjed-

nih domena na svakom nivou. Ova {ema ukqu~uje sve procesore u proces balansirawa, i

ostvaruje kako lokalni tako i globalni balans na nivou cijelog sistema. Odre|eni domeni

hijerarhijske strukture mogu biti u mawoj ili ve}oj mjeri izolovani iz procesa balansi-

rawa, postavqawem odgovaraju}ih parametara.