Obliczenia równoległe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Obliczenia równoległe"

Transkrypt

1 Instytut Informatyki Politechnika Śląska Obliczenia równoległe Opracował: Zbigniew J. Czech materiały dydaktyczne Gliwice, luty 1

2 Spis treści 1 Procesy współbieżne Podstawowe modele obliczeń równoległych 4 Elementarne algorytmy równoległe 4.1 Miara Karpa i Flatta Algorytmy dla modelu PRAM Sortowanie przez przestawianie nieparzysto-parzyste Znajdowanie minimum w czasie O(log n), n = r Znajdowanie sumy elementów w czasie O(log n), n dowolne Znajdowanie sumy elementów za pomocą p procesorów Problem sum prefiksowych Znajdowanie minimum w czasie O(1) Sortowanie w czasie O(log n) Mnożenie macierzy Algorytmy dla modelu sieciowego Mnożenie macierzy przez wektor w jednowymiarowym torusie Mnożenie macierzy przez macierz w dwuwymiarowym torusie Problem redukcji w kostce Znajdowaniesumprefiksowychwkostce Problem redukcji w sieci doskonale przetasowanej Problem redukcji w siatce dwuwymiarowej Algorytm dla komputera CREW MIMD Komputery równoległe klasy architektur oraz sieci połączeń Literatura

3 1 Procesy współbieżne R s 1 s s s 4 Rysunek 1: Algorytm równoległy R złożony z algorytmów składowych s 1, s, s i s 4 rozwiązujących poszczególne zadania (podproblemy); strzałki oznaczają współpracę algorytmów składowych, tj. przesłania danych lub synchronizację działania P 1 P o 1 o o o 4 o i o i+1 o 1 o o o 4 o i o i+1 Rysunek : Procesy sekwencyjne P 1 i P równoważne pod względem wyników obliczeń; t oznacza oś czasu t P 1 P o 1 o o 1 o o 1 o o 1 o P 1 P t t Rysunek : Dwie możliwe realizacje procesów P 1 i P P i P j P k o i1 o i o i o i4 o i o j1 o j o j o j4 o k1 o k o k o k4 t Rysunek 4: Jednoczesne wykonywanie operacji procesów P i, P j oraz P k

4 P i o i1 o i P j o j1 o j P k o k1 o k Rysunek : Przeplatanie operacji procesów jeden procesor rzeczywisty implementuje trzy procesory wirtualne t Pamięć Procesor Rysunek : Model obliczeń sekwencyjnych RAM Podstawowe modele obliczeń równoległych 1. M 4 := M 1 +{zapisanie w komórce M 4 sumy zawartości komórki M 1 istałej}. M := M M4 {adresowanie pośrednie: zapamiętanie w komórce M zawartości} {komórki, której adres jest w komórce M 4 }. M := M 1 1 {obliczenie numeru iteracji; M = n 1} 4. M := M M {zapisanie w komórce M iloczynu zawartości komórek M i M }. M 4 := M +{obliczenie indeksu współczynnika wielomianu}. M := M + M M4 7. M := M 1 8. goto 4 if M {wykonanie instrukcji 4, jeśli zawartość komórki M jest nieujemna} 9. halt {koniec obliczeń} Pamiȩć wspólna P 1 P P p Pamiȩć Pamiȩć Pamiȩć lokalna lokalna lokalna Rysunek 7: Model obliczeń równoległych PRAM Elementarne algorytmy równoległe.1 Miara Karpa i Flatta Patrz rys. 1, rys. 17 oraz tab.. 4

5 Sieć po l aczeń P 1 P P p Pamiȩć Pamiȩć Pamiȩć lokalna lokalna lokalna Rysunek 8: Model sieciowy obliczeń równoległych Pamięć Procesor Rysunek 9: Sieć pełna a) b) Rysunek 1: a) Jednowymiarowa siatka oraz b) jednowymiarowy torus (pierścień). Algorytmy dla modelu PRAM..1 Sortowanie przez przestawianie nieparzysto-parzyste 1. procedure sort nieparzyste parzyste;. begin. for i := 1 to n do 4. parfor P j, j = 1,,..., n 1 do. if A[j] >A[j +1]then. A[j] A[j +1] 7. end if; 8. end for; 9. parfor P j, j =, 4,..., n 1 do 1. if A[j] >A[j +1]then 11. A[j] A[j +1] 1. end if; 1. end for; 14. end for; 1. end;

6 (a) (b) (c) Rysunek 11: Dwuwymiarowa siatka 4 4 (a); dwuwymiarowy torus 4 4 (b) oraz trójwymiarowy torus (c) (a) (b) (c) (d) (e) Rysunek 1: Kostka zerowymiarowa (a); jednowymiarowa (b); dwuwymiarowa (c); trójwymiarowa (d); czterowymiarowa (e).. Znajdowanie minimum w czasie O(log n), n = r 1 m := a[1];

7 Rysunek 1: Kostka czterowymiarowa (wariant ) Rysunek 14: Kostka czterowymiarowa (wariant ) Rysunek 1: Sieć doskonale przetasowana (m =) S n =1 7 n =1 n = Liczba procesów E n =1 n =1 n = Liczba procesów Rysunek 1: Przyspieszenia S oraz efektywności E w funkcji liczby procesów dla programu MPI wyznaczania liczb pierwszych; linią kreskowaną przedstawiono maksymalne przyspieszenie równe liczbie procesów 7

