Proekt Nowe metody naczana w matematyce Nr POKL.09.04.00-4-33/ Nowoczesne technologe przetwarzana nformac Mgr Mace Cytowsk (ICM UW) Lekca 3: Przykłady algorytmów równoległych w ramach Eropeskego Fndsz Społecznego
Wstęp Zaprezentemy przykłady algorytmów oraz mechanzmów równoległych:. Równoległe oblczane lczby P. Algorytm Cannon a 3. Równane Posson a 4. Metody dekompozyc oblczeń krzywe wypełnaące przestrzeń 5. Własny algorytm równoległy średnane tablcy z danym. w ramach Eropeskego Fndsz Społecznego
Równoległe oblczane lczby P Całkowane metodą prostokątów następącego wzor: 4 n 4 x 0 0 0.5 ( ) n h w ramach Eropeskego Fndsz Społecznego 3
Oblczane lczby P schemat algorytm Dekompozyca podzał na podzadana Przedzał [0,] dzelmy na równe częśc Oblczena Każde podzadane polega na oblczen smy dla rozpatrywanego podprzedzał Wynkem est edna lczba zmennoprzecnkowa Oblczena są całkowce nezależne (brak komnkac podczas oblczeń) Redkca Zebrane wynków poszczególnych zadań Komnkaca na końc algorytm w ramach Eropeskego Fndsz Społecznego 4
Oblczane lczby P kod C nt man (nt argc, char *argv[]) { } nt,n; doble smp, mypart, x; doble p; n = 00000000; smp = 0.0; #pragma omp parallel for defalt(none) prvate(,x,mypart) shared(n) redcton(+:smp) for(=0;<n;++) { } x = ( + 0.5) / n; mypart =.0/(.0 + x*x); smp = smp + mypart; #pragma omp crtcal p = 4.0*smp/n; prntf("%lf\n",p); w ramach Eropeskego Fndsz Społecznego 5
Oblczane lczby P kod C OpenMP nt man (nt argc, char *argv[]) { } nt,n; doble smp, mypart, x; doble p; n = 00000000; smp = 0.0; #pragma omp parallel for defalt(none) prvate(,x,mypart) shared(n) redcton(+:smp) for(=0;<n;++) { } x = ( + 0.5) / n; mypart =.0/(.0 + x*x); smp = smp + mypart; #pragma omp crtcal p = 4.0*smp/n; prntf("%lf\n",p); w ramach Eropeskego Fndsz Społecznego 6
Algorytm Cannon a Algorytm Cannon a to równoległy algorytm oblczana mnożena macerzy za pomocą podzały na dwwymarową satkę. Algorytm atorstaw Lynn Ellot Cannon a został opsany w rok 969. 7 w ramach Eropeskego Fndsz Społecznego
Algorytm Cannon a - krok Zorganz dostępne procesory w satkę NxN (P=NxN) Podzel macerze A oraz B na P kwadratowych bloków Oznacz procesory od P(0,0) do P(N-,N-) Wstępne przypsz blok A(,) oraz B(,) do procesów P(,) Wykona wstępne przesnęce (pokazane na następnym sladze) Wykona przemnożene bloków przesnęce (pokazane na następnym sladze) Wykona poprzedn krok N- razy 8 w ramach Eropeskego Fndsz Społecznego
Algorytm Cannon a: schemat komnkac A(0,0) A(0,) A(0,) A(0,3) B(0,0) B(0,) B(0,) B(0,3) A(,0) A(,) A(,) A(,3) B(,0) B(,) B(,) B(,3) A(,0) A(,) A(,) A(,3) B(,0) B(,) B(,) B(,3) A(3,0) A(3,) A(3,) A(3,3) B(3,0) B(3,) B(3,) B(3,3) Intal algnment of A Intal algnment of B A(0,0) B(0,0) A(0,) B(,) A(0,) B(,) A(0,3) B(3,3) A(0,) B(,0) A(0,) B(,) A(0,3) B(3,) A(0,0) B(0,3) A(,) B(,0) A(,) B(,) A(,3) B(3,) A(,0) B(0,3) A(,) B(,0) A(,3) B(3,) A(,0) B(0,) A(,) B(,3) A(,) B(,0) A(,3) B(3,) A(,0) B(0,) A(,) B(,3) A(,3) B(3,0) A(,0) B(0,) A(,) B(,) A(,) B(,3) A(3,3) B(3,0) A(3,0) B(0,) A(3,) B(,) A(3,) B(,3) A(3,0) B(0,0) A(3,) B(,) A(3,) B(,) A(3,3) B(3,3) 9 Sbmatrx locaton Proekt after ntal współfnansowany shft Sbmatrx przez Unę locaton Eropeską after st shft w ramach Eropeskego Fndsz Społecznego
Algorytm Cannon a fragment kod C MPI for(shft=0;shft<dms[0];shft++) { // Mnozene macerzy for(=0;<nl;++) for(k=0;k<nl;k++) for(=0;<nl;++) C[*Nl+]+=A[*Nl+k]*B[k*Nl+]; f(shft==dms[0]-) break; } // Wymana blokow MPI_Sendrecv(A,Nl*Nl,MPI_DOUBLE,left,,bf,Nl*Nl,MPI_DOUBLE,rght,,cannon_comm,&stats); tmp=bf; bf=a; A=tmp; MPI_Sendrecv(B,Nl*Nl,MPI_DOUBLE,p,,bf,Nl*Nl,MPI_DOUBLE,down,,cannon_comm,&stats); tmp=bf; bf=b; B=tmp; w ramach Eropeskego Fndsz Społecznego 0
Równane Posson a w ramach Eropeskego Fndsz Społecznego
Równane Posson a rozwązane Dyskretyzaca - satka oblczenowa: b a x a h x h x 0n n y c h y h y d c n Metoda różnc skończonych: 0n ( x, y) x y x, [, ] h,, w ramach Eropeskego Fndsz Społecznego
Równane Posson a kład r-ń lnowych f h h,,,,,,,,,,,,, 4 h f 0 n 0 n,,,0,,,0 0, 0, 0,0,,,0,,,0 0, 0, 0,0 4 4 4 4 4 4 4 4 4 f h f h f h f h f h f h f h f h f h 3 w ramach Eropeskego Fndsz Społecznego
Równane Posson a metoda teracyna Macerz rzadka rozwązane metodą teracyną Jacob ego Tzw. 5-pnktowy krzyżak (fve pont stencl) w ramach Eropeskego Fndsz Społecznego 4
Równane Posson a realzaca równoległa Podzał satk oblczenowe pomędzy procesoram pask. Nektóre oblczena mogą być wykonywane nezależne (oblczena wewnątrz pasków). Oblczena wartośc brzegowych wymagaą znaomośc wartośc oblczanych w sąsednch paskach na sąsednch procesorach. Komnkaca całych werszy wartośc brzegowych (tzw. hal). Synchronzaca po każdym krok terac Jacob ego, aby meć pewność, że w każdym momence wszystke procesory wykoną tą samą teracę. w ramach Eropeskego Fndsz Społecznego 5
Pamęć rozproszona Równane Posson a realzaca równoległa RAM CPU RAM CPU RAM3 CPU3 RAM4 CPU4 w ramach Eropeskego Fndsz Społecznego 6
Pamęć rozproszona Równane Posson a realzaca równoległa RAM CPU RAM CPU RAM3 CPU3 RAM4 CPU4 w ramach Eropeskego Fndsz Społecznego 7
Pamęć rozproszona Równane Posson a realzaca równoległa RAM CPU RAM CPU RAM3 CPU3 RAM4 CPU4 w ramach Eropeskego Fndsz Społecznego 8
Metody dekompozyc oblczeń Przedstawmy metodę dekompozyc oblczeń za pomocą krzywych wypełnaących przestrzeń na przykładze kodów żywaących metod cząstek (ang. partcle methods). w ramach Eropeskego Fndsz Społecznego 9
Problem oblczenowy: cząstk Równoległe wylczane oddzaływań pomędzy cząstkam w przestrzen 3D Losemy N cząstek w przestrzen 3D Cząstk oddzaływą na sebe Każdy krok symlac polega na wylczen oddzaływań, wylczen wektorów przesnęć, przesnęc cząstek na nową pozycę. Zadane ma być zrealzowane na lczbe P procesorów Zastosowana to m.n.: Kosmologa Bologa moleklarna Fzyka plazmy Symlace kolon komórek w ramach Eropeskego Fndsz Społecznego 0
Równoważene obcążena Load balancng = podzał oblczeń pomędzy dostępne procesory Aby zmnmalzować czas wykonana program równoległego należy zapewnć równomerne rozłożene oblczeń Jak efektywne rozdzelć pracę w probleme cząstek pomędzy procesoram? Rozwązane nawne: Dokonać podzał kostk 3D na P równych częśc przypsać każdem procesorow zawarte w danym fragmence kostk cząstk, Uwaga: otrzymany w ten sposób podzał może powodować nerównomerne rozłożene lczby cząstek pomędzy procesoram Do czego to prowadz? w ramach Eropeskego Fndsz Społecznego
Równoważene obcążena Nerównomerne rozłożene = dłższy czas oblczeń oraz brak skalowalnośc Jak nacze rozwązać ten problem? w ramach Eropeskego Fndsz Społecznego
Topologczne defnce krzywe W rok 887 Camlle Jordan podał następącą defncę krzywe (nazywane dzsa krzywą Jordana): Krzywa est to fnkca cągła określona na odcnk [0,] Wydawało sę, że est to defnca neźle oddaąca ntcę matematyków. W wel przypadkach obrazy odcnka [0,] są tym co chcelbyśmy nazwać lną. Defnca ta okazała sę być ednak zbyt szeroka. Trzy lata późne włosk matematyk Gseppe Peano podał przykład krzywe w sense Jordana, który kłócł sę z natralną ntcą. Okazało sę, że cągłym obrazem odcnka może być cały kwadrat! Nezależne od Peano podobną krzywą rozpatrywał skonstrował w tym samym czase Davd Hlbert. w ramach Eropeskego Fndsz Społecznego 3
Krzywe Peano-Hlberta Krzywe wypełnaące przestrzeńto cągłe odwzorowane przekształcaące odcnek ednostkowy [0,] na n-wymarową kostkę ednostkową. V.Sprngel The cosmologcal smlaton code GADGET-, Mon. Not. R. Astron. Soc. 364, 05 34 (005) Krzywa Hlberta w D: Startemy z kształt U w satce x Podstawę U zamenamy na dwa take same kształty U Na bokach U meszczamy obrócone kształty U (po ednym na każdym) W ten sposób przechodzmy do satk 4x4 Powtarzaąc to dzałane teracyne przechodzmy do satek n x n Dla każdego pnkt w kostce n-wymarowe esteśmy w stane znaleźć odpowadaący m pnkt z przedzał [0,] w ramach Eropeskego Fndsz Społecznego 4
Równoważene obcążena za pomocą krzywych P-H Dla każdego pnkt z kostk (D lb 3D) znaleźć odpowadaący m pnkt przedzał [0,]. Dokonać cęca otrzymane krzywe P-H na fragmenty zaweraące równe lośc pnktów z kostk. Przypsać otrzymane fragmenty krzywe P-H procesorom. Podzały tego typ maą bardzo ważną własność lokalnośc geometryczne, która est nezmerne przydatna przy oblczenach oddzaływań cząstek. w ramach Eropeskego Fndsz Społecznego 5
Własny algorytm równoległy Uśrednane tablcy z danym Inpt: tablca D z lczbam zmennoprzecnkowym Algorytm: każdem elementow tablcy przypsemy średną ego dwóch sąsadów proces ten wykonemy N-razy Otpt: tablca z wygładzonym danym Jak należy podzelć dane pomędzy procesam? Kedy nezbędna będze komnkaca? Jak wyglądać będze tzw. halo wymany pomędzy procesam? w ramach Eropeskego Fndsz Społecznego 6