Download as pdf or txt
Download as pdf or txt
You are on page 1of 52

Paralelni sistemi

nastavnik: Emina Milovanovi (L3)


asistent: Natalija Stojanovi (L3)
fond sati 2+2+1 (VII sem.)
L3.elfak.ni.ac.yu/paralelni/

Nain ocenjivanja
Lab. Vebe 20

Lab. Vebe 20

I kolokvijum 40

Pisani deo ispita 40

II kolokvijum 40

Usmeni deo 40

_________________
Ukupno 100

______________
Ukupno 100

Kompjuterska tehnologija je uinila neverovatan napredak u

poslednjih 60 godina od kada se pojavio prvi elektronski


raunar opte namene.

Danas se za manje od 1000 Eur moe kupiti PC koji ima bolje

performanse, vie memorije i vie prostora na disku od raunara


proizvedenog 80-ih godina 20. v. Koji je kotao milione dolara.

Napredak je postignut zahvaljujui


Boljoj tehnologiji
Ogranienja: brzina prostiranja svetlosti kroz vakum, stepen integracije
(zbog medjusobne interakcije komponenti)

Promeni u arhitekturi raunara


Korienje protonosti, vie specijalizovanih funkcionalnih jedinica
(koprocesora)
Korienju vie procesora (paralelizma)
Sistem koji koristi p procesora moe do p puta bre obaviti izraunavanje
od jednoprocesorskog sistema

Potrebe za brzim raunarima

Nauka

Tehnika

Simulacije sudara
Poluprovodnika tehnologija
Simulacija zemljotresa

Dinamika fluida

Ekonomija