8 Tabela 1: Wybrane parametry charakteryzujące topologie połączeń procesorów Rodzaj Maks. Szerokość Spójność sieci Średnica stopień połowienia krawędz. Koszt Sieć pełna 1 p 1 p /4 p 1 p(p 1)/ Siatka jednowym. p p 1 Pierścień p/ p Siatka dwuwym. ( p 1) 4 p (p p) Torus dwuwym. p/ 4 p 4 p Kostka log p log p p/ logp (p log p)/ Sieć id. przetas. logp 1 p/ 1 p/ S n =1 7 n =1 n = Liczba w atków E n =1 n =1 n = Liczba w atków Rysunek 17: Przyspieszenia S oraz efektywności E w funkcji liczby procesów dla programu OpenMP wyznaczania liczb pierwszych; linią kreskowaną przedstawiono maksymalne przyspieszenie równe liczbie wątków Tabela : Części sekwencyjne f programów wyznaczania liczb pierwszych obliczone na podstawie przyspieszeń z rys. 1 oraz 17 Program MPI Program OpenMP n =1 n =1 7 n =1 n =1 7 p S f S f S f S f for i := to n do if a[i] < m then m := a[i]; 4 end for; Dane wejściowe: Tablica a[1..n] umieszczona w pamięci wspólnej modelu PRAM o n procesorach. Zmienne lokalne (w pamięci lokalnej każdego procesora) przechowujące rozmiar n oraz numer procesora i. Dane pomocnicze: Tablica b[1..n] umieszczona w pamięci wspólnej. Zmienne lokalne j i k Dane wyjściowe: Wartość min{a[i]}, dlai = 1,,..., n, umieszczona w zmiennej m pamięci wspólnej. 8

9 1. begin. parfor P i,1 i ndo. b[i] := a[i]; {kopiowanie tablicy a do tablicy pomocniczej b} 4. k := n;. end for;. for j := 1 to log n do 7. parfor P i,1 i k/ do 8. if b[i] >b[i + k/] then 9. b[i] :=b[i + k/]; 1. end if; 11. end for; 1. k := k/; 1. end for; 14. if i =1then m := b[1]; end if; 1. end; m min min min min min min min b[1] b[] b[] b[4] b[] b[] b[7] b[8] a[1] a[] a[] a[4] a[] a[] a[7] a[8] P 1 P P P 4 P P P 7 P 8 Rysunek 18: Ilustracja działania algorytmu wyznaczania elementu minimalnego (n = 8).. Znajdowanie sumy elementów w czasie O(log n), n dowolne Dane wejściowe: Tablica a[1..n] umieszczona w pamięci wspólnej modelu PRAM o n procesorach. Zmienne lokalne przechowujące rozmiar n oraz numer procesora i. Dane pomocnicze: Tablica b[1..n] umieszczona w pamięci wspólnej. Zmienne lokalne j i k. Dane wyjściowe: Wartość n i=1 a[i] umieszczona w zmiennej s pamięci wspólnej. 1. begin. parfor P i,1 i ndo. b[i] := a[i]; {kopiowanie tablicy a do tablicy pomocniczej b} 4. k := n;. end for;. for j := 1 to log n do 7. parfor P i,1 i k/ do 8. b[i] :=b[i]+b[k +1 i]; 9. end for; 1. k := k/ ; 11. end for; 1. if i =1then s := b[1]; end if; 1. end; 9

10 s b[1] b[] b[] b[4] b[] b[] b[7] a[1] a[] a[] a[4] a[] a[] a[7] P 1 P P P 4 P P P 7 Rysunek : Ilustracja działania algorytmu wyznaczania sumy elementów (n = 7)..4 Znajdowanie sumy elementów za pomocą p procesorów Dane wejściowe: Tablica a[1..n] umieszczona w pamięci wspólnej modelu PRAM o p, 1<p n, procesorach. Zmienne lokalne przechowujące rozmiar n, liczbę procesorów p oraz numer procesora i. Dane pomocnicze: Tablica b[1..p] umieszczona w pamięci wspólnej. Zmienne lokalne g oraz j. Dane wyjściowe: Wartość n i=1 a[i] umieszczona w zmiennej s pamięci wspólnej. 1. begin. parfor P i,1 i pdo. g := n p (i 1) + 1; 4. b[i] :=a[g];. for j := 1 to n p 1 do {sumowanie w grupach}. if g + j n then {ostatnia grupa może być niepełna} 7. b[i] :=b[i] +a[g + j]; 8. end if; 9. end for; 1. end for; 11. Sumowanie b[1], b[],..., b[p] w czasie O(log p) za pomocą poprzedniego algorytmu; 1. end; Złożoność czasową, osiągane przyspieszenia oraz efektywności przedstawiają rys. a, b i c... Problem sum prefiksowych Dane wejściowe: Tablica x[1..n] umieszczona w pamięci wspólnej modelu PRAM o n procesorach. Zmienne lokalne przechowujące rozmiar n oraz numer procesora i. Dane pomocnicze: Zmienna lokalna j. Dane wyjściowe: Sumy prefiksowe umieszone w tablicy s[1..n] w pamięci wspólnej. 1. begin. parfor P i,1 i ndo {inicjalizacja}. s[i] :=x[i]; 4. end for;. for j := to log n 1 do. parfor P i, j <i n do 7. s[i] :=s[i j ]+s[i]; 8. end for; 9. end for; 1. end; 1

