vzporedni algoritmi - primeri

20
Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 1 Vzporedni algoritmi - primeri Da bi praktično preverili opisan model opravilo-kanal in ostale omenjene lastnosti bomo malo podrobneje predstavili tri tipične vzporedne postopke (algoritme): Študij parametrov (določeno število opravil z različnimi funkcijami, brez skupnih podatkov, brez komunikacije), Končne razlike (določeno število opravil z enakimi funkcijami in nekaj skupnimi podatki, z manj komunikacije),

Upload: boone

Post on 16-Jan-2016

52 views

Category:

Documents


0 download

DESCRIPTION

Vzporedni algoritmi - primeri. Da bi praktično preverili opisan model opravilo-kanal in ostale omenjene lastnosti bomo malo podrobneje predstavili tri tipične vzporedne postopke (algoritme) : - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 1

Vzporedni algoritmi - primeri

• Da bi praktično preverili opisan model opravilo-kanal in ostale omenjene lastnosti bomo malo podrobneje predstavili tri tipične vzporedne postopke (algoritme):

• Študij parametrov (določeno število opravil z različnimi funkcijami, brez skupnih podatkov, brez komunikacije),

• Končne razlike (določeno število opravil z enakimi funkcijami in nekaj skupnimi podatki, z manj komunikacije),

Page 2: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 2

Kako gre to v praksi?

Začnemo s spoznavanjem in opisom problema.

D. Problem razdelimo,

K. Najdemo potrebno komunikacijo,

Z. Združimo posamezna opravila,

P. Preslikamo združena opravila na procesorje.

D

K

Z

P

Page 3: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 3

Študij parametrovOpredelitev problema:• Vnaprej znano število N neodvisnih in enako obsežnih

programov z različnimi vhodnimi podatki.• Delitev po funkcijah • večinoma enake funkcije – računanje (W) in dve dodatni funkciji

razdeljevanje vhodnih podatkov (I) in zbiranje izhodnih rezultatov (O).

• Uporabimo model opravilo-kanal in naredimo delitev (D)

W W W W W WW W. . .

O

I

Page 4: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 4

Študij parametrov - komunikacija

Najdemo potrebno komunikacijo (K) med opravili:

• Izhodni kanali iz I in vhodni v W – vhodni podatki

• Vhodni kanali v O in izhodni iz W - rezultati

• Med W-ji ni komunikacije

W W W W W WW W. . .

O

I

Page 5: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 5

Študij parametrov - algoritem

• Opravilo I izračuna vhodne parametre in jih odpošlje ustreznim W-jem

• W-ji izvedejo račun in pošljejo rezultate opravilu O, ki naredi končno poročilo.

if (myID = I)

generate input parameters for all W tasks;

send input parameters to W tasks;

if (myID = O)

receive results from W tasks;

generate final report;

if (myID = W) wait for input parameters message until (message-dest-aadd is my-add) then

accept input parameters; start calculation; send results to O task;

Page 6: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 6

Študij parametrov - združevanje

• Program bo enak za vsa opravila (Single Program Multiple Data).

• Opravili I in O se izvajata ob različnih časih zato ju lahko združimo.

• Združimo (Z) ju lahko tudi zato, ker imamo dvosmerne komunikacijske kanale med procesorji.

W W W W W WW W. . .

O&I

Page 7: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 7

Študij parametrov - preslikovanje

• Vsa opravila (W) se lahko izvajajo neodvisno (ni komunikacije med W).

• Vrstni red končanja opravil W ni predpisan.• Torej lahko preslikamo več W-jev na en procesor O&I pa na

poseben procesor.• Če so procesorji enako zmogljivi naj bo število W-jev za

vsakega od njih enako.

W W W W W WW W. . .

O&I

Page 8: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 8

Študij parametrov - preslikovanje

• Imamo N opravil in P procesorjev. P<N.• Kako se bo izvajalo več opravil na enem procesorju? • Kaj če N ni deljiv s P?• Kaj če so opravila W različno zahtevna za različne vhodne

podatke?• Kako izračunamo pričakovano učinkovitost algoritma?

W W W W W WW W. . .

O&I

Page 9: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 9

Študij parametrov – analiza zahtevnosti

• Čas računanja na enem procesorju: Tr = tFP*n*N ,

kjer je n število FP potrebnih za izvedbo opravila W.

• Čas komunikacije:

Tk = N*((ts +LI*tw) + *(ts +Lo*tw))

