Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

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

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

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

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

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

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

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

Literatura. 3/26/2018 Przetwarzanie równoległe - wstęp 1

Materiały pomocnicze do laboratorium. 1. Miary oceny efektywności 2. Mnożenie macierzy 3. Znajdowanie liczb pierwszych

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

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

Analiza efektywności przetwarzania współbieżnego

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

System obliczeniowy laboratorium oraz. mnożenia macierzy

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

PROJEKT 3 PROGRAMOWANIE RÓWNOLEGŁE. K. Górzyński (89744), D. Kosiorowski (89762) Informatyka, grupa dziekańska I3

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

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

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

Numeryczna algebra liniowa

Programowanie CUDA informacje praktycznie i. Wersja

Programowanie procesorów graficznych GPGPU

Moc płynąca z kart graficznych

Nowoczesne technologie przetwarzania informacji

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

Podstawy OpenCL część 2

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

CUDA. cudniejsze przyk ady

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Przetwarzanie Równoległe i Rozproszone

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Sprawozdanie do zadania numer 2

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

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Programowanie współbieżne Wykład 7. Iwona Kochaoska

i3: internet - infrastruktury - innowacje

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

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

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

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

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

Analizator wydajności AMD CodeAnalyst

Programowanie CUDA informacje praktycznie i przykłady. Wersja

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

PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.

Wstęp do obliczeń równoległych na GPU

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

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

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

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

Ograniczenia efektywności systemu pamięci

Obliczenia Wysokiej Wydajności

Programowanie PKG - informacje praktycznie i przykłady. Wersja z Opracował: Rafał Walkowiak

Architektura komputerów

Pytania przykładowe (z ubiegłych lat) na zaliczenie przedmiotu Przetwarzanie równoległe Przygotował Rafał Walkowiak Poznań 3.01.

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

PROBLEMATYKA OBLICZEŃ MASOWYCH W NAUKACH O ZIEMI. Satelitarny monitoring środowiska

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Tesla. Architektura Fermi

Zasady analizy algorytmów

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

4. Procesy pojęcia podstawowe

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Programowanie Rozproszone i Równoległe

Zaawansowane algorytmy i struktury danych

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Obliczenia Wysokiej Wydajności

Algorytm. a programowanie -

Pomiary efektywności dla komputerów z procesorami. Opracował: Rafał Walkowiak marzec 2019

Zrównoleglenie i przetwarzanie potokowe

Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.

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

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

Sortowanie przez scalanie

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Budowa i użytkowanie klastrów w opaciu o układy Cell BE oraz GPU

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

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

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Raport Hurtownie Danych

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Stronicowanie w systemie pamięci wirtualnej

1. Analiza algorytmów przypomnienie

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

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Metody Obliczeniowe w Nauce i Technice

4. Procesy pojęcia podstawowe

System pamięci. Pamięć wirtualna

Transkrypt:

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ą współdzieloną oraz karty graficznej. Wykorzystywane technologie to OpenMP oraz CUDA. Obliczenia dotyczą problemu mnożenia tablic. Opis problemu obliczeniowego: Mnożenie tablic kwadratowych podczas którego każdy element tablicy wynikowej C powstaje jako suma iloczynów elementów z odpowiedniego wiersza tablicy A i odpowiedniej kolumny tablicy B. W skład projektu wchodzi: Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania, Analiza poprawności kodu równoległego przygotowanych wersji (sprawdzenie obecności wyścigu w dostępie do danych współdzielonych), Analiza efektywności kodu o Dla CPU analiza warunków lokalnego czasowo dostępu do danych w pamięci podręcznej (określenie wielkości instancji problemu umożliwiające jednokrotne pobieranie danych do współdzielonej pamięci podręcznej poziomu 3 procesora), o Dla CPU analiza warunków lokalnego przestrzennie dostępu do danych; zakładamy wielkość pamięci podręcznej adresów stron wirtualnych danych (DTLB) na poziomie 512 par wpisów adresów stron o rozmiarze 4 kb; dotyczy każdego rdzenia procesora w lab 2.7.6 o Dla CPU analiza zrównoważenia obciążenia rdzeni procesora pracą przy przetwarzaniu równoległym. o Dla GPU analiza efektywności dostępu do pamięci: łączenie dostępów do pamięci globalnej, współczynnik CGMA. o Dla GPU analiza efektywności obliczeń: zrównoważenie obciążenia systemu, zajętość multiprocesora. Określenie charakterystycznych wielkości instancji problemu: o Zapewniających równomierne obciążenie procesorów systemu obliczeniowego o zapewniających lokalność przestrzenną dostępu do danych, o zapewniających lokalność czasową dostępu dodanych. o powodujących brak lokalności przestrzennej dostępu do danych, o powodujących brak lokalności czasowej dostępu do danych. Wykonanie eksperymentu dla różnych instancji charakterystycznych po skompilowaniu kodu z maksymalnym poziomem optymalizacji kodu (wersja Release kodu). Pomiar czasu przetwarzania każdej instancji w systemie od momentu wywołania funkcji mnożącej tablice do momentu zakończenia obliczeń

