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

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

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

Numeryczna algebra liniowa

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Zaawansowane metody numeryczne

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

Układy równań liniowych. Krzysztof Patan

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

Wstęp do metod numerycznych Metody iteracyjne i metoda gradientów. P. F. Góra

Wstęp do metod numerycznych Faktoryzacja QR i SVD. P. F. Góra

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

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

Wstęp do metod numerycznych SVD, metody iteracyjne i metoda gradientów. P. F. Góra

Metody Obliczeniowe w Nauce i Technice

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

Matematyka stosowana i metody numeryczne

Rozwiązywanie algebraicznych układów równań liniowych metodami iteracyjnymi. Plan wykładu:

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

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

Wstęp do metod numerycznych Równania macierzowe Faktoryzacja LU i Cholesky ego. P. F. Góra

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

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

Wstęp do metod numerycznych Faktoryzacja macierzy. P. F. Góra

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

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

x y

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Modyfikacja schematu SCPF obliczeń energii polaryzacji

Metody numeryczne Wykład 4

Komputerowa analiza zagadnień różniczkowych 3. Numeryczne zagadnienie własne

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne

WYKŁAD 9 METODY ZMIENNEJ METRYKI

Układy równań liniowych

Wykład III Układy równań liniowych i dekompozycje macierzy

Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną.

Wstęp do metod numerycznych Faktoryzacja Cholesky ego i QR. P. F. Góra

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

Metody numeryczne II. Układy równań liniowych

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

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

Zaawansowane metody numeryczne

Wykład 14. Elementy algebry macierzy

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Wartości i wektory własne

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

Matematyka stosowana i metody numeryczne

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

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

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

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

Programowanie Współbieżne. Algorytmy

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

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

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Inżynierskie metody analizy numerycznej i planowanie eksperymentu / Ireneusz Czajka, Andrzej Gołaś. Kraków, Spis treści

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

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Algorytmy numeryczne 1

Obliczenia naukowe Wykład nr 2

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

Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks

KADD Minimalizacja funkcji

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

Obliczenia naukowe Wykład nr 8

1 Symulacja procesów cieplnych 1. 2 Algorytm MES 2. 3 Implementacja rozwiązania 2. 4 Całkowanie numeryczne w MES 3. k z (t) t ) k y (t) t )

Analiza numeryczna Lista nr 3 (ćwiczenia) x x 2 n x.

Liczby zmiennoprzecinkowe i błędy

Robert Susmaga. Instytut Informatyki ul. Piotrowo 2 Poznań

Wstęp do metod numerycznych Zagadnienia wstępne Uwarunkowanie. P. F. Góra

Wstęp do metod numerycznych Eliminacja Gaussa i faktoryzacja LU. P. F. Góra

Metody systemowe i decyzyjne w informatyce

Podstawy OpenCL część 2

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

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

Wstęp do metod numerycznych Inne rodzaje faktoryzacji. P. F. Góra

Układy liniowo niezależne

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

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

Programowanie liniowe metoda sympleks

Programowanie dynamiczne

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.

Matematyczne Podstawy Informatyki

Metody dekompozycji macierzy stosowane w automatyce

Wstęp do metod numerycznych 9a. Układy równań algebraicznych. P. F. Góra

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Metoda elementów skończonych w mechanice konstrukcji / Gustaw Rakowski, Zbigniew Kacprzyk. wyd. 3 popr. Warszawa, cop

KADD Minimalizacja funkcji

Elementy metod numerycznych

1 Macierz odwrotna metoda operacji elementarnych

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

10. Metody obliczeniowe najmniejszych kwadratów

Egzamin z Metod Numerycznych ZSI, Grupa: A

Wstęp do metod numerycznych 5. Numeryczne zagadnienie własne. P. F. Góra

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

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

Optymalizacja ciągła

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Transkrypt:

