1 / 20

Vzporedni algoritmi - primeri

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) :

boone
Télécharger la présentation

Vzporedni algoritmi - primeri

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 parametrov Opredelitev 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) O W W W . . . W W W W W 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 O W W W . . . W W W W W 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. O&I W W W . . . W W W W W 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. O&I W W W . . . W W W W W 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? O&I W W W . . . W W W W W 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 - opredelitev Parcialne diferencialne enačbe (PDE) – matematični model. Najenostavnejši primer: 1-D advekcijska enačba u/t = -c u/x u=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 t u0(x-ct1) t1 u0(x) 0 x Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13

  12. Končne razlike - diskretizacija 1-D advekcijska enačba (struna): u/t = -c u/x Numerična rešitev: Aproksimacija časovnega odvoda(1. red): (ut+1-ut)/Δt Aproksimacija prostorskega odvoda (2.red): (ui+1-ui-1)/2Δx Vstavimo za vsako točko ui Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13

  13. Končne razlike - izračun 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+1bo izračunana, ko bodo vsa opravila izračunala svoje vrednosti ut, in pridobila vrednosti svojega desnega soseda. • Vrednosti u0inuN-1so 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 + uit – 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 Nopravil, 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. 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). Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13

  17. Vzporedno računanje in komunikacija Procesor 2 u4,u5,u6 Procesor 1 u1,u2,u3 Potek izračuna: procesor 1 procesor 2 stanje v času t t t t t t t t t t t t t ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) T u T u u T u T u T u T u T u T 1 1 6 6 2 2 3 3 3 3 4 4 4 4 5 5 izračun + + D D + + D D + + D D + + D D t t t t t t t t t t ( ( ) ) t t t t t t t t t t ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) u T T u komunikacija u T T u T u u T T u T u 1 1 6 6 2 2 4 4 3 3 3 3 4 4 5 5 Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13 + + D D + + D D + + D D + + D D + + D D + + D D stanje v času t+Δt t t t t t t t t t t t t t t t t t t t t ( ( ) ) t t t t ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) u T u T u T T u T u u T u T T u 1 1 6 6 2 2 3 3 3 3 4 4 4 4 5 5

  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)) Univerza v Ljubljani, FE "Vzporedni sistemi - VS" ZS-2012/13

More Related