11 a) b) 1 n = n = 1 T (p, n) c 1 n/p + c log p c log p S(p, n) n = c 1 n/p p opt = c 1 n ln /c p p c) 1.7 E(p, n). n = n = 1. n = p Rysunek : a) Złożoność czasowa algorytmu znjdowania sumy elementów za pomocą p procesorów, przyjęto c 1 =1., c = 1, n = ; b) osiągane przyspieszenia dla różnych wartości n; c) osiągane efektywności dla różnych wartości n Tabela : Ilustracja działania algorytmu wyznaczania sum prefiksowych Inic. j = j =1 j = s[1] s[] () + s[] 1 ()+1 ()++1 s[4] (1)+ (+)+1+ s[] 4 ()+4 (+1)++4 () s[] 7 (4)+7 (1+)+4+7 (+) Znajdowanie minimum w czasie O(1) Dane wejściowe: Tablica a[1..n] umieszczona w pamięci wspólnej modelu CRCW PRAM o n procesorach. Zmienne lokalne przechowujące rozmiar n oraz numer procesora w postaci pary zmiennych i oraz j. Dane pomocnicze: Tablica t[1..n] umieszczona w pamięci wspólnej. Dane wyjściowe: Wartość min{a[i]}, dlai = 1,,..., n, zwracana przez instrukcję return. Jeśli wartości minimalnych jest więcej, to zwracana jest wartość minimalna a[i] położona najbliżej początku tablicy a. 1. begin. parfor P i,j, i =1,1 j n do {pracują procesory w pierwszym wierszu}. t[j] := ;{inicjalizacja tablicy t} 4. end for;. parfor P i,j,1 i, j n do {pracują wszystkie procesory}. if a[i] <a[j] then {a[j] nie jest elementem minimalnym} 7. t[j] :=1; 8. end if; {t[j] = oznacza, że a[j] =min{a[i]}, dlai =1,,..., n} 11

