ZRÓWNOLEGLANIE OBLICZEŃ W METODACH PROJEKCYJNYCH ROZWIĄZYWANIA UKŁADÓW RÓWNAŃ LINIOWYCH

Podobne dokumenty
Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Numeryczna algebra liniowa

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

METODY NUMERYCZNE. wykład. konsultacje: wtorek 10:00-11:30 środa 10:00-11:30. dr inż. Grażyna Kałuża pokój

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

Matematyka stosowana i metody numeryczne

Metody numeryczne Wykład 4

5. Rozwiązywanie układów równań liniowych

Plan wykładu. Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 6 p. Rozwiazywanie układów równań. metody bezpośrednie,

Wstęp do metod numerycznych Algebraiczna metoda gradientów sprzężonych. P. F. Góra

Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 6

Macierze. Rozdział Działania na macierzach

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Układy równań liniowych i metody ich rozwiązywania

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.

Metody numeryczne I Równania nieliniowe

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Matematyka stosowana i metody numeryczne

Algorytmy numeryczne 1

Obliczenia naukowe Wykład nr 8

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

Metody numeryczne w przykładach

Wykład 14. Elementy algebry macierzy

Optymalizacja ciągła

UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Optymalizacja ciągła

KADD Minimalizacja funkcji

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

2. Układy równań liniowych

POD- I NADOKREŚLONE UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

UKŁADY RÓWNAŃ LINIOWYCH -Metody dokładne

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Rozdział 1 PROGRAMOWANIE LINIOWE

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Rozwiązywanie układów równań liniowych metody przybliżone Materiały pomocnicze do ćwiczeń z metod numerycznych

Układy równań liniowych. Krzysztof Patan

3. FUNKCJA LINIOWA. gdzie ; ół,.

ECTS (Część 2. Metody numeryczne) Nazwa w języku angielskim: Algorithms and data structures.

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Zaawansowane metody numeryczne

Rozwiązywanie układów równań liniowych

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Obliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński

Rozwiązywanie algebraicznych układów równań liniowych metodami iteracyjnymi

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Modyfikacja schematu SCPF obliczeń energii polaryzacji

Równoległość i współbieżność

Równoległość i współbieżność

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Sposoby tworzenia uwarunkowania wstępnego dla metody gradientów sprzężonych

Wartości i wektory własne

Optymalizacja ciągła

1 Równania nieliniowe

Elementy inteligencji obliczeniowej

Wprowadzenie do złożoności obliczeniowej

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Dr inż. hab. Siergiej Fialko, IF-PK,

Wstęp do metod numerycznych Metody iteracyjne Algebraiczna metoda gradientów sprzężonych. P. F. Góra

Analiza korespondencji

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Modelowanie rynków finansowych z wykorzystaniem pakietu R

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

KADD Minimalizacja funkcji

Wykład z Technologii Informacyjnych. Piotr Mika

NUMERYCZNE ALGORYTMY PRZECHOWYWANIA MACIERZY RZADKICH

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

8. PODSTAWY ANALIZY NIELINIOWEJ

Programowanie celowe #1

Algorytmy i struktury danych

3. Interpolacja. Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która

3. Macierze i Układy Równań Liniowych

