Procesor operacja R a R b R c W b W a W c R c W c R c
|
|
- Łucja Michalak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Zadania na zaliczenie przedmiotu Przetwarzanie równoległe Przygotował Rafał Walkowiak, Pamięć podręczna 1. Procesory systemu równoległego wykonują operacje dostępu (R odczyt, W zapis) do zmiennych a,b,c (zmienne a i b naleŝą w tej samej linii pamięci podręcznej zmienna c natomiast do innej) Kolejność zgłaszanego w protokole zarządzania spójnością rozpoczęcia realizacji operacji przez procesory jest następująca: Kolejność Procesor operacja R a R b R c W b W a W c R c W c R c nr procesor operacja R b R a W a Przed przetwarzaniem pamięć podręczna nie zawiera danych. Dla poszczególnych procesorów proszę określić: liczbę trafień do pamięci podręcznej oraz liczbę uniewaŝnień linii pamięci podręcznej. 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. 2. Procesory systemu równoległego wykonują operacje dostępu (R odczyt, W zapis) do zmiennych a,b,c umieszczonych obok siebie w pamięci i przechowywanych w tej samej linii pamięci podręcznej. Kolejność zgłaszanego w protokole zarządzania spójnością rozpoczęcia realizacji operacji przez procesory jest następująca: Kolejność Procesor operacja R a R b R c W b W a W c R c W c R c nr procesor operacja R b R a W a Przed przetwarzaniem pamięć podręczna nie zawiera danych. Dla poszczególnych procesorów proszę określić: liczbę trafień do jego pamięci podręcznej oraz liczbę uniewaŝnień linii jego pamięci podręcznej. 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. 3. 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. 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? 1
2 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]; 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. 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? 6. Procesory systemu równoległego wykonują w następującej kolejności operacje dostępu (R odczyt, W zapis) do zmiennych umieszczonych w obszarze danych naleŝącym do tej samej linii pamięci podręcznej: P1 R, P2 W, P3 R, P1 R, P2 R, P3 W, P1 R, P2 R, P3 R, P2 W. Przed przetwarzaniem pamięć podręczna nie zawiera danych. Proszę określić stosunek trafień, oddzielnie do pamięci podręcznej kaŝdego procesora. 7. RozwaŜmy problem mnoŝenia tablicy przez tablicę metodą zagnieŝdŝonych pętli (kod poniŝej) na komputerze z pamięcią podręczną 80 KB o czasie dostępu 1ns i pamięcią RAM o czasie dostępu 100 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 ograniczonego dostępem do pamięci? Proszę załoŝyć optymalną strategię wykorzystania pamięci podręcznej. 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]; 8. 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]; 9. Maszyna SMP z rozproszoną przestrzenią adresową pamięci. Obliczenia ograniczone są prędkością dostępu do pamięci - czas wykonywania instrukcji przez procesor biegnie równolegle z pobraniami danych z pamięci, czas pobierania danych ma decydujący wpływ na prędkość przetwarzania. Zakładamy, Ŝe dla badanego kodu jedna instrukcja wymaga średnio pobrania 1,5 słowa z pamięci. Model dostępu do pamięci opisany następującymi parametrami: czas dostępu do danych w pamięci podręcznej (pp) 10 ns czas dostępu do danych w przypadku konieczności odwołania do pamięci lokalnej węzła 100 ns czas dostępu do danych w przypadku konieczności odwołania do pamięci zdalnej 400 ns PowyŜsze czasy zawierają wszystkie komponenty kosztów dostępu do danych w powyŝszych przypadkach niezaleŝnie od liczby wykorzystywanych do obliczeń procesorów. Dane procesor pobiera, po uzupełnieniu zawartości, zawsze bezpośrednio z pp. Przetwarzanie sekwencyjne kodu charakteryzuje stosunek trafień do pp 0.7. Przetwarzanie współbieŝne kodu na kaŝdym z procesorów charakteryzuje następującymi stosunkami trafień: do pp 0.8, do pamięci lokalnej 50% odwołań nieobsłuŝonych w pamięci podręcznej, pozostałe dane pobierane są z pamięci zdalnej. Proszę porównać średnią prędkość przetwarzania (w MIPS) kodu na maszynie SMP (przy zachowaniu powyŝszych parametrów): sekwencyjnie i równolegle na 4 procesorach. Ile razy przetwarzanie równoległe jest szybsze? Jak wyglądałaby prędkość przetwarzania, gdyby stosunek trafień do pp był dwukrotnie mniejszy i brakujące dane musiałyby być pobrane z pamięci lokalnej. 10. RozwaŜmy realizację przez 8 procesorów równoległego algorytmu sumowania elementów dwuwymiarowej tablicy A (o rozmiarze 8k słów) zapisanej w pamięci współdzielonej. KaŜdy procesor odwołuje się do jednego (kaŝdy innego) z elementu współdzielonej tablicy B 8 elementowej w celu zapisania sumy częściowej. KaŜdy z procesorów sumuje 1k słów z kolejnych róŝnych wierszy macierzy, a rozmiar linii pamięci podręcznej (pp) kaŝdego procesora wynosi 8 słów. PP jest wystarczająco duŝa. Elementy tablicy są zapisane kolejno wierszami. Po zakończeniu obliczeń procesy docierają do bariery synchronizacyjnej po czym jeden proces sumuje wartości tablicy sum częściowych. Zakładamy, Ŝe dostęp do pamięci podręcznej jest 40 razy szybszy 2
3 od dostępu w przypadku braku trafienia do pamięci podręcznej (dowolnego typu pobrania danych). Czas obliczeń jest zdominowany czasem dostępu do pamięci, dostępy do róŝnych lokacji pamięci przez róŝne procesory są realizowane współbieŝnie. Procesor nie realizuje równolegle dostępów do pamięci. Zakładając, Ŝe w systemie realizowany jest protokół zapewnienia spójności pamięci podręcznej proszę określić pesymistyczny stosunek trafień i pesymistyczną wartość przyspieszenia (względem realizacji tych obliczeń na jednym procesorze). 11. 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]; 12. 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. Architektury systemów równoległych 13. Określić liczbę linii sygnałowych przypadających na łącze w łańcuchu, który ma taką samą liczbę węzłów i taki sam koszt jak 2 wymiarowa krata otwarta. Jako kryterium kosztu przyjąć szerokość podziału sieci mierzoną w liczbie linii sygnałowych. Porównać średni (dla odległości równej połowie rozmiaru sieci) czas transmisji w kaŝdym z systemów zgodnie z metodą storeand-forward. Dla tej metody transmisji proszę podać wzór na czas transmisji wraz z wyjaśnieniem parametrów 14. Określić liczbę linii sygnałowych przypadających na łącze w pierścieniu, który ma taką samą liczbę węzłów i taki sam koszt jak hiperkostka k wymiarowa. Jako kryterium kosztu przyjąć szerokość podziału sieci mierzoną w liczbie linii sygnałowych. Porównać średni (dla odległości równej połowie rozmiaru sieci) czas transmisji w kaŝdym z systemów zgodnie z metodą cutthrouh routing. Dla tej metody transmisji proszę podać wzór na czas transmisji wraz z wyjaśnieniem parametrów. 15. Określić liczbę linii sygnałowych przypadających na łącze w pierścieniu, który ma taką samą liczbę węzłów i taki sam koszt jak hiperkostka 4 wymiarowa. Porównać średni czas transmisji w kaŝdym z systemów zgodnie z zasadą cut through routing oddzielnie dla duŝych komunikatów i małych komunikatów. Jako kryterium kosztu uwzględnić liczbę linii sygnałowych na wszystkich łączach komunikacyjnych. 16. Proszę zdefiniować przeciąŝenie (ang. congestion) i odstęp (ang.dilation) wynikające z odwzorowania grafów zadań na graf struktury systemu równoległego oraz podać schemat (np. rysunek) odwzorowania architektur zapewniający minimalizację przeciąŝenia i powiększenia: łańcucha w hiperkostkę 8 procesorów i 3-2 kraty otwartej w łańcuch 9 procesorów. Jakie jest dolne ograniczenie przeciąŝenia w powyŝszych przypadkach? 17. Proszę zdefiniować przeciąŝenie (ang. congestion) i odstęp (ang.dilation) wynikające z odwzorowania grafów zadań na graf struktury systemu równoległego oraz podać schemat (np. rysunek) dowolnego odwzorowania grafu 8 zadań o strukturze hiperkostki 3 wymiarowej w łańcuch 8 procesorów. Dla podanego schematu proszę określić przeciąŝenie i powiększenie. 3
4 18. Określić liczbę linii sygnałowych przypadających na łącze w łańcuchu, który ma taką samą liczbę węzłów i taki sam koszt jak poczwórna 3 wymiarowa krata zamknięta (4-3 mesh). Porównać średni czas transmisji w kaŝdym z systemów zgodnie z zasadą cut through routing. Jako kryterium kosztu uwzględnić szerokość podziału mierzoną w liczbie linii sygnałowych. 19. Proszę określić przeciąŝenie i odstęp będące wynikiem odwzorowania łańcucha w kostkę i kraty zamkniętej w łańcuch. Liczba węzłów w architekturach jest jednakowa i wynosi Proszę zdefiniować przeciąŝenie (ang. congestion) i odstęp (ang.dilation) wynikające z odwzorowania grafów zadań na graf struktury systemu równoległego oraz podać schemat ( rysunek lub opis ) odwzorowania architektur zapewniający minimalizację przeciąŝenia i powiększenia: łańcucha w 3-3 kratę zamkniętą 27 procesorów i 2-4 kratę w 4-2 kratę zamkniętą 16 procesorów. 21. Proszę zdefiniować przeciąŝenie (ang. congestion) i odstęp (ang.dilation) wynikające z odwzorowania grafów zadań na graf struktury systemu równoległego oraz podać odwzorowanie grafów zapewniające minimalizację przeciąŝenia i powiększenia. Graf zadań ma postać 4-2 kraty zamkniętej (krata dwuwymiarowa) a graf systemu wielokomputerowego to hiperkostka 4 wymiarowa. Dla odwzorowania przyjąć następujące oznaczenia węzłów: Zadania mają identyfikatory pozycji w kracie Z(i,j) gdzie i=1..4 oznacza wiersz a j=1..4 oznacza kolumnę. Procesory mają identyfikatory będące ciągami binarnymi o wartościach przyjętych zgodnie ze standardową zasadą zapewniającą, Ŝe procesory połączone ze sobą mają identyfikatory róŝniące się na jednej pozycji. Ile wynosi przeciąŝenie i odstęp dla tego odwzorowania. 22. Określić liczbę linii sygnałowych przypadających na łącze w pierścieniu, który ma taką samą liczbę węzłów i taki sam koszt jak poczwórna 3 wymiarowa kraty (4-3 mesh). Porównać średni czas transmisji w kaŝdym z systemów zgodnie z zasadą cut through routing oddzielnie dla małych i duŝych komunikatów. Jako kryterium kosztu uwzględnić szerokość podziału sieci mierzoną w liczbie linii sygnałowych. 23. W sieci połączeń typu Omega posiadającej 8 wejść i 8 wyjść zaprezentować sposób transmisji sygnału pomiędzy parami wejść i wyjść 0/7, 5/2, 4/4. Proszę określić czy nastąpi konflikt dostępu do łączy podczas tych transmisjach. Algorytmy 24. Podać prezentowany na wykładzie algorytm znajdowania liczb pierwszych w łańcuchu procesorów. Określić: wejście systemu, algorytm realizowany przez poszczególne procesory, zaproponować sposób uzyskiwania wyników na wyjściu systemu, uzasadnić liczbę procesorów niezbędnych do znalezienia liczb pierwszych z zakresu od 950-X, określić przybliŝoną liczbę następujących po sobie (w najgorszym przypadku) operacji dzielenia w ramach tych obliczeń (wskazówka: załoŝyć, Ŝe X okaŝe się liczbą pierwszą). 25. Podać prezentowany na wykładzie algorytm znajdowania liczb pierwszych w łańcuchu procesorów. Określić: wejście systemu, algorytm realizowany przez poszczególne procesory, zaproponować sposób uzyskiwania wyników na wyjściu systemu, uzasadnić liczbę procesorów niezbędnych do znalezienia tym algorytmem liczb pierwszych z zakresu od , określić złoŝoność przetwarzania równoległego w najgorszym wypadku mierzoną za pomocą liczby następujących po sobie (w najgorszym przypadku) operacji dzielenia. 26. 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. 27. 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. 28. Podać algorytm i wyjaśnić złoŝoność algorytmu sortowania w łańcuchu procesorów. 29. 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. Pamięć współdzielona 30. Korzystając z funkcji mutex_lock(&zamek_prosty); cond_wait(&zmiena_warunkowa, &zamek_prosty); cond_broadcast(&zmiena_warunkowa) zmiennej warunkowej typ cond_t, i zamka prostego typ mutex_t zaprojektować funkcję bariery synchronizacyjnej dla określonej liczby X_THREADS wątków. Proszę wyjaśnić działanie funkcji. 1 pkt. 31. Proszę zaprojektować funkcję pozyskiwania zezwolenia na pisanie Chcę_pisać(mój_zamek *l) czyli działania niezbędne do uzyskania zezwolenia na rozpoczęcie pisania przy synchronizacji (w modelu programowania opartym o pamięć współdzieloną)jednego pisarza i wielu czytelników. Proszę zaprojektować strukturę wykorzystywanego zamka złoŝonego mój_zamek (naleŝy skorzystać ze zmiennej warunkowej typ cond_t, zamka prostego typ mutex_t i innych standardowych typów zmiennych) Czytelnicy mają priorytet. MoŜna korzystać z funkcji: mutex_lock(&zamek_prosty); cond_wait(&zmiena_warunkowa, &zamek_prosty); mutex_unlock(&zamek_prosty); cond_broadcast (&zmiennawarunkowa); cond_signal(&zmiennawarunkowa); Proszę wyjaśnić działanie funkcji, uzasadnić potrzebę uŝycia poszczególnych operacji zaprojektowanej funkcji i znaczenie elementów zamka złoŝonego. 4
5 31. RozwaŜmy problem wielu pisarzy i jednego czytelnika. Proszę zaprojektować koncepcję zamka złoŝonego pozwalającego na synchronizację dostępu dla pisarzy i czytelnika. Czytelnik ma pierwszeństwo. MoŜna korzystać ze zmiennej warunkowej typ cond_t, zamka prostego typ mutex_t i innych standardowych typów zmiennych. Proszę podać metakod funkcji pozyskiwania zezwolenia na czytanie Chcę_czytać(mój_zamek *l) i funkcji kończenia pisania Kończę_pisanie(mój_zamek *l) (w modelu programowania opartym o pamięć współdzieloną). MoŜna korzystać z funkcji: mutex_lock(&zamek_prosty); cond_wait(&zmiena_warunkowa, &zamek_prosty); mutex_unlock(&zamek_prosty); cond_broadcast (&zmiennawarunkowa); cond_signal(&zmiennawarunkowa); Proszę wyjaśnić działanie zaprojektowanych funkcji i znaczenie elementów zamka złoŝonego. 32. RozwaŜmy problem wielu pisarzy i jednego czytelnika. Proszę zaprojektować koncepcję zamka złoŝonego pozwalającego na synchronizację dostępu dla pisarzy i czytelnika. Pisarze mają pierwszeństwo. MoŜna korzystać ze zmiennej warunkowej typ cond_t, zamka prostego typ mutex_t i innych standardowych typów zmiennych. Proszę podać metakod funkcji pozyskiwania zezwolenia na pisanie Chcę_pisać(mój_zamek *l) i funkcji kończenia czytania Kończę_czytanie(mój_zamek *l) (w modelu programowania opartym o pamięć współdzieloną). MoŜna korzystać z funkcji: mutex_lock(&zamek_prosty); cond_wait(&zmiena_warunkowa, &zamek_prosty); mutex_unlock(&zamek_prosty); cond_broadcast (&zmiennawarunkowa); cond_signal(&zmiennawarunkowa); Proszę wyjaśnić działanie zaprojektowanych funkcji i znaczenie elementów zamka złoŝonego. 33. Korzystając z: - funkcji zamka prostego - mutex_lock(&zamek_prosty), mutex_unlock(&zamek_prosty); - funkcji oczekiwania przy zmiennej warunkowej - cond_wait(&zmiena_warunkowa, &zamek_prosty); - funkcji rozesłania sygnału wznowienia przetwarzania do procesów oczekujących przy określonej zmiennej warunkowejcond_broadcast(&zmiena_warunkowa) - zmiennej warunkowej, - zamka prostego - i zmiennej pomocniczej zaprojektować funkcję bariery synchronizacyjnej dla określonej liczby X_THREADS wątków. Proszę wyjaśnić działanie zaprojektowanej funkcji. Opcję wyboru tego zadania jest poprawna realizacja bariery za pomocą dyrektyw OpenMP Przesyłanie komunikatów 34. 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) 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, ); Globalna_bariera_synchronizacyjna(); 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? 35. Proszę zmodyfikować poniŝszy kod tak, aby w kaŝdym z 3 przypadków komunikacji (1. blokujące, 2.nieblokujące z buforami, 3. nieblokujące bez buforów) zrealizowane zostały poprawnie przesłania informacji między procesami: Send(void *sendbuf, int nelems, int dest, ) funkcja wysyłająca z parametrami: adres danych, liczba transmitowanych słów, identyfikator odbiorcy,...inne niezbędne parametry. Receive(void *recvbuf, int nelems, int source, ) funkcja odbierająca z parametrami: adres danych, liczba transmitowanych słów, identyfikator nadawcy,...inne niezbędne parametry. //KOD pierwotny procesów int B,I,N; I=zwracam_identyfikator_wywołującego_mnie_procesu();/* 0,1,2,3,...*/ N=zwracam_liczbe_procesow(); Send(&I,1, (I+1)mod N, ); Receive(&B,1, (I+N-1)mod N, ); printf( zrealizowano przeslanie od %d do %d \n,i,b); 36. 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. 5
6 37. Zakładamy, Ŝe realizujemy przesyłanie metodą store and forawrd. Koszt przesłania pojedynczego komunikatu o rozmiarze m z węzła P1 do węzła P2 drogą o d odcinkach wynosi t s +t w dm. Alternatywę stanowi przesłanie tych samych informacji o rozmiarze m za pomocą k komunikatów o rozmiarze m/k. Określić czas transmisji danych m na ścieŝce o d odcinkach w zaleŝności od realizacji: Kolejny komunikat jest wysyłany zaraz jak poprzedni dotrze do miejsca przeznaczenia Kolejny komunikat jest wysyłany po osiągnięciu przez poprzedni kolejnego węzła w sieci. Jaka jest optymalna wartość k dla poszczególnych realizacji? Szeregowanie i równowaŝenie obciąŝenia procesorów 38. W jaki sposób bazując na podziale danych wyjściowych przydzielić pracę do poszczególnych p procesorów realizujących mnoŝenie macierzy kwadratowych n x n - C=A*B :gdzie c i,j =a i,1 *b 1,j +a i,2 *b 2,j +...+a i,n *b n,j. Proszę uzasadnić wybór. W jakiej kolejności naleŝy realizować operacje (kolejność dostępu do komórek pamięci) w ramach przydzielonych do procesorów zadań, aby maksymalnie zrównoleglić dostęp do pamięci współdzielonej. 39. Zastosowano metodę grafu interakcji między zadaniami do podziału pracy dla 3 procesorów systemu z rozproszoną pamięcią współdzieloną. Przetwarzanie dotyczy mnoŝenia macierzy A i wektora b, a podział pracy bazuje na regule właściciel (w tym przypadku procesor posiadający odpowiedni wiersz tablicy A i elementy wektora b). Narysować graf interakcji i określić liczbę interakcji między procesorami w podanym poniŝej sposobie przydziału danych (wiersze A i elementy b) do procesorów. Wszystkie elementy wektora i zielone elementy tablicy są niezerowe 1pkt. A b P1 P2 P3 40. ZałóŜmy, Ŝe M zadań ma być przydzielonych do p procesorów za pomocą scentralizowanego dynamicznego schematu równowaŝenia obciąŝenia. Czasy przetwarzania zadań nie są znane z góry. Dostępne są tylko informacje ogólne dotyczące zbioru zadań: średni czas przetwarzania jednego zadania scz=1, minimalny czas przetwarzania jednego zadania mincz=0, maksymalny czas przetwarzania jednego zadania maxrz=m, czas pobierania zadania/zadań przez proces wynosi delta. Proszę obliczyć przyspieszenie przetwarzania na p procesorach (w najlepszym i najgorszym przypadku) dla algorytmów: samoszeregowania (ang. self-scheduling) i szeregowania w oparciu o pakiety wielozadaniowe k zadania jednocześnie (ang.chunk scheduling). Przykład dynamicznego self-scheduling to szeregowanie niezaleŝnych pojedynczych iteracji pętli pobieranych przez proces na bieŝąco do realizacji po zakończeniu realizacji poprzedniej iteracji. 41. Drzewo binarne D z 8 liściami określa pełny schemat sekwencyjnego poszukiwania rozwiązania zgodnie z algorytmem przeszukiwania w głąb począwszy od lewej strony drzewa. Poszukiwane rozwiązanie znajduje się w piątym liściu (zielony) od lewej strony po jego znalezieniu obliczenia są kończone. Przejście w grafie wzdłuŝ jednego łuku do niŝszego węzła zajmuje jednostkę czasu przetwarzania, powrót nie wymaga czasu. Na znalezienie rozwiązania sekwencyjnie potrzeba zatem (wg tutaj opisanej metody) 10 jednostek czasu. Przetwarzanie realizowane współbieŝnie polega wpierw na wyznaczeniu sekwencyjnym węzłów 2 poziomu (czerwone) zajmuje to czas równy 2 jednostki a następnie na przetwarzaniu równoległym na 2 procesorach poddrzew rozpoczynających się w wyznaczonych węzłach (czerwonych). Proszę określić moŝliwe do uzyskania przyspieszenie, czy jest to anomalia jeśli tak to dlaczego i czym jest ona spowodowana. Jaka jest inna moŝliwa przyczyna tego typu anomalii? Efektywność przetwarzania współbieŝnego 42. Niech nproc będzie zmienną przechowującą liczbę procesorów w systemie pomniejszoną o 1. Dany jest następujący algorytm sortowania przez scalanie, który sortuje elementy pewnej tablicy począwszy od elementu o indeksie lewy do elementu o indeksie prawy: sort(lewy, prawy) 6
7 { if (lewy == prawy) return; srodek = (lewy + prawy) / 2; if (nproc > 0) { nproc--; wykonaj sort(lewy, srodek) w nowym watku; } else sort(lewy, srodek); sort(srodek+1, prawy); synchronizuj_watki(); merge(lewy, prawy) } JeŜeli przyjmiemy n=prawy-lewy+1 (czyli n to liczba elementów na których operują funkcje sort i merge), to zakładamy Ŝe: Wykonanie funkcji sort na jednym procesorze trwa n*log 2 (n) jednostek czasu (wliczając wszystkie wywoływane przez nią rekurencyjnie funkcje sort i merge). Wykonanie funkcji merge, która łączy ciągi posortowane przez funkcję sort, na jednym procesorze trwa n jednostek czasu. Czas wykonania pozostałych instrukcji (np. warunek, dekrementacja nproc) moŝna pominąć. Nie wystąpi problem związany z dostępem do zmiennej nproc jednocześnie z więcej niŝ jednego wątku. Funkcja synchronizuj_watki, czeka aŝ oba wątki sortujące zakończą swoje działanie, jeŝeli nproc pozwoliło na utworzenie kolejnego wątku. Odpowiedz na poniŝsze pytania zakładając, Ŝe liczba procesorów, na komputerze na którym wykonywany jest algorytm, wynosi 4: Podaj wzór na przyspieszenie powyŝszego algorytmu w zaleŝności od n. JeŜeli w zaleŝności od przebiegu wykonania programu przyspieszenie moŝe być róŝne, opisz rozwaŝany przypadek i podaj dla niego wzór. Oblicz przyspieszenie dla sortowania n=64 (przyspieszenie moŝesz podać jako nieskrócony ułamek zwykły). Czy jeŝeli zwiększymy liczbę elementów to przyspieszenie zwiększy się? 43. Część obliczeń nie podlegająca zrównolegleniu zajmuje 20% czasu obliczeń realizowanych sekwencyjnie. A) Jaka liczba procesorów zapewni wg prawa Amdahla uzyskanie przyspieszenia równego 4? B) ZauwaŜono dodatkowo, Ŝe uŝycie 4 procesorów udostępnia systemowi większą (niŝ w przypadku jednego identycznego procesora) ilość pamięci podręcznej. Powoduje to wzrost stosunku trafień do pp. W wyniku tego faktu następuje wzrost wydajności przetwarzania procesora i przydzielone obliczenia (realizowane współbieŝnie) wykonuje on w czasie o 10 % krótszym w stosunku do czasu realizacji tych obliczeń w sposób sekwencyjny. Czy spowoduje to uzyskanie ponad liniowego przyspieszenia? Odpowiedź uzasadnij. 44. 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. 45. W wyniku 3 krotnego uruchamiania pewnego kodu na róŝnej liczbie procesorów (5, 10 i 20 dostępnych na wyłączność) stwierdzono, Ŝe za kaŝdym razem czas przetwarzania jest w przybliŝeniu jednakowy i wynosi 10 sekund. Co moŝna powiedzieć o efektywności przetwarzania i koszcie zrównoleglenia dla poszczególnych uruchomień? Czy informacje o rozmiarze danych wejściowych mają znaczenie dla odpowiedzi na postawione pytanie? JeŜeli tak to proszę rozwaŝyć 2 przypadki, w których sekwencyjny czas przetwarzania: byłby dla wszystkich danych wejściowych jednakowy i wynosił 20 sekund lub wynosiłby odpowiednio dla poszczególnych wykorzystanych danych 60, 80 i 160 sekund. Czy uzyskane wartości parametrów jakości przetwarzania mają sens? Proszę uzasadnić odpowiedź. 46. 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. 47. 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. 48. 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. 49. Określić zaleŝność określającą złoŝoność problemu zapewniającą uzyskanie stałej efektywności w funkcji liczby uŝytych procesorów (czyli funkcję stałej efektywności). Na podstawie tej funkcji określić jaki powinien być zbiór elementów n aby uzyskać: 75% efektywność dla 4 procesorów 7
8 75% efektywność dla 8 procesorów 50% efektywność dla 4 procesorów 50% efektywność dla 8 procesorów Przetwarzanie dotyczy algorytmu znajdywania maksymalnej wartości spośród n elementów rozproszonych równomiernie w zbiorze p procesorów. Procesory wyznaczają wpierw lokalnie maksymalną wartość spośród elementów przechowywanych lokalnie, a następnie w kolejnych krokach pracują zgodnie ze schematem na rysunku poniŝej (schemat dla 16 procesorów, strzałki oznaczają komunikację). Przyjąć Ŝe liczba procesorów wynosi p, a liczba elementów wynosi n. Koszt porównania 2 elementów wynosi 2j, a koszt przesłania wartości wynosi 1j. Dla uproszczenia wyprowadzeń naleŝy przyjąć Ŝe algorytm sekwencyjny (lub przetwarzanie lokalne) wyznaczania maksimum z k elementów wymaga k porównań. 50. Skierowany graf acykliczny słuŝy do prezentacji algorytmu równoległego. Węzły oznaczają zadania, a łuki - komunikacje między zadaniami. Zadanie moŝe zostać przydzielone do procesora po wykonaniu zadań, które są połączone z nim za pomocą łuków wejściowych. Zakładamy, Ŝe kaŝde zadanie zajmuje 2 s, a czas komunikacji jest równy 0. Komunikacje realizowane są współbieŝnie. Dla kaŝdego z 2 algorytmów zaprezentowanych poniŝej określić: A) Maksymalny i średni stopień współbieŝności, B) Wielkość przyspieszenia, efektywności i kosztu zrównoleglenia dla przetwarzania przy uŝyciu liczby procesorów równej połowie maksymalnego stopnia równoległości. 51. Skierowany graf acykliczny słuŝy do prezentacji algorytmu równoległego. Węzły oznaczają zadania, a łuki - komunikacje między zadaniami. Zadanie moŝe zostać przydzielone do procesora po wykonaniu zadań, które są połączone z nim za pomocą łuków wejściowych. Zakładamy, Ŝe kaŝde zadanie wymaga 2 s czasu procesora, a czas komunikacji jest równy 0. Dla kaŝdego z 2 algorytmów zaprezentowanych poniŝej obliczyć: Maksymalny i średni stopień współbieŝności, Wielkość przyspieszenia, efektywności i kosztu zrównoleglenia dla przetwarzania przy uŝyciu liczby procesorów równej połowie maksymalnego stopnia równoległości 8
9
Pytania 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ół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ółowoZadania 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ół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ół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ół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 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ół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ół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ół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ół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ółowo11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym
1. Instrukcja warunkowa a. słuŝy do wprowadzania danych oraz wprowadzania wyników b. to instrukcja decyzyjna c. to sposób przedstawienia algorytmu 2. Instrukcja, która opisuje wykonanie róŝnych czynności
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ół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ół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ół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ół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ółowoEfektywna metoda sortowania sortowanie przez scalanie
Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy
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ół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ół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 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ółowoLista zadań. Babilońska wiedza matematyczna
Lista zadań Babilońska wiedza matematyczna Zad. 1 Babilończycy korzystali z tablicy dodawania - utwórz w arkuszu kalkulacyjnym EXCEL tablicę dodawania liczb w układzie sześćdziesiątkowym, dla liczb ze
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ół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ół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ółowoRekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:
Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n
Bardziej szczegółowoCo to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,
wprowadzenie Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu, w przepisie tym podaje się opis czynności, które trzeba wykonać, oraz dane, dla których algorytm będzie określony.
Bardziej szczegółowo1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco
1. Liczby 3456.0012 i 0.000076235 w zapisie zmiennoprzecinkowym przedstawia się następująco a) 0.34560012 10 4 i 0.76235 10 4 b) 3.4560012 10 3 i 7.6235 10 5 c) 3.4560012 10 3 i 7.6235 10 5 d) po prostu
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ółowoPoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Bardziej szczegół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ół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ółowoAlgorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
Bardziej szczegółowoLiteratura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.
Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów
Bardziej szczegółowoObliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
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ół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ół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ółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
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ół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ół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ół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ółowooperacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
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ół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ółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoPrzetwarzanie równoległe Zadanie domowe III
Przetwarzanie równoległe Zadanie domowe III Jarosław Marek Gliwiński #indeksu 7439 16 stycznia 010 1 Wstęp 1.1 Wykaz skrótów i oznaczeń W pierwszej kolejności przedstawione zostaną używane w pracy oznaczenia,
Bardziej szczegół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ół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ół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ółowoAlgorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek
Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących
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ółowoProgramowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Bardziej szczegółowoINFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn
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ół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ółowoZmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.
Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez
Bardziej szczegółowo5. Model komunikujących się procesów, komunikaty
Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć
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ółowoWydajność komunikacji grupowej w obliczeniach równoległych. Krzysztof Banaś Obliczenia wysokiej wydajności 1
Wydajność komunikacji grupowej w obliczeniach równoległych Krzysztof Banaś Obliczenia wysokiej wydajności 1 Sieci połączeń Topologie sieci statycznych: Sieć w pełni połączona Gwiazda Kraty: 1D, 2D, 3D
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegół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ółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoZasady projektowania algorytmów równoległych
Zasady projektowania algorytmów równoległych Rafał Walkowiak Zima? 25 /8/25 Zasady projektowania Algorytm równoległy Algorytm sekwencyjny: sekwencja kroków rozwiązujących problem przy użyciu komputera
Bardziej szczegółowo1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowo16. Taksonomia Flynn'a.
16. Taksonomia Flynn'a. Taksonomia systemów komputerowych według Flynna jest klasyfikacją architektur komputerowych, zaproponowaną w latach sześćdziesiątych XX wieku przez Michaela Flynna, opierająca się
Bardziej szczegół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ół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ółowoPytania do treści wykładów:
Pytania do treści wykładów: Wprowadzenie: 1. Jakie zadania zarządzania realizowane są dla następujących zasobów: a) procesor, b) pamięć, c) plik? 2. W jaki sposób przekazywane jest sterowanie do jądra
Bardziej szczegółowoOrganizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej
Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza
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ół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ół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ółowoWYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału
WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału Problem przydziału Przykład Firma KARMA zamierza w okresie letnim przeprowadzić konserwację swoich urządzeń; mieszalników,
Bardziej szczegółowoAdresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów
Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście
Bardziej szczegółowoPodstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
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 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ółowowstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)
egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:..............................................................
Bardziej szczegółowoSortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:
Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące
Bardziej szczegółowoSystem plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked
Bardziej szczegółowoSystem plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka
Bardziej szczegółowoSystem plików warstwa fizyczna
System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności
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ół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ółowoProjekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31
Strona: 1 z 31 Explorer Analyzer 1 Uruchamianie programu i raportu PoniŜsze czynności uruchamiają program Bex Analyzer oraz wybrany raport z hurtowni danych. 1. uruchom z menu Start>Programy>Business Explorer>Analyzer
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ół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ółowoAlgorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
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ół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ółowo