Plan wykładu Obliczenia równoległe w zagadnieniach inżynierskich Wykład 6 Dr inż. Tomasz Olas olas@icis.pcz.pl Układy równań liniowych i metody ich rozwiazywania Metoda sprzężonych gradientów Macierze rzadkie i cel ich stosowania w obliczeniach numerycznych Sposoby reprezentacji macierzy rzadkich w pamięci komputera Koncepcja realizacji równoległej rozwiazywania układów równań dla architektury z pamięcia rozproszona Realizacja nałożenia się w czasie operacji obliczeniowych i komunikacji Wyniki wydajnościowe Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 1/?? Rozwiazywanie układów równań Metody bezpośrednie Rozwiazywanie układu równań liniowych (1) A n T n+1 = b n, jest najbardziej czasochłonnym fragmentem obliczeń w metodzie elementów skończonych: Metody rozwiazywania układów równań liniowych można podzielić na dwie podstawowe grupy: metody bezpośrednie, metody iteracyjne. Metody bezpośrednie prowadza do uzyskania ścisłego rozwiazania po skończonej liczbie kroków. Bazuja one na dekompozycji Gaussa, Choleskiego, itd. Sa one efektywne dla macierzy pełnych oraz macierzy o ściśle określonych strukturach np. macierzy pasmowych, czy też trójdiagonalnych. Dla dużych macierzy, a takie uzyskuje się dla nie trywialnych zadań, metody bezpośrednie wymagaja dużych zasobów pamięci oraz długiego czasu obliczeniowego, dlatego też najbardziej nadaja się one do stosunkowo małych układów równań. 3/??

Metody iteracyjne Rozwiazywanie układów równań - MES (I) Metody iteracyjne polegaja na kolejnym generowaniu przybliżonego rozwiazania, aż do momentu osiagnięcia zadowalajacej dokładności. Metody iteracyjne można podzielić na metody stacjonarne i niestacjonarne. Do metod stacjonarnych można zaliczyć metodę Jacobiego, Gaussa-Seidla wraz z ich wersjami blokowymi, metodę Richardsona, metodę nadrelaksacji czy symetryczna metodę nadrelaksacji. Metody niestacjonarne sa na ogół szybciej zbieżne niż metody stacjonarne. Do najczęściej używanych metod iteracyjnych niestacjonarnych należa: metoda sprzężonych gradientów dla macierzy symetrycznych dodatnio określonych, metody GMRES i podwójnie sprzężonych gradientów Bi-CG-STAB dla macierzy niesymetrycznych. W praktycznych zadaniach rozwiazywanych przy wykorzystaniu MES macierz współczynników w układzie równań jest duża macierza rzadka. Zastosowanie metod bezpośrednich w tym przypadku okazuje się nieefektywne, ze względu na zasoby pamięci niezbędne do przechowywania macierzy. Nawet przy zastosowaniu macierzy pasmowej i redukcji szerokości pasma efektywność tych metod nie jest zadowalajaca. Istnieja metody pozwalajace na stosowanie metod bezpośrednich dla macierzy rzadkich, ale w takim przypadku występuje problem pojawiania się nowych elementów macierzy w trakcie obliczeń. 5/?? Rozwiazywanie układów równań - MES (II) Metoda sprzężonych gradientów Metody iteracyjne okazuja się być w przypadku takich układów równań dużo efektywniejsze, dzięki lepszemu wykorzystaniu faktu, że macierz współczynników jest duża macierza rzadka. Ponadto zbieżność metod iteracyjnych silnie zależy od przyjętego rozwiazania poczatkowego. W przypadku MES można wykorzystać warunki poczatkowe lub wyniki z poprzedniego kroku czasowego, co znacznie poprawia zbieżność metod iteracyjnych, a co za tym idzie przyspiesza rozwiazywanie układu równań. Metoda sprzężonych gradientów jest efektywna metoda do rozwiazywania układów równań, z symetryczna i dodatnio określona macierza współczynników. Wykorzystuje ona aproksymację w przestrzeni Kryłowa Dzięki właściwościom macierzy układu, minimalizacja w przestrzeni Kryłowa sprowadza się do minimalizacji wzdłuż kolejnych kierunków poszukiwań, które sa ze soba sprzężone. 7/??

