Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla roku.ak. 2015/2016 Rafał Walkowiak,
|
|
- Szymon Majewski
- 7 lat temu
- Przeglądów:
Transkrypt
1 Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla roku.ak. 2015/2016 Rafał Walkowiak, Zagadnienia sprzętowe w przetwarzaniu równoległym 1.1 Procesory systemu równoległego wykonują w podanej kolejności operacje (każdą w sposób atomowy- niepodzielny) dostępu do zmiennych A,B,C (zmienne A i B leżą w tej samej linii pamięci podręcznej zmienna C natomiast w innej). Kolejność realizacji operacji przez procesory jest następująca: Kolejność Procesor operacja A+=B C=1 B=2*C A+=B B=3*C A+=B B=4*C A+=B nr procesor operacja B=C A+=B A+=B Przed przetwarzaniem pamięć podręczna nie zawiera danych. Dla poszczególnych operacji proszę określić w poszczególnych procesorach wystąpienie zdarzeń dotyczących ich lokalnej pamięci podręcznej: - pobranie danych do pamięci podręcznej, - unieważnienia linii danych w pamięci, - trafienia do pamięci. Dostęp (odczyt lub zapis) procesora do powyżej wymienionych danych jest możliwy za każdym razem pod warunkiem obecności ich w pamięci podręcznej. Obowiązuje protokół zapewnienia spójności bazujący na unieważnianiu nieaktualnych kopii linii pamięci podręcznej. 1.2 Procesory systemu równoległego wykonują w podanej kolejności instrukcje (każdą w sposób atomowy- niepodzielny) korzystając ze zmiennych współdzielonych przetwarzanych wątków, zmienne oznaczono A,B,C (zmienne A i C leżą w tej samej linii pamięci podręcznej natomiast każda zmienna B w innej linii). R1 i R2 oznaczają kolejne rejestry każdego z procesorów. Kolejność realizacji operacji przez procesory jest następująca: Kolejność Procesor operacja R1=B R1=C R1=R1+1 B=R1 A=R1 C=2*R2 Przed przetwarzaniem pamięć podręczna nie zawiera danych. Dla poszczególnych operacji proszę określić w poszczególnych procesorach wystąpienie zdarzeń dotyczących ich lokalnej pamięci podręcznej: - unieważnienia linii pamięci podręcznej w pp poszczególnych procesorów, - pobrań linii pamięci podręcznej danych do pp. Dostęp (odczyt lub zapis) procesora do danych jest możliwy za każdym razem pod warunkiem obecności ich aktualnej wartości w pamięci podręcznej. Obowiązuje protokół zapewnienia spójności bazujący na unieważnianiu nieaktualnych kopii linii pamięci podręcznej, pamięć jest dowolnie duża. 1.3 Poniżej zapisano kolejne dostępy do pamięci współdzielonej zrealizowane przez 4 procesory P1- P4. Procesory posiadają pamięć podręczną, w której powielone są przetwarzane dane. Odwołania do pamięci zapis i odczyt dotyczą zawsze jednego słowa danych np. 1R(3) oznacza odczyt przez pierwszy procesor trzeciego kolejno słowa licząc od początku wykorzystywanego obszaru. Wielkość linii pamięci podręcznej wynosi 4 słowa, a wykorzystywany obszar danych jest wyrównany do początku linii pamięci podręcznej. Proszę określić stan i zawartość pamięci podręcznej procesorów po wykonaniu wszystkich operacji. Ile nastąpiło trafień do pamięci podręcznej (które z 12 poniższych dostępów są trafieniami). Obowiązuje protokół 3 stanowy unieważniania kopii zmodyfikowanych linii danych. 1R(3),2R(4),3R(7),1W(1),2W(2),4R(7),4W(5),4W(6),1R(2),3R(3),4R(11),1R(10) 1.4 System wieloprocesorowy posiada 8 procesorów korzystających z pamięci współdzielonej i prywatnych pamięci podręcznych. Opóźnienie dostępu do danych w pp wynosi 5 cykli zegara procesora, a opóźnienie dostępu do danych w przypadku potrzeby ściągnięcia danych z RAM wynosi 30 cykli zegara procesora. Rozmiar linii pp (wielkość danych transmitowanych do pp) wynosi 4 słowa. o Jeden procesor realizuje obliczenia zgodnie z kodem zamieszczonym poniżej. Element tablicy a,b,c ma wielkość jednego słowa. Jaki jest średni czas realizacji instrukcji dla jednego procesora jeśli byłby on ograniczony czasem dostępu do pamięci? o Jak w równoległej realizacji pętli przez 8 procesorów systemu należy przydzielić iteracje pętli do poszczególnych procesorów, aby efektywnie korzystać z pp? Proszę wprowadzić odpowiednie dyrektywy Open MP i uzasadnić odpowiedź. for (i=0;i<1024;i++) c[i]= a[i]*b[i]; 1.5 Proszę określić stosunek trafień do pp w realizowanym przez 4 procesory równoległym algorytmie sumowania elementów dwuwymiarowej tablicy (o rozmiarze 4k słów) zapisanej w pamięci współdzielonej. Suma częściowa jest zmienną współdzieloną wątków, chronioną za pomocą zamka przed niepoprawnym uaktualnieniem. Każdy z procesorów sumuje 1k słów z kolejnych różnych wierszy macierzy, a rozmiar linii pp wynosi 8 słów. Koszt realizacji zamka nie jest w uwzględniany w analizie stosunku trafień. Pamięć podręczna jest wystarczająco duża. Elementy tablicy są zapisane kolejno wierszami. 1
2 Jaki byłby stosunek trafień, gdyby zastosowano zmienną lokalną do pamiętania sumy częściowej w każdym wątku przetwarzania? Jakiego przyspieszenia można się spodziewać w wyniku zastosowania zaproponowanych powyżej metod sumowania elementów tablicy? 1.6 Rozważmy problem mnożenia tablicy przez wektor metodą zagnieżdżonych pętli (kod poniżej) na komputerze z pamięcią podręczną 16 KB o czasie dostępu 1ns i pamięcią RAM o czasie dostępu 50 ns. W przypadku braku danych w pamięci podręcznej sprowadzane są one w podanym czasie z RAM w bloku równym rozmiarowi linii pp - 4 słów. Procesor pobiera dane z pp. Tablica mnożona ma rozmiar 4Kx4K słów, a każdy wiersz tablicy zajmuje 16 KB. Jaka jest maksymalna prędkość przetwarzania ograniczona czasem dostępu do pamięci uwzględniamy tylko czas pobierania danych z pamięci, gdyż zakładamy, że pozostałe operacje (obliczenia) realizowane są równocześnie (w tle)? - jak długo (średnio) trwa czas realizacji jednej instrukcji? Proszę założyć optymalną strategię wykorzystania pamięci podręcznej. for (i=0; i<dim; i++) for (k=0; k<dim; k++) C[i]+=a[i][k]*b[k]; 1.7 Dla maszyny o pamięci współdzielonej: koszt dostępu procesora do pp Tc, koszt dostępu do pamięci systemowej ts, długość lini pamięci DLP, rozmiar pp PPS. Określić prędkość przetwarzania ograniczonego prędkością dostępu do pamięci dla równoległego sumowania macierzy o rozmiarze NxN (kod w języku C) 4 procesory: KOD 1 Sumowanie elementów wierszami. Kolejne wiersze sumuje kolejny procesor KOD 2 Sumowanie elementów kolumnami. Kolejne kolumny sumuje następny procesor. Proszę uwzględnić różne nietrywialnie scenariusze przetwarzania zależne od rozmiaru macierzy. 1.8 Rozważmy problem mnożenia tablicy przez tablicę metodą zagnieżdżonych pętli (kod poniżej) na komputerze 16 procesorowym z współdzieloną pamięcią. Podział pracy bazuje na podziale danych wyjściowych. Każdy procesor posiada pamięć podręczną o wielkości 512 KB. W przypadku braku danych w pamięci podręcznej sprowadzane są one z pamięci operacyjnej w bloku równym rozmiarowi linii pp 128 B. Procesor pobiera dane tylko z pp. Tablica mnożona ma rozmiar 512x512 słów, a każdy wiersz tablicy zajmuje 2kB. Kod jest napisany w języku C. Proszę założyć optymalną strategię wykorzystania pamięci podręcznej (jeżeli mamy wybór to usuwamy te dane, które nie będą potrzebne). Proszę uzasadnić jaki efektywny podział pracy między procesory należy zaproponować? Proszę określić i uzasadnić stosunek trafień do pamięci podręcznej i rozmiar danych pobieranych z pamięci głównej przez każdy z procesorów w trakcie realizacji przedzielonej mu pracy. W jakiej kolejności procesory powinny realizować przydzieloną im pracę. //sekwencyjny kod mnożenia tablic for (i=0; i<dim; i++) for (j=0; j<dim;j++) for (k=0; k<dim; k++) C[i][j]+=a[i][k]*b[k][j]; 1.9 Rozważmy problem mnożenia tablicy przez wektor metodą zagnieżdżonych pętli (porównaj kod poniżej) w komputerze wieloprocesorowym z współdzieloną pamięcią operacyjną i prywatnymi pamięciami podręcznymi. W przypadku braku danych w pamięci podręcznej sprowadzane są one z pamięci operacyjnej w bloku równym rozmiarowi linii pp. Procesor pobiera dane z pp. Tablica a ma rozmiar n X n słów. Proszę podać i uzasadnić sposób zrównoleglenia przetwarzania na 4 procesorach za pomocą dyrektyw Open MP uwzględniając następujące fakty: - Ilość pracy dla kolejnych iteracji pętli zewnętrznej zmienia się, gdyż tablica a zawiera na przekątnej i poniżej przekątnej tylko zera, - w linii pamięci podręcznej mieszczą się 4 słowa, - pamięć podręczna ma rozmiar 3n, - optymalizacja zrównoleglenia powinna minimalizować czas przetwarzania zadania przez system. for (i=0; i<n; i++) { C[i]=0; for (k=0; k<n; k++) if (a[i][k]) C[i]+=a[i][k]*b[k]; Dla przyjętego rozwiązania proszę przeanalizować (przypadek optymistyczny) odwołania do pamięci dla elementów tablicy a. Następnie proszę oszacować i wyjaśnić dla tej tablicy stosunek trafień do pamięci podręcznej w ramach jednego procesora. Algorytmy i środowiska równoległe (open OMP) 2.1 Proszę wyjaśnić liczbę kolejnych kroków oraz pracę realizowaną w przedstawionym na wykładzie równoległym algorytmie sumowana w hiperkostce 16 procesorowej z wynikiem w każdym węźle. Każdy procesor posada n liczb podlegających sumowaniu. 2.2 Podać prezentowany na wykładzie algorytm (i wyjaśnić jego złożoność) sumowania liczb z udostępnieniem wyniku we wszystkich procesorach w systemie o architekturze pierścienia jednokierunkowego. 2
3 2.3 Podać prezentowany na wykładzie algorytm sortowania n liczb w łańcuchu procesorów. Określić: algorytm realizowany przez poszczególne procesory, sposób uzyskiwania wyników, uzasadnić liczbę procesorów niezbędnych do poprawnego sortowania n liczb, podać i wyjaśnić przybliżoną (z dokładnością do stałej) liczbę następujących po sobie operacji porównania. 2.4 Proszę przedstawić równoległy algorytm Cannona mnożenia macierzy kwadratowych w systemach z pamięcią rozproszoną. Należy określić sposób dystrybucji danych wejściowych, wyniku, naszkicować kod algorytmu dla poszczególnych procesorów, określić rodzaj wykorzystywanych komunikacji - synchroniczna, asynchroniczna, buforowana, niebuforowana, dla każdego procesora proszę określić rozmiar przetwarzanych danych oraz wymagania pamięciowe algorytmu w funkcji rozmiaru macierzy n i liczby procesorów p. 2.5 Proszę przedstawić algorytm mnożenia macierzy kwadratowych metodą zagnieżdżonych 6 pętli w systemach z pamięcią współdzieloną. Proszę założyć, że przetwarzanie równoległe bazuje na podziale pracy w pętli zewnętrznej (#pragma omp parallel for) Proszę: wyjaśnić liczbę iteracji poszczególnych pętli algorytmu, podać ogólną zależność na ilość danych przetwarzanych przez każdy procesor, podać ogólną zależność na liczbę danych pobieranych do prywatnej pamięci podręcznej przez poszczególne procesory. 2.6 Porównać fazy przetwarzania (zadania kolejnych pętli) w równoległym mnożeniu macierzy w metodach: - 6 pętlowej dla komputera wieloprocesorowego z pamięcią współdzieloną (zrównoleglenie na poziomie pętli zewnętrznej) podejście zoptymalizowane - 4 pętlowej (metoda Cannona) w systemie komputerowym z pamięcią rozproszoną. Zakładając kolejność pętli i,j,k oraz dostęp do wyniku za pomocą odwołania C[i][j] proszę określić czy występuje lokalność dostępów do poszczególnych tablic w obu metodach. 2.7 Proszę wyjaśnić problematyczne dla poprawnej i efektywnej równoległości przetwarzania elementy w poniższym kodzie. Jakiego typu są to zagrożenia (jeśli dla tego kodu występują)? Jak poszczególne zagrożenia można usunąć i dlaczego? Potencjalne typy zagrożeń to: wyścig, dostęp do danych nielokalny czasowo lub dostęp do danych nielokalny przestrzennie (przy jakiej wielkości pamięci podręcznej brak lokalności wystąpi), niezamierzone współdzielenie - false sharing. Proszę określić których tablic dotyczą i jakie są danego zagrożenia konsekwencje? Proszę określić czy program umożliwia deterministyczne przetwarzanie równoległe. float a[n][n], b[n][n], c[n][n]; for (i = 0 ; i < N ; i++) #pragma omp parallel for schedule(static,5) for (int k = 0 ; k < N ; k++) for (int j = 0 ; j < N ; j++) c[i][j] += a[i][k] *b[k][j] ; 2.8 Proszę wyjaśnić problematyczne dla poprawnej i efektywnej równoległości przetwarzania elementy w poniższym kodzie.. Jakiego typu są to zagrożenia (jeśli dla tego kodu występują)? Jak poszczególne zagrożenia można usunąć i dlaczego? Potencjalne typy zagrożeń to: wyścig, dostęp do danych nielokalny czasowo lub przestrzennie, niezamierzone współdzielenie- false sharing, proszę określić których tablic dotyczą i jakie są danego zagrożenia konsekwencje? float a[n][n];.. int i,j,k; #pragma omp parallel for schedule(dynamic,1) for (i = 0 ; i < N ; i++) { for (k = 0 ; k < N ; k++) { for (j = 0 ; j < N ; j++) { c[i][j] += a[i][k] *b[k][j] ; 2.9 Proszę wyjaśnić problematyczne dla poprawnej i efektywnej równoległości przetwarzania elementy w poniższym kodzie. Jakiego typu są to zagrożenia (jeśli dla tego kodu występują)? Jak poszczególne zagrożenia można usunąć i dlaczego? Potencjalne typy zagrożeń to: wyścig, dostęp do danych nielokalny czasowo lub dostęp do danych nielokalny przestrzennie, niezamierzone współdzielenie - false sharing, proszę określić których tablic dotyczą i jakie są danego zagrożenia konsekwencje? float a[n][n]; #pragma omp parallel for (j = 0 ; j < N ; j++) { for (int i = 0 ; i < N ; i++) { #pragma omp for schedule(dynamic,1) 3
4 for (int k = 0 ; k < N ; k++) { c[i][j] += a[i][k] *b[k][j] ; 2.10 W każdym z poniższych trzech przykładów kodu proszę wyjaśnić ile razy i z jakim parametrem istniejący wątek o identyfikatorze równym 1 będzie realizował wywołania Funkcja omp_set_num_threads(m); #pragma omp parallel for (j=0; j<n;j++) Funkcja1(j) ; omp_set_num_threads(m); #pragma omp parallel for schedule (static) for (j=0; j<n;j++) Funkcja1(j) ; Proszę omówić dostępne w ramach OpenMP dyrektywy: A. podziału pracy na wątki - single, master, for, section, task. Proszę określić ich znaczenie i warianty tych dyrektyw oraz porównać zakres stosowania tych wariantów. B. Czym różni się dyrektywa critical od atomic, proszę zaprezentować przykład ich zastosowania Korzystając z dyrektyw Open MP proszę zapisać kod w meta języku pozwalający na równoległe sumowanie N elementowej tablicy jednowymiarowej na dowolnej liczbie P procesorów. Proszę określić jeśli to możliwe dla przygotowanego kodu jaką pracę wykonają poszczególne procesory. Proszę omówić kluczowe dla efektywności przetwarzania elementy kodu. Wynik będący sumą ma zostać wyświetlony na ekranie Proszę omówić algorytm znajdowania maksimum w zbiorze N liczb dla CRCW PRAM. Proszę określić: liczbę maszyn, liczbę kroków przetwarzania, uzasadnić poprawność obliczeń w przypadku wielu równych wartości maksymalnych i zastosowaną strategię zapisu i uzasadnić poprawność jej realizacji dla każdego zapisu w kodzie Proszę zaproponować algorytm dla modelu maszyny równoległej typu CRCW PRAM z jednorodną strategią zapisu dla problemu: sprawdzania czy liczba N podana na wejściu komputera jest liczbą pierwszą. Program ma dać odpowiedź w czasie stałym niezależnym od wartości liczby: np. tak dla liczby 7, nie dla liczby 121. Proszę założyć, że interesują nas liczby N, których czas dzielenia przez dowolną inną liczbę jest stały. W szczególności proszę: określić minimalna liczbę procesorów niezbędnych do przeprowadzenia obliczeń wg podanego kodu, określić liczbę kroków przetwarzania, określić liczbę procesorów uczestniczących w poszczególnych krokach przetwarzania i uzasadnić poprawność zastosowanej strategii zapisu dla każdego występującego w kodzie kroku zapisu komórki danych. Przesyłanie komunikatów 3.1 Jaki jest możliwy (czy zawsze jednakowy) efekt realizacji poniższego kodu przez procesy w trybie SPMD w zależności od rodzaju (1. blokujące, 2. Nieblokujące z buforami, 3. Nieblokujące z buforami ) zastosowanych wywołań: Send(void *sendbuf, int nelems, int dest, ) Receive(void *recvbuf, int nelems, int source, ) Proszę wyjaśnić odpowiedź i opisać sytuację - kiedy określony efekt nastąpi. //KOD procesów I=zwracam_identyfikator_wywołującego_procesu();/* 0,1,2,3,...*/ N=zwracam_liczbe_procesow(); A=I; Send(&A,1, (I+1)mod N, ); Receive(&A,1, (I+N-1)mod N, ); printf( zrealizowano przeslanie od %d do %d \n,a,i); Krótko odpowiedzieć na pytanie: jak można zmodyfikować powyższy kod, aby umożliwić realizację wszystkich komunikacji zgodnie ze specyfikacją w kodzie (przy użyciu poszczególnych typów wywołań) przed wypisaniem komunikatów na ekranie? 3.2 Operacje komunikacji w przesyłaniu komunikatów, a ukrywanie kosztów komunikacji (uwzględnić funkcje blokujące, nieblokujące, z buforami i bez) dokonać porównania. Efektywność przetwarzania współbieżnego 5.1 Przetwarzanie równoległe w systemie z przekazywaniem komunikatów ma charakteryzować się stałą efektywnością. Obliczenia dotyczą wyznaczenia w korzeniu drzewa binarnego procesorów sumy N elementów (rozproszonych równomiernie w p procesorach tworzących to drzewo). Proszę określić jak musi się zmienić N przy wzroście liczby procesorów z 7 na 15. 4
5 Czas komunikacji jest 5 razy dłuższy od czasu sumowania. Proszę założyć efektywne wykorzystanie komunikacji nieblokującej. 5.2 W systemie z pamięcią współdzieloną proszę porównać prędkość przetwarzania w GFLOPS dla obliczeń, których prędkość jest ograniczona czasem dostępu do pamięci: A. sumowanie kolejnych komórek pamięci zawierających elementy MxM elementowej macierzy, B. mnożenie macierzy o wymiarach MxM metodą 3 zagnieżdżonych pętli (kolejność zagnieżdżenia - i,k,j c[i][j]+=a[i][k]*b[k][j];) Rozmiar pamięci podręcznej jest równy 3M, a rozmiar linii pamięci podręcznej wynosi 64B czyli 16 słów. Czas dostępu do pamięci podręcznej wynosi jeden cykl procesora, natomiast pobranie linii do pamięci podręcznej z pamięci operacyjnej trwa 50 cykli. 5.3 Proszę wyznaczyć funkcję stałej efektywności dla sumowania z wynikiem w każdym z węzłów N liczb rozproszonych w pierścieniu P procesorów. Proszę założyć koszt komunikację blokującą i koszt przesłania jednego słowa danych między sąsiednimi węzłami równy 5A, koszt sumowania dwóch liczb jest równy A. 5.4 Proszę wyznaczyć efektywność obliczeń polegających na sumowania N liczb rozproszonych równomiernie w systemie wielokomputerowym o architekturze 3 wymiarowej kostki. Wynikiem przetwarzania i komunikacji ma być udostępnienie wartości będącej sumą liczb w każdym z 8 węzłów obliczeniowych. Proszę założyć komunikację nieblokującą i koszt przesłania jednego słowa danych między sąsiednimi węzłami równy 2A, koszt sumowania dwóch liczb jest równy A. 5.5 Wyznaczanie w korzeniu drzewa procesorów sumy n elementów rozproszonych w p procesorach. Proszę wyznaczyć funkcję stałej efektywności przy założeniu, że koszt komunikacji między sąsiednimi procesorami jest dany wzorem ts+ mdtw gdzie m jest liczbą słów komunikatu, d odległością, a t i t stałymi równymi 1. Koszt dodawania wynosi 4. Proszę podać wzór określający ile razy musi wzrosnąć n, aby uzyskać stałą efektywność przy wzroście wysokości drzewa procesorów o jeden poziom z 6 na 7. Proszę założyć komunikację asynchroniczną. 5.6 Realizując przetwarzanie zadania A na 9 procesorach uzyskano 5 krotne przyspieszenie. Stosując prawo Amdahla podaj liczbę procesorów niezbędnych do uzyskania 10 krotnego przyspieszenia. Jakie przyspieszenie uzyskano by, gdyby ze wzrostem liczby procesorów liniowo (zgodnie z założeniami dla prawa Gustafsona) wzrastała wielkość części zadania podlegającej zrównolegleniu. 5.7 Przetwarzanie zadania A realizowane na 9 procesorach umożliwia uzyskanie 5 krotnego przyspieszenia. Przetwarzanie tego samego zadania A realizowane na 2 procesorach umożliwia uzyskanie przyspieszenia równego 100/55. Proszę określić maksymalne możliwe do uzyskania przyspieszenie. 5.8 Część obliczeń niepodlegająca zrównolegleniu zajmuje 30% czasu obliczeń realizowanych sekwencyjnie. Jaka liczba procesorów zapewni uzyskanie przyspieszenia równego 4, a jakie przyspieszenie przetwarzania można uzyskać przy zastosowaniu 10 procesorów? Odpowiedź uzasadnij. 5.9 Pewne obliczenia A można częściowo zrównoleglić. 80% obliczeń A może być podzielone proporcjonalnie na dowolną liczbę procesorów zapewnia to przyspieszenie przetwarzania tej części równe liczbie wykorzystanych procesorów. Pozostała część obliczeń A - 20% musi być zrealizowana sekwencyjnie. Jaka liczba użytych procesorów zapewni uzyskanie przyspieszenia przetwarzania równego 7 dla całości obliczeń A? Jakie przyspieszenie przetwarzania dla omawianych obliczeń można uzyskać przy zastosowaniu 10 procesorów? Odpowiedź uzasadnij podając obliczenia i słowne wyjaśnienia. Przetwarzanie na PKG (GPU) 6.1 Rozważmy obliczenia dla tablicy NxN uruchomione dla gridu z 2 wymiarowymi blokami wątków o rozmiarach: 16 wierszy po 32 wątki wg kodu poniżej. global void MatrixMulKernel(float* A_d, float* B_d, float* C_d, int N) { int Col = blockid.y * blockdim.y + threadid.y; int Row = blockid.x * blockdim.x + threadid.x; float C= 0; for (int k = 0; k < N; ++k) C += A_d[Row][k] * B_d[k][Col]; C_d[Row][Col] = C; Proszę przeanalizować efektywność dostępów do pamięci globalnej. 5
6 Ile wynosi dla powyższego kodu stosunek liczby operacji do liczby dostępów do pamięci globalnej (CGMA). Jakie jest znaczenie tego wskaźnika dla prędkości obliczeń przy użyciu GPU? Proszę określić szczegółowo na poziomie koncepcyjnym (na czym polegają i jak je zrealizować) możliwe modyfikacje kodu zmierzające do przyspieszenia obliczeń, proszę ocenić możliwy zarówno dodatni jak i ujemny wpływ poszczególnych modyfikacji na prędkość obliczeń. 6.2 Rozważmy obliczenia dla tablicy NxN uruchomione dla gridu (N/K,1,1) z blokami wątków o wymiarach (K,1,1) wg kodu poniżej (grid i blok mają w wymiarze X rozmiar różny od jeden). global void SUMKernel(float* Ad, float* Rd, N) { int Col = blockid.x * blockdim.x + threadid.x; for (int i = 0; i < N ; ++i) Rd[Col] += Ad[i][Col]; Proszę przeanalizować kod programu opisać wykonywaną pracę, a następnie określić efektywność dostępów do pamięci globalnej (tj. możliwość łączenia dostępów do pamięci globalnej). Ile wynosi dla powyższego kodu stosunek liczby operacji zmiennoprzecinkowych do liczby dostępów do pamięci globalnej (CGMA). Jakie jest znaczenie tego wskaźnika dla prędkości obliczeń przy użyciu GPU? Proszę założyć, że kolejne elementy wiersza tablicy leżą pod kolejnymi adresami pamięci. Proszę ocenić jakie czynniki i w jaki sposób wpływać będą na prędkość przetwarzania. 6.3 Rozważmy obliczenia dla tablic A i B (o rozmiarach NxN) i tablicy C (o rozmiarze N) uruchomione dla jednowymiarowego gridu z jednowymiarowymi blokami H wątków wg kodu poniżej: global void test(float* Ad, float* Bd, float* Cd, int N) { int I = blockid.x * blockdim.x + threadid.x; float C= 0; for (int k = 0; k < N; ++k) C += A_d[I][k] * B_d[I][k]; Cd[I] = C; Proszę określić i uzasadnić: - Niezbędną wielkość gridu - Jaką pracę wykonają poszczególne wątki? - Ile wynosi CGMA? Jak wpłynie ta wartość na efektywność przetwarzania? - czy poszczególne dostępy do pamięci globalnej będą realizowane efektywnie dla compute capability 1.3? - Jak wielkość H i N może wpłynąć na liczbę wykorzystywanych multiprocesorów (SM)? - Jak wielkość H i N może wpłynąć na zajętość multiprocesora (SM occupancy)? 6
Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla r.ak. 2014/2015 Rafał Walkowiak,
Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Zebrał dla r.ak. 2014/2015 Rafał Walkowiak, 17.01.2015 Zagadnienia sprzętowe w przetwarzaniu równoległym 1.1 Procesory systemu równoległego wykonują
Bardziej szczegółowoPytania przykładowe (z ubiegłych lat) na zaliczenie przedmiotu Przetwarzanie równoległe Przygotował Rafał Walkowiak Poznań 3.01.
Pytania przykładowe (z ubiegłych lat) na zaliczenie przedmiotu Przetwarzanie równoległe Przygotował Rafał Walkowiak Poznań 3.01.2013 Przetwarzanie w systemach z pamięcią współdzieloną 1. Procesory systemu
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ół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ół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ół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ół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ół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ółowoAlgorytmy 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ółowoProcesor operacja R a R b R c W b W a W c R c W c R c
Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Przygotował Rafał Walkowiak, 2.01.2012 Pamięć podręczna 1. Procesory systemu równoległego wykonują operacje dostępu (R odczyt, W zapis) do zmiennych
Bardziej szczegółowoAlgorytmy 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ółowoProgramowanie CUDA informacje praktycznie i. Wersja
Programowanie CUDA informacje praktycznie i przykłady Wersja 16.12.2013 Podstawowe operacje na GPU cudasetdevice() Określenie GPU i ustanowienie kontekstu (analog w GPU tego czym jest proces dla CPU) dla
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ółowoMATERIAŁ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ół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ół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ółowoMateriały pomocnicze do laboratorium. 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych
Materiały pomocnicze do laboratorium 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych 4. Optymalizacja dostępu do pamięci Miary efektywności systemów współbieżnych System
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ółowoProgramowanie CUDA informacje praktycznie i przykłady. Wersja
Programowanie CUDA informacje praktycznie i przykłady problemów obliczeniowych Wersja 25.11.2014 cudasetdevice() Podstawowe operacje na urządzeniu GPU Określenie GPU i ustanowienie kontekstu (analog w
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ół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ół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 PKG - informacje praktycznie i przykłady. Wersja z Opracował: Rafał Walkowiak
Programowanie PKG - informacje praktycznie i przykłady problemów obliczeniowych Wersja z 7.05.2018 Opracował: Rafał Walkowiak cudasetdevice() Podstawowe operacje na urządzeniu GPU Określenie GPU i ustanowienie
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ółowoAlgorytmy 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ółowoSystem obliczeniowy laboratorium oraz. mnożenia macierzy
System obliczeniowy laboratorium.7. oraz przykładowe wyniki efektywności mnożenia macierzy opracował: Rafał Walkowiak Materiały dla studentów informatyki studia niestacjonarne październik 1 SYSTEMY DLA
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ół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ół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ółowoMnoż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ół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ół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ół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ół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ół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ółowoOgraniczenia efektywności systemu pamięci
Ograniczenia efektywności systemu pamięci Parametry pamięci : opóźnienie (ang. latency) - czas odpowiedzi pamięci na żądanie danych przez procesor przepustowość systemu pamięci (ang. bandwidth) - ilość
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ółowoPrzetwarzanie 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ół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ółowoZł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ółowoModele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak
Modele programowania równoległego Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak MPP - Cechy charakterystyczne 1 Prywatna - wyłączna przestrzeń adresowa. Równoległość
Bardziej szczegółowoModele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP
Modele programowania równoległego Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP MPP - Cechy charakterystyczne 1 Prywatna, wyłączna przestrzeń adresowa.
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ółowoAlgorytmy 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ół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ółowoZadania jednorodne 5.A.Modele przetwarzania równoległego. Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011
Zadania jednorodne 5.A.Modele przetwarzania równoległego Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011 Zadanie podzielne Zadanie podzielne (ang. divisible task) może zostać
Bardziej szczegółowoAlgorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
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 danych
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ółowoAnaliza 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ół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 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 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ółowoWydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.
Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Organizacja pamięci Organizacja pamięci współczesnych systemów komputerowych
Bardziej szczegółowoPROJEKT 3 PROGRAMOWANIE RÓWNOLEGŁE. K. Górzyński (89744), D. Kosiorowski (89762) Informatyka, grupa dziekańska I3
PROJEKT 3 PROGRAMOWANIE RÓWNOLEGŁE K. Górzyński (89744), D. Kosiorowski (89762) Informatyka, grupa dziekańska I3 17 lutego 2011 Spis treści 1 Opis problemu 2 2 Implementacja problemu 3 2.1 Kod współdzielony........................
Bardziej szczegółowoWprowadzenie do złożoności obliczeniowej
problemów Katedra Informatyki Politechniki Świętokrzyskiej Kielce, 16 stycznia 2007 problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów
Bardziej szczegółowoWykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.
Wykład 1 Wprowadzenie do algorytmów Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami Wykaz literatury 1. N. Wirth - Algorytmy+Struktury Danych = Programy, WNT Warszawa
Bardziej szczegółowoProjektowanie 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ół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ółowoZadanie 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ół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ółowoWskaź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ółowoWykł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ół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ółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Bardziej szczegółowoAlgorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
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ółowoOgraniczenia efektywności systemu pamięci
Ograniczenia efektywności systemu pamięci Parametry pamięci : opóźnienie (ang. latency) - czas odpowiedzi pamięci na żądanie danych przez procesor przepustowość systemu pamięci (ang. bandwidth) - ilość
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ółowoPrzetwarzanie 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ółowoWstę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ółowo2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych
2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:
Bardziej szczegółowodo instrukcja while(wyrażenie);
emat zajęć: Operatory i instrukcje w języku C - 3 Autor: mgr inż. Sławomir Samolej Zagadnienie 1. (instrukcja cyklu: while) Język C oferuje kilka instrukcji cyklu (pętli). Oprócz wprowadzonej wcześniej
Bardziej szczegółowoPorównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego
Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Mariusz Uchroński 3 grudnia 2010 Plan prezentacji 1. Wprowadzenie 2.
Bardziej szczegółowoWprowadzenie do programowania w środowisku CUDA. Środowisko CUDA
Wprowadzenie do programowania w środowisku CUDA Środowisko CUDA 1 Budowa procesora CPU i GPU Architektura GPU wymaga większej ilości tranzystorów na przetwarzanie danych Control ALU ALU ALU ALU Cache DRAM
Bardziej szczegółowoAlgorytmy 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ółowoProcesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.
Procesory wielordzeniowe (multiprocessor on a chip) 1 Procesory wielordzeniowe 2 Procesory wielordzeniowe 3 Konsekwencje prawa Moore'a 4 Procesory wielordzeniowe 5 Intel Nehalem 6 Architektura Intel Nehalem
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ółowoOptymalizacja systemów
Optymalizacja systemów Laboratorium Sudoku autor: A. Gonczarek Cel zadania Celem zadania jest napisanie programu rozwiązującego Sudoku, formułując problem optymalizacji jako zadanie programowania binarnego.
Bardziej szczegółowoPrzetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1
Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)
Bardziej szczegółowoLogiczny model komputera i działanie procesora. Część 1.
Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.
Bardziej szczegółowoZasady 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ół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ółowoProgramowanie 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ółowoPRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.
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
Bardziej szczegółowoINFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki
INFORMATYKA Z MERMIDONEM Programowanie Moduł 5 / Notatki Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego. Realizator projektu: Opracowano w ramach projektu
Bardziej szczegółowoWykł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ółowoProgramowanie i techniki algorytmiczne
Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej
Bardziej szczegółowoKlasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Bardziej szczegółowoOptymalizacja systemów
Optymalizacja systemów Laboratorium Zadanie nr 3 Sudoku autor: A. Gonczarek Cel zadania Celem zadania jest napisanie programu rozwiązującego Sudoku, formułując problem optymalizacji jako zadanie programowania
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ółowoObliczenia równoległe
Instytut Informatyki Politechnika Śląska Obliczenia równoległe Opracował: Zbigniew J. Czech materiały dydaktyczne Gliwice, luty 1 Spis treści 1 Procesy współbieżne Podstawowe modele obliczeń równoległych
Bardziej szczegółowoĆwiczenie 3. Iteracja, proste metody obliczeniowe
Ćwiczenie 3. Iteracja, proste metody obliczeniowe Instrukcja iteracyjna ( pętla liczona ) Pętla pozwala na wielokrotne powtarzanie bloku instrukcji. Liczba powtórzeń wynika z definicji modyfikowanej wartości
Bardziej szczegółowoProgramowanie 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ółowoObliczenia 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ółowoProgramowanie 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ółowoTemat 20. Techniki algorytmiczne
Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje
Bardziej szczegółowoEGZAMIN 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ół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ółowo