Programowane Równoległe Rozproszone Wykład Programowane Równoległe Rozproszone Lucjan Stapp Wydzał Matematyk Nauk Informacyjnych Poltechnka Warszawska (l.stapp@mn.pw.edu.pl) /38 PRR Wykład Chcemy rozwązać następujący układ równań lnowych A* where gdze A jest nesymetryczną trójdagonalnąmacerzą n * n rzędu n: są n-wymarowym wektoram: (,, 3,..., n-, n ) T (,, 3,..., n-, n ) T a A c a c c.................. a n a n n cn n A, mają współczynnk rzeczywste. /38 PRR Wykład Jak podano na poprzednm wykładze, jednym z najwydajnejszych ( najardzej popularnych) algorytmów sekwencyjnych do rozwązywana układu równań lnowych A d opera sę na rozkładze LU macerzy A. 3/38 PRR Wykład
Programowane Równoległe Rozproszone Wykład A jest rozkładane na loczyn dwóch dwudagonalnych macerzy L U gdze e A LU e............ e n e n f * c f c f c............ f n c f n n Następne z równana Ly d wylcza sę y, a z równana U y wylcza sę. 4/38 PRR Wykład W tym przypadku algorytm rozkładu LU składa sę z następujących kroków : Krok: Olczene rozkładu LU macerzy A f e a / f - n - f e * c - n Krok : Wyznaczene y z Ly d y d y d e * y - n - Krok 3: Wylczene z U y używając n- y n- / f n- (y c * + ) / f n - Czas: Algorytm LU wymaga 8*n 7operacj arytmetycznych (flops). 5/38 PRR Wykład Sekwencyjny algorytm przedrostkowy (ang. Sequental pref- SP) Równane A d może zostać przedstawone jako trzyczęścowa zależność rekurencyjna: a * - + * + c * + d n oraz * + c * d a n- * n- + n- * n- d n- 6/38 PRR Wykład
Programowane Równoległe Rozproszone Wykład Sekwencyjny algorytm przedrostkowy (SP) Zdefnujmy a c n- - n Zgodne z powyższą konwencją, a * - + * + c * + d zachodz dla n. 7/38 PRR Wykład Bez straty ogólnośc, możemy założyć, że c W każdym nnym przypadku układ może zostać podzelony na dwa ( lu węcej) układy trójdagonalne, które możemy rozpatrywać oddzelne. 8/38 PRR Wykład Z a * - + * + c * + d n otrzymujemy a d + * * + c c c n Podstawając: a d α β χ c c c mamy + α * + β * - + χ for n. 9/38 PRR Wykład 3
4 Programowane Równoległe Rozproszone Wykład /38 PRR Wykład Powyższe wyrażene może zostać zapsane w postac macerzowej jako: Zdefnujmy: Możemy, węc, napsać: X + B * X for n + * χ β α B χ β α n n n X /38 PRR Wykład Równość macerzowa X + B * X for n pozwala nam na wylczene wszystkch X dla n o le tylko dany jest początkowy wektor X jest dany. Do rozpoczęca olczeń musmy tylko wylczyć. X /38 PRR Wykład Zauważmy, że powtarzając X + B * X otrzymujemy X B * X X B * X B * B * X X 3 B * X B * B * B * X... X n B n- * X n- B n- * B n- *... *B * X
Programowane Równoległe Rozproszone Wykład Oznaczając C B * B - *... *B n otrzymujemy X n C n- * X 3/38 PRR Wykład ale B for n Stąd 4/38 PRR Wykład B * B + + * + + + + + s s s s s s 5/38 PRR Wykład 5
Programowane Równoległe Rozproszone Wykład Tym samym g g g C n g g g Współczynnk g j zależą od α, β oraz χ dla n 6/38 PRR Wykład Poneważ X n C n- * X n g n g g g g * g Poneważ - n, węc mnożąc perwszy wersz C n- przez otrzymujemy g * + g Stąd - g / g 7/38 PRR Wykład Poneważ mamy już X, X możemy olczyć wszystke X przy użycu prostej rekursj macerzowej: X C - * X 8/38 PRR Wykład 6
Programowane Równoległe Rozproszone Wykład jest następujący: Krok : Stwórz macerze B dla n Krok : Olcz łańcuch macerzy C korzystając z C B C B * C - Krok 3: Oznacz C n- wylczone w Kroku przez g g C n g g Olcz - g / g oraz g g X 9/38 PRR Wykład Krok 4: Olcz X oraz z wzoru X C * X dla n Czas: Algorytm SP wymaga 5 * n operacj arytmetycznych (flops). /38 PRR Wykład (ang. parallel pref) na hper-kostce Krok algorytmu SP jest jego kluczowym punktem. Olczene loczynu (q, q,..., q n- ) może yć wykonane w log n krokach przy użycu n procesorów Nech para ( j) reprezentuje loczyn q *q - *...* q j. (np. 7 4 reprezentujeq 7 *q 6 * q 5 *q 4 ). /38 PRR Wykład 7
Programowane Równoległe Rozproszone Wykład (ang. parallel pref) na hper-kostce Krok algorytmu SP jest jego kluczowym punktem. Szkc algorytmu: Jeżel element q jest początkowo przydzelony procesorow p to w k-tym kroku ( k log n) procesor p wysyła swoje dane do procesora p j, gdze j + k-. Procesor p j mnoży te dane ze swom własnym, a następne wysyła olczony loczyn do odpowednch procesów. /38 PRR Wykład Krok algorytmu SP jest jego kluczowym punktem. Algorytm dla n8 3/38 PRR Wykład Implementacja ędze wydajna, jeżel wymagana komunkacyjne algorytmu ędą mnmalne. Stąd wynka sposó, w jak zastosujemy ten algorytm na hper-kostce. 4/38 PRR Wykład 8
Programowane Równoległe Rozproszone Wykład MNOŻENIE MACIERZY Procesory połączone równolegle o topolog hperkostk. Jeżel p d oraz d d-... są narną reprezentacją lczy d {,,..., p-} oraz (j) - dla j < d - jest tą lczą, której reprezentacja narna ma postać d d-...ν j..., gdze ν j jest dopełnenem j, wtedy w komputerze z procesoram połączonym topologą hperkostk, procesor jest połączony ze wszystkm procesoram (j) 5/38 PRR Wykład Def. Bnary reflected Gray code Let e d-t nary numer, d d-... Bnary reflected Gray code G () g d g d-... g s defned y: g ( + + ) mod for,,..., d- g d d 6/38 PRR Wykład MNOŻENIE MACIERZY Def. Bnarny kod Gray a Nech ędze d-tową lczą w kodze narnym d d-.... Bnarny kod Gray a G () g d g d-... g jest zdefnowany następująco: g ( + + ) mod dla,,..., d-. g d d. Przykład G(9) G() 4 7/38 PRR Wykład 9
Programowane Równoległe Rozproszone Wykład MNOŻENIE MACIERZY Istneje funkcja odwrotna do G: G - Jak netrudno zauważyć, jeżel r r d r d-... r to G - (r) h d h d-... h, gdze h d r d oraz h (h + - r ) mod Przykład (c.d.) G - (4) G-() 9 8/38 PRR Wykład Twerdzene. Nech c ędą dwoma d-towym narnym lczam takm, że d k oraz c + k-. Wtedy odległość Hammnga d H pomędzy G() a G(c) wynos 9/38 PRR Wykład Przykład: narne Kod Gray a k c+ d H (,c) k c+ d H (,c) k3 c+ d H (,c) 3/38 PRR Wykład
Programowane Równoległe Rozproszone Wykład Następujący pseudokod przedstawa wymagane olczena. Kod ten dzała na wszystkch węzłach równocześne. Funkcja node_d()zwraca adres narny węzła, funkcja G() zwraca kod Gray a dla wartośc, G - () zwraca odwrotność kodu Gray a dla. Początkowo, węzeł G() zawera element q. Q oznacza ten element (lokalne dla węzła G()). Pod konec olczeń, węzeł G() zawera loczyn q *q - *...* q. Bez straty ogólnośc zakładamy, że n d. 3/38 PRR Wykład vod Parallel_Pref( nt d, quantty Q) { G - (node_d()); } for ( k ; k<d;k++) { } f ( {,..., d k- }) wysłane Q do procesora G( + k- ); f ( { k-,..., d }) Q temp_q * Q; oderane temp_q; 3/38 PRR Wykład Czas: PP na hper-kostce z n węzłam wymaga: Krok : 3 równoległe operacje arytmetyczne Krok : log n równoległych operacj arytmetycznych oraz ( * log n ) operacj komunkacyjnych Krok 3: operacja arytmetyczna Krok 4: log n operacj komunkacyjnych oraz równoległa operacja arytmetyczna 33/38 PRR Wykład
Programowane Równoległe Rozproszone Wykład Zazwyczaj, lcza procesorów p <<n. Nech m * p n. Przydzelamy m elementów wykonujemy na nch algorytm SP, na każdym procesorze. Potem znajdujemy przedrostk loków loczynów p stosując algorytm PP. Procesor wysyła ten loczyn do procesorów +j. Dane te są wtedy mnożone ze wszystkm, poza ostatnm, elementam na procesorze, który je oderał 34/38 PRR Wykład 3 3 3 3 3 3 3 3 4 43 43 43 43 43 43 4 5 5 53 5 5 5 5 5 6 6 6 6 6 6 6 6 7 76 76 76 76 76 76 7 8 8 86 86 8 8 8 8 9 9 9 9 9 9 9 9 A A9 A9 A9 A9 A9 A9 A B B B9 B6 B6 B B B Równoległy algorytm przedrostkowy dla n oraz p 4 35/38 PRR Wykład Początkowo przydzelamy elementy : q (+)*m-, q (+)*m-,..., q *m do węzła G(). Elementy te oznaczamy jako Q m, Q m-,..., Q. Po algorytme SP otrzymujemy : Q m * Q m- *... * Q q (+)*m- * q (+)*m- *...* q *m Po algorytme PP każdy węzeł G() zawera: q *m * q *m- *... * q...... q (+)*m- * q (+)*m-3 *... * q *m * * q * q q (+)*m- *q (+)*m- * q (+)*m-3 *... * q *m * * q * q. 36/38 PRR Wykład
Programowane Równoległe Rozproszone Wykład Czas: Algorytm PP dla n m * p wymaga: 35*n /p +* log p 9 równoległych operacj arytmetycznych; 3*log p operacj komunkacyjnych. 37/38 PRR Wykład Równoległy algorytm przedrostkowy Algorytm ten przedstawl: Egecoglu, E., Koc, K., Lau, A.J., A recursve doulng algorthm for soluton of trdagonal systems on hypercue multprocessors, Journal od Comp. And Appl. Math., 7 (989), pp. 95-8 38/38 PRR Wykład 3