12 9. if (t[i] =)and (i <j) then 1. t[j] :=1; 11. end if; {tylko dla jednego j zachodzi t[j] =} 1. end for; 1. parfor P i,j, i =1,1 j n do {pracują procesory w pierwszym wierszu} 14. if t[j] =then 1. return a[j]; {zwrócenie elementu minimalnego} 1. end if; 17. end for; 18. end; Załóżmy, że algorytm przetwarza tablicę o postaci a[1..4] = [, 1,, 1]. P i,j a[1] <a[1] a[1] <a[] a[1] <a[] a[1] <a[4] a[] <a[1] a[] <a[] a[] <a[] a[] <a[4] a[] <a[1] a[] <a[] a[] <a[] a[] <a[4] 4 a[4] <a[1] a[4] <a[] a[4] <a[] a[4] <a[4] t 1 1 (po wyk. kroku 8.) t (po wyk. kroku 1.) Rysunek 1: Ilustracja działania algorytmu..7 Sortowanie w czasie O(log n) { 1, gdy a[i] >a[j], lub gdy a[i] =a[j] orazi>j, w[i, j] = (1), w przeciwnym razie. Dane wejściowe: Tablica a[1..n] umieszczona w pamięci wspólnej modelu CREW PRAM o n procesorach. Zmienne lokalne przechowujące rozmiar n oraz numer procesora w postaci pary zmiennych i oraz j. Dane pomocnicze: Tablica w[1..n, 1..n] umieszczona w pamięci wspólnej. Zmienne lokalne k oraz r. Dane wyjściowe: Tablica b[1..n] umieszczona w pamięci wspólnej zawierająca wartości elementów tablicy a[1..n] w porządku niemalejącym. 1. begin. parfor P i,j,1 i, j n do. if (a[i] >a[j]) or ((a[i] =a[j]) and (i >j)) then 4. w[i, j] :=1;. else. w[i, j] :=; 7. end if; 8. end for; 9. k := n; 1. for r := 1 to log n do {zliczanie jedynek w wierszach tablicy w} 11. parfor P i,j,1 i n, 1 j k/ do 1. w[i, j] :=w[i, j]+w[i, k +1 j]; 1. end for; 14. k := k/ ; 1. end for; {wartości w[i, 1] wyznaczają pozycje elementów a[i] w tablicy b} 1. parfor P i,j,1 i n, j =1do 17. b[w[i, 1] + 1] := a[i]; 18. end for;. end; 1

13 P i,j a[1] a[1] a[1] a[] a[1] a[] a[1] a[4] a[] a[1] a[] a[] a[] a[] a[] a[4] a[] a[1] a[] a[] a[] a[] a[] a[4] 4 a[4] a[1] a[4] a[] a[4] a[] a[4] a[4] w Rysunek : Relacje sprawdzane przez procesory oraz postać tablicy w..8 Mnożenie macierzy Dane wejściowe: Macierze a[1..n, 1..n] ib[1..n, 1..n] umieszczone w pamięci wspólnej modelu CREW PRAM o n procesorach. Zmienne lokalne przechowujące rozmiar n (n = r dla pewnego całkowitego r>) oraz numer procesora w postaci zmiennych i, j oraz k. Dane pomocnicze: Macierz t[1..n, 1..n, 1..n] umieszczona w pamięci wspólnej. Zmienna lokalna l. Dane wyjściowe: Iloczyn macierzy c = a b umieszczony w pamięci wspólnej. 1. begin. parfor P i,j,k,1 i, j, k n do. t[i, j, k] :=a[i, k] b[k, j]; {obliczanie składowych iloczynów skalarnych} 4. end for;. for l := 1 to log n do {sumowanie składowych iloczynów skalarnych}. parfor P i,j,k,1 i, j n, 1 k n/ l do 7. t[i, j, k] :=t[i, j, k 1] + t[i, j, k]; 8. end for; 9. end for; 1. parfor P i,j,k,1 i, j n, k =1do 11. c[i, j] :=t[i, j, 1]; 1. end for; 1. end;. Algorytmy dla modelu sieciowego..1 Mnożenie macierzy przez wektor w jednowymiarowym torusie Dane wejściowe: Podmacierze b = a[(i 1)r +1..ir, 1..n], r = n/p, orazwektorx[1..n], umieszczone w procesorach P i pracujących asynchronicznie, 1 i p, połączonych w pierścień. Zmienne lokalne w każdym procesorze P i przechowujące rozmiar n oraz numer procesora w postaci zmiennej i. Dane pomocnicze: Wektory y[1..n/p] iz[1..n] umieszczone w pamięci lokalnej. Zmienne lokalne j i k. Dane wyjściowe: Iloczyn z = ax umieszczony w procesorze P begin. {Obliczenie wektora y = bx przez procesory P i,1 i p.}. for k := 1 to n/p do 4. y[k] :=b[k, 1] x[1];. for j := to n do. y[k] :=y[k]+b[k, j] x[j]; 7. end for; 8. end for; 9. if i =1then {procesor P 1 przesyła wektor y wprawo} 1. send(y, prawy); 11. else {pozostałe procesory odbierają dane z procesora położonego po lewej stronie} 1. receive(z[1..(i 1)r],lewy); 1. z[1..ir] := z[1..(i 1)r] y; {dopisanie obliczonego wektora y} 14. send(z[1..ir],prawy); 1. end if; 1. if i =1then 1

14 17. receive(z[1..n],lewy); {odebranie przez procesor P 1 końcowego wyniku} 18. end if;. end;.. Mnożenie macierzy przez macierz w dwuwymiarowym torusie Dane wejściowe: Macierze a[1..n, 1..n] ib[1..n, 1..n], których elementy a[i, j] ib[i, j] umieszczone są w pamięciach lokalnych procesorów P i,j. Zmienne lokalne w każdym procesorze przechowujące rozmiar n oraz numer procesora w postaci zmiennych i oraz j. Dane pomocnicze: Zmienna lokalna k w każdym procesorze P i,j. Dane wyjściowe: Iloczyn macierzy c = ab. Elementy macierzy c[i, j] umieszczone są w zmiennych lokalnych c procesorów P i,j. 1. begin. {Faza 1: Zmodyfikowanie dystrybucji elementów macierzy a i b wtorusie.}. for k := to n do 4. parfor P i,j,1 i, j n do. if i k then {przemieszczenie wierszy macierzy a cyklicznie w lewo}. a prawy(a); 7. end if; 8. if j k then {przemieszczenie kolumn macierzy b cyklicznie w górę} 9. b dół(b); 1. end if; 11. end for; 1. end for; 1. {Faza : Obliczanie iloczynu macierzy a i b.} 14. for k := 1 to n do 1. parfor P i,j,1 i, j n do 1. if k =1then 17. c := a b ; 18. else. a prawy(a);. b dół(b); 1. c := c + a b ;. end if;. end for; 4. end for;. end;.. Problem redukcji w kostce Dane wejściowe: Podtablice a[1.. n/p ] zawierające fragmenty tablicy a[1..n] umieszczone w pamięciach lokalnych p procesorów kostki. Zmienne lokalne przechowujące rozmiar n, liczbę procesorów p oraz numer procesora i, i<p. Dane pomocnicze: Zmienna lokalna rozmiar przechowująca rozmiar podtablicy a danego procesora oraz zmienne lokalne d, j i pom. Dane wyjściowe: Wartość n i=1 a[i] umieszczona w zmiennej sum procesora P. 1. begin. parfor P i, i<pdo. sum := a[1]; 4. if i<(n mod p) then. rozmiar := n/p ;. else 7. rozmiar := n/p ; 8. end if; 14

15 a) a 1,1 a 1, a 1, b 1,1 b, b, a, a, a,1 b,1 b, b 1, a, a,1 a, b,1 b 1, b, b) a 1, a 1, a 1,1 b,1 b, b 1, a, a,1 a, b,1 b 1, b, a,1 a, a, b 1,1 b, b, c) a 1, a 1,1 a 1, b,1 b 1, b, a,1 a, a, b 1,1 b, b, a, a, a,1 b,1 b, b 1, Rysunek : Dystrybucja elementów macierzy a oraz b pomiędzy procesorami po a) pierwszej, b) drugiej i c) trzeciej iteracji instrukcji for w krokach for j := to n/p do {sumowanie w grupach} 1. if j rozmiar then {niektóre procesory mają mniejsze grupy} 11. sum := sum + a[j]; 1. end if; 1. end for; 14. end for; 1. for j := log p 1 downto do {sumowanie sum obliczonych w grupach} 1. d := j ; 17. parfor P i, i<ddo 18. pom [i + d]sum;. sum := sum + pom;. end for; 1. end for;. end; 1

