vzporedni algoritmi - primeri
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 PresentationTRANSCRIPT
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),
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
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
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
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;
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
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
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
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.
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.
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
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
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.
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 .
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
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
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
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).
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)
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))