Paralelní LU rozklad



Podobné dokumenty
Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

4. Trojúhelníkový rozklad p. 1/20

Paralelní a distribuované výpočty (B4B36PDV)

Determinant. Definice determinantu. Permutace. Permutace, vlastnosti. Definice: Necht A = (a i,j ) R n,n je čtvercová matice.

Několik poznámek na téma lineární algebry pro studenty fyzikální chemie

Soustavy lineárních rovnic

Matematika 2 pro PEF PaE

Digitální učební materiál

Matice se v některých publikacích uvádějí v hranatých závorkách, v jiných v kulatých závorkách. My se budeme držet zápisu s kulatými závorkami.

Skalár- veličina určená jedním číselným údajem čas, hmotnost (porovnej životní úroveň, hospodaření firmy, naše poloha podle GPS )

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Aplikovaná numerická matematika - ANM

Paralelní algoritmy v lineární algebře. Násobení matic

Gymnázium, Brno. Matice. Závěrečná maturitní práce. Jakub Juránek 4.A Školní rok 2010/11

Digitální učební materiál

Numerické metody a programování. Lekce 4

Matematika 2 (Fakulta ekonomická) Cvičení z lineární algebry. TU v Liberci

L a b o r a t o r n í c v i č e n í z f y z i k y

1 Rozdělení paralelních úloh z hlediska jejich

Numerické metody a programování

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

DYNAMICKÉ PROGRAMOVÁNÍ A PROBLÉM BATOHU

Řešení "stiff soustav obyčejných diferenciálních rovnic

Skalární součin je nástroj, jak měřit velikost vektorů a úhly mezi vektory v reálných a komplexních vektorových prostorech.

Paralelní grafové algoritmy

Anotace. Dynamické programování, diskrétní simulace.

FP - SEMINÁŘ Z NUMERICKÉ MATEMATIKY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

DRN: Soustavy linárních rovnic numericky, norma

Soustavy linea rnı ch rovnic

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

Implementace numerických metod v jazyce C a Python

Regresní a korelační analýza

MATLAB základy. Roman Stanec PEF MZLU

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů

předmětu MATEMATIKA B 1

A0M15EZS Elektrické zdroje a soustavy ZS 2011/2012 cvičení 1. Jednotková matice na hlavní diagonále jsou jedničky, všude jinde nuly

1 0 0 u 22 u 23 l 31. l u11

Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

2. Matice, soustavy lineárních rovnic

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

1.1 Příkazy pro kolektivní komunikaci (pokračování)

Učební texty k státní bakalářské zkoušce Matematika Matice. študenti MFF 15. augusta 2008

Západočeská univerzita v Plzni. Fakulta aplikovaných věd Katedra matematiky. Geometrie pro FST 1. Pomocný učební text

12. Soustava lineárních rovnic a determinanty

Numerické řešení soustav lineárních rovnic

Připomenutí co je to soustava lineárních rovnic

Numerické metódy matematiky I

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Všechno, co jste kdy chtěli vědět o maticích, ale báli jste se zeptat

IB112 Základy matematiky

Regresní analýza. Statistika II. Jiří Neubauer. Katedra ekonometrie FEM UO Brno kancelář 69a, tel

Transformujte diferenciální výraz x f x + y f do polárních souřadnic r a ϕ, které jsou definovány vztahy x = r cos ϕ a y = r sin ϕ.

1 Determinanty a inverzní matice

Cvičení z Numerických metod I - 12.týden

Programování založené na posílání zpráv

Analyzátor, minimalizátor kombinačních logických obvodů

Numerické řešení soustav lineárních rovnic

5. Maticová algebra, typy matic, inverzní matice, determinant.

POHYBY TĚLESA V ODPORUJÍCÍM PROSTŘEDÍ

0.1 Úvod do lineární algebry

Matematika pro studenty ekonomie

Matematika I Lineární závislost a nezávislost

1. července 2010

[1] LU rozklad A = L U

Lenka Zalabová. Ústav matematiky a biomatematiky, Přírodovědecká fakulta, Jihočeská univerzita. zima 2012

Numerické metody lineární algebry






Predispozice pro výuku IKT (2015/2016)

Algoritmus pro hledání nejkratší cesty orientovaným grafem

FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ. Matematika 3. RNDr. Břetislav Fajmon, PhD. Autoři textu:

Co je obsahem numerických metod?