16 Rozgłaszanie 1. for j := to log p 1 do. d := j ;. parfor P i, i<ddo 4. [i + d]sum sum;. end for;. end for; (a) (b) P 1 1 P 1 P 7 P 7 P 1 P P P 7 P 14 P 4 P 7 P P 14 P 4 P P (c) (d) P P 7 P P 7 P 1 11 P P 1 P P 4 P P 4 P P P P P Rysunek 4: Ilustracja rozwiązywania problemu redukcji w kostce trójwymiarowej: przykładowe wartości podlegające sumowaniu (wyznaczone w wierszach 14) (a) oraz wartości po pierwszej (b), drugiej (c) i trzeciej (d) iteracji w wierszach 1 1 algorytmu na s Znajdowanie sum prefiksowych w kostce Dane wejściowe: Zmienne lokalne b w każdym procesorze kostki zainicjalizowane w taki sposób, że wartością tej zmiennej w procesorze P jest element x 1, w procesorze P 1 element x itd. Zmienne lokalne przechowujące liczbę procesorów p oraz numer procesora i, i<p. Dane pomocnicze: Zmienna lokalna j oraz m. Dane wyjściowe: Wartości zmiennych s w procesorach P i, i<p, będące sumami prefiksowymi s i,1 i p. 1. begin. parfor P i, i<pdo. s := b; {inicjalizacja wartości sum prefiksowych} 4. end for;. m := i;. for j := to log p 1 do 7. parfor P i, m mod = do {j-ty bit numeru procesora i jest równy } 8. [i + j ]pom b; 9. end for; 1. parfor P i, m mod do 11. s := s + pom; 1. b := b + pom; 1. [i j ]b b; 14. end for; 1

17 1. m := m div ; 1. end for; 17. end; a) b) x x x 8 x 8 x x x 78 x x x 1 11 x 1 x x 4 x 4 x 4 x 4 1 x x 11 x 7 x 7 1 x x 11 x 7 x 78 x 1 x 1 1 x x x 1 x 1 1 x x 4 c) d) x x 8 x 8 x 8 x 1 x 18 x 18 x x 1 x x 1 x x 14 x 14 x 14 x 18 1 x x 8 11 x 7 x 8 1 x 1 x x 17 x 18 x 1 x 14 1 x 1 x 14 x 1 x 18 1 x 1 x 18 Rysunek : Wartości zmiennych s i b w procesorach kostki a) przed wykonaniem iteracji for w wierszach 1, a następnie po wykonaniu b) pierwszego, c) drugiego i d) trzeciego przebiegu tej iteracji.. Problem redukcji w sieci doskonale przetasowanej Dane wejściowe: Tablica a[1..n], której poszczególne elementy zostały umieszczone w zmiennych lokalnych a procesorów P i, i<p, p = n. Zmienne lokalne przechowujące liczbę procesorów p oraz numer procesora i, i<p. Dane pomocnicze: Zmienne lokalne b oraz j. Dane wyjściowe: Wartość p i=1 a[i] umieszczona w zmiennych a procesorów P i, i<p. 1. begin. for j := 1 to log p do. parfor P i, i<pdo 4. tasuj (a);. b := a;. wymień(b); 7. a := a + b; 8. end for; 9. end for; 1. end;.. Problem redukcji w siatce dwuwymiarowej 1. begin. for i := m 1 downto 1 do. parfor P j,i,gdzie1 j m do {aktywna kolumna i} 17

18 a a a a przed tasuj(a) po przed wymień(a) po Rysunek : Operacje tasuj i wymień a) b) c) d) Rysunek 7: Wartości zmiennych a w procesorach sieci doskonale przetasowanej a) przed wykonaniem iteracji for w wierszach 9, a następnie po wykonaniu b) pierwszego, c) drugiego i d) trzeciego przebiegu tej iteracji (p =8) 4. t[j, i] a[j, i +1];. a[j, i] :=a[j, i] +t[j, i];. end for ; 7. end for ; 8. for i := m 1 downto 1 do 9. parfor P i,1 do 1. t[i, 1] a[i +1, 1] ; 11. a[i, 1] := a[i, 1] + t[i, 1] ; 1. end for ; 1. end for ; 14. end ; 18

19 ind a tasuj a wymień b a tasuj a wymień b a tasuj a wymień b a Rysunek 8: Redukcja w sieci doskonale przetasowanej

20 Rysunek 9: Redukowane (dodawane) wartości w siatce dwuwymiarowej.4 Algorytm dla komputera CREW MIMD 1. begin. parfor P i,gdziei =do wykonuje procesor P. suma globalna := ; 4. end for;. parfor P i,gdzie i p 1 do Równoległa praca p procesorów.. suma lokalna := ; 7. for j := i to n 1 step p do 8. suma lokalna := suma lokalna + a[j]; 9. end for ; 1. lock(suma globalna); 11. suma globalna := suma globalna + suma lokalna ; 1. unlock(suma globalna); 1. end for ; 14. end ; 4 Komputery równoległe klasy architektur oraz sieci połączeń Literatura [1] Ben-Ari, M., Podstawy programowania współbieżnego i rozproszonego, WNT, Warszawa 9. [] Czech, Z.J., Wprowadzenie do obliczeń równoległych, PWN, Warszawa 1, wyd. II. [] Herlichy, M., Shavit, N., Sztuka programowania wieloprocesorowego, PWN, Warszawa, 1. [4] Huzar, Z., i in., Ada 9, Helion, Gliwice 98. [] Neapolitan, R., Naimipour, K., Podstawy algorytmów z przykładami w C++, Helion, Gliwice 4 (rozdział 11 Wprowadzenie do algorytmów równoległych).