Vremenska prognoza (7-dnevna prognoza zahteva izvrenje ~ 1015 FP operacija;


raunaru koji moe da obavi 1 GFLOPS (109 FP operacija u sec potrebno je 106
sec ~10 dana)
modelovanje globalnih klimatskih promena
Astrofizika
Biologija, genetika, proteinski lanci...
Hemija: razvoj novih lekova
Nauka o materijalima

Modelovanje finansijskih transakcija


Elektronsko poslovanje

Odbrana

Nuklearno oruje -- testiranje pomou simulacija


Kriptografija

ta je paralelni raunar
Definicija: Paralelni raunar predstavlja skup

procesnih elemenat (procesora) koji medjusobno


saradjuju i komuniciraju radi breg reavanja nekog
problema
Pitanja
Koliko je velik taj skup?
Koliko su moni procesni elementi?
Kako oni medjusobno saradjuju i komuniciraju?

Kako se podaci prenose?


Kako su procesni elementi medjusobno povezani?
ta je na raspolaganju programeru?

Kakve su performanse takvih sistema?

Na kojim nivoima se paralelizam moe eksploatisati?


Paralelizam na nivo bitova: 1970 do ~1985
4 bits, 8 bit, 16 bit, 32 bit mikroprocesori

Paralelizam na nivou instrukcija (ILP):

~1985 do dananjih dana


Protonost (Pipelining)
Superskalarni procesori
VLIW

Izvrenje instrukcija van redosleda (Out-of-Order execution)


Granice ILP?

Paralelizam na nivou zadataka (procesa, taskova) mainstream

for general purpose computing?

Opte prihvaen trend kod raunara opte namene


Serveri su paralelnil
dual procesorski PC

Podela PRS
U odnosu na nain upravljanja:
Programski upravljane (control driven Von Neumann)
Redosled izvrenja instrukcija odredjen je sadrajem programskog
brojaa.
Paralelne arhitekture se dobijaju povezivanjem dve ili vie
jednoprocesoeskih maina
Svaka procesorska jedinica sledi tradicionalnu sekvencu mainskih
ciklusa: pribavljanje instrukcije-izvrenje-smetanje rezultata

Upravljanje definisano tokom podataka (Data flow raunari)


Instrukcija se izvrava im je dostupna odgovarajua kombinacija
njenih argumenata (halapljiva izraunavanja)
poseduju sitno zrnasti paralelizam na nivou instrukcija

Upravljanje po zahtevu (deamand driven, Reduction maine)


Izvravaju se samo one instrukcije iji je rezultat potreban za druga
izraunavanja.
Program se moe posmatrati kao niz ugnjedjenih izraunavanja, a
izvrenje se obavlja redukovanjem najdublje ugnjedjenih
izraunavanja u saglasnosti sa semantikom odgovarajuih operatora,
sve dok postoji potreba za izraunavanjem

Data flow i Reduction prilaz


Data flow raunari koriste prilaz odozdo-na-gore u

izraunavanju
Reduction maine koriste prilaz s-vrha na-nie
Primer
a=(b+1)*c-d/e
a
--

Reduction

Data flow

*
+
b

/
1

Flinova klasifikacija Von Neumanovih raunara


Podela izvrena prema broju jednovremenih tokova

instrukcija i tokova podataka

SISD (Single Instruction Single Data stream) raunari sa

jednim tokom instrukcija i jednim tokom podataka


MISD (Multiple Instruction Single Data stream) raunari sa
viestrukim tokom instrukcija i jednim tokom podataka
SIMD (Single Instruction Multiple Data stream) raunari sa
jednim tokom instrukcija i viestrukim tokom podataka
MIMD (Multiple Instruction Multiple Data stream) raunari
sa viestrukim tokom instrukcija i viestrukim tokom podataka

Klasifikacija Von Neumanovih raunara


SISD Computers (Single Instruction Single Data stream)

Primer:Da bi se izraunala suma od N brojeva a1, a2, .... ,aN


procesor mora pristupiti memoriji N puta uzastopno. Takodje,
potrbno je obaviti N-1 sabiranje. Zbog toga ovo izraunavanje
zahteva izvrenje O(N) operacija.
t.j. algoritmi za SISD raunare ne sadre ni jedan vid paralelizma
jer postoji samo jedan procesor.

MISD raunari
N procesora, svaki sa sopstvenom upravljakom jedinicom koji dele
pristup zajednikoj memoriji.

MISD raunari
Postoji N tokova instrukcija i jedan tok (niz) podataka.

Paralelizam se postie tako to vie procesora izvrava razliite


instrukcije u isto vreme nad istim podatkom.
MISD maine su od koristi kod onih izraunavanja gde isti
podatak treba obraditi na vie naina .
Primer: Testiranje da li je zadati broj Z prost.
Jednostavno reenje je ispitati da li je broj Z deljiv brojevima od 2

do Z-1.
Pretpostavimo da je broj procesora N=Z-2. Svi procesori dobijaju Z
kao ulazni podatak i svaki zatim pokuava da broj podeli
pridruenim deliocem. Na taj nain mogue je u jednom koraku
utvrditi da li je broj prost ili ne.
Za veinu aplikacija MISD nain rada nije pogodan, tako da

nema komercijalno raspoloivih maina ovog tipa.

SIMD
Postoji N procesora ijim radom upravlja jedinstvena upravljaka
jedinica (control) .Ovo je isto kao da svaki procesor sadri identinu
kopiju programa. Postoji N tokova podataka, po jedan za svaki
procesor, to znai da se razliiti podaci mogu koristiti u svakom
procesoru.

SIMD (nast.)
Procesori u sistemu rade sinhrono: svi izvravaju istu instrukciju nad
razliitim podatkom.
Procesorska polja kao npr. ICL DAP (Distributed Array Processor) spadaju
u ovu kategoriju.
SIMD maine su naroito pogodne za probleme koji imaju regularnu
strukturu, tj. ista instrukcija se moe primeniti na podskup podataka.
Primer: Sabiranje dve matrice A + B = C.
Pretpostavimo da imamo dve matrice A i B reda 2 i 4 procesora
A11 + B11 = C11 ... A12 + B12 = C12
A21 + B21 = C21 ... A22 + B22 = C22
Ista instrukcija se izdaje svim procesorima (sabiranje dva broja) i svi
procesori je izvravaju jednovremeno.
Izraunavanje se obavlja u jednom koraku naspram 4 koraka na
sekvencijalnoj maini.

SIMD (nast.)
Ponekad moe biti potrebno da samo podskup procesora
izvrava datu instrukciju (tj. samo neki podaci trebaju biti
obradjeni datom instrukcijom)
Ova informacija moe biti kodirana samom instrukcijom
ukazujui da li je
1. procesor aktivan ( izvrava instrukciju)
2. procesor pasivan ( eka na sledeu instrukciju)
U toku izvrenja programa na SIMD (i MIMD) javlja se potreba
za komunikacijom izmedju procesora da bi se razmenili
podaci ili rezultati.
Komunikacija se moe ostvariti korienjem deljive memorije i
deljivih promenljivih ili slanjem poruka kroz sprenu mreu.
Primeri SIMD:Illiac IV, MPP, DAP, CM-2, MasPar MP-2

MIMD raunari (multiprocessors /


multicomputers)
To je najoptija i najmonija klasa raunara..
Postoji N procesora, N nizova instrukcija i N nizova podataka.

Osobine MIMD sistema


Procesori rade asinhrono (mogu izvravati razliite
instrukcije nad razliitim podacima u isto vreme)
Komunikacija izmedju procesora se moe obaviti preko
deljive memorije ili slanjem poruka kroz sprenu mreu.
MIMD raunari sa deljivom memorijom zovu se
multiprocesori ili vrsto spregnuti sistemi (Primeri:
ENCORE, MULTIMAX, SEQUENT & BALANCE.)
MIMD raunari koji komuniciraju slanjem poruka kroz

sprenu mreu zovu se multiraunari ili slabo spregnuti


sistemi (Primeri: INTEL iPSC, NCUBE/7 )

Potencijali etiri klase raunara

SISD

A+B

+
*
A B MISD

+
A B SIMD
C D

A+B
C+D

+
*
A B MIMD
C D

+
A B

A+B
A*B

A+B
C*D

Interprocesorska komunikacija
Zajednika (deljiva) memorija
Deljiva memorija se sastoji od globalnog adresnog prostora.
Svi procesori mogu da itaju i vre upis u ovaj globalni
adresni prostor.
Memorija ne mora bizi jedinstvena (moe postojati vie
memorijskih banaka)
Procesori komuniciraju preko read i write operacija
Sistemi sa razmenom poruka
Svaki procesor ima odvojeni (sopstveni) adresni prostor.
Procesor ne moe pristupati adresnom prostoru drugog
procesora.
Procesi komunicraju razmenjujui poruke

Zajednika (delljiva) memorija


Interprocesorska komunikacija se obavlja preko read

i write operacija.
Zajednika memorija moe biti centralizovana

Vreme potrebno za pristup memorijskoj lokaciji je isto za sve

procesore (UMA sistemi Uniform Memory Access)

Ili distribuirana po procesorima


Vreme pristpa memorijskim lokacijama moe biti razliito
(NUMA sistemi Non Uniform Memory Access)
Vreme bristupa lokalnoj memoriji je krae od vremena pristupa
memoriji drugog procesora.

Arhitekture sa deljivom memorijom


Kljuna osobina:
svi procesori u sistemu mogu direktno pristupati svim memorijskim
lokacijama
Jednostavan mehanizam interprocesorske komunikacije preko
read/write operacija
P

P
P

Sprena mrea

Sprena mrea
M

UMA

NUMA

Osnovni problem proirljivost sistema (skalabilnost)

Arhitekture sa slanjem poruka


Procesori mogu direktno pristupati samo svojoj lokalnoj memoriji

(read/write operacije).
Svka komunikacija i sinhronizacija se obavlja slanjem poruka poreko
send/receive operacija.

Sprena mrea

Kljune osobine:
Slanje poruke podrazumeva niz aktivnosti :

Kreiranje zaglavlja poruke; copiranje podataka u bafer za


komunikaciju; slanje poruke; prihvatanje poruke u nafer; kopiranje
poruke iz kernela u korisniki prostor.
Mnpgi od ovih koraka zahtevaju intervenciju OS.
Sinhronizacija se obavlja korienjem nekog handshake protokola.
Osnovan prednost: Proirljivost sistema.

Konflikti kod pristupa deljivoj memoriji


Komunikacija preko deljive memorije je bra od

komunikacije slanjem poruka

Korienje deljive memorije za komunikaciju moe dovesti do

problema kada procesori simultano pristupaju istoj


memorijskoj lokaciji

Primer:
Pretpostavimo da se u deljivoj memoriji nalazi promenljiva x
ija je inicijalna vrednost 0.
Procesor P1 dodaje 1 promenljivoj x
Procesor P2 dodaje 2 promenljivoj x.
Koja je krajnja vrednost za x?

Konflikti kod pristupa deljivoj mem. (nastavak)

Deljiva memorija
X=0
Procesor 1
X=X+1

Ovo je primer
nedeterminisanosti u
izvrenju

Procesor 2
X=X+2

Mogue su sledee vrednosti:


1. Ako P1 obavi x=x+1 pre nego to P2 proita vrednost x izmemorije,
tada je krajnja vrednost za x 3.Slino, ako P2 obavi x+2 pre nego to
P1 proita x, krajnja vrednost za x je 3.
2. Ako P1 ili P2 proita x iz memorije pre nego to drugi procesor
obavi upis, tada krajnja vrednost x zavisi od toga koji je procesor
poslednji izvrio upis
- Ako P1 obavi poslednji upis, vrednost x je 1
Ako P2 obavi poslednji upis , vrednost x je 2

Nedeterminisanost
Nedeterminisanost je uzrokovana trkom.
Do trke dolazi kada dve naredbe u konkurentnim taskovima
(zadacima) pristupaju istoj memorijskoj lokaciji, pri emu je
bar jedna od naredbi upis u memoriju i pri tome nema
nikakvih garancija o redosledu pristupa memoriji.

Problem nedeterminisanosti se moe reiti

sinhronizacijom pristupa deljivim podacima.


Ako su naredbe x+1 i x+2 uzajamno iskljuive, tada e

vrednost x uvek biti 3.

Delovi paralelnog programa koji zahtevaju

sinhronizaciju da bi se izbegla nedeterminisanost


zovu se kritine sekcije.

Zakljuavanje i uzajamno iskljuivanje

U sistemima koji koriste deljivu memoriju


moe se koristiti mehanizam zakljuavanja
(lock) da bi se obezbedilo uzajamno iskljuivo
pravo pristupa deljivim podacima.
Processor 1:
LOCK (X)
X=X+1
UNLOCK (X)

Processor 2:
LOCK (X)
X=X+2
UNLOCK (X)

Abstraktni model raunara sa deljivom memorijom (PRAM


Parallel Random Access Machine)
Abstraktni model pokazao se veoma korisnim kod procene

performansi paralelnih algoritama nezavisno od realne maine.


PRAM razlikuje 4 modela raunara sa deljivom memorijom u
zavisnosti od toga da li dva ili vie procesora mogu simultano
pristupati deljivoj memoriji radi itanja ili upisa:
Exclusive Read, Exclusive Write (EREW)
Pristup memorijskoj lokaciji je ekskluzivan, tj. procesori ne mogu
jednovremeno pristupati istoj mem. lokaciji ni radi itanja ni radi upisa.
Concurrent Read, Exclusive Write (CREW)}
Vie procesora moe itati istovremeno sa iste mem. lokacije, ali je upis
ekskluzivan.
Exclusive Read, Concurrent Write (ERCW)}
Vie procesora moe jednovremeno vriti upis u istu mem. lokaciju, a
itanje je ekskluzivno.
Concurrent Read, Concurrent Write (CRCW)}
Dozvoljen je jednovremeni pristup i radi itanja i radi upisa.