y = Spočtěte všechny jejich normy (vektor je také matice, typu n 1). Řádková norma (po řádcích sečteme absolutní hodnoty prvků matice a z nich

VÝUKA OBECNÝCH METOD ANALÝZY LINEÁRNÍCH OBVODŮ

Numerické metody lineární algebry

0. Lineární rekurence Martin Mareš,

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

Aplikace matematiky. Josef Čermák Algoritmy. 27. PSQRT. Řešení soustavy rovnic se symetrickou pozitivně definitní

2 Spojité modely rozhodování

Euklidovský prostor Stručnější verze

Základy matematiky pro FEK

Analýza spolehlivosti tlakové nádoby metodou Monte Carlo

Matematický model kamery v afinním prostoru

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

SBORNÍK ODBORNÝ PŘÍRODOVĚDNÝ KEMP

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

Dodatek č. 3 ke školnímu vzdělávacímu programu. Strojírenství. (platné znění k )

2.6. Vlastní čísla a vlastní vektory matice

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava luk76/la1

Soustavy lineárních rovnic

skladbu obou směsí ( v tunách komponenty na 1 tunu směsi):

Slajdy k přednášce Lineární algebra I

Příčíme. Příčíme Zadání první úlohy Zadání druhé úlohy. Příčíme. Jiří Přibyl UJEP

Fakt. Každou soustavu n lineárních ODR řádů n i lze eliminací převést ekvivalentně na jednu lineární ODR

Transkript:

Paralelní LU rozklad Lukáš Michalec Katedra fyziky, Přírodovědecká fakulta Univerzity J.E. Purkyně v ročník, specializace Ústí n.l. Abstract Seminární práce se zabývá řešení soustavy lineárních rovnic pomocí LU dekompozice a zrychlení výpočtu pomocí paralelizace této metody. 1 Úvod K jedním z nejstarším matematickým problémům patří řešení soustavy lineárních rovnic. S tímto problémem se můžeme například setkat v lineárním programování, předpovědích či odhadováním. Řešení tohoto problému je několik, například Gaussova eliminace, Cramerov pravidlo, pomocí inverzní matice, metodou nejmenších čterců a LU rozklad. 1

2 Teorie Takovou soustavou lineárních rovnic může být například soustava: 3x + 5y z = 2 4x + 1y + 2z = 1 1x 2y + 1z = 5 (1) V této soustavě máme tři promněné (x,y,z). Graficky si tuto soustavu můžeme představi jako soustavu tří ploch a my hledáme bod, ve ktérém se dané plochy protínají. Místo rovnicového zápisu, můžeme použít i maticový zápis: A x = b (2) kde A je matice koeficinetů, x je vektor promněných a b je vektor požadavků. Pokud přepíšeme soustavu 1, dostaneme: 3 5 1 x 2 4 1 2 y = 1 (3) 1 2 1 z 5 2.1 LU rozklad Metoda LU dekompozice je založná takovém rozkladu matice A, aby se zjednodušil výpočet výsledného řešení. LU rozklad jde použít jen na regulární čtvercové řešení, to znamená, že rovnice mají právě jedno řešení a to řešení existuje. Naším úkol je rozložit matici A na matice L a U, tak aby: A = L U (4) kde matice L je dolní trojuhelníková a matice U je horní trojuhelníková. Tímto rozkladem dostaneme rovnici: L U x = b (5) součin matice U a vektoru x si onačíme U x = z, takže dostaneme: L z = b (6) 2

Prvním krokem je potom už dopředná substituce v rovnici: L z = b a spočteme z. Dalším krokem potom bude zpětná substituce, dosahíme za z a spočteme x: U x = z 3 Výpočet LU rozkladu Algoritmus rozkladu si ukážeme na konkrétním příkladě. Mějme matici: 1 2 3 A = 2 3 1 (7) 4 2 0 z této matice, potřebujeme získat matice L a U: 1 0 0 u 11 u 12 u 13 L = l 21 1 0, U = 0 u 22 u 23 (8) l 31 l 32 1 0 0 u 33 Pokud si rozepíšeme násobení matic L a U, tak aby výsledkem byla matice A, tak dostaneme soustavu jednoduchýh rovnic: což můžeme zapsat algoritmem jako: u 11 1 = 1 u 11 = 1 u 12 1 = 2 u 12 = 2 u 13 1 = 3 u 13 = 3 l 21 u 11 = 2 l 21 = 2 DO k = 1, n -1 DO i = k+1, n a(i,k) = a(i,k) / a(k,k) END DO DO i = k+1, n a(i,j) = a(i,j) - a(i,k) * a(k,j) END DO END DO. Pro ušetření místa, zapíšeme matice L a U do matice A. 3 (9)

3.1 Dopředná substituce LU rozkladem jsme dostali matice L a U: 1 0 0 2 1 7 L = 4 1 0, U = 0 2 23 (10) 2 2.5 1 0 0 41.5 a dále budeme řešit: Zde opět dostaneme soustavu rovnic: L y = b (11) y 1 = 11 4y 1 + y 2 = 25 2y 1 + 2.5y 2 + y 3 = 16 (12) opět, řešení této soustavy je triviální a pokud to přepíšeme do fortranovského kódu: DO i = 2, n DO j = 1, i - 1 y(i) = y(i) - a(i,j) * y(j) 3.2 Zpětná substituce Posledním krokem je zpětná substituce, kde řešíme rovnici: U x = y (13) 2 1 7 x1 11 0 2 23 x2 = 19 (14) 0 0 41.5 x3 41.5 opět, když jsi rozepíšeme násobení matice a vektoru, tak dostaneme triviální soustavu rovnic: x 3 = 1 2x 2 23x 3 = 19 2x 1 x 2 + 7x 3 = 11 4 (15)

Fortranovský kód vypadá následovně: DO i = n, 1, -1 DO j = i + 1, n x(i) = y(i) - a(i, j) * x(j) x(i) = x(i) / a(i,i) A tímto jsme získali řešení soustavy lineárních rovnic. 3.3 Paralelizace metody LU Paralelizace této metody spočívá v distribuci cyklů mezi všemy procesory. Takovou ukázkou distribuce je následující příklad: DO i = myrank, n -1, nproc print *," procesor ",myrank," dela ",i,". iteraci " výstupem potom je: procesor 0 dela 0. iteraci procesor 1 dela 1. iteraci procesor 2 dela 2. iteraci procesor 0 dela 3. iteraci procesor 1 dela 4. iteraci... A jelikož všechny tři kroky LU dekompozice jsou iterační, tak lze distribuci cyklů provést u všech kroků. 5

3.3.1 Paralelizace rozkladu LU DO k = 1, n IF ( map (k) == myrank ) THEN DO i = k+1, n a(i,k) = a(i,k) / a(k,k) ENDIF CALL MPI_BCAST (a(k,k), n-k+1, MPI_REAL, map (k), MPI_COMM_WORLD, ier DO j = k+1, n IF ( map (j) == myrank ) THEN DO i = k+1, n a(i,j) = a(i,j) - a(i,k) * a(k,j) ENDIF Zde byla distribuce cyklů zajištěna pomocí podmínek v cyklu, kvůli synchronizaci. Každý procesor si nejdříve spočítá vlastní část L matice, pak si ty procesory mezi s sebou ty hodnoty vymění a pak pokračují u části U matice. 3.3.2 Paralelizace dopředné distribuce DO i = 2, n s = 0.0 DO j = 1 + myrank, i - 1, s = s + a(i,j) * y(j) nprocs CALL MPI_ALLREDUCE (s, ss, 1, MPI_REAL, MPI_SUM, MPI_COMM_WORLD, ier y(i) = y(i) - ss V této části, kdy počítáme vektor y, tak jsou iterace na sobě závislé, protože postupně dosazujeme vypočtené promněné do dalších rovnic. Proto jsme zde 6

jen zparalelizovali sumu násobků, která je potřeba k výpočtu. Toto urychlení se projevý hlavně u hodně velkých matic. 3.3.3 Paralelizace zpětné distribuce DO i = n, 1, -1 s = 0.0 IF ( map (i +1) <= myrank ) THEN ii = i + 1 + myrank - map ( i +1) ELSE ii = i + 1 + myrank - map ( i +1) + nprocs ENDIF DO j = ii, n, nprocs s = s + a(i, j) * b(j) CALL MPI_ALLREDUCE (s, ss, 1, MPI_REAL, MPI_SUM, MPI_COMM_WORLD, ier b(i) = (b(i) - ss) / a(i,i) v této části jsme opět rozparalelizovali sumu násobků,která je potřebná k dosazování do rovnic. Jen bylo složitější zpočtení, co který proces má násobit a od jakého indexu začít. 4 Výsledky a diskuze Výsledkem máme program, který je schopný pomocí LU dekompozice spočítat řešení soustavy lineárních rovnic. 7

Figure 1: Ukázka výstupu programu Pokud by jsme změřili rychlost výpočtu u velkých matic, zjistili bychom, že jsme ušetřili více času. 5 Závěr Tato úloha nám ukázala, jakým lehkým způsobem se dá urychlit iterační výpočet a jak vůbec funguje metoda LU dekompozice. 8