Wykład 4 Udowodnimy teraz, że jeśli U, W są podprzetrzeniami skończenie wymiarowej przestrzeni V to zachodzi wzór: dim(u + W ) = dim U + dim W dim(u

Metody i analiza danych

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

1 Układy równań liniowych

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Rozwiązywanie równań nieliniowych

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. Rozwiązywanie równań nieliniowych z jedną niewiadomą

STATYKA Z UWZGLĘDNIENIEM DUŻYCH SIŁ OSIOWYCH

Wykład 5. Metoda eliminacji Gaussa

Transkrypt:

ZRÓWNOLEGLANIE OBLICZEŃ W METODACH PROJEKCYJNYCH ROZWIĄZYWANIA UKŁADÓW RÓWNAŃ LINIOWYCH Zdzisław Szczerbiński Instytut Informatyki Teoretycznej i Stosowanej PAN ul. Bałtycka 5, 44-100 Gliwice oraz Państwowa Wyższa Szkoła Zawodowa w Elblągu Instytut Informatyki Stosowanej ul. Wojska Polskiego 1, 82-300 Elbląg e-mail: zdzich@iitis.gliwice.pl Streszczenie. Artykuł jest poświęcony zagadnieniom obliczeń równoległych, występującym w trakcie rozwiązywania układów równań liniowych przy pomocy dwóch wybranych, iteracyjnych metod projekcyjnych: gradientów dwusprzężonych oraz kwadratu gradientów sprzężonych. Omówiono sposoby zrównolegleń, dokonanych w praktycznych implementacjach tych metod, oraz dokonano analizy przykładowych wyników czasowych, uzyskanych w trakcie działania odnośnych programów w środowiskach wieloprocesorowych. Abstract. The article is concerned with parallel computation issues arising while solving linear systems with two iterative projection methods: the biconjugate gradient and the conjugate gradient squared. A description is given of parallelizations in practical implementations of these methods. An analysis is presented of example timing results, obtained from running the adequate programs in multiprocessing environments.

1. Wstęp W wielu dziedzinach nauki i techniki mamy do czynienia z układami równań liniowych o postaci (w zapisie macierzowym) Ax = b przy czym macierz A jest często zarówno (bardzo) duża jak i rzadka (wiele jej elementów ma wartość 0). Przykładem może być dziedzina modelowania systemów i sieci komputerowych, gdzie korzysta się powszechnie z idei łańcuchów Markowa. Adekwatne modele, które należy rozwiązać, mają duże rozmiary i oparte są na układach równań liniowych wiążących ze sobą stany analizowanego układu; ponieważ liczba możliwych przejść między stanami jest niewielka w stosunku do rozmiaru modelu, macierz opisująca układ jest rzadka. Do rozwiązywania wspomnianych układów stosuje się prawie wyłącznie metody iteracyjne. Wynika to z nieefektywności metod bezpośrednich, których użycie ograniczone jest praktycznie do układów niewielkich rozmiarów, w których macierz A jest gęsta. Działanie metod iteracyjnych polega na generowaniu ciągu rozwiązań przybliżonych do momentu osiągnięcia wymaganej dokładności. Metody takie mają szereg zalet. Przede wszystkim, liczba wykonywanych obliczeń jest zmienna, gdyż zależy od ustalonej wcześniej dokładności; można, więc nią sterować w zależności od potrzeb. Ponadto, nie zmienia się w trakcie ich działania macierz A, co bardzo ułatwia praktyczne implementacje takich metod, bazujące często na spakowanej postaci macierzy rzadkich. Z niezmiennością macierzy wiąże się również brak propagacji błędów zaokrągleń, co jest częstą bolączką metod bezpośrednich. Wadą metod iteracyjnych jest natomiast zła (w szeregu przypadków) zbieżność lub nawet brak zbieżności (gdy macierz A jest źle uwarunkowana). Najstarsze, klasyczne metody iteracyjne (Jacobi ego, Gaussa-Seidela, SOR) cechują się nienajlepszą zbieżnością. Stąd, większą popularnością cieszą się obecnie metody projekcyjne, wykorzystujące układy podprzestrzeni Kryłowa. Ich zbieżność jest znacznie lepsza; górują one ponadto wyraźnie nad metodami klasycznymi pod względem efektywności wykorzystania pamięci operacyjnej. Ponadto, nadają się dobrze do implementacji w komputerach równoległych, co wynika z faktu, iż są złożone z prostych operacji na wektorach i macierzach, które daje się z łatwością zrównoleglać. W chwili obecnej najszerzej są znane trzy takie metody: gradientów dwusprzężonych [2], kwadratu gradientów sprzężonych [4] oraz uogólnionego residuum minimalnego [3]. Badaniom poddaliśmy pierwsze dwie z nich. 2. Metoda gradientów dwusprzężonych W metodzie gradientów dwusprzężonych wykorzystuje się dwa kierunki poszukiwań minimum funkcji analitycznej f(x), stanowiącej przekształcenie wyjściowego równania Ax = b. f(x) = 0.5 x T Ax x T b 258

Wspomniana minimalizacja polega na generowaniu ciągu coraz lepszych (przybliżonych) rozwiązań x, i związanego z tym zbiegania się dwóch wektorów residuum r 1 i r 2 do zera. Adekwatny algorytm można zapisać następująco. 1. Ustal początkowe rozwiązanie przybliżone x (0). 2. Oblicz residuum r (0) 1 = b Ax (0). 3. Ustal p (0) 1 = p (0) 2 = r (0) 2 = r (0) 1, oraz k = 0. 4. Wykonuj iteracyjnie ciąg obliczeń α = r 2 T r 1 / (p 2 T A p 1 ) x (k+1) = x + α p 1 r 1 (k+1) = r 1 α Ap 1 r 2 (k+1) = r 2 α A T p 2 β = r 2 (k+1)t r 1 (k+1) / (r 2 T r 1 ) p 1 (k+1) = r 1 + β p 1 p 2 (k+1) = r 2 + β p 2 inkrementuj k Współczynniki α są dobierane w taki sposób, aby spełniony był warunek dwuortogonalności, zaś β warunek dwusprzężenia. Zbieżność metody (i uzyskanie rozwiązania końcowego) osiąga się, teoretycznie, w maksymalnie n krokach, gdzie n jest rozmiarem układu. W praktyce, ze względu na nieuniknione w obliczeniach numerycznych błędy zaokrągleń, liczba powtarzanych iteracji jest często znacznie większa; o zakończeniu obliczeń decyduje wcześniej ustalony test zbieżności, wykonywany po zakończeniu każdej iteracji. 3. Metoda kwadratu gradientów sprzężonych W metodzie kwadratu gradientów sprzężonych wykorzystuje się tylko jeden kierunek poszukiwań wspomnianego wyżej minimum; sam proces poszukiwania jest jednak zorganizowany efektywniej niż w poprzedniej metodzie. Uzyskuje się w ten sposób szybszą zbieżność. Dodatkowo, uniknięto tu konieczności korzystania z transpozycji macierzy A, co charakteryzuje metodę gradientów dwusprzężonych. Osiągnięto w ten sposób dużą oszczędność, zarówno pamięciową jak i czasową ( rozpakowanie dużej tablicy w programie komputerowym jest czasochłonne). Algorytm ma tu postać: 1. Ustal początkowe rozwiązanie przybliżone x (0). 2. Oblicz residuum r (0) = b Ax (0). 3. Ustal q (0) = p ( 1) = 0, ρ ( 1) = 1, oraz k = 0. 4. Wykonuj iteracyjnie ciąg obliczeń ρ = r T r β = ρ / ρ (k 1) 259

u = r + β q p = u + β (q + β p (k 1) ) w = Ap σ = r T w α = ρ / σ q (k+1) = u w x (k+1) = x + α (u + q (k+1) ) r (k+1) = r α A(u + q (k+1) ) inkrementuj k 4. Implementacje praktyczne i przykładowe wyniki czasowe Jako praktyczną implementację omówionych powyżej metod, opracowano adekwatne programy komputerowe w języku Fortran. W celu uzyskania przyspieszenia obliczeń przygotowano je zarówno w wersji sekwencyjnej (jednoprocesorowej) jak i równoległej (wieloprocesorowej). W przypadku pierwszej z wyżej opisanych metod, do obliczeń wykorzystano, mieszczący w sobie 10 procesorów UltraSPARC oraz 6 GB wspólnej dla procesorów pamięci operacyjnej, system komputerowy Sun Enterprise 6500. Zrównoleglenie elementów programowych osiągnięto wykorzystując dyrektywy zrównoleglania (własne, firmy Sun Microsystems), nakładane na klasyczny program sekwencyjny. Przykładowo, proces ustalania nowych kierunków poszukiwań p 1 (k+1) i p 2 (k+1), zaprogramowany jako pętla do i = 1,n p1(i) = bk*p1(i) + r1(i) p2(i) = bk*p2(i) + r2(i) enddo zrównoleglono umieszczając przed tą pętlą dyrektywę!mic$ DOALL PRIVATE (i) SHARED (p1,r1,p2,r2,bk) Program ten został następnie użyty do rozwiązania, bazującego na łańcuchach Markowa, modelu przełącznika sieci optycznej (2491 równań liniowych o wielu elementach zerowych) [5]. W celu określenia wpływu wzrostu liczby procesorów na czas działania programu, obliczenia przeprowadzono wielokrotnie, zmieniając za każdym razem tę liczbę i/lub wariant zrównoleglenia. Wspomniane warianty obejmowały: --- brak zrównoleglenia (obliczenia sekwencyjne), --- zrównoleglenie (w stosunku do siebie) operacji na macierzach: A i transpozycji A, --- zrównoleglenie operacji na wektorach (wektoryzacja), --- pełne zrównoleglenie (połączenie obu powyższych wariantów). 260

Uzyskane wyniki czasowe przedstawiono w tablicy 1. Potwierdzają one korzyści płynące ze zrównoleglenia. Zaobserwować można znaczne skrócenie czasu obliczeń w wyniku zarówno jednoczesnego wykonywania dwóch iloczynów macierz wektor, jak i wektoryzacji (ta ostatnia sprowadzała się do zrównoleglania pętli). Analiza drugiego wiersza tablicy prowadzi do wniosku, że nie ma praktycznie sensu zwiększanie liczby procesorów, jeśli zrównoleglane są jedynie, względem siebie, operacje mnożenia macierzy przez wektor (co jest oczywiste, skoro w iteracji algorytmu są tylko dwie takie operacje). W przypadku zaś zrównoleglania pętli, widoczne jest skrócenie czasu obliczeń; zmiany nie są tu jednak znaczące dla większej liczby procesorów. Wynika to z faktu, iż operacje na samych wektorach są względnie mało czasochłonne w porównaniu z obliczaniem iloczynów macierz wektor. Potwierdza to porównanie rzędów 2 i 3 tablicy: dla 2 i 4 procesorów, czasy wykonania programu w rzędzie 3 (nieznacznie) przekraczają te z rzędu 2, zaś dla 8 i 10 procesorów, choć program działa szybciej, gdy zrównoleglaniu ulegają jedynie operacje na wektorach, różnice czasowe wynoszą tylko kilka sekund. Znaczące różnice zaobserwować można w ostatnim rzędzie. Zastosowanie zrównoleglenia na dwóch poziomach dało w wyniku istotną redukcję czasową, zarówno przy porównaniu ze zrównoleglaniem na jednym poziomie, jak i, zwłaszcza, z sekwencyjnym wykonaniem programu. Tablica 1. Czasy wykonania, w sekundach, programu implementującego metodę gradientów dwusprzężonych, przy rozwiązywaniu przykładowego modelu. W przypadku metody kwadratu gradientów sprzężonych, o zrównolegleniu programu można mówić jedynie w kontekście operacji na wektorach (jako że korzysta się tu tylko z jednej macierzy i działania wykonywane na niej są od siebie zależne, nie mogą więc być wykonywane jednocześnie). Platformą sprzętową dla obliczeń był w tym przypadku, działający pod kontrolą systemu operacyjnego Linux, komputer (wirtualnie) czteroprocesorowy (2 procesory Intel Xeon, w których zastosowano technikę wielowątkowości, przez co są postrzegane jako 4). W zrównoleglonym programie wykorzystano dyrektywy, stanowiącego obecnie w świecie standard dla komputerów wieloprocesorowych ze wspólną pamięcią, systemu zrównoleglania OpenMP [1]. Przy pracujących jednocześnie czterech procesorach uzyskano przyspieszenie 1.5, co plasuje analizowaną metodę wyżej od poprzedniej, gdy weźmie się pod uwagę jedynie czasy wykonania operacji wektorowych w odnośnych programach (rząd 3, kolumna dla 4 procesorów w tablicy 1). Daje to jednak gorszy wynik, jeśli uwzględni się wariant pełnego zrównoleglenia poprzedniej metody (rząd 4, kolumna j.w.). Jak się więc okazuje, preferowana przez teoretyków metoda kwadratu gradientów sprzężonych bywa w praktyce mniej efektywna od metody 261

gradientów dwusprzężonych. Dodatkowym (i oczywistym) wnioskiem jest stwierdzenie, że zrównoleglanie programów należy prowadzić z wykorzystaniem wszystkich możliwych poziomów równoległości (jak w pierwszej z powyższych metod, gdzie istnieją, omówione wcześniej, dwa takie poziomy). Literatura [1] L. Dagum, R. Menon, OpenMP: an Industry-standard API for Shared Memory Programming, Computational Science and Engineering, tom 5, 1998. [2] R. Fletcher, Conjugate Gradient Methods for Indefinite Systems, Springer Verlag, Berlin, 1976. [3] C. C. Paige, M. A. Saunders, Solution of Sparse Indefinite Systems of Linear Equations, SIAM Journal on Numerical Analysis, tom 12, str. 617-624, 1975. [4] P. Sonneveld, CGS, a Fast Lanczos-type Solver for Nonsymmetric Systems, SIAM Journal on Scientific and Statistical Computing, tom 10, str. 36-52, 1989. [5] Z. Szczerbiński, A Markov Chain Model of Optical Packet Formation: Solution Process Acceleration with Parallel Computing, materiały konferencji EuroNGI Workshop on New Trends in Modelling, Quantitative Methods and Measurements, str. 203-211, Zakopane, 2004. 262