Komentari o Shared memory raunarima (1)


Simultano itanje iste memorijske lokacije ne dovodi

do problema.

Svaki procesor napravi kopiju sadraja mem. lokacije i

zapamti je u svom registru.

Problem se javlja kod konkurentnog upisa.


Ako vie procesora pokuava da izvri upis u istu mem.
lokaciju kome dozvoliti upis?
Postoji nekoliko naina da se deterministiki odredi

sadraj mem. lokacije nakon konkurentnog upisa:

Dodeliti prioritete procesorima i zapamtiti vrednost procesora

sa najviim prioritetom..
Svim procesorima je dozvoljeno da izvre upis pod uslovom
da su sve vrednosti jednake.
Upisuje se max, min, sum, ili srednja vrednost podataka (ako
su u pitanju numeriki podaci)

Primer
Da bi pokazali kako se 4 podklase SM maina
ponaaju, razmotrimo sledei primer.
Problem:
Zadata je lista od m elemenata S = {L1, L2, ,Lm}.
Potrebno je nai indeks (redni broj) zadatog elementa x.
Element x se moe pojaviti vie puta u S i bilo koja
vrednost rednog broja je prihvatljiva. Na raspolaganju je
N procesora, 1< Nm.

Algoritam
procedure SM_search (S, x, k)
STEP 1: for i=1 to N do in parallel
read x
end for
STEP 2: for i=1 to N do in parallel
Si = {L((i-1)m/N+1), ...,L(im/N)}
obaviti sekvencijalno pretraivanje u podlisti Si