• Če čakanja naj bo v začetku 0. Predpostavimo enako dolžino W in enako dolžino priprave parametrov in branja rezultatov. Iz tega sledi, da komunikacija med O in W poteka sočasno (se ne prekriva).

• Potem bo W, ki je prvi prejel parametre od I, končal prvi in odposlal rezultate O-ju.

Page 10: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 10

Študij parametrov – analiza zahtevnosti

• čas računanja vzporednega programa je:

Tr = tFP*n*N/P• čas izvajanja vzporednega programa pa :

Tp = (Tr + Tk) / P = N/P* (tFP*n + ((ts +LI*tw) + *(ts +Lo*tw))) ker se bo tudi čas komunikacije krajšal, če bomo povečali

P.• Pohitritev:

S= Tr / Tp =

P*(tFP*n) / (tFP*n + ((ts +LI*tw) + *(ts +Lo*tw)))

je linearna in malo manjša kot P.

Page 11: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 11

Končne razlike - opredelitevParcialne diferencialne enačbe (PDE) – matematični model.Najenostavnejši primer: 1-D advekcijska enačba u/t = -c u/xu=u(t,x) in začetni pogoj u(0,x) = u0(x).

Ker je primer tako enostaven lahko izračunamo tudi analitično rešitev: u(t,x) = u0(x-ct)Preverimo: d(u0(x-ct))/dt = -c*u0 in d(u0(x-ct))/dx = u0

x

t

0 u0(x)u0(x-ct1)t1

Page 12: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 12

Končne razlike - diskretizacija

u0 u1 u2 u3 u4 uN-2 uN-1 t

u0 u1 u2 u3 u4 uN-2 uN-1 t+1

Δx Δx Δx

1-D advekcijska enačba (struna):u/t = -c u/x

Numerična rešitev:Aproksimacija časovnega odvoda(1. red): (ut+1-ut)/ΔtAproksimacija prostorskega odvoda (2.red): (ui+1-ui-1)/2ΔxVstavimo za vsako točko ui

Page 13: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 13

Končne razlike - izračun

u0 u1 u2 u3 u4 uN-2 uN-1 t

u0 u1 u2 u3 u4 uN-2 uN-1 t+1

Δx Δx Δx

Postavimo robne pogoje u0 = uN-1= 0

(ut+1-ut)/Δt = -c * (ui+1-ui-1)/2Δx

uit+1 = ui + (c Δt / 2Δx) (ui-1 – ui+1)

Dobimo sistem enačb: ut+1 = A*ut Matrika A ima tri diagonale.

Page 14: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 14

Končne razlike

• Nova vrednost ut+1 bo izračunana, ko bodo vsa opravila izračunala svoje vrednosti ut, in pridobila vrednosti svojega desnega soseda.

• Vrednosti u0 in uN-1 so robne vrednosti in postavljene na vnaprej znano vrednost (v splošnem so lahko tudi funkcija časa).

• Na začetku imajo vse točke začetno vrednost u0.

• Vsaka točka je opravilo (D).

• Komunikacija je potrebna z desnim in levim sosedom (K)

• V vsaki točki izračunamo v vsakem časovnem koraku:

ut+1 = c Δt (ui-1t + ui

t – ui+1t )/ 2Δx

3 FP, konstante izračunamo vnaprej .

Page 15: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 15

Končne razlike – vzporeden model

• Imamo N opravil, vsako je odgovorno za izračun u0, u1, ..., uN-1, v vsakem časovnem koraku, ki jih je T / Δt

• Opravili 0 in N-1 sta robni in imata fiksne vrednosti, ki jih ni treba računati (sta malo drugačna od vseh ostalih).

• Vzporeden model z opravili in kanali potrebuje dvosmerne kanale do levega in desnega soseda.

0 1 2 3 N-2 N-1

Page 16: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 16

Končne razlike – združevanje, preslikava

• Spet bomo združili (Z) opravila glede na število procesorjev in glede na delitev domene.

• Preslikava (P) bo enostavna (upoštevati deljivost N/P).

0 1 2 3 N-2 N-1

Page 17: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 17

Vzporedno računanje in komunikacija

Potek izračuna:

T t2

( ) T t3

( ) T t4

( ) T t3

( ) T t4

( ) T t5

( )T1 T6T t2

( ) T t3

( ) T t4

( ) T t3

( ) T t4

( ) T t5

( )T1 T6

p ro c e so r 1 p ro c e so r 2

s ta n je v č a su t T t2