21 a) b) c) d) e) f) Rysunek : Redukcja w siatce dwuwymiarowej. Po a) pierwszym, b) drugim, c) trzecim, d) czwartym, e) piątym i f) szóstym dodawaniu 1

22 J J J 4 J J J 1 i 1 i i i 1 i i i 4 i 1 i i i 4 i i 1 i i i 4 i i i 1 i i i 4 i i i 7 i 1 i i i 4 i i i 7 i 8 czas (w cyklach) Rysunek 1: Potokowe wykonywanie strumienia instrukcji we/wy Centralna jednostka steruj aca Pamiȩć z programem E 1 Pamiȩć lokalna E Pamiȩć lokalna Sieć po l aczeń E p Pamiȩć lokalna Rysunek : Struktura komputera macierzowego (SIMD)

23 Pamiȩć wspólna we/wy M 1 M M m Sieć po l aczeń P 1 P P p Pamiȩć Pamiȩć Pamiȩć lokalna lokalna lokalna Rysunek : Struktura komputera wieloprocesorowego (MIMD) z pamięcią wspólną P 1 Pamiȩć lokalna P Pamiȩć Sieć po l aczeń lokalna P p Pamiȩć lokalna we/wy Rysunek 4: Struktura komputera wieloprocesorowego (MIMD) z pamięcią rozproszoną a) b) Komputer dostȩpowy Komputery (wȩz ly) Komputer dostȩpowy Komputery (wȩz ly) Rysunek : Klaster stacji roboczych a) połączonych pojedynczym przewodem, b) w postaci pierścienia

24 Sieć po l aczeń M M M P P P P P P P P P SMP 1 SMP SMP n Rysunek : Klaster multiprocesorów symetrycznych (SMP); przez M i P oznaczono odpowiednio pamięci wspólne oraz procesory a) b) Rysunek 7: Sieć połączeń a) statyczna oraz b) dynamiczna. Węzły sieci (procesory lub bloki pamięci) oznaczono kółkami bez zacieniowania, a przełączniki kółkami zacieniowanymi magistrala M M U linie adresowe linie danych linie steruj ace K K K P P P Rysunek 8: Struktura komputera z siecią połączeń opartą na magistrali (oznaczenia: P procesory, M bloki pamięci wspólnej, K pamięci podręczne, U urządzenia wej/wyj) 4

25 M 1 M M M m P 1 P P P p Rysunek 9: Struktura sieci z przełącznicą krzyżową P 1 M 1 P S 1 S S k M P p M m Rysunek 4: Sieć wielostopniowa: S 1, S,..., S k są stopniami sieci

26 P M P 1 M 1 P 1 M 1 P 11 M 11 P 1 M 1 P 11 M 11 P 11 M 11 P 111 M 111 Rysunek 41: Sieć omega dla p =8 P M P 1 M 1 P 1 B M 1 P 11 M 11 P 1 f A M 1 P 11 M 11 P 11 A g M 11 P 111 M 111 Rysunek 4: Stan przełączników sieci omega podczas transmisji danych pomiędzy procesorem P 1 a blokiem pamięci M 11

Programowanie równoległe

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

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 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 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

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

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ą

Bardziej szczegółowo

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Ą 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

Bardziej szczegółowo

Macierzowe algorytmy równoległe

Macierzowe algorytmy równoległe Macierzowe algorytmy równoległe Zanim przedstawimy te algorytmy zapoznajmy się z metodami dekompozycji macierzy, możemy wyróżnić dwa sposoby dekompozycji macierzy: Dekompozycja paskowa - kolumnowa, wierszowa

Bardziej szczegółowo

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 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ść

Bardziej szczegółowo

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 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

Bardziej szczegółowo

16. Taksonomia Flynn'a.

16. Taksonomia Flynn'a. 16. Taksonomia Flynn'a. Taksonomia systemów komputerowych według Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierająca się

Bardziej szczegółowo

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom

Bardziej szczegółowo

Algorytmy dla maszyny PRAM

Algorytmy dla maszyny PRAM Instytut Informatyki 21 listopada 2015 PRAM Podstawowym modelem służącym do badań algorytmów równoległych jest maszyna typu PRAM. Jej głównymi składnikami są globalna pamięć oraz zbiór procesorów. Do rozważań

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

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

Bardziej szczegółowo

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

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ą

Bardziej szczegółowo

Operacje grupowego przesyłania komunikatów

Operacje grupowego przesyłania komunikatów Operacje grupowego przesyłania komunikatów 1 Operacje grupowego przesyłania komunikatów Operacje, w ramach których ten sam komunikat lub zbiór komunikatów przesyłany jest pomiędzy więcej niż dwoma procesami

Bardziej szczegółowo

Równoległość i współbieżność

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

Bardziej szczegółowo

Równoległość i współbieżność

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

Bardziej szczegółowo

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

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

Bardziej szczegółowo

Programowanie współbieżne Wstęp do obliczeń równoległych. Rafał Skinderowicz

Programowanie współbieżne Wstęp do obliczeń równoległych. Rafał Skinderowicz Programowanie współbieżne Wstęp do obliczeń równoległych Rafał Skinderowicz Plan wykładu Modele obliczeń równoległych Miary oceny wydajności algorytmów równoległych Prawo Amdahla Prawo Gustavsona Modele

