Numeryczna algebra liniowa Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów równań liniowych czy znajdowanie wartości własnych Krzysztof Banaś Obliczenia Wysokiej Wydajności 2
Znaczenie algebry liniowej Krzysztof Banaś Obliczenia Wysokiej Wydajności 3
Odwzorowania macierzy na procesory Istotnym elementem wszelkich równoległych algorytmów macierzowych jest określenie rozdzielenia (dystrybucji) macierzy i wektorów na poszczególne procesory pasmowe kolumnowe lub wierszowe: blokowe cykliczne blokowo cykliczne szachownicowe: blokowe cykliczne blokowo cykliczne Krzysztof Banaś Obliczenia Wysokiej Wydajności 4
Podstawowe operacje macierzowe Mnożenie macierz wektor dla podziału pasmowego wierszowego algorytm analiza czasu działania i przyspieszenia obliczeń dla podziału szachownicowego algorytm analiza czasu działania i przyspieszenia obliczeń Krzysztof Banaś Obliczenia Wysokiej Wydajności 5
Macierze rzadkie Macierze zawierające większość zer nazywane są macierzami rzadkimi Macierze takie powstają np. jako efekt aproksymacji równań różniczkowych cząstkowych typowymi metodami MRS, MES, MOS Praktycznym kryterium rzadkości macierzy jest wykazanie, że klasyczne algorytmy dla macierzy gęstych są wolniejsze od specjalnych algorytmów dla macierzy rzadkich Krzysztof Banaś Obliczenia Wysokiej Wydajności 6
Macierze rzadkie Specjalne algorytmy dla macierzy rzadkich uwzględniają specjalne sposoby przechowywania macierzy, w których w pamięci komputera umieszcza się tylko wyrazy niezerowe Jest wiele schematów przechowywania macierzy rzadkich Wybór konkretnego schematu zależy od struktury macierzy (układ wyrazów niezerowych w macierzy) i algorytmu, w którym występuje macierz Krzysztof Banaś Obliczenia Wysokiej Wydajności 7
Formaty przechowywania macierzy rzadkich Formaty: naturalny oparty na współrzędnych CRS skompresowany wierszowy CCS skompresowany kolumnowy CDS diagonalny ITPACK uproszczony postrzępiony diagonalny Dla każdego z formatów istnieją odpowiednie wersje algorytmów realizujących podstawowe operacje macierzowe Krzysztof Banaś Obliczenia Wysokiej Wydajności 8
Algorytmy numeryczne dla macierzy rzadkich Dla części klasycznych algorytmów numerycznej algebry liniowej można w sposób naturalny wykorzystać rzadkość macierzy i dostosować implementację do formatu przechowywania macierzy Przykładem są mnożenie macierz wektor i wszelkie algorytmy oparte na takim mnożeniu Algorytmami, które jest znacznie trudniej efektywnie dostosować do rzadkości macierzy są wszelkie algorytmy oparte na eliminacji Gaussa Krzysztof Banaś Obliczenia Wysokiej Wydajności 9
Rozproszone przechowywanie macierzy rzadkich Podział macierzy rzadkiej między procesory jest powiązany ze strukturą macierzy (układem wyrazów niezerowych w macierzy), sposobem przechowywania niezerowych wyrazów macierzy w pamięciach lokalnych i algorytmem rozwiązującym zadany problem macierzowy Krzysztof Banaś Obliczenia Wysokiej Wydajności 10
Rozwiązywanie układów równań liniowych Metody bezpośrednie warianty eliminacji Gaussa równoległa wersja z podziałem wierszowym macierzy równoległa wersja z podziałem szachownicowym macierzy Metody iteracyjne metody iteracji prostej: Jacobiego, Gaussa Seidla, SOR, SSOR metody podprzestrzeni Kryłowa wersje równoległe oparte na zrównolegleniu podstawowych operacji wektorowych i macierzowych skalowalność zależna od struktury i własności macierzy poprawa uwarunkowania macierzy w metodach podprzestrzeni Kryłowa Krzysztof Banaś Obliczenia Wysokiej Wydajności 11
Metoda sprzężonych gradientów Krzysztof Banaś Obliczenia Wysokiej Wydajności 12
Krzysztof Banaś Obliczenia Wysokiej Wydajności 13
Poprawa uwarunkowania macierzy Poprawa uwarunkowania macierzy jako przybliżone rozwiązanie układu równań dające się wyrazić w postaci operatora liniowego Działanie metod iteracji prostej (relaksacji) jako wygładzania błędu Wielopoziomowe wygładzanie błędu metody wielosiatkowe (multigrid) Algorytmy niekompletnego rozkładu jako metody poprawy uwarunkowania i metody wygładzania błędu Krzysztof Banaś Obliczenia Wysokiej Wydajności 14
Krzysztof Banaś Obliczenia Wysokiej Wydajności 15