( ) T t3

( ) T t4

( ) T t3

( ) T t4

( ) T t5

( )T1 T6T t2

( ) T t3

( ) T t4

( ) T t3

( ) T t4

( ) T t5

( )T1 T6

p ro c e so r 1 p ro c e so r 2

s ta n je v č a su

iz ra č u n

t T t2

( )

T t t2

( ) T t3

( )

T t3

( ) T t4

( )

T t4

( )T t t3

( )

T t3

( ) T t4

( ) T t5

( )

T t t4

( ) T t t5

( )T1

T1

T6

T6T t2

( )

T t t2

( ) T t3

( )

T t3

( ) T t4

( )

T t4

( )T t t3

( )

T t3

( ) T t4

( ) T t5

( )

T t t4

( ) T t t5

( )T1

T1

T6

T6

p ro c e so r 1 p ro c e so r 2

s ta n je v č a su

iz ra č u n

t T t2

( )

T t t2

( ) T t3

( )

T t3

( ) T t4

( )

T t4

( )T t t3

( )

T t3

( ) T t4

( ) T t5

( )

T t t4

( ) T t t5

( )T1

T1

T6

T6T t2

( )

T t t2

( ) T t3

( )

T t3

( ) T t4

( )

T t4

( )T t t3

( )

T t3

( ) T t4

( ) T t5

( )

T t t4

( ) T t t5

( )T1

T1

T6

T6

p ro c e so r 1 p ro c e so r 2

s ta n je v č a su

iz ra č u n

k o m u n ik a c ija

t

Procesor 1

u1,u2,u3

Procesor 2

u4,u5,u6

T t2

( )

T t t2

( )

T t t2

( )

Tt

3( )

T t t4

( )T t t

5( )

T t3

( ) Tt

4( )

Tt

4( )

Tt t

3( )

T t t3

( )T t t

4( )

T t3

( ) Tt

4( ) T

t5

( )

Tt t

4( )

Tt t

5( )

T t t3

( )

T1

T1

T1

T6

T6

T6

u t2

( )

u t t2

( )

u t t2

( )

ut

3( )

u t t4

( )u t t

5( )

u t3

( ) ut

4( )

ut

4( )

ut t

3( )

u t t3

( )u t t

4( )

u t3

( ) ut

4( ) u

t5

( )

ut t

4( )

ut t

5( )

u t t3

( )

u1

u1

u1

u6

u6

u6

procesor 1 procesor 2

stanje v času

izračun

komunikacija

stanje v času t+Δt

t

Page 18: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 18

Končne razlike - algoritem• Vsako opravilo izvede naslednji algoritem v vsakem

časovnem koraku:

Initialization if (taskID not 0 or N-1) {

send local data ut to left and right outports; receives ut from its left and right inports; use these values to compute ut+1;} else ut+1 = ut ;

• Program bo enak za vsa opravila (Single Program Multiple Data).

• Vsa opravila se lahko izvedejo neodvisno.

• Izvedba koraka je možna šele, ko so izračuni v prejšnjem koraku končani. Ne moremo izračunati nove vrednosti, če niso izračunane stare (sinhronizacija).

Page 19: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 19

Končne razlike – analiza zahtevnosti

• Spet vzemimo enake vrednosti za analizo zahtevnosti, N točk in P procesorjev.

• Predpostavimo da je obremenitev enaka na vseh procesorjih (vsak ima N/P točk).

• Vsak procesor izvaja enake računske operacije (izjema sta procesorja z robnima vrednostma).

• Celoten čas izvajanja zaporednega programa je

Tr = tFP*3*N

• Čas komunikacije:

Tk = P*(ts +L*tw)

ker vsak procesor izmenja eno točko z vsakim sosednjim procesorjem (dve dvosmerni sporočili – vse se lahko zgodi sočasno v času enega sporočila)

Page 20: Vzporedni algoritmi - primeri

Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 20

Končne razlike – analiza zahtevnosti

• Čas izvajanja vzporednega programa pa :

Tp = (Tr + Tk) / P = tFP*3*N /P + (ts +L*tw)

• Komunikacija potrebuje konstanten čas. Računanje pa se krajša z O(1/P). Če je P velik, bo delež računanja proti komunikaciji manjši in zato pohitritev manjša.

• Pohitritev:

S= Tr / Tp = tFP*3*N / (tFP*3*N /P + (ts +L*tw)) =

P*(tFP*3*N) / (tFP*3*N + P*(ts +L*tw))