PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.
|
|
- Edward Michałowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 P O L I T E C H N I K A S Z C Z E C I Ń S K A Wydział Informatyki PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP. Autor: Wojciech Zatorski Szczecin, 2006
2 Naszym zadaniem było wykonanie kilkunastu testów mnożenia macierzy metodą blokową oraz klasyczna z wykorzystaniem środowiska OpenMP i na podstawie tych testów wyciągnięcie wniosków. OpenMP to jednolite środowisko dyrektyw zrównoleglających dla maszyn z pamięcią wspólną. OpenMP rozszerza sekwencyjny model programowania o Single-Program Multiple Data (SPMD), pracę dzieloną i synchronizację, oraz wspomaga operowanie na wspólnych i prywatnych danych. Równoległość programu musimy wskazać jawnie i do nas należy przewidywanie wszelkich zależności, konfliktów i uwarunkowań. Zostały wykonane testy dla macierzy kwadratowych o wymiarach :10x10, 20x20, 30x30, 90x90, 100x100, 150x150, 200x200, 250x250, 300x300, 500x500, 1000x1000, a także 600x600, 800x800, 1000x1000, 1200x1200, 1400x1400. Każda macierz zawiera wartości dwucyfrowe wygenerowane losowo rozdzielone spacją oraz każdy wiersz macierzy rozdzielony pojedynczym enterem. Przykładowy wygenerowany plik dla macierzy A i B o rozmiarze 10x10 wygląda:
3 a dla macierzy A i B zmiennoprzecinkowej o rozmiarze 10x10 wygląda: Czas mnożenia macierzy jest obliczany za pomocą prostej procedury zwracającej aktualny czas w sekundach i milisekundach. Procedura jest wywoływana przed każdym mnożeniem macierzy oraz po mnożeniu, a następnie obliczana jest różnica, która jest podawana w niniejszym sprawozdaniu. Procedura podająca aktualny czas przedstawia się następująco: double second() { struct timeval tm; double t; gettimeofday(&tm,null); t = (double) (tm.tv_sec) + ((double) (tm.tv_usec))/1.0e6; return t; } Zostały napisane dwa odrębne programy, jeden dla metody klasycznej, drugi dla metody blokowej wczytujące z pliku macierze, a następnie wykonujące operacje mnożenia. W wyniku (na ekran) zwracany jest czas obliczeń np. 100x100 = Wykonano również modyfikacje na kopiach w/w programów umożliwiające wczytywanie i mnożenie liczb zmiennoprzecinkowych. 3
4 Fragment kodu odpowiedzialny za mnożenie macierzy metodą klasyczną (program A): #pragma omp parallel { #pragma omp for private(j,k) for (i=0; i<ry; i++) for (j=0; j<rx; j++) { for (k=0; k<ry; k++) { tab3[i][j]=tab3[i][j]+(tab1[i][k]*tab2[k][j]); } } } Zmodyfikowane mnożenie macierzy metodą klasyczną (program B): #pragma omp parallel { #pragma omp for private(j,k,suma) for (i=0; i<ry; i++) for (j=0; j<rx; j++) { suma=0; for (k=0; k<ry; k++) { suma+=tab1[i][k]*tab2[k][j]; } tab3[i][j]=suma; } } Fragment kodu odpowiedzialny za mnożenie macierzy metodą blokową: #pragma omp parallel { #pragma omp for private(i,j,k,x,y,z) schedule(runtime) for (x=0; x<n_prime; x++) for (y=0; y<n_prime; y++) for (z=0; z<n_prime; z++) for (i=x*sub_n; i<(x+1)*sub_n; i++) for (j=y*sub_n; j<(y+1)*sub_n; j++) for (k=z*sub_n; k<(z+1)*sub_n; k++) tab3[i][j] += tab1[i][k] * tab2[k][j]; } 4
5 Zostały wykonane testy dla 1,2,3,4 oraz 8 wątków (ustalanych statycznie za pomocą zmiennej OMP_NUM_THREADS) na podanych wcześniej macierzach z wykorzystaniem prostego skryptu zawierającego: export OMP_NUM_THREADS=1./mac_klas 10x10.mac./mac_klas 20x20.mac./mac_klas 30x30.mac./mac_klas 90x90.mac./mac_klas 100x100.mac./mac_klas 150x150.mac./mac_klas 200x200.mac./mac_klas 250x250.mac./mac_klas 300x300.mac./mac_klas 500x500.mac./mac_klas 1000x1000.mac (...) export OMP_NUM_THREADS=1./mac_block 10x10.mac./mac_block 20x20.mac./mac_block 30x30.mac./mac_block 90x90.mac./mac_block 100x100.mac./mac_block 150x150.mac./mac_block 200x200.mac./mac_block 250x250.mac./mac_block 300x300.mac./mac_block 500x500.mac./mac_block 1000x1000.mac (...) 5
6 JOTA 1 Obliczenia wykonane na JOTA 1 przedstawiają się następująco: Metoda blokowa threads x10 0, , , , , x20 0, , , , , x30 0, , , , , x90 0, , , , , x100 0, , , , , x150 0, , , , , x200 0, , , , , x250 0, , , , , x300 0, , , , , x500 1, , , , , x , , , , , Metoda klasyczna threads x10 0, , , , , x20 0, , , , , x30 0, , , , , x90 0, , , , , x100 0, , , , , x150 0, , , , , x200 0, , , , , x250 0, , , , , x300 0, , , , , x500 3, , , , , x , , , , , Najlepiej różnice w działaniu algorytmu widać na największej mnożonej macierzy 1000x1000, gdzie różnice są dosyć sporawe (w sekundach), metoda klasyczna jest prawie dwukrotnie wolniejsza na jednym wątku w porównaniu z metodą blokową. Natomiast w przypadku dwóch wątków działanie metody blokowej dłużej niż klasycznej jest niewytłumaczalne (testy przeprowadzone zostały dwukrotnie), widocznie w tym momencie większy dostęp do procesorów miały inne procesy lub urządzenia (I/O).
7 JOTA 4 Obliczenia dla porównania wykonano również na JOTA 4 i wyglądają następująco: Metoda blokowa threads x10 0, , , , , x20 0, , , , , x30 0, , , , , x90 0, , , , , x100 0, , , , , x150 0, , , , , x200 0, , , , , x250 0, , , , , x300 0, , , , , x500 1, , , , , x , , , , , Metoda klasyczna threads x10 0, , , , , x20 0, , , , , x30 0, , , , , x90 0, , , , , x100 0, , , , , x150 0, , , , , x200 0, , , , , x250 0, , , , , x300 0, , , , , x500 3, , , , , x , , , , , I tutaj również widać najlepiej na największej macierzy, że metoda blokowa jest znacznie wydajniejsza niezależnie od ilości wątków. W tym wypadku również na 2 wątkach metoda blokowa była wydajniejsza. Ogólnie czasy są porównywalne z tymi otrzymanymi z JOTA 1. Obie metody zadziałały najwydajniej na trzech wątkach, natomiast najgorzej metoda blokowa na 8, a klasyczna na 1 wątku. 7
8 Oprócz tego dodatkowo przeprowadzono testy dla macierzy 600x600, 800x800, 1000x1000, 1200x1200, 1400x1400 dla programu równoległego (1,2,3,4,8 wątków) oraz programu sekwencyjnego na tych samych danych metodą klasyczną oraz blokową. threads seq 600x600 3, , , , , , x800 9, , , , , , x , , , , , , x , , , , , , x , , , , , , x600 2, , , , , , x800 6, , , , , , x , , , , , , x , , , , , , x , , , , , , Procentowe różnice w porównaniu do programu sekwencyjnego wyglądają następująco: threads seq 600x x x x x x x x x x Jak widać na zamieszczonych tablicach nie opłaca się przeprowadzać zrównoleglenia dla jednego wątku, gdyż procedury tworzące wątek zmniejszają wydajność metody. Największą procentową wydajność uzyskano w porównaniu do metody sekwencyjnej na 4 wątkach zmodyfikowaną metodą klasyczną (program B). Metoda blokowa na 4 wątkach była w tej sytuacji mniej wydajna. Ogólny wniosek jaki wypływa z przeprowadzonego testu to, że zmodyfikowana metoda klasyczna jest wydajniejsza w porównaniu z metodą blokową dla wyżej przeprowadzonych testów. 8
9 Wszystkie testy zostały wykonane na maszynach dwuprocesorowych z procesorami Pentium 4 Xeon (2.8GHz) oraz pamięcią 2GB, graficznie rezultaty dla poszczególnych metod wyglądają następująco: JOTA 1 - metoda blokowa 60 time (seconds) thread 2 threads 3 threads 4 threads 8 threads 1000x x x x x x x100 90x90 30x30 20x20 10x10 JOTA 4 - metoda blokowa time (seconds) thread 2 threads 3 threads 4 threads 8 threads 1000x x x x x x x100 90x90 30x30 20x20 10x10 W przypadku małych macierzy rezultaty czasowe są poniżej 2 sekund, co skutkuje tym, że są na wyżej pokazanych wykresach ich wartości nierozpoznawalne. Skok czasu obliczeń następuje już od macierzy 300x300, gdzie prawie wykładniczo rośnie do góry. Im więcej wątków nie oznacza od razu lepszej wydajności, różne maszyny i różny rozkład prędkości działania wątków dla JOTA 1 to 2,4,8,1,3, a dla JOTA 4 8,1,2,4,3. 9
10 Dla metody klasycznej rozkład wątków jest identyczny co w metodzie blokowej, tutaj również widoczny skok długości obliczeń następuje od macierzy 300x300: JOTA 4 - metoda klasyczna time (seconds) thread 2 threads 3 threads 4 threads 8 threads JOTA 1 - metoda klasyczna 30 time (seconds) thread 2 threads 3 threads 4 threads 8 threads
11 Porównaniu obu metod pod względem wydajności czasowej wygląda następująco: JOTA 1 threads x10 16% 7% 7% 22% 2% 20x20 3% -6% -19% 13% -19% 30x30 0% 19% 13% 51% -18% 90x90 3% -11% -109% 25% 5% 100x100 1% 0% 52% -35% 30% 150x150 20% 18% 30% 2% 13% 200x200 30% 57% 19% 13% 3% 250x250 31% 30% 47% -9% 5% 300x300 37% 40% 17% 22% 6% 500x500 46% -1% 40% 21% 66% 1000x % -140% 51% -106% 28% JOTA 4 threads x10-79% 2% 24% 15% 29% 20x20 3% 12% -15% 39% -51% 30x30-91% -27% 1% -14% 1% 90x90-56% -9% -141% 13% 29% 100x100-34% -83% -14% 5% 43% 150x150-49% 53% -78% -69% 4% 200x200 20% 33% 19% 24% -4% 250x250 31% 33% 27% 21% 19% 300x300 35% -21% 20% -29% 18% 500x500 45% -2% -171% 36% 16% 1000x % 39% 28% 45% 23% Największy wzrost wydajności uzyskujemy na 1 wątku w metodzie blokowej. Gdy zwiększa się ilość wątków tym mniejszy zysk w porównaniu z 1 wątkiem i niestety niekiedy ten zysk zamienia się w stratę (jeśli chodzi o JOTA 1). Najlepszy czas uzyskano dla 3 wątków ale wzrost wydajności pomiędzy metodami jest jednym z najmniejszych dla JOTA 4 (choć dalej jest przewaga), natomiast dla JOTA 1 wyszedł największy (choć nie jest wiadome skąd taki rezultat). W niektórych obliczeniach wydajniejsza była metoda klasyczna co widać szczególnie na JOTA 1 (w przypadku największej macierzy). Ze względu na działanie innych aplikacji i osób na serwerach trudno jest dojść do jednoznacznych wniosków. 11
12 Jednymi z ostatnich wykonanych testów był pomiar wydajności czasowej dla klauzuli schedule z parametrami static oraz dynamic oraz kwantem 5%,10%,20% (jednego rozmiaru macierzy) JOTA 3 OMP_SCHEDULE="static[5%,10%,20%]" threads classic bloc 100x100 0, , , , , , , , x200 0, , , , , , , , x300 0, , , , , , , , x500 3, , , , , , , , x100 0, , , , , , , , x200 0, , , , , , , , x300 0, , , , , , , , x500 2, , , , , , , , x100 0, , , , , , , , x200 0, , , , , , , , x300 0, , , , , ,4457 0, , x500 2, , , , , , , , OMP_SCHEDULE="dynamic[5%,10%,20%]" threads classic bloc 100x100 0, , , , , , , , x200 0, , , , , , , , x300 0, , , , , , , , x500 2, , , , , , , , x100 0, , , , , , , , x200 0, , , , , , , , x300 0, , , , , , , , x500 2, , , , , , , , x100 0, , , , , , , , x200 0, , , , , , , , x300 0, , , , , , , , x500 2, , , , , , , , W rezultacie można stwierdzić, że ogólnie parametr dynamic powodował nieznaczne zmniejszenie czasu obliczeń w porównaniu do parametru static. Natomiast kwant miał wpływ na metodę blokową powodując znaczący wzrost czasu obliczeń dla 4 i 8 wątków w przypadku zwiększania kwanta niezależnie od parametru static/dynamic. Ze względu na małą czytelność uzyskanych wyników przeprowadzono testy również dla większych macierzy. 12
13 JOTA 1 OMP_SCHEDULE="static[5%,10%,15%]" threads classic bloc 600x600 4,07 2,14 2,19 2,45 3,05 2,58 3,05 5,80 800x800 9,87 7,26 5,34 5,86 7,13 6,50 11,35 14, x ,45 14,08 10,68 13,06 14,32 8,25 14,52 27, x ,90 23,38 20,87 26,43 24,73 14,34 24,95 46, x ,33 41,23 48,08 55,05 38,68 22,97 125,50 75,15 600x600 5,35 3,37 2,51 2,46 2,94 4,02 5,71 11,26 800x800 14,41 6,86 5,89 5,83 6,90 10,49 13,12 26, x ,08 13,45 12,23 12,74 13,86 26,38 25,05 50, x ,06 25,31 25,24 40,19 24,11 31,78 44,71 90, x ,06 53,48 52,01 52,17 38,31 52,76 73,72 139,60 600x600 4,28 3,10 2,27 2,49 2,98 4,00 5,87 10,49 800x800 10,10 6,87 5,80 6,01 7,11 9,35 13,54 25, x ,07 22,79 12,77 12,89 13,91 20,67 26,55 52, x ,14 25,20 25,40 25,64 24,80 37,94 46,38 87, x ,38 52,01 48,14 50,25 39,08 52,51 73,84 139,15 OMP_SCHEDULE="dynamic[5%,10%,15%]" threads classic bloc 600x600 3,97 2,10 2,14 2,19 2,91 1,53 3,86 5,15 800x800 9,61 7,06 5,19 5,34 7,09 6,42 7,35 12, x ,94 15,66 10,39 11,19 13,84 7,08 14,52 24, x ,82 24,66 20,25 23,39 23,98 12,07 24,97 41, x ,52 30,33 52,25 46,53 37,66 25,07 39,80 68,03 600x600 3,96 2,11 2,19 2,83 2,97 3,37 5,54 11,37 800x800 9,42 7,12 5,06 5,40 7,02 7,80 13,48 27, x ,58 14,14 10,40 11,21 13,74 15,80 29,20 52, x ,28 17,38 22,13 22,74 24,06 27,26 43,78 78, x ,88 28,96 60,18 49,95 38,30 42,69 70,10 125,93 600x600 3,98 3,04 2,26 2,26 2,92 3,32 5,38 9,99 800x800 9,65 7,19 5,02 5,36 7,07 7,94 12,90 26, x ,74 10,13 10,30 11,53 13,92 15,64 25,40 52, x ,39 17,64 20,76 23,72 24,88 28,18 43,79 78, x ,23 29,79 38,99 48,26 37,59 55,51 69,39 143,27 Wcześniejsze wnioski potwierdzają się na w/w większych wielkościach macierzy, gdzie dokładnie widać jaki wpływ na metodę blokową miało zwiększanie kwanta, czasy rosną 13
14 prawie dwukrotnie. W przypadku metody klasycznej trudno jest wnioskować jednoznacznie (nawet już na tak dużych macierzach) jaki wpływ ma zmiana wielkości kwanta oraz schedule. Zmiany wielkości czasowych można powiedzieć są losowe, nie widać tutaj żadnej zależności. Graficzne przedstawienie niektórych uzyskanych rezultatów: METODA KLASYCZNA static 5%,10%,15% 120,0 100,0 80,0 60,0 40, ,0 0,0 5% 5% 5% 10% 10% 15% 15% 15% Rysunek 1 Na powyższym wykresie widać, że zwiększanie kwantu powoduje skok czasu obliczeń, choć niektóre w wyniki przy 15% wartości kwanta są lepsze, niż przy 10%. Im większe macierze tym bardziej wyrównane wyniki czasowe, jedynie w przypadku operacji na 1 wątku czas wybija się ponad przeciętność. 14
15 dynamic 5%,10%,15% 70,0 60,0 50,0 40,0 30, ,0 10,0 0,0 5% 5% 5% 10% 10% 15% 15% 15% Rysunek 2 METODA BLOKOWA static 5%,10%,15% 140,0 120,0 100,0 80,0 60, ,0 20,0 0,0 5% 5% 5% 10% 10% 15% 15% 15% Rysunek 3 15
16 dynamic 5%,10%,15% 160,0 140,0 120,0 100,0 80,0 60, ,0 20,0 0,0 5% 5% 5% 10% 10% 15% 15% 15% Rysunek 4 Podsumowując 4 ostatnie wykresy można powiedzieć, że w metodzie blokowej przy static i dynamic dla 8 wątków najgorzej wypadają obliczenia, zajmują nieporównywalnie więcej czasu niż przy mniejszej ilości wątków, co różni się znacząco od metody klasycznej, gdzie wyniki czasowe były porównywalne nawet i dla 8 wątków.w blokowej static najlepsze rezultaty osiągnięto dla najmniejszej procentowej wartości (czyli dla 5%), natomiast blokowej dynamic rezultaty rozkładają się nieznacznie rosnąco z zyskiem również dla 5%, Najwydajniejsza czasowo okazała się metoda klasyczna przy zastosowanych rozmiarach kwantów. Ostatnimi testami jakie przeprowadzono było wykonanie testów na liczbach zmiennoprzecinkowych, jaki mają wpływ na szybkość obliczeń. 16
17 JOTA 3 Metoda klasyczna (zmiennoprzecinkowe) threads seq 600x600 6, , , , , , x800 15, , , , , , x , , , , , , x , , , , , , x , , , , , ,87497 Metoda blokowa (zmiennoprzecinkowe) threads seq 600x600 3, , , , , , x800 7, , , , , , x , , , , , , x , , , , , , x , , , , , ,59089 Jak widać na przedstawionych tabelach, użycie liczb zmiennoprzecinkowych diametralnie zwiększa czas obliczeń w porównaniu z liczbami całkowitymi w przypadku metody klasycznej, przy największych macierzach różnice sięgają nawet dwukrotnemu spadkowi wydajności. Natomiast metoda blokowa nie wykazuje większych różnic czasowych pomiędzy różnymi typami liczb. Procentowe różnice w porównaniu do programu sekwencyjnego wyglądają następująco: - dla metody klasycznej threads x ,40 55,30 54,24 55,66 56, x800 98,35 60,31 56,78 54,65 57, x ,55 58,00 62,81 58,51 63, x ,37 102,24 66,04 61,15 74, x ,22 75,56 71,67 79,16 86, Najlepsze czasy uzyskano dla 3 i 4 wątków, tak więc nie widać różnicy pomiędzy typami zmiennych, a najgorsze dla 1 wątku równoległego co również zgadza się z poprzednimi obliczeniami. 17
18 - dla metody blokowej threads x ,31 102,19 64,06 95,61 180, x ,54 82,34 63,58 98,19 136, x ,06 56,07 60,01 102,67 128, x ,42 55,20 66,33 99,57 125, x ,99 66,23 60,46 95,37 122, Najgorzej wypadły testy dla 8 wątków, tak samo jak dla poprzednich testów, a najlepiej dla 3 wątków. 18
Przetwarzanie Równoległe i Rozproszone
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNOLOGII INFORMACYJNYCH Przetwarzanie Równoległe i Rozproszone www.pk.edu.pl/~zk/prir_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl
Bardziej szczegółowoPrzygotowanie 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ółowoCUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu
CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki
Bardziej szczegółowoTworzenie 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ółowoPrzykł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ółowoProcesy i wątki. Krzysztof Banaś Obliczenia równoległe 1
Procesy i wątki Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Proces: ciąg rozkazów (wątek główny) i ewentualnie inne wątki stos (wątku głównego) przestrzeń adresowa dodatkowe elementy tworzące
Bardziej szczegółowoPrzykładowe sprawozdanie. Jan Pustelnik
Przykładowe sprawozdanie Jan Pustelnik 30 marca 2007 Rozdział 1 Sformułowanie problemu Tematem pracy jest porównanie wydajności trzech tradycyjnych metod sortowania: InsertionSort, SelectionSort i BubbleSort.
Bardziej szczegółowoLiteratura. 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ółowoLABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Bardziej szczegółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:
Bardziej szczegółowo10/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ółowoProgramowanie systemów z pamięcią wspólną specyfikacja OpenMP. Krzysztof Banaś Obliczenia równoległe 1
Programowanie systemów z pamięcią wspólną specyfikacja OpenMP Krzysztof Banaś Obliczenia równoległe 1 OpenMP Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowoRó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ółowoWyklad 11 Języki programowania równoległego
Wyklad 11 Języki programowania równoległego Części wykładu: 1. Środowisko programu równoległego - procesy i wątki 2. Podstawowe problemy języków programowania równoległego 3. Języki programowania w środowisku
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna
Bardziej szczegółowoNumeryczna 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ółowoLiteratura. 3/26/2018 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ółowoMacierze RAID MARCEL GAŃCZARCZYK 2TI 1
Macierze RAID MARCEL GAŃCZARCZYK 2TI 1 Macierze RAID (Redundant Array of Independent Disks - nadmiarowa macierz niezależnych dysków Redundant Array of Inexpensive Disks - nadmiarowa macierz niedrogich
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoZa pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).
Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z
Bardziej szczegółowoPROBLEMATYKA OBLICZEŃ MASOWYCH W NAUKACH O ZIEMI. Satelitarny monitoring środowiska
Satelitarny monitoring środowiska Dane satelitarne to obecnie bardzo ważne źródło informacji o powierzchni Ziemi i procesach na niej zachodzących. Obliczono, że na początku roku 2014 na orbitach okołoziemskich
Bardziej szczegółowoKryptografia na procesorach wielordzeniowych
Kryptografia na procesorach wielordzeniowych Andrzej Chmielowiec andrzej.chmielowiec@cmmsigma.eu Centrum Modelowania Matematycznego Sigma Kryptografia na procesorach wielordzeniowych p. 1 Plan prezentacji
Bardziej szczegółowoElementy składowe: Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
OpenMP Elementy składowe: o o o dyrektywy dla kompilatorów funkcje biblioteczne zmienne środowiskowe Przenośność oprogramowania Model SPMD Szczegółowe wersje (bindings) dla różnych języków programowania
Bardziej szczegółowoRó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ółowoRó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ółowoTworzenie 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ółowoProgramowanie 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ółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci
Bardziej szczegółowoWykorzystanie architektury Intel MIC w obliczeniach typu stencil
Wykorzystanie architektury Intel MIC w obliczeniach typu stencil Kamil Halbiniak Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok IV Instytut Informatyki Teoretycznej i Stosowanej
Bardziej szczegółowoTablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu
Bardziej szczegółowoSkalowalność 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
Bardziej szczegółowoProgramowanie dynamiczne
Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem
Bardziej szczegółowoCele RAID. RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków.
Macierze RAID Cele RAID RAID z ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków. - zwiększenie niezawodności (odporność na awarie), - zwiększenie wydajności transmisji
Bardziej szczegółowoPROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK
1 PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK POLITECHNIKA CZĘSTOCHOWSKA 2 Trendy rozwoju współczesnych procesorów Budowa procesora CPU na przykładzie Intel Kaby Lake
Bardziej szczegółowoWprowadzenie do OpenMP
Wprowadzenie do OpenMP OZUKO Kamil Dworak OZUKO Wprowadzenie do OpenMP Kamil Dworak 1 / 25 OpenMP (ang. Open Multi-Processing) opracowany w 1997 przez radę Architecture Review Board, obliczenia rówoległe
Bardziej szczegółowoAlgorytm 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
Bardziej szczegółowoALGORYTMY I STRUKTURY DANYCH
KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
Bardziej szczegółowoTask Parallel Library
Task Parallel Library Daan Leijen, Wolfram Schulte, and Sebastian Burckhardt prezentacja Michał Albrycht Agenda O potrzebie zrównoleglania Przykłady użycia TPL Tasks and Replicable Tasks Rozdzielanie zadań
Bardziej szczegółowoPodstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
Bardziej szczegółowoSchematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.
Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:
Bardziej szczegółowoSprawozdanie do 5. Projektu z Algorytmów i struktur danych 1
Sprawozdanie do 5. Projektu z Algorytmów i struktur danych 1 1. Złożoność obliczeniowa operacji wstawiania i usuwania elementów kolejki dla sterty dwu i trójkierunkowej Powyższy problem badano porównując
Bardziej szczegółowoTworzenie 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ółowoProgramowanie współbieżne Wykład 2. Iwona Kochańska
Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas
Bardziej szczegółowoEFEKTYWNOŚĆ 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ółowoPamięci masowe. ATA (Advanced Technology Attachments)
Pamięci masowe ATA (Advanced Technology Attachments) interfejs systemowy w komputerach klasy PC i Amiga przeznaczony do komunikacji z dyskami twardymi zaproponowany w 1983 przez firmę Compaq. Używa się
Bardziej szczegółowoAlgorytmy 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ółowoANALIZA 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ółowoMacierzowe 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ółowoZapoznanie 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ółowoProgramowanie Rozproszone i Równoległe
Programowanie Rozproszone i Równoległe OpenMP (www.openmp.org) API do pisania wielowątkowych aplikacji Zestaw dyrektyw kompilatora oraz procedur bibliotecznych dla programistów Ułatwia pisanie programów
Bardziej szczegółowoAiSD zadanie trzecie
AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania
Bardziej szczegółowoWydajność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1
Wydajność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Wydajność obliczeń równoległych Podobnie jak w obliczeniach sekwencyjnych, gdzie celem optymalizacji wydajności było maksymalne
Bardziej szczegółowoZadania 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ółowoJak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski
Jak ujarzmić hydrę czyli programowanie równoległe w Javie dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski Prawo Moore a Ekonomicznie optymalna liczba tranzystorów w układzie scalonym zwiększa się
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium)
Język C, tablice i funkcje (laboratorium) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowoPodstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Bardziej szczegółowoProgramowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1
Programowanie procesorów graficznych GPGPU Krzysztof Banaś Obliczenia równoległe 1 OpenCL projektowanie kerneli Przypomnienie: kernel program realizowany przez urządzenie OpenCL wątek (work item) rdzeń
Bardziej szczegółowoPodstawy 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ółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowoProgramowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1
Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1 Organizacja przedmiotu Dr inż. Robert Banasiak Dr inż. Paweł Kapusta 1 2 Nasze kompetencje R n D Tomografia 3D To nie tylko statyczny obraz!
Bardziej szczegółowoMetody optymalizacji soft-procesorów NIOS
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowoPrzetwarzanie 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
Bardziej szczegółowo5. 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Ćwiczenie 6. Transformacje skali szarości obrazów
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 6. Transformacje skali szarości obrazów 1. Obraz cyfrowy Obraz w postaci cyfrowej
Bardziej szczegółowo- - Ocena wykonaniu zad3. Brak zad3
Indeks Zad1 Zad2 Zad3 Zad4 Zad Ocena 20986 218129 ocena 4 Zadanie składa się z Cw3_2_a oraz Cw3_2_b Brak opcjonalnego wywołania operacji na tablicy. Brak pętli Ocena 2 Brak zad3 Ocena wykonaniu zad3 po
Bardziej szczegółowoAnaliza 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ółowoKomputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI
Komputerowe Obliczenia Równoległe: Wstęp do OpenMP i MPI Patryk Mach Uniwersytet Jagielloński, Instytut Fizyki im. Mariana Smoluchowskiego OpenMP (Open Multi Processing) zbiór dyrektyw kompilatora, funkcji
Bardziej szczegółowoProgramowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1
Programowanie procesorów graficznych GPGPU Krzysztof Banaś Obliczenia równoległe 1 Projektowanie kerneli Zasady optymalizacji: należy maksymalizować liczbę wątków (w rozsądnych granicach, granice zależą
Bardziej szczegółowoInformatyka I Lab 06, r.a. 2011/2012 prow. Sławomir Czarnecki. Zadania na laboratorium nr. 6
Informatyka I Lab 6, r.a. / prow. Sławomir Czarnecki Zadania na laboratorium nr. 6 Po utworzeniu nowego projektu, dołącz bibliotekę bibs.h.. Największy wspólny dzielnik liczb naturalnych a, b oznaczamy
Bardziej szczegółowoWysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych
Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych Ł. Kuczyński, M. Woźniak, R. Wyrzykowski Instytut Informatyki Teoretycznej i Stosowanej
Bardziej szczegółowoLab 8. Tablice liczbowe cd,. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 8. Tablice liczbowe cd,. Operacje macierzowo-wektorowe, memcpy, memmove, memset. Wyrażenie warunkowe. 1. Wektory i macierze: a. Przykład
Bardziej szczegółowoPodstawy 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ółowoRó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
Bardziej szczegółowoTablice jednowymiarowe
Tablice jednowymiarowe Gdy mamy do czynienia z zestawem zmiennych, to można z nich zrobić tablicę. Tablica jest ciągiem elementów tego samego typu, który zajmuje ciągły obszar pamięci. Korzyść z zastosowania
Bardziej szczegółowoWarsztaty dla nauczycieli
WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne
Bardziej szczegółowoWYMAGANIA Z MATEMATYKI NA POSZCZEGÓLNE OCENY KLASYFIKACYJNE DLA UCZNIÓW KLAS TRZECICH. Sposoby sprawdzania wiedzy i umiejętności uczniów
WYMAGANIA Z MATEMATYKI NA POSZCZEGÓLNE OCENY KLASYFIKACYJNE DLA UCZNIÓW KLAS TRZECICH Sposoby sprawdzania wiedzy i umiejętności uczniów 1. Odpowiedzi ustne. 2. Sprawdziany pisemne. 3. Kartkówki. 4. Testy.
Bardziej szczegółowoRAID 1. str. 1. - w przypadku różnych szybkości cała macierz będzie pracowała z maksymalną prędkością najwolniejszego dysku
RAID 1 RAID (ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków) - polega na współpracy dwóch lub więcej dysków twardych w taki sposób, aby zapewnić dodatkowe możliwości,
Bardziej szczegółowoKod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.
Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit
Bardziej szczegółowoWydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1
Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci
Bardziej szczegółowoNowoczesne technologie przetwarzania informacji
Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: PROGRAMOWANIE WSPÓŁBIEŻNE I ROZPROSZONE I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Uzyskanie przez studentów wiedzy na temat architektur systemów równoległych i rozproszonych,
Bardziej szczegółowoWidoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?
Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz
Bardziej szczegółowoPodstawy 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ółowoJak napisać program obliczający pola powierzchni różnych figur płaskich?
Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy
Bardziej szczegółowoCZEŚĆ PIERWSZA. Wymagania na poszczególne oceny,,matematyka wokół nas Klasa III I. POTĘGI
Wymagania na poszczególne oceny,,matematyka wokół nas Klasa III CZEŚĆ PIERWSZA I. POTĘGI Zamienia potęgi o wykładniku całkowitym ujemnym na odpowiednie potęgi o wykładniku naturalnym. Oblicza wartości
Bardziej szczegółowoAlgorytmy 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ółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoInstytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów
Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa Diagnostyka i niezawodność robotów Laboratorium nr 3 Generacja realizacji zmiennych losowych Prowadzący: mgr inż. Marcel Luzar Cele ćwiczenia: Generowanie
Bardziej szczegółowoXQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Bardziej szczegółowoAlgorytmy 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ółowoProgramowanie procesorów graficznych GPGPU
Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja
Bardziej szczegółowoAnaliza 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
Bardziej szczegółowoProgramowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2
Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2 1 program Kontynuujemy program który wczytuje dystans i ilości paliwa zużytego na trasie, ale z kontrolą danych. A więc jeśli coś
Bardziej szczegółowoAkademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Olimpiada O Diamentowy Indeks AGH 2017/18. Informatyka Etap III
Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Olimpiada O Diamentowy Indeks AGH 017/18 Informatyka Etap III Zadania po 17 punktów Zadanie 1 Dla pewnej N-cyfrowej liczby naturalnej obliczono
Bardziej szczegółowoZadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
Bardziej szczegółowo