Unverstät Karlsruhe (TH) Forschungsunverstät gegründet 825 Parallele Algorthmen I Augaben und Lösungen Pro. Dr. Walter F. Tchy Dr. Vctor Pankratus Davd Meder
Augabe () Gegeben se en N-elementger Zahlenvektor v[ n-]. Schreben Se en paralleles Programm, welches D = max{ v[] v[j] },, j < n berechnet. Was st de asymptotsche Lauzet? Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar 2
Augabe () Nave Lösung Annahme: Es stehen N Prozessoren zur Verügung. Vorgehenswese:. Berechne au jedem Prozessor de Derenzen v[] v[j],!= j 2. Bestmme au jedem Prozessor sequentell das lokale Maxmum m 3. Berechne au (enem) Prozessor sequentell das globale Maxmum m Asymptotsche Lauzet: O(N). Berechnung der Derenzen: O(N) 2. Bestmmung der lokalen Maxma: O(N) 3. Bestmmung des globalen Maxmums: O(N)
Augabe () Maxmum Bestmmung des Maxmums aus N Werten mt Hle der Redukton Se Verknüpungsoperator mt der Egenschat a b = max(a,b) 2 3 Max(,) Max(,3) Max(2,3) Lauzet: O(log 2 (N)) be N Prozessoren und N Werten Arbetsauwand: N- Verknüpungsoperatonen Berechnung des Mnmums analog mt a b = mn(a,b) Mt N 2 Prozessoren st ene Lauzet von O() möglch (sehe nächste Fole). 4
Augabe () Maxmum Gegeben: Vektor A der Länge N, N 2 Prozessoren, CRCW PRAM Algorthmus: FORALL,j : [.. N-] IN PARALLEL IF A[] A[j] THEN B[, j] := ; ELSE B[, j} := ; END END M[] == gdw. A[] == max(a[],, A[n]) FORALL : [.. N-] IN PARALLEL M[] := B[, ] B[, 2] B[, N-]; END O() O() Asymptotsche Lauzet: O() 5
Augabe () Lösungsskzze Annahme: Es stehen N Prozessoren zur Verügung Vorgehenswese:.Berechne das Maxmum v Max aller Werte 2.Berechne das Mnmum v Mn aller Werte 3.Blde de Derenz v Max - v Mn Asymptotsche Lauzet: O(log 2 (N)). Berechnung des Maxmums: O(log 2 (N)) 2. Berechnung des Mnmums: O(log 2 (N)) 3. Berechnung der Derenz: O() Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar 6
Augabe (2) Schreben Se en paralleles Programm, welches zwe Zechenrehen der Länge N lexkographsch verglecht. Was st de asymptotsche Lauzet? Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar 7
Augabe (2) Nave Lösung Annahme: Es stehen n Prozessoren zur Verügung mt N = m * n Vorgehenswese:. Jeder Prozessor verglecht enen m Zechen langen Tel der Zechenketten P P2 P(n-) Pn Zechenkette Zechenkette 2 m Zechen 2. De n Telergebnsse werden von enem Prozessor ausgewertet Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar 8
Augabe (2) Lösungsskzze Annahme: Es stehen N Prozessoren zur Verügung Vorgehenswese:.Denere ene Verknüpungsoperaton mt olgenden Egenschaten c c2 =, wenn Zechen c lexkographsch größer als c2 st c c2 = -, wenn Zechen c lexkographsch klener als c2 st c c2 =, sonst 2.Generere neues Array A parallel au N Prozessoren: a[] = z[] z2[] 3.Denere ene Verknüpungsoperaton x y (Wchtg: st ncht kommutatv) = = - = - = - = - = - = - 4.Wende Reduktonsoperaton mt Operaton 5.An Poston A[] Ergebns ablesen Asymptotsche Lauzet: O(log 2 (N)). Genererung von Array A: O(m) 2. Redukton des Arrays A: O(log 2 (N)) au A an Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar Merke dr, ob und we sch de Zechenketten unterscheden 9
Augabe (3) Gegeben se en N-elementger Zahlenvektor v[ n-]. Schreben Se en paralleles Programm, welches den Wert des maxmalen Untervektors bestmmt: q U=max{ v[] ; p < q < n} =p Beachte: v[] kann auch < sen! Was st de asymptotsche Lauzet? Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar
Augabe (3) Nave Lösung Annahme: Es stehen N Prozessoren zur Verügung Vorgehenswese:. Berechne au jedem Prozessor de Werte der Untervektoren mt olgender Formel: q v[ k]; 2. Berechne au jedem Prozessor das lokale Maxmum m 3. Berechne au enem Prozessor das globale Maxmum m Asymptotsche Lauzet: O(N). Berechnung der Werte der Untervektoren: O(N) 2. Bestmmung der lokalen Maxma: O(N) 3. Bestmmung des globalen Maxmums: O(N) k q n
Augabe (3) Lösungsskzze Annahme: Es stehen (N(N+)/2) 2 Prozessoren zur Verügung De Daten snd we olgt duplzert: v[] v[] v[n-] v[] v[n-] v[n-] Vorgehenswese:.Berechne de Werte der Untervektoren nach der gegebenen Formel. Verwende dazu den Präxsummenalgorthmus. N(N+)/2 Zwschenergebnsse 2.Fnde Maxmum mt Algorthmus aus Augabe () Asymptotsche Lauzet:. Berechnung der Zwschenergebnsse: O(log(N)) 2. Fnden des maxmalen Wertes: O(log 2 (N 2 )) Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar 2
Augabe (3) Wetere Lösung I Sequenteller Algorthmus: Verwende Varablen Bbh ( Bester bs her )und Bbr ( Bester bs rechts ) In Bbh wrd der größte Wert enes Untervektors bs an Poston gespechert In Bbr wrd der Wert des Untervektors bs an Poston gespechert Zu Begnn snd Bbh und Bbr Bespel: v Bbh 2 - -3-3 3 3 Bbr 3 2 9 Verwende zur parallelen Lösung Rekurrenzen (nächste Fole) 3
Augabe (3) Wetere Lösung II Gegeben se olgender Vektor: l b r l2 b2 r2 v v2 l, l2: Wert des max. Untervektors, der an Poston begnnt r, r2: Wert des max. Untervektors, der an Poston endet b, b2: Wert des Telvektors v bzw. v2 Verwende zur Berechnung olgende (assozatve) Rekurrenz n Verbndung mt dem Algorthmus der Postxsumme: l l2 max( l, r2 b) b b2 b b2 r r2 max( r2, l b2) 4
Augabe (3) Bespel - 2-5 -5 2-4 - 2 2 2-5 5 5-5 2 2 2-4 2 2 5 5 5 25 25 25 5 5 5 5 2 2-2 5 5 25 35 35 35 5 2 4 4 4 25-5 5-25 4-5 3-4 5
Augabe (4) Schreben Se en paralleles Programm, welches de ersten N Fbonacc-Zahlen berechnet. = - + -2, = = Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar 6
Augabe (4) Nave Lösung Annahme: Es stehen N Prozessoren zur Verügung Vorgehenswese: Algorthmus ähnlch zur Postxsumme: 2 3 4 5 6 7 2 2 3 2 2 3 5 8 3 8 2 3 5 8 3 2 Asymptotsche Lauzet: O(N - 2) = O(N) Schrtt Schrtt 2 Schrtt N - 3 Schrtt N - 2 Pro. W. F. Tchy, Dr. V. Pankratus, D. Meder, A. Jannesar 7
Augabe (4) Lösungsskzze Annahme: Es stehen N Prozessoren zur Verügung Berechne de -te Fbonacc-Zahl we olgt: 2 Berechne de Potenzen der Matrx parallel (Präxsumme). Berechne das Produkt ür jeden Prozessor. Asymptotsche Lauzet:. Berechnung der Potenzen der Matrx: O(log 2 (N*(2*2) 3 )) 2. Berechnung der Produkte: O() 8