(vratiti Ki= -1 ako x nije u listi, inae Ki= index)


end for
STEP 3: for i=1 to N do in parallel
if Ki > 0 then k=Ki end if
end for
end procedure

Vremenska kompleksnost za EREW

Ako sekvencijalno pretraivanje podliste traje


O(m/N) vremenskih jedinica, kolika je vremenska
kompleksnost svake od 4 podklase shared memory
computer?
EREW
Step 1 traje O(N) (N itanja, jedno u jednom trenutku).
Step 2 traje O(m/N) vremena.
Step 3 traje O(N) vremena.
Ukupno vreme O(N)+O(m/N).

ERCW

ERCW
Step 1 traje O(N) vremena.
Step 2 traje O(m/N) vremena.
Step 3 konstantno vreme.
Ukupno: O(N)+O(m/N).

CREW

CREW
Step 1 konstantno vreme.
Step 2 traje O(m/N) vremena.
Step 3 traje O(N) vremena
Ukupno: O(N)+O(m/N).

CRCW

CRCW
Step 1 konstantno vreme.
Step 2 traje O(m/N) vremena.
Step 3 konstantno vreme.
Ukupno: O(m/N).

Ogranienja Shared memory


SIMD maine se obino sastoje od nekoliko 1000

veoma jednostavnih procesora. Shared memory