Bardziej szczegółowo

Programowanie Współbieżne. Algorytmy

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

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI

EGZAMIN MATURALNY Z INFORMATYKI Miejsce na naklejkę z kodem szkoły dysleksja MIN-R1A1P-061 EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY Czas pracy 90 minut ARKUSZ I STYCZEŃ ROK 2006 Instrukcja dla zdającego 1. Sprawdź, czy arkusz

Bardziej szczegółowo

Przetwarzanie równoległe Zadanie domowe III

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,

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Bardziej szczegółowo

Strategia "dziel i zwyciężaj"

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

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

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ą

Bardziej szczegółowo

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych Wykład 5 Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych Spis treści: 1. Klasyfikacja Flynna 2. Klasyfikacja Skillicorna 3. Klasyfikacja architektury systemów pod względem

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 14 Procesory równoległe Klasyfikacja systemów wieloprocesorowych Luźno powiązane systemy wieloprocesorowe Każdy procesor ma własną pamięć główną i kanały wejścia-wyjścia.

Bardziej szczegółowo

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

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s]. Zadanie 1. Wiązka zadań Od szczegółu do ogółu Rozważmy następujący algorytm: Dane: Algorytm 1: k liczba naturalna, A[1...2 k ] tablica liczb całkowitych. n 1 dla i=1,2,,k wykonuj n 2n s 1 dopóki s

Bardziej szczegółowo

Algorytmy numeryczne 1

Algorytmy numeryczne 1 Algorytmy numeryczne 1 Wprowadzenie Obliczenie numeryczne są najważniejszym zastosowaniem komputerów równoległych. Przykładem są symulacje zjawisk fizycznych, których przeprowadzenie sprowadza się do rozwiązania

Bardziej szczegółowo

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................

Bardziej szczegółowo

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

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

Bardziej szczegółowo

MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018

MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018 Analiza efektywności mnożenia macierzy w systemach z pamięcią współdzieloną MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018 1 Mnożenie macierzy dostęp do pamięci podręcznej

Bardziej szczegółowo

Programowanie równoległe

Programowanie równoległe Programowanie równoległe ELEMENTARNE ALGORYTMY (NA PODSTAWIE KSIAŻKI CZECHA) Andrzej Baran baran@kft.umcs.lublin.pl CHARAKTERYSTYKA ILOŚCIOWA ALGORYTMÓW Przez algorytm równoległy (AR) rozumiemy pewną liczbą

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

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

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p. Analiza numeryczna Kurs INP002009W Wykłady 6 i 7 Rozwiązywanie układów równań liniowych Karol Tarnowski karol.tarnowski@pwr.wroc.pl A-1 p.223 Plan wykładu Podstawowe pojęcia Własności macierzy Działania

Bardziej szczegółowo

Algorytmy sortujące 1

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

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część IV - Model PRAM

Algorytmy Równoległe i Rozproszone Część IV - Model PRAM Algorytmy Równoległe i Rozproszone Część IV - Model PRAM Ł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

Bardziej szczegółowo

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór

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

Bardziej szczegółowo

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional

Bardziej szczegółowo

Modelowanie procesów współbieżnych

Modelowanie procesów współbieżnych Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.

Bardziej szczegółowo

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

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ę

Bardziej szczegółowo

Analiza ilościowa w przetwarzaniu równoległym

Analiza ilościowa w przetwarzaniu równoległym Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 Analiza ilościowa w przetwarzaniu równoległym 10. Analiza ilościowa w przetwarzaniu równoległym...2 10.1 Kryteria efektywności przetwarzania równoległego...2

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 1 dr inż. Literatura ogólna Ben-Ari, M.: Podstawy programowania współbieżnego i rozproszonego. Wydawnictwa Naukowo-Techniczne, Warszawa, 2009. Czech, Z.J:

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Programowanie Współbieżne. Wstęp

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

Bardziej szczegółowo

Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady:

Wymiar musi być wyrażeniem stałym typu całkowitego, tzn. takim, które może obliczyć kompilator. Przykłady: 5 Tablice Tablica jest zestawem obiektów (zmiennych) tego samego typu, do których można się odwołać za pomocą wspólnej nazwy. Obiekty składowe tablicy noszą nazwę elementów tablicy. Dostęp do nich jest

Bardziej szczegółowo

Wydajność komunikacji grupowej w obliczeniach równoległych. Krzysztof Banaś Obliczenia wysokiej wydajności 1

Wydajność komunikacji grupowej w obliczeniach równoległych. Krzysztof Banaś Obliczenia wysokiej wydajności 1 Wydajność komunikacji grupowej w obliczeniach równoległych Krzysztof Banaś Obliczenia wysokiej wydajności 1 Sieci połączeń Topologie sieci statycznych: Sieć w pełni połączona Gwiazda Kraty: 1D, 2D, 3D

Bardziej szczegółowo

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

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

Bardziej szczegółowo

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 metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych Piotr Modliński Wydział Geodezji i Kartografii PW 13 stycznia 2012 P. Modliński, GiK PW Rozw.

Bardziej szczegółowo

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

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

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Projektowanie i analiza algorytmów

Projektowanie i analiza algorytmów POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Projektowanie i analiza algorytmów www.pk.edu.pl/~zk/piaa_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

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

Bardziej szczegółowo

Numeryczna algebra liniowa

Numeryczna algebra liniowa 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

Bardziej szczegółowo

