Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
|
|
- Kacper Czerwiński
- 7 lat temu
- Przeglądów:
Transkrypt
1 Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15
2 Znajdowanie maksimum w zbiorze n liczb węzły - maksimum 2 liczb głębokość = 3 praca = = 7 (operacji) n - liczność zbioru W(n) = n-1 cykli f Ap (n) = O(log n) S p (n),e p (n) obliczenia w potoku
3 Znajdowanie maksimum w k zbiorach n liczb 3 2 k - krotne obliczenia w potoku 1 n - liczność zbioru W(n) = k*(n-1) f Ap (n) = O(k +log n)
4 Analiza efektywności - aglomeracja (1) Czy aglomeracja (połączenie zadań) jest możliwa bez spadku stopień równoległości? I II Zgrupowanie operacji realizowanych sekwencyjnie - możliwy przydział do jednego węzła przetwarzającego, mniej komunikacji, ten sam stopień równoległości. III I I I Przesłania poszczególnych etapów I II III II
5 Analiza efektywności - aglomeracja (2) Mniej przesłań między węzłami Niższa złożoność obliczeniowa Ta sama ilość pracy ( 7 porównań) Wzrost stopnia wierzchołka ( 3 do 5 ) Mniejsza liczba procesorów (4 zamiast 7)
6 Analiza efektywności -aglomeracja (3) wykres praca-czas Procesory A - 3*t por +7*t kom = (log 2 n)t por +(2log 2 n+1)t kom B - 3*t por +5*t kom = (log 2 n)t por +(log 2 n+2)t kom Bez aglomeracji Po aglomeracji Czas
7 Sortowanie w łańcuchu procesorów Wejście: ciąg liczb (minimum jedna) zakończonych -1 Wyjście: posortowany ciąg zakończony -1 Kod dla wszystkich węzłów: pobierz a pobierz b while b > 0 do { if a>b then wyślij b we pobierz b } wyślij a; wyślij b; else wyślij a; a:=b wy
8 Działanie algorytmu na wejście łańcucha podajemy kolejno wartości: 2,3,4,1,-1 proc1 proc2 proc3 proc4 czas 2,3 2k,p 3,4 2 2k,p 4,1 2,3 2k,p 4,-1 3,1 2 2k,p -1 3,4 2,1 2k,p 4,-1 2,3 1 2k,p -1 3,4 1,2 2k,p 4,-1 2,3 2k,p -1 3,4 2k,p 4,-1 2k,p -1 we wy
9 Sortowanie liczb w łańcuchu wykres praca- czas t 1 sortowanie na I czas t 2 sortowanie na I-IV t 3 zbieranie wyników t 1 = (n-1)*t p +(2n-1)* t k n* t c t c = t p +2t k t 2 =t 1 +(n-2)*(t p +t k ) 2n*t c t 3 =(n+2)*t c t 2 +t 3 3n*t c f Am = 3n*t c = O(n)
10 Złożoność sortowania liczb w łańcuchu Załóżmy, że liczba procesorów jest równa n - wielkości zbioru liczb do posortowania. Każdy procesor musi wykonać po n-1 cykli porównań (cykl - pobranie/wysłanie, porównanie), gdyż każda liczba przez każdy procesor przechodzi. Problemem jest wyznaczenie przesunięcia czasowego pomiędzy rozpoczęciem pracy kolejnego procesora Ważne są tutaj następujące spostrzeżenia: 1. Każdy kolejny krok porównania generuje jedną liczbę do wysłania na kolejny niewykorzystany jeszcze procesor; 2. Każdy krok porównania wymaga 2 transmisji blokujących = wysłanie i odbiór = RAZEM Tc=tp+2tk 3. Aby kolejny procesor rozpoczął porównywanie potrzebuje 2 liczb - konieczne jest wykonanie w systemie 2 następujących po sobie porównań na procesorze wcześniejszym. 4. Po ostatnim porównaniu mamy 2 komunikacje dla wysłania wyników porównania w odpowiedniej kolejności Liczba kroków: Liczba kroków (porównanie i 2 transmisje) do rozpoczęcia pracy procesora p to: 2*(p-1) Liczba kroków pracy ostatniego procesora to n-1 cykli (porównanie i przesłanie) Zatem czas przetwarzania T to: [2 * (p-1) + n-1] *Tc+ 2 tk Dla p1=n T= 3n -3 lub T= 3p1-3 Dla p2=n-1 T= 3n-5 lub T=3p2-2
11 Wyznaczanie sumy rozproszonych elementów Drzewo binarne - algorytm: 1. Elementy każdym węźle liczba węzłów K 2. Wysłanie liczby w kierunku korzenia 3. Wyznaczenie sum częściowych (suma 3 wartości) w węzłach pośrednich 4. Sumy częściowe w propagują w kierunku korzenia 5. Suma ostateczna wyznaczona w korzeniu 6. Propagacja sumy do wszystkich węzłów Liczba operacji praca: OBLICZENIA - dla każdego węzła oprócz liści - 2 komunikacje i 2 sumowania PROPAGACJA WYNIKU - dla każdego węzła oprócz liści 2 komunikacjei w dół drzewa RAZEM: (K-1)/2 * ( 2t kom + 2 t sum ) + (K-1) t kom wyniku, - Obliczenia, propagacja
12 Wyznaczanie sumy rozproszonych elementów drzewo binarne (część 2) Czas przetwarzania liczba kolejno realizowanych kroków algorytmu: liczba poziomów drzewa oprócz poziomu liści - realizowany cykl - 2 odbiory komunikatu (synchroniczne) i 2 sumowania liczba poziomów drzewa oprócz poziomu liści 2 przesłania RAZEM: (log 2 (K+1) - 1) * ( 2t kom + 2 t sum ) + (log 2 (K+1) - 1) * 2t kom log 2 K (t kom + t sum ) Uwagi : Liczba operacji sumowania równa minimalnej. Poziom równoległości obliczeń i równoległości komunikacji zmienny Możliwość dlaszej minimalizacji liczby przesłań (rozsyłanie wyniku) w innej architekturze prezentacja wkrótce.
13 Wyznaczanie sumy rozproszonych elementów łańcuch dwukierunkowy Łańcuch dwukierunkowy: Węzeł centralny, całkowita liczba węzłów K Analogiczna do drzewa praca tym razem równoległa w 2 gałęziach- przesyłanie do węzła centralnego z sumowaniem Liczba operacji praca: K-3 razy - dla każdego węzła oprócz węzłów końcowych i centralnego - odbiór komunikatu i sumowanie, w węźle centralnym 2 odbiory i 2 sumowania K-3 razy dla każdego węzła oprócz węzłów końcowych i centralnego - wysłanie informacji, węzeł centralny 2 przesłania RAZEM: (K-3) * ( t kom + t sum ) + 2* t kom + 2*t sum + (K-3) * t kom + 2* t kom 2 K t kom + K t sum
14 Wyznaczanie sumy rozproszonych elementów łańcuch dwukierunkowy (2) Czas przetwarzania liczba kolejno realizowanych kroków algorytmu: o o o M = ½ (liczba węzłów oprócz końcowych i centralnego) razy realizowany cykl - odbiór komunikatu i sumowanie; węzeł centralny- 2 odbiory i 2 sumowania M razy 1 przesłanie; węzeł centralny 2 przesłania RAZEM: ½ (K-3) (t kom + t sum ) + 2 t sum + 2 t kom + ½* (K-3) * t kom + 2 * t kom K t kom + ½ K t sum Uwagi : o Liczba operacji sumowania równa minimalnej. o Poziom równoległości obliczeń i komunikacji bliski 2.
15 Wyznaczanie sumy rozproszonych elementów - pierścień jednokierunkowy Węzeł centralny, całkowita liczba węzłów K Sekwencyjne sumowanie i przesyłanie sum częściowych do węzła centralnego; Rozsyłanie wyniku do wszystkich węzłów Liczba operacji praca: K-1 razy - dla każdego węzła oprócz węzła następnego po centralnym - odbiór komunikatu i sumowanie, K-1 razy dla każdego węzła oprócz węzła przed centralnym - wysłanie wyniku sumy RAZEM: (K-1) * ( t kom + t sum ) + (K-1) * t kom K t sum +2K t kom Czas przetwarzania liczba kolejno realizowanych kroków algorytmu: Jak wyżej, gdyż wszystkie operacje realizowane sekwencyjnie. Uwagi : Liczba operacji sumowania równa minimalnej. Brak równoległości. Możliwość minimalizacji liczby przesłań w tej architekturze (uniknięcie rozsyłania wyniku) poprzez wyznaczanie sumy we wszystkich węzłach porównaj następny algorytm.
16 Wyznaczanie sumy rozproszonych elementów pierścień jednokierunkowy, komunikacja synchroniczna a elementy sumowane; number_of_nodes=2n;n>1 k:=2;s := a jeśli parzysty to odbierz b1; wyślij a jeśli nieparzysty to wyślij a; odbierz b1 s:= s + b1 while k < number_of_nodes jeśli parzysty to odbierz b2; wyślij b1;b1:=b2 jeśli nieparzysty to wyślij b1; odbierz b1 s:= s + b1 k:= k + 1 Optymalizacja liczby przesłań kosztem nadmiarowych obliczeń: n sumowań, n (2n synchronicznie) komunikacji zamiast n sumowań, 2n komunikacji (zbieranie i wysyłanie) w rozwiązaniu z poprzedniej strony
17 Wyznaczanie sumy rozproszonych elementów pierścień (2) przykład 4 węzły Operacje węzła 3 (przechowuje wartość a) 1. wyślij a;odbierz b; s = a+b; 2. wyślij b; odbierz b; s = s+b; 3. wyślij b;odbierz b; s = s +b; liczba węzłów n, liczba kroków przetwarzania n-1, każdy krok przetwarzania to: nadanie, odbiór, sumowanie ilość pracy n*(n-1) sumowań, n*(n-1) przesłań 2 zmniejszenie czasu przetwarzania do (n-1)t s +2(n-1)t k
18 Wyznaczanie sumy rozproszonych elementów - podział pracy na zadania węzeł - operacja dodawania łuk - operacja przesłania jednej liczby liczność zbioru n, W= 3*n, f Ap (n)= log 2 n
19 Wyznaczanie sumy rozproszonych elementów - aglomeracja połączenie zadań zadania-operacje realizowane sekwencyjnie połączone w jedno zadanie, minimalizacja komunikacji, wzrost lokalności danych
20 Wyznaczanie sumy rozproszonych elementów - wynik aglomeracji 8 zadań to: 3 fazy wymiany wartości między parami zadań 3 fazy dodawania dodawanie 2 wartości, wyznaczana lokalnie suma 2,4 lub 8 elementów Pracę można zrzutować w sposób 1 zadanie na 1 procesor na 3 wymiarową kostkę procesorów.
21 Wyznaczanie sumy rozproszonych elementów - struktura przetwarzania w systemie 4 wymiarowej kraty podwójnej Sumowanie danych rozproszonych w 16 węzłach log 2 16 = 4 kroki
22 Znajdowanie liczb pierwszych Metody: dzielenie badanej liczby przez liczby pierwsze i badanie wartości reszty z dzielenia usuwanie wielokrotności - usuwanie ze zbioru badanych liczb liczb będących wielokrotnością liczb pierwszych Jakie liczby pierwsze uwzględniać dla badanej liczby (bądź górnego zakresu badanego przedziału) n? Wystarczy znaleźć dla każdej liczby złożonej minimalny podzielnik: dla 35 5, dla 77 7, dla Czy istnieje warunek ograniczający maksymalną wartość najmniejszego podzielnika liczby n? Tak. Maksymalna wartość najmniejszego podzielnika liczby złożonej n wynosi n 1/2. Aby znaleźć zatem liczby pierwsze x i <k,l> należy: usunąć liczby dzielące się bez reszty przez liczby pierwsze brane z przedziału <2, x i 1/2 > lub usunąć liczby będące wielokrotnością liczb pierwszych z przedziału <2, l 1/2 >
23 Wykreślanie z tablicy Z badanego zbioru (tablicy) usuwamy wielokrotności (jakie?) liczb pierwszych z przedziału <2,zakres górny 1/2 > Przykład dla zakresu : <2,65> 2 : 4,6,8, : 9,15,21,27,33,39,45,51,57,63 5 : 25,35,55,65 7 : 49 nie jest konieczna do rozpoczęcia obliczeń znajomość wszystkich liczb-pierwszych z przedziału <2,zakres górny 1/2 >; kolejno pojawiające się liczby pierwsze mogą być wykorzystane dopiero później, gdyż wyznaczanie wielokrotności mniejszych liczb pierwszych odbywa się dla całego badanego przedziału i zajmuje stosunkowo dużo czasu.
24 Sito Eratostenesa - koncepcja podejścia funkcjonalnego do podziału w architekturze z przekazywaniem komunikatów 2,3,4,5,..,12 0 znaczenie koncepcyjne niska efektywność /2 /3 /5 /7 11,13,17,19,23,29,31,37,41,..., Pierwsza liczba odebrana przez każdy z procesów jest traktowana jako dzielnik i jako liczba pierwsza. Liczby dzielące się z resztą są przesyłane dalej. Wynik przetwarzania liczby pierwsze pojawiają się na wyjściu systemu oraz rezydują w procesach (należy je przesłać na wyjście). Liczba procesów niezbędbych dla zakresu <n,k> jest równa liczbie liczb pierwszych w zakresie od <2, k 1/2 > 2k 1/2 /ln k
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2013/14 Znajdowanie maksimum w zbiorze
Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych
Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie
Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010
Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność
Zadania jednorodne 5.A.Modele przetwarzania równoległego. Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011
Zadania jednorodne 5.A.Modele przetwarzania równoległego Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011 Zadanie podzielne Zadanie podzielne (ang. divisible task) może zostać
Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015
Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Źródła kosztów przetwarzania współbieżnego interakcje między procesami
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami
Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy
Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Analiza efektywności przetwarzania współbieżnego
Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak 1/4/2013 Analiza efektywności 1 Źródła kosztów przetwarzania współbieżnego interakcje
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06
Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy
Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element
operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Algorytmy i struktury danych
Algorytmy i struktury danych ĆWICZENIE 2 - WYBRANE ZŁOŻONE STRUKTURY DANYCH - (12.3.212) Prowadząca: dr hab. inż. Małgorzata Sterna Informatyka i3, poniedziałek godz. 11:45 Adam Matuszewski, nr 1655 Oliver
EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY
Szczegółowy program kursów szkoły programowania Halpress
Szczegółowy program kursów szkoły programowania Halpress Lekcja A - Bezpłatna lekcja pokazowa w LCB Leszno "Godzina kodowania - Hour of Code (11-16 lat) Kurs (B) - Indywidualne przygotowanie do matury
Lista 0. Kamil Matuszewski 1 marca 2016
Lista 0 Kamil Matuszewski marca 206 2 3 4 5 6 7 8 0 0 Zadanie 4 Udowodnić poprawność mnożenia po rosyjsku Zastanówmy się co robi nasz algorytm Mamy podane liczby n i m W każdym kroku liczbę n dzielimy
Sortowanie. Bartman Jacek Algorytmy i struktury
Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39
Materiały pomocnicze do laboratorium. 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych
Materiały pomocnicze do laboratorium 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych 4. Optymalizacja dostępu do pamięci Miary efektywności systemów współbieżnych System
Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Algorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
Podstawowe algorytmy i ich implementacje w C. Wykład 9
Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp
Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp
Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/34 PRiR Algorytm Kunga Dany jest odcinek [a,b] i ciągła funkcja
Podstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór
Przetwarzanie równoległesprzęt 2 Rafał Walkowiak Wybór 17.01.2015 1 1 Sieci połączeń komputerów równoległych (1) Zadanie: przesyłanie danych pomiędzy węzłami przetwarzającymi, pomiędzy pamięcią a węzłami
Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2
Algorytmy i struktury danych Wykład 6 Tablice rozproszone cz. 2 Na poprzednim wykładzie Wiele problemów wymaga dynamicznych zbiorów danych, na których można wykonywać operacje: wstawiania (Insert) szukania
Przetwarzanie równoległe
Przetwarzanie równoległe Kostka równoległe przesyłanie i przetwarzanie Rafał Malinowski, Marek Musielak 1. Cel projektu: Celem projektu było stworzenie i przetestowanie oprogramowania działającego na serwerze
Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.
Wrocław, 28.11.2017 Wstęp do informatyki i programowania: liczby pierwsze Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Zajmiemy się liczbami pierwszymi... liczby
Algorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2015-10-09 Spis treści 1 Szybkie potęgowanie 1 2 Liczby Fibonacciego 2 3 Dowód, że n 1 porównań jest potrzebne do znajdowania minimum 2 4 Optymalny algorytm do
Algorytmy i Struktury Danych
Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu
Luty 2001 Algorytmy (4) 2000/2001
Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest
Programowanie równoległe
Programowanie równoległe ELEMENTARNE ALGORYTMY (PODSTAWA: Z.CZECH. WPROWADZENIE DO OBLICZEŃ RÓWNOLEGŁYCH. PWN, 2010) Andrzej Baran baran@kft.umcs.lublin.pl Charakterystyka ilościowa algorytmów Przez algorytm
Algorytmy i struktury danych
Algorytmy i struktury danych Zaawansowane algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Sortowanie za pomocą malejących przyrostów metoda Shella Metoda jest rozwinięciem metody sortowania
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego
Sortowanie topologiczne skierowanych grafów acyklicznych
Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)
Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012
Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel
Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne
Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na
Równoległe algorytmy sortowania. Krzysztof Banaś Obliczenia równoległe 1
Równoległe algorytmy sortowania Krzysztof Banaś Obliczenia równoległe 1 Algorytmy sortowania Algorytmy sortowania dzielą się na wewnętrzne (bez użycia pamięci dyskowej) zewnętrzne (dla danych nie mieszczących
Sortowanie - wybrane algorytmy
Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe
Algorytmy sortujące 1
Algorytmy sortujące 1 Sortowanie Jeden z najczęściej występujących, rozwiązywanych i stosowanych problemów. Ułożyć elementy listy (przyjmujemy: tablicy) w rosnącym porządku Sortowanie może być oparte na
Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.
Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa
Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer
Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny
Algorytm i złożoność obliczeniowa algorytmu
Algorytm i złożoność obliczeniowa algorytmu Algorytm - przepis postępowania, którego wykonanie prowadzi do rozwiązania określonego problemu określa czynności, jakie należy wykonać wyszczególnia wszystkie
Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne
A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację
KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F
KODY SYMBOLI Kod Shannona-Fano KODOWANIE DANYCH, A.Przelaskowski Metoda S-F Kod Huffmana Adaptacyjne drzewo Huffmana Problemy implementacji Kod Golomba Podsumowanie Kod drzewa binarnego Na wejściu rozkład:
Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1
Ataki na RSA Andrzej Chmielowiec andrzej.chmielowiec@cmmsigma.eu Centrum Modelowania Matematycznego Sigma Ataki na RSA p. 1 Plan prezentacji Wprowadzenie Ataki algebraiczne Ataki z kanałem pobocznym Podsumowanie
prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325
PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 20.11.2002 Algorytmy i Struktury Danych PIŁA ZŁOŻONE STRUKTURY DANYCH C za s tw or ze nia s tr uk tur y (m s ) TWORZENIE ZŁOŻONYCH STRUKTUR DANYCH: 00 0
Jeszcze o algorytmach
Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy
ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ
ANALIZA EFEKTYWNOŚCI MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A,B,C są tablicami nxn for (int j = 0 ; j
INFORMATYKA SORTOWANIE DANYCH.
INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje
Algorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.
Wykład 1 Wprowadzenie do algorytmów Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami Wykaz literatury 1. N. Wirth - Algorytmy+Struktury Danych = Programy, WNT Warszawa
Stronicowanie w systemie pamięci wirtualnej
Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni
Podstawowe struktury danych
Podstawowe struktury danych 1) Listy Lista to skończony ciąg elementów: q=[x 1, x 2,..., x n ]. Skrajne elementy x 1 i x n nazywamy końcami listy, a wielkość q = n długością (rozmiarem) listy. Szczególnym
Przetwarzanie równoległesprzęt
Przetwarzanie równoległesprzęt 2 Rafał Walkowiak Wybór 4.0.204 7.0.2 Sieci połączeń komputerów równoległych () Zadanie: przesyłanie danych pomiędzy węzłami przetwarzającymi Parametry: liczba wejść, wyjść,
Układy kombinacyjne 1
Układy kombinacyjne 1 Układy kombinacyjne są to układy cyfrowe, których stany wyjść są zawsze jednoznacznie określone przez stany wejść. Oznacza to, że doprowadzając na wejścia tych układów określoną kombinację
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy
Kompresja danych Streszczenie Studia Dzienne Wykład 10,
1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny
Programowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.
Kolejki Kolejka priorytetowa Kolejka priorytetowa (ang. priority queue) to struktura danych pozwalająca efektywnie realizować następujące operacje na zbiorze dynamicznym, którego elementy pochodzą z określonego
Wysokość drzewa Głębokość węzła
Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.
Wstęp do programowania
Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej
1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:
1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci: * Jan Kowalski * * ul. Zana 31 * 3. Zadeklaruj zmienne przechowujące
EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ
EFEKTYWNOŚĆ MNOŻENIA MACIERZY W SYSTEMACH Z PAMIĘCIĄ WSPÓŁDZIELONĄ 1 Mnożenie macierzy dostęp do pamięci podręcznej [język C, kolejność - j,i,k][1] A[i][*] lokalność przestrzenna danych rózne A,B,C są
WHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski
Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny
Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015
Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów synchronicznych Rafał Walkowiak Wersja.2 24/25 UK Funkcje wzbudzeń UK Funkcje wzbudzeń Pamieć Pamieć UK Funkcje wyjściowe
Przetwarzanie równoległe Zadanie domowe III
Przetwarzanie równoległe Zadanie domowe III Jarosław Marek Gliwiński #indeksu 7439 16 stycznia 010 1 Wstęp 1.1 Wykaz skrótów i oznaczeń W pierwszej kolejności przedstawione zostaną używane w pracy oznaczenia,
5. Model komunikujących się procesów, komunikaty
Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć
ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
WHILE (wyrażenie) instrukcja;
INSTRUKCJE ITERACYJNE WHILE, DO WHILE, FOR Instrukcje iteracyjne pozwalają powtarzać daną instrukcję programu określoną liczbę razy lub do momentu osiągnięcia określonego skutku. Pętla iteracyjna while
Podzielność, cechy podzielności, liczby pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.
Podzielność, cechy podzielności, liczby pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność. W dniu 25 lutego 2014 r. omawiamy test kwalifikacyjny. Uwaga: Przyjmujemy, że 0 nie jest
Programowanie Współbieżne. Wstęp
Programowanie Współbieżne Wstęp Literatura M. Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WNT W. Richard Stevens Programowanie zastosowań sieciowych A.S. Tanenbaum, Rozproszone systemy
2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,
2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d
Strategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott
Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html
Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności
Materiały dla finalistów
Materiały dla finalistów Malachoviacus Informaticus 2016 11 kwietnia 2016 Wprowadzenie Poniższy dokument zawiera opisy zagadnień, które będą niezbędne do rozwiązania zadań w drugim etapie konkursu. Polecamy
Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;
Podstawy Informatyki Inżyria Ciepła, I rok Wykład 8 Algorytmy, cd Instrukcja decyzyjna wybierz Zda wybierz służy do wyboru jednej z kilku możliwości Ma ono postać: wybierz przełącznik z wartość_1: zda_1
Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.
Iteracje Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracja inaczej zwana jest pętlą i oznacza wielokrotne wykonywanie instrukcji. Iteracje
PODSTAWY INFORMATYKI wykład 10.
PODSTAWY INFORMATYKI wykład 10. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutniacza w Krakowie WEAIiE,
Złożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Przesyłania danych przez protokół TCP/IP
Przesyłania danych przez protokół TCP/IP PAKIETY Protokół TCP/IP transmituje dane przez sieć, dzieląc je na mniejsze porcje, zwane pakietami. Pakiety są często określane różnymi terminami, w zależności
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe 15 stycznia 2019 Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r P Jaka wartość zostanie zwrócona
Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek
Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for
Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,
Przetwarzanie równoległe PROJEKT OMP i CUDA Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego przy użyciu komputera równoległego z procesorem wielordzeniowym z pamięcią
Równoległość i współbieżność
Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna
Równoległość i współbieżność
Równoległość i współbieżność Wykonanie sekwencyjne. Poszczególne akcje procesu są wykonywane jedna po drugiej. Dokładniej: kolejna akcja rozpoczyna się po całkowitym zakończeniu poprzedniej. Praca współbieżna
1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco
1. Liczby 3456.0012 i 0.000076235 w zapisie zmiennoprzecinkowym przedstawia się następująco a) 0.34560012 10 4 i 0.76235 10 4 b) 3.4560012 10 3 i 7.6235 10 5 c) 3.4560012 10 3 i 7.6235 10 5 d) po prostu
f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu
DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu f wy f P Podzielnik częstotliwości: układ, który na każde p impulsów na wejściu daje
Tryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla
Tryby komunikacji między procesami w standardzie Message Passing Interface Piotr Stasiak 171011 Krzysztof Materla 171065 Wstęp MPI to standard przesyłania wiadomości (komunikatów) pomiędzy procesami programów
Programowanie Współbieżne. Algorytmy
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