Algorytm metody sprzężonych gradientów Kryterium stopu β 0 = 0 r 0 = b Ax 0 p 0 = 0 ρ 0 = (r 0,r 0 ) i = 0 Iteruj dopóki nie jest spełnione kryterium stopu p i+1 = r i + β i p i q i+1 = Ap i+1 α i+1 = ρ i /(q i+1, p i+1 ) Aby metoda iteracyjna w poprawny sposób rozwiazywała układ równań musimy prawidłowo określić moment przerwania obliczeń. Decyzja o zakończeniu obliczeń nosi nazwę kryterium stopu. Kryterium to powinno składać się przynajmniej z dwóch elementów: określenia, kiedy bład ε i = x i x jest wystarczajaco mały (ε i < ε), aby można było zakończyć obliczenia, sprawdzania, czy nie została przekroczona maksymalna liczba iteracji i max. x i+1 = x i + α i+1 p i+1 r i+1 = r i α i+1 q i+1 ρ i+1 = (r i+1,r i+1 ) β i+1 = ρ i+1 /ρ i i = i+1 9/?? Przykładowe kryterium stopu Poprawa uwarunkowania wstępnego Bład w i-tej iteracji można obliczyć korzystajac z wektorów r i b oraz z pojęcia normy euklidesowej, definiowanej jako: (2) x = ( x 1 2 + x 2 2 +...+ x n 2 ) 1 2. W zwiazku z tym kryterium stopu może wygladać następujaco: (3) iteruj dopóki i i max r i ε i b. Zbieżność metod iteracyjnych zależy od właściwości spektralnych (spectral properties) macierzy współczynników układu równań liniowych. W celu polepszenia zbieżności algorytmu iteracyjnego rozwiazywania układów równań stosuje się tzw. poprawę uwarunkowania wstępnego. Polega ono na przetworzeniu układu równań do postaci, dla której otrzymamy takie same rozwiazanie, ale które charakteryzuje się lepszymi właściwościami spektralnymi. Macierz, która jest wykorzystywana do takiej transformacji nosi nazwę preconditionera (preconditioner). 11/??