Informatyka A. Algorytmy

Informatyka A. Algorytmy Informatyka A Algorytmy Spis algorytmów 1 Algorytm Euklidesa....................................... 2 2 Rozszerzony algorytm Euklidesa................................ 2 3 Wyszukiwanie min w tablicy..................................

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

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

Bardziej szczegółowo

Mnożenie macierzy. Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność

Mnożenie macierzy. Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność Mnożenie macierzy Systemy z pamięcią współdzieloną Systemy z pamięcią rozproszoną Efektywność Literatura: Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; 1 Mnożenie macierzy dostęp do

Bardziej szczegółowo

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

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

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

Bardziej szczegółowo

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................

Bardziej szczegółowo

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

dr inż. Rafał Klaus Zajęcia finansowane z projektu Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle POKL Architektura komputerów wprowadzenie materiał do wykładu 3/3 dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

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

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Metody konstrukcji algorytmów: Siłowa (ang. brute force), Dziel i zwyciężaj (ang. divide-and-conquer), Zachłanna (ang.

Bardziej szczegółowo

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76 . p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2011 KOD WPISUJE ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY

Bardziej szczegółowo

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące

Bardziej szczegółowo

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system. Wstęp Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system. Przedstawienie architektur sprzętu wykorzystywanych do

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

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

Bardziej szczegółowo

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika

Wyk lad 4 Dzia lania na macierzach. Określenie wyznacznika Wyk lad 4 Dzia lania na macierzach Określenie wyznacznika 1 Określenie macierzy Niech K bedzie dowolnym cia lem oraz niech n i m bed a dowolnymi liczbami naturalnymi Prostokatn a tablice a 11 a 12 a 1n

Bardziej szczegółowo

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1 Literatura 1. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010, 2013 2. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 3. Designing

Bardziej szczegółowo

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

UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne Układy równań liniowych Rozpatruje się układ n równań liniowych zawierających n niewiadomych: a11x1 a12x2... a1nxn b1 a21x1 a22x2... a2nxn b2... an 1x1 an2x2...

Bardziej szczegółowo

Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla roku.ak. 2015/2016 Rafał Walkowiak,

Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla roku.ak. 2015/2016 Rafał Walkowiak, Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla roku.ak. 2015/2016 Rafał Walkowiak, 30.01.2016 Zagadnienia sprzętowe w przetwarzaniu równoległym 1.1 Procesory systemu równoległego

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad Elementy projektowania inzynierskiego Definicja zmiennych skalarnych a : [S] - SPACE a [T] - TAB - CTRL b - SHIFT h h. : / Wyświetlenie wartości zmiennych a a = b h. h. = Przykładowe wyrażenia

Bardziej szczegółowo

Zasady analizy algorytmów

Zasady analizy algorytmów Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania

Bardziej szczegółowo

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi:

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi: Przetwarzanie równoległe PROJEKT OMP Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego w komputerze równoległym z procesorem wielordzeniowym z pamięcią współdzieloną.

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4 Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Nr 4 Algorytmy sortowania zewnętrznego 1 Wstęp Bardzo często przy rozwiązywaniu praktycznych

Bardziej szczegółowo

PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY

PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY Informatyka w Edukacji, XV UMK Toruń, 2018 PROGRAMOWANIE W PYTHONIE ALGORYTMY TABLICOWE A LISTY Grażyna Szabłowicz-Zawadzka http://metodycy.torun.pl/ m.informatyka@metodycy.torun.pl 1. Lista typ sekwencyjny

Bardziej szczegółowo

Algorytmy i Struktury Danych

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

Bardziej szczegółowo

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu Literatura 1. Introduction to Parallel Computing; Grama, Gupta, Karypis, Kumar; Addison Wesley 2003 2. Wprowadzenie do obliczeń równoległych, Zbigniew Czech, Wydawnictwo Naukowe PWN, 2010. 3. Designing

Bardziej szczegółowo

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 3 2 Złożoność obliczeniowa algorytmów Notacja wielkie 0 Notacja Ω i Θ Algorytm Hornera Przykłady rzędów

Bardziej szczegółowo

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 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

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY Z INFORMATYKI POZIOM PODSTAWOWY

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl

Luty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Podstawy OpenCL część 2

Podstawy OpenCL część 2 Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Programowanie rekurencyjne: ZALETY: - prostota - naturalność sformułowania WADY: - trudność w oszacowaniu zasobów (czasu i pamięci) potrzebnych do realizacji Czy jest możliwe wykorzystanie

Bardziej szczegółowo

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1 Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).

Bardziej szczegółowo

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

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

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Algorytmy i Struktury Danych

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 9: Programowanie

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

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

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

Bardziej szczegółowo

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata MACIERZE Sobiesiak Łukasz Wilczyńska Małgorzata Podstawowe pojęcia dotyczące macierzy Nie bez przyczyny zaczynamy od pojęcia macierzy, które jest niezwykle przydatne we wszystkich zastosowaniach, obliczeniach

Bardziej szczegółowo

Sortowanie przez wstawianie

Sortowanie przez wstawianie Sortowanie przez wstawianie Wykład 1 26 lutego 2019 (Wykład 1) Sortowanie przez wstawianie 26 lutego 2019 1 / 25 Outline 1 Literatura 2 Algorytm 3 Problem sortowania Pseudokod 4 Sortowanie przez wstawianie

Bardziej szczegółowo

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym

Bardziej szczegółowo