SIMD maine nisu realne zbog cene i tekoa oko
realizacije pristupa deljivoj memoriji za veliki broj
procesora. Zbog toga ne postoje komercijalno
raspoloive SIMD maine sa deljivom memorijom.
MIMD maine koriste monije procesore, a MIMD sa
deljivom memorijom postoje u sistemima sa relativno
malim brojem procesora (do 100)

Performanse paralelnih sistema


Ubrzanje, Efikasnost

Ubrzanje sistema
Kod arhitektura kod kojih je uveden bilo koji vid

pobolanja, moe se dati ocena o dobijenom


poboljanju sa stanovita performansi korienjem
mere UBRZANJE
S=

Vreme izvrenja programa na arhitetkuri bez poboljanja


Vreme izvrenja programa na arh. sa izvedenim poboljanjem

Za paralelni sistem sa n procesora

S(n)= T(1)

T(n)

T(1) vreme izvrenja programa na jednoprocesorskom sistemu


T(n) vreme izvrenja programa na n-procesorskom sistemu

Ubrzanje (nast.)
T (1) Ts T p
T (n ) Ts

Tp
n

To (n )

Amdahl-ov zakon (krajem 60-ih god. 20.v)


Postavlja gornju granicu ubrzanja koje se moe postii
paralelnom obradom
T (1) Ts T p , Ts T (1), 0 1
T ( n ) Ts

Tp
n

T (1)

(1 )T (1)
n

T (1)
n

T ( n ) 1 ( n 1)
1
lim n S ( n )
S (n)

Npr .=1/20 (5%), S(n)=20

Da li je Amdahl bio u pravu?


nije konstantno
= (m), m obim problema
Kod najveeg broja nauno-tehnikih aplikacija
lim (m)=0, tj. sa porastom obima problema (Amdahlova
m
frakcija) tei 0.
Algoritmi sa ovom osobinom zovu se efektivni paralelni algoritmi
Efektivni algoritmi imaju linerano ubrzanje