etody poprawy uwarunkowania wstępnego Metoda diagonalna Głównymi przedstawicielami metod poprawy uwarunkowania wstępnego sa metody Jacobiego, Gaussa-Seidla, SOR, SSOR i ich blokowe wersje, ICC, ILU, z rzadka aproksymacja macierzy odwrotnej (SPAI), wielosiatkowa itd. Stosowanie tylu metod wynika z faktu, że nie istnieje jedna najlepsza metoda dla wszystkich rodzajów układów równań. Różne metody poprawy uwarunkowania wstępnego okazuja się najefektywniejsze dla różnych układów równań. Ponadto niektóre metody okazuja się bardziej podatne na implementację równoległa niż inne. Najprostsza metoda poprawy uwarunkowania wstępnego jest metoda diagonalna lub inaczej metoda Jacobiego (Jacobi preconditioning). Brane sa w niej pod uwagę jedynie współczynniki leżace na głównej diagonali macierzy A: (4) m i, j = { A i, j dla i = j, 0 dla i j. 13/?? Cel stosowania macierzy rzadkich Formaty macierzy rzadkich W metodzie elementów skończonych generowane sa duże macierze, w których większość elementów jest zerami. W takim wypadku stosowanie macierzy pełnych, które w prosty sposób moga być zaimplementowane przy pomocy tablicy dwuwymiarowej, jest nieefektywne, głównie ze względu na rozmiar pamięci jaki musi zostać zaalokowany dla takiej tablicy, szczególnie w przypadku dużych tablic. Nie bez znaczenia pozostaje również fakt przetwarzania zerowych elementów macierzy, które zazwyczaj moga być pominięte w obliczeniach. Z tych względów stosuje się formaty macierzy, w których przechowywane sa tylko niezerowe elementy wraz z dodatkowa struktura danych służac a do określenia ich położenia. Do chwili obecnej zostało opracowanych wiele różnych formatów macierzy rzadkich. Okazuje się bowiem, że nie ma jednego formatu macierzy rzadkiej, który byłby najefektywniejszy dla wszystkich zastosowań. To, który format jest w danej sytuacji najwydajniejszy zależy od struktury i rozmiaru macierzy, operacji jakie będa na niej wykonywane oraz architektury komputera, na którym będa wykonywane obliczenia. Jednym z częściej stosowanych formatów macierzy rzadkich jest format CSR (Compressed Sparse Row). 15/??

Format CSR Realizacja równoległa (I) W formacie CSR elementy niezerowe macierzy przechowywane sa wierszami w tablicy values, a ich indeksy kolumn w tablicy columns. Poczatek każdego wiersza jest określany poprzez tablicę rows, w której znajduja się indeksy pierwszych elementów poszczególnych wierszy macierzy. a 00 a 01 0 0 0 a A= 11 0 0 a 20 0 a 22 0 0 0 0 a 33 rows = [0 2 3 5 6] columns values = = [0 1 1 0 2 3] [a 00 a 01 a 11 a 20 a 22 a 33 ] Do równoległej implementacji rozwiazywania układu równań na architekturze z pamięcia rozproszona może zostać wykorzystana metoda dekompozycji geometrycznej. Sprowadza się ona do podziału dużego i czasochłonnego zadania na mniejsze podzadania, które można efektywnie rozwiazywać w sposób równoległy. W przypadku, gdy macierz A n jest macierza rzadka, można to zrealizować poprzez podział grafu odpowiadajacego macierzy A n. W przypadku MES dokonuje się to poprzez podział siatki elementów skończonych na skończona liczbę pod-siatek (domen). Domeny te następnie zostaja przydzielone do poszczególnych procesorów architektury równoległej, gdzie sa przetwarzane. Bardzo istotnym czynnikiem wpływajacym na efektywność obliczeń równoległych jest odpowiedni podział siatki elementów skończonych na domeny, tak aby obciażenia obliczeniowe przypadajace na poszczególne procesory były w przybliżeniu takie same, dodatkowo musi być zminimalizowana komunikacja. 17/?? Realizacja równoległa (I) Realizacja równoległa (III) Każdemu węzłowi siatki elementów skończonych, w zależności od modelowanego zagadnienia, odpowiada jeden lub kilka wierszy układu równań liniowych. Wiersze te stanowia równanie rozwiazywanego zagadnienia dla danego węzła siatki elementów skończonych. Dlatego też po wykonaniu powyższego podziału do każdego procesora przydzielony zostaje pewien podzbiór wierszy układu równań (??). Aby można było w sposób równoległy rozwiazać układ równań liniowych, niezbędny jest etap przetwarzania wstępnego, w czasie którego utworzone zostaja dodatkowe informacje niezbędne do wykonania podstawowych operacji, np. mnożenia macierzy rzadkiej. Dla każdej domeny należy dokonać podziału wierszy ze względu na powiazanie z innymi domenami poprzez elementy: węzły wewnętrzne (n i ) - skojarzone jedynie z węzłami należacymi do danej domeny, węzły graniczne (n b ) - powiazane zarówno z węzłami wewnętrznymi danej domeny, jak również z węzłami należacymi do innych domen, węzły zewnętrzne (n e ) - należace do innych domen, ale skojarzone z węzłami brzegowymi danej domeny. Węzły wewnętrzne i graniczne nosza nazwę węzłów lokalnych (n l = n i + n b ). Globalna liczbę węzłów w domenie oznaczono przez n g (n g = n l + n e ). 19/??

Realizacja równoległa (IV) Równoległe rozwiazywanie układu równań Wiersze przydzielone do danej domeny zostaja następnie przenumerowane w taki sposób, że najpierw znaja się wiersze wewnętrzne, następnie brzegowe, a na końcu zewnętrzne. Układ równań po takim przeorganizowaniu posiada strukturę pokazana na rysunku: Podstawowa operacja przy rozwiazywaniu układów równań liniowych metodami iteracyjnymi jest mnożenie macierzy rzadkiej przez wektor postaci: (5) y = A x, gdzie macierz A składa się z części wierszy macierzy A n (??) odpowiadajacym węzłom lokalnym danej domeny. W przypadku, gdy poszczególny węzeł siatki elementów skończonych jest opisany pojedynczym równaniem, macierz A jest macierza prostokatn a o rozmiarze n l n g. Wartości znajdujace się w wektorze y sa zależne od metody rozwiazywania układu równań liniowych oraz od aktualnie przetwarzanej iteracji. 21/?? Równoległe rozwiazywanie układu równań Równoległe rozwiazywanie układu równań Po przeorganizowaniu węzłów równanie (??) można przedstawić następujaco: (6) [ y i y b ] = [ A ii A ib 0 A bi A bb A be ] x i x b x e, gdzie część x e wektora x nie jest obliczana w danym procesorze, a znajduje się w innych procesorach. Składowe zewnętrzne musza zostać najpierw przesłane przez inne procesory do danego procesora, zanim lokalny iloczyn macierzy przez wektor będzie mógł być wyznaczony dla danej domeny. Dlatego też w etapie wstępnym należy określić, od których procesorów należy poszczególne składowe wektora x odebrać, a co za tym idzie, do których procesorów należy składowe zwiazane z węzłami brzegowymi wysłać. Procesy, z którymi następuje taka wymiana danych dla danej domeny, nosza nazwę procesorów sasiednich (neigboring processors) lub sasiadów. 23/??

Nałożenie operacji Przykładowe wyniki wydajnościowe W celu zwiększenia efektywności algorytmu równoległego zaimplementowano nałożenie się w czasie obliczeń oraz komunikacji. Takie nałożenie może wystapić podczas równoległej realizacji mnożenia macierzy rzadkiej przez wektor. W każdym procesorze przed wykonaniem mnożenia macierzy przez wektor zostaja wyliczone lokalne wartości wektora r. Uzyskano parametry przyspieszenia i efektywności zbliżone do wartości idealnych, a w wielu przypadkach uzyskano efekt tzw. superprzyspieszenia (przyspieszenie większe od idealnego). Generalnie efektywność przetwarzania spada wraz ze wzrostem liczby wykorzystywanych do obliczeń procesorów i zmniejszaniem się rozmiaru zadania. Aby w całości przemnożyć macierz A przez wektor r, niezbędne sa dodatkowo wartości Przyspieszenie Efektywność wektora r odpowiadajace węzłom zewnętrznym procesora. Jednakże zanim procesor uzyska te wartości możliwe jest wykonanie mnożenia wewnętrznej części macierzy A przez wektor r. Czas jaki jest potrzebny na wykonanie tej operacji może zostać wykorzystany do przesłania przez procesy sasiednie zewnętrznych wartości wektora r do danego procesora. speedup 16 14 12 10 8 6 N=40613 N=80401 N=159613 N=249925 N=501001 N=750313 efficiency 1.1 1.05 1 0.95 W standardzie MPI znajduja się funkcje (przykładowo MPI_Isend) umożliwiajace zaimplementowanie takiego sposobu organizacji obliczeń. 4 2 0 0 2 4 6 8 10 12 14 16 number of processors N=40613 N=80401 0.9 N=159613 N=249925 N=501001 N=750313 0.85 0 2 4 6 8 10 12 14 16 number of processors 25/??