przez tę funkcję mierzony czas nie jest sumą czasu pracy procesorów. Czas przygotowania danych w pamięci operacyjnej nie jest uwzględniony w czasie przetwarzania. Wyznaczenie parametrów przetwarzania: prędkość przetwarzania jako liczba instrukcji (zgodnie ze złożonością algorytmu) na sekundę, przyspieszenie przetwarzania w stosunku do najszybszego algorytmu sekwencyjnego wykonanego przy użyciu CPU np. standardowy algorytm z kolejnością zagnieżdżenia iteracji ikj. Do obliczeń proszę wykorzystać tablice zainicjowane liczbami losowymi (np. matrix_a[i][j] = (float) rand() / RAND_MAX ;) sprawdzić poprawność przetwarzania równoległego przez porównanie z wynikami przetwarzania sekwencyjnego (uwzględnić możliwy błąd zaokrągleń). Przygotowanie sprawozdania. Sprawozdanie zawierać powinno: Prezentacja wykorzystanego systemu obliczeniowego i jego kluczowych parametrów (liczba rdzeni, struktura pamięci podręcznej, wielkość DTLB) jeśli użyto inny niż komputery laboratoryjne. Kluczowe fragmenty kodu sekwencyjnego i równoległego, omówić użyte dyrektywy Open MP i specyficzne dla przetwarzania na GPU wyrażenia kodu kernela. Prezentacja wyników analiz z przygotowania eksperymentu: lokalność dostępu dodanych, przydział pracy do wątków w CPU i GPU, dane przetwarzane (czytane lub wyznaczane) przez poszczególne wątki (CPU) i bloki wątków (GPU) opis słowny i rysunki. Obliczenie, prezentacja i porównanie miar efektywności najszybsze, najwolniejsze przetwarzanie, najwyższe i najniższe przyspieszenie przetwarzania równoległego. Wyniki uzyskane dla różnych uruchomień (różne systemy, kody i instancje) należy zebrać w jedną tabelę lub kilka tabel dla umożliwienia łatwego porównania wartości. Próba uzasadnienia obserwowanych (na podstawie miar efektywności) przyczyn niskiej/wysokiej efektywności przetwarzania dla poszczególnych wersji kodu i rozmiarów instancji. Komentować/uzasadniać należy wartości zawarte w tabelach z określeniem numeru tabeli, wiersza i kolumny oraz przypomnienia warunków dla których komentowany parametr został wyznaczony. Wersje projektu: 1. Porównanie efektywności metod równolełych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy przed pętlą zewnętrzną; kolejność pętli: zewnętrznych ijk, GPU użycie wyłącznie pamięci globalnej 2. Porównanie efektywności metod równolełych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po pętli zewnętrznej; kolejność pętli: zewnętrznych ijk, GPU użycie wyłącznie pamięci globalnej 3. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po 3 pętli; kolejność pętli: zewnętrznych ijk,

GPU użycie wyłącznie pamięci globalnej 4. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy przed pętlą zewnętrzną; kolejność pętli: zewnętrznych ijk, GPU użycie pamięci współdzielonej (jeden 5. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po pętli zewnętrznej; kolejność pętli: zewnętrznych ijk, GPU użycie pamięci współdzielonej (jeden 6. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po 3 pętli; kolejność pętli: zewnętrznych ijk, GPU użycie pamięci współdzielonej (jeden 7. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy przed pętlą zewnętrzną; kolejność pętli: zewnętrznych ijk, GPU użycie pamięci współdzielonej (dwa 8. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po pętli zewnętrznej; kolejność pętli: zewnętrznych ijk, GPU użycie pamięci współdzielonej (dwa 9. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po 3 pętli; kolejność pętli: zewnętrznych ijk, GPU użycie pamięci współdzielonej (dwa 10. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy przed pętlą zewnętrzną; kolejność pętli: zewnętrznych ijk, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (jeden 11. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po pętli zewnętrznej; kolejność pętli: zewnętrznych ijk, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (jeden 12. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj,

CPU 6 pętli podział pracy po 3 pętli; kolejność pętli: zewnętrznych ijk, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (jeden 13. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy przed pętlą zewnętrzną; kolejność pętli: zewnętrznych ijk, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (dwa obszay jednoczesne obliczenia i zapełnianie) 14. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po pętli zewnętrznej; kolejność pętli: zewnętrznych ijk, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (dwa 15. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 6 pętli podział pracy po 3 pętli; kolejność pętli: zewnętrznych ijk, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (dwa 16. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jki, GPU użycie wyłącznie pamięci globalnej 17. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jik, GPU użycie wyłącznie pamięci globalnej 18. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: ijk, GPU użycie wyłącznie pamięci globalnej 19. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jki, GPU użycie pamięci współdzielonej (jeden 20. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jik, GPU użycie pamięci współdzielonej (jeden 21. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: kij, GPU użycie pamięci współdzielonej (jeden

22. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jki, GPU użycie pamięci współdzielonej (dwa 23. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jik, GPU użycie pamięci współdzielonej (dwa 24. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: kij, GPU użycie pamięci współdzielonej (dwa 25. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jki, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (jeden 26. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jik, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (jeden 27. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: kij, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (jeden 28. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jki, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (dwa obszay jednoczesne obliczenia i zapełnianie) 29. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: jik, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (dwa 30. Porównanie efektywności metod równoległych CPU 3 pętle - kolejność pętli: ikj, CPU 3 pętle - kolejność pętli: ijk, GPU proces liczy dwa wyniki (podwyższenie CGMA), użycie pamięci współdzielonej (dwa Literatura: Wykłady i literatura przedmiotu

Przygotowany: 4.11.2017 Zmiany: brak