n
limm S (n) limm
n
1 (n 1) (m)

Primer efektivnog paralelnog algoritma


Proizvod matrice i vektora

Y Ax,

A (aij ) mm

x ( x j ) m1

Neka se program izvrava na n=2r hiperkubu


max. rastojanje izmedju vorova log2n=r
svaki vor je direktno povezan sa r najbliih suseda

hiperkub za n=8

proizvod matrice i vektora (nast.)


Neka je vektor X zapamen u lokalnoj memoriji prvog
procesora
Neka se u lok. mem. svakog procesora nalazi km/n+1
vrsta matrice A

Efektivni paralelni algoritam


1. distribuirati vektor x svim ostalim procesorima
2. svi procesori jednovremeno raunaju komponente vektora y
m

yi

a x ,
ij

i 1,...,k

j 1

3. sve komponente vektora y se predaju prvom procesoru

Pokazaemo da je ovaj algoritam efektivan,


tj. limm (m)=0

proizvod matrice i vektora (nast.)

Uticaj na faktor (m) imaju aktivnosti koje se odnose na:

predaju vektora x
debalans u optereenju, ako m/n nije ceo broj
predaja komponenti vektora y jednom (prvom) procesoru

Trajanje koraka
2.

predaja vektora x ostalim procesorima O(m*log2n) koraka


Vreme potrebno za izraunavanje k elemenata vektora y
O(km)=O(m2/n)+O(m)

3.

Predaja komponenti vektora y prvom procesoru O(m*log2n)

1.

Ts T (1),

Ts
T (1)

T (1) O ( m 2 )
Ts O ( m log 2 n ) O ( m )
Ts
O ( m log 2 n ) O ( m )
1 log 2 n

T (1)
m
O(m 2 )

lim m ( m ) 0

ta je realnost

Ubrzanje

S(n)

n0

n
Broj procesora

Efikasnost
Definie se kao odnos ubrzanja i broja procesora
E(n)=S(n)/n,
0E1
Daje ocenu o srednjoj iskorienosti procesora u sistemu kada
su svi procesori angaovani na reavanju istog problema
ako se zanemare U/I aktivnosti, efikasnost jednoprocesorskig
sistema je 1 (100%)

Ubrzanje i efikasnost ne treba posmatrati odvojeno


sa poarstom broja procesora ubrzanje raste (do odredjene
granice)
sa porastom broja procesora efikasnost opada
S(n)*E(n) je najbolja ocena

Efikasnost i ubrzanje
E(n)

S(n)

100%

100%

n0

S(n)

E(n)
1

n0

Primer: Sabiranje brojeva


16

A ai
i 1

Posmatramo vreme izraunavanja na sistemu sa:

1.
2.
3.
4.
5.

P=1
P=2
P=3
P=4
P=8 procesora

Sistem sa jednim procesorom


P1
1. korak

A=a1+a2+...+a16

T
15

T=15

Sistem sa dva procesora


P1
1. korak

B1=a1+a2+...+a8

2. korak

A=B1+B2

P2
B2=a9+a10+...+a16

T
7

T=8

Sistem sa tri procesora


P1

P2

1. korak

B1=a1+...+a5

B2=a6+...+a10

2. korak

C1=B1+B2

C2=B3+a16

3. korak

A=C1+C2

P3

B3=a11+...+a15

1
1

T=6

Sistem sa etiri procesora


P1

P2

1. korak

B1=a1+...+a4

B2=a5+...+a8

2. korak

C1=B1+B2

C2=B3+B4

3. korak

A=C1+C2

P3

P4

B3=a9+...+a12

B4=a13+...+a16

1
1

T=5

Sistem sa osam procesora


P1

1.
2.
3.
4.

korak
korak
korak
korak

P2

...

P8

B8=a15+a16

B1=a1+a2

B2=a3+a4

...

C1=B1+B2

C2=B3+B4

...

D1=C1+C2

D2=C3+C4

A=D1+D2

1
1

...

T=4
Hajdnov efekat

Poreenje performansi
P

Sp

Ep

SpEp

1.875

0.94

1.76

2.5

0.83

2.075

0.75

2.25

3.75

0.47

1.76

You might also like