Programowanie Współbieżne. Algorytmy

Podobne dokumenty
Programowanie Współbieżne. Algorytmy

Wykład 5. Metoda eliminacji Gaussa

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

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

Macierze. Rozdział Działania na macierzach

Macierzowe algorytmy równoległe

Krótkie wprowadzenie do macierzy i wyznaczników

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

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

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

UKŁADY ALGEBRAICZNYCH 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

Wykład 14. Elementy algebry macierzy

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

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

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

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

1. PODSTAWY TEORETYCZNE

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

Matematyka stosowana i metody numeryczne

Algorytmy numeryczne 1

1 Macierze i wyznaczniki

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

O MACIERZACH I UKŁADACH RÓWNAŃ

, A T = A + B = [a ij + b ij ].

Obliczenia naukowe Wykład nr 8

Zaawansowane metody numeryczne

Algebra WYKŁAD 3 ALGEBRA 1

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

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

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

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

Ekoenergetyka Matematyka 1. Wykład 3.

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Metody i analiza danych

"Bieda przeczy matematyce; gdy się ją podzieli na więcej ludzi, nie staje się mniejsza." Gabriel Laub

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

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

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

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

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

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

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

DB Algebra liniowa semestr zimowy 2018

Zad. 3: Układ równań liniowych

[ A i ' ]=[ D ][ A i ] (2.3)

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

WZÓR OGÓLNY CIĄGU GEOMETRYCZNEGO

Zaawansowane metody numeryczne

MATLAB - laboratorium nr 1 wektory i macierze

Wykład 7 Macierze i wyznaczniki

= Zapiszemy poniższy układ w postaci macierzy. 8+$+ 2&=4 " 5 3$ 7&=0 5$+7&=4

Algorytmy i Struktury Danych, 2. ćwiczenia

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

Wyznaczniki. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 6. Wykład z algebry liniowej Warszawa, listopad 2013

Programowanie dynamiczne

A A A A A A A A A n n

Programowanie liniowe

Zestaw 12- Macierz odwrotna, układy równań liniowych

Teoretyczne podstawy programowania liniowego

0 + 0 = 0, = 1, = 1, = 0.

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Zastosowania wyznaczników

NUMERYCZNE METODY ROZWIĄZYWANIA ROWNAŃ LINIOWYCH. PRZYGOTOWAŁA: ANNA BANAŚ KoMBo, WILiŚ

3. Wykład Układy równań liniowych.

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

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

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

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

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Macierze Lekcja I: Wprowadzenie

1 Zbiory i działania na zbiorach.

ALGEBRA Z GEOMETRIĄ MACIERZE ODWZOROWAŃ LINIOWYCH

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

1 Układy równań liniowych

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

Programowanie w VB Proste algorytmy sortowania

Analiza matematyczna i algebra liniowa Macierze

Układy równań liniowych. Krzysztof Patan

Algorytmy i Struktury Danych, 2. ćwiczenia

13 Układy równań liniowych

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

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

Treści programowe. Matematyka. Efekty kształcenia. Literatura. Terminy wykładów i ćwiczeń. Warunki zaliczenia. tnij.org/ktrabka

Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp

2. Układy równań liniowych

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Analiza matematyczna i algebra liniowa Macierze

Matematyka stosowana i metody numeryczne

Odwrócimy macierz o wymiarach 4x4, znajdującą się po lewej stronie kreski:

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

MACIERZE I WYZNACZNIKI

Układy równań liniowych

Procesy stochastyczne WYKŁAD 2-3. Łańcuchy Markowa. Łańcuchy Markowa to procesy "bez pamięci" w których czas i stany są zbiorami dyskretnymi.

Zestaw 12- Macierz odwrotna, układy równań liniowych

Rozdział 1 PROGRAMOWANIE LINIOWE

ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ

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

Transkrypt:

Programowanie Współbieżne Algorytmy

Sortowanie przez scalanie (mergesort) Algorytm :. JEŚLI jesteś rootem TO: pobierz/wczytaj tablice do posortowania JEŚLI_NIE to pobierz tablicę do posortowania od rodzica

Sortowanie przez scalanie (mergesort) 2. JEŚLI ilość elementów tablicy > 2 i (ilość procesów < max procesów) [tu można dodać czy tablica nie jest już posortowana lub inny warunek zatrzymania dzielenia] TO twórz 2 procesy i wyślij im po jednej części tablicy (najlepiej w miarę równe). czekaj na posortowane 2 tablice scal w jedną posortowaną JEŚLI_NIE to posortuj to co masz. (w szczególnym przypadku będzie to liczba do oddania lub dwie do porównania).

Sortowanie przez scalanie (mergesort) 3. JEŚLI jesteś rootem TO wyświetl/zapisz wynik JEŚLI_NIE to odeślij rodzicowi posortowaną tablicę.

Sortowanie przez scalanie 4,2,7,6,,8,5,,3,9 4,2,7,6, 8,5,,3,9,2,4,6,7,3,5,8,9 2 3 4 5 6 7 8 9

Sortowanie przez scalanie 4,2,7,6,,8,5,,3,9 4,2,7,6, 8,5,,3,9 4,2,7 6, 8,5,3,9 4,2 7,6 5,8 2,4 2,4,7, 3, 5, 8, 9,2,4,6,7,,2,3,4,5,6,7,8,9

Sortowanie oscylacyjne Dla ciągu długości n tworzymy dwa zestawy procesów. A,A 2,...A n B,B,...B n A A 2 A n B B B 2 B n

Sortowanie oscylacyjne Zadania typu A i działają następująco: otrzymują 2 liczby mniejszą przesyłają do Bi- większą do Bi.

Sortowanie oscylacyjne Zadania typu B i działają następująco: otrzymują 2 liczby mniejszą przesyłają do Ai większa do Ai+ Elementy skrajne nic nie robią tylko oddają liczbę Po 2n cyklach mamy gotowy wynik

Sortowanie oscylacyjne 4 4 5 5 3 3 4 4 5 5 3 3

Sortowanie oscylacyjne 4 4 5 3 5 3 4 4 5 3 5 3

Sortowanie oscylacyjne 4 4 3 5 3 5 4 4 3 5 3 5

Sortowanie oscylacyjne 4 3 4 3 5 5 4 3 4 3 5 5

Sortowanie oscylacyjne 3 4 3 4 5 5 3 4 3 4 5 5

Sortowanie oscylacyjne 3 3 4 4 5 5 3 3 4 4 5 5

Mnożenie macierzy Zastosowanie: w matematyce, rozwiązywanie układów równań liniowych Metodą Gaussa Zapisanie obiektów geometrycznych w przestrzeni liniowej w fizyce tzw. Tensory Grafika trójwymiarowa, transformacje

Mnożenie macierzy Definicja Iloczynem macierzy A=[a ij ] nxp przez macierz B=[b ij ] pxm nazywamy taką macierz C=[c ij ] nxm piszemy C=A B, że p c ij = k = a ik b kj dla i=,2,...,n;j=,2,...,m

Mnożenie macierzy

Mnożenie macierzy Kilka przydatnych właściwości: Jeżeli A,B oraz C są macierzami o odpowiednich wymiarach to:. A(BC)=(AB)C 2. (AB)=(A)B 3. (A+B)C=AC+BC 4. C(A+B)=CA+CB 5. IA=A, gdy A nxn i I nxn

Mnożenie macierzy Algorytm dziel i rządź Uzyskanie macierzy C jest wynikiem niezależnych operacji arytmetycznych na wierszach macierzy A i kolumnach B. Stąd intuicyjny sposób podziału zadania na wiele wątków, tak by każdy obliczył niezależnie element macierzy C. Takich podziałów w tym wypadku musi być m*n (liczba wątków). Koszt operacji wynosi O(n3).

Mnożenie macierzy Każdy element A ij B jk C ik to mała podmacierz na której wykonujemy takie same operacje jak na pojedynczych elementach. A=[ A A 2 A 2 A 22] B=[ B B 2 B 2 B 22] C=[ C C 2 C 2 C 22]

Mnożenie macierzy Przykład: [ [ 2 3 2 8 5 9 4 2 2 3 2 9 6 8 3 2 2 2 3 6 9 6 2 2] [ ]=[4 ] 5 6 9 Takie mnożenie można rozbić na 4 działania analogiczne do poniższego 4] [ 3] 2 [ 2 3 2] [ ] = [ 2 3 8 3] [ 2 5 3] = [ 4 8 9 6]

Mnożenie macierzy Metoda Strassena - Z tak podzielonej macierzy wylicz 7 pomocniczych macierzy m i o rozmiarze n/2 m =(A 2 -A 22 )*(B 2 +B 22 ) m 2 =(A +A 22 )*(B +B 22 ) m 3 =(A -A 2 )*(B +B 2 ) m 4 =(A +A 2 )*B 22 m 5 =A *(B 2 -B 22 ) m 6 =A 22 *(B 2 -B ) m 7 =(A 2 +A 22 )*B

Mnożenie macierzy Oblicz składowe Cij macierzy wynikowej C C =m +m 2 -m 4 +m 6 C 2 =m 4 +m 5 C 2 =m 6 +m 7 C 22 =m 2 -m 3 +m 5 -m 7 Koszt powyższego algorytmu szacuje się na O(nlog 2 7)

Mnożenie macierzy Algorytm canona Zakładamy że mamy sieć zadań m x m. Każdy proces (t ij gdzie <i,j<m) wewnątrz zawiera bloki C ij, A ij i B ij. Na wstępie algorytmu proces na przekątnej diagonalnej (t ij gdzie i=j) przesyła swój blok A ij do wszystkich innych procesów w rzędzie i. Po transmisji A ii, wszystkie zadania obliczają A ii xb ij i dodają wynik do C ij. W kolejnym kroku kolumna bloków macierzy B jest obracana. Tzn. t ij przesyła swój blok t (i-)j. Proces t j przesyła swój blok B do t (m-)j.

Mnożenie macierzy Teraz procesy powracają do kroku pierwszego. A i(i+) jest podstawową informacją dla wszystkich innych procesów w rzędzie i. Algorytm jest dalej kontynuowany. Po m iteracjach macierz C zawiera wynik mnożenia AxB, a obracana macierz B przyjmuje swoją początkową postać.

A Mnożenie macierzy B [ 2 3 7 2 3 2 7 3 2 2 ] [ 2 3 ]=[4 4 7 ] C 2 3 3 2 2 2 2 3

Mnożenie macierzy +=x +=x 2 3 +=x3 +=x +=x 3 2 +=x2 2 2 2 +=x2 2 3 3 +=x3 +=x Z macierzy A bierzemy wartości leżące na diagonalnej Przysyłamy do sąsiadów w tym samym wierszu. Mnożymy wartości przesyłane z wartościami macierzy B i dodajemy do wyniku w C

Mnożenie macierzy 2 3 2 3 3 23 2 2 2 2 3 3 2 Kolumny macierzy B rolujemy w dół.

Mnożenie macierzy 2 4 +=2x2 3 6 +=2x3 2 +=2x +=x +=x 3 3 3 +=x3 2 2 +=2x 2 35 +=2x 2 4 +=2x2 Obniżamy diagonalną o jeden w dół. Przysyłamy do sąsiadów w tym samym wierszu. Mnożymy wartości przesyłane z wartościami macierzy B i dodajemy do wyniku w C

Mnożenie macierzy 2 4 3 6 2 2 2 3 3 3 3 2 2 2 5 23 4 Kolumny macierzy B rolujemy w dół.

Mnożenie macierzy 4 +=x 67 +=x 2 2 2 +=x2 2 7 +=3x2 3 +=3x3 3 3 +=3x 2 24 +=2x 2 57 +=2x 3 4 +=2x3 Obniżamy diagonalną o jeden w dół. Przysyłamy do sąsiadów w tym samym wierszu. Mnożymy wartości przesyłane z wartościami macierzy B i dodajemy do wyniku w C

Mnożenie macierzy w 3D [ 2 3 2 2 ] [ 3 2 2 3 ]=[4 7 2 7 3 4 7 ] A C B 3 2 3 2 2 2 3 2 2 2 2 2 2 2 3 3 2 2 2 2 3 3 3 3