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

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

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

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

PRZEWODNIK PO PRZEDMIOCIE

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

Algorytmy i Struktury Danych

Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W E, 2L PRZEWODNIK PO PRZEDMIOCIE

Analiza efektywności przetwarzania współbieżnego

System obliczeniowy laboratorium oraz. mnożenia macierzy

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

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

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

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

Nowoczesne technologie przetwarzania informacji

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017

Programowanie Rozproszone i Równoległe

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

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

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

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017

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.

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

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

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

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

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

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

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

Informatyka II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Przetwarzanie Rozproszone i Równoległe

Algorytmy dla maszyny PRAM

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

Programowanie procesorów graficznych GPGPU

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

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

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

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

Budowa Mikrokomputera

Ograniczenia efektywności systemu pamięci

Opis efektów kształcenia dla modułu zajęć

Dr inż. hab. Siergiej Fialko, IF-PK,

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

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

Obliczenia Wysokiej Wydajności

Numeryczna algebra liniowa

Obliczenia Wysokiej Wydajności

Moc płynąca z kart graficznych

Nazwa Wydziału Nazwa jednostki prowadzącej moduł Nazwa modułu kształcenia Kod modułu Język kształcenia Efekty kształcenia dla modułu kształcenia

E-I2S-2001-s1. Informatyka II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Architektura komputerów

Ograniczenia efektywności systemu pamięci

i3: internet - infrastruktury - innowacje

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

16. Taksonomia Flynn'a.

Analiza ilościowa w przetwarzaniu równoległym

Modelowanie procesów współbieżnych

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

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

HPC na biurku. Wojciech De bski

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

Jak ujarzmić hydrę czyli programowanie równoległe w Javie. dr hab. Piotr Bała, prof. UW ICM Uniwersytet Warszawski

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) niestacjonarne (stacjonarne / niestacjonarne)

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Wprowadzenie do programowania współbieżnego

O superkomputerach. Marek Grabowski

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

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

Architektura mikroprocesorów TEO 2009/2010

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Dydaktyka Informatyki budowa i zasady działania komputera

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

Metody optymalizacji soft-procesorów NIOS

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

SYSTEMY WBUDOWANE CZASU RZECZYWISTEGO. Specjalność magisterska Katedry Systemów Elektroniki Morskiej

INŻYNIERIA OPROGRAMOWANIA

DLA SEKTORA INFORMATYCZNEGO W POLSCE

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

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

E-ID1G-06-s5. Programowanie współbieżne. Informatyka I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

OpenMP środowisko programowania komputerów równoległych ze wspólną pamięcią

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

Architektura komputerów

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

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

PRZEWODNIK PO PRZEDMIOCIE

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

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

PROCESOR Z ODBLOKOWANYM MNOŻNIKIEM!!! PROCESOR INTEL CORE I7 4790K LGA1150 BOX

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Wykład 2 Podstawowe pojęcia systemów równoległych, modele równoległości, wydajność obliczeniowa, prawo Amdahla/Gustafsona

Programowanie współbieżne Wykład 1. Rafał Skinderowicz

Zrównoleglenie i przetwarzanie potokowe

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Egzamin / zaliczenie na ocenę*

Transkrypt:

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 and Building Parallel Programs; I.Foster, http://www-unix.mcs.anl.gov/dbpp/ 4. Podstawy programowania współbieżnego, M. Ben-Ari, WNT 5. Programowanie współbieżne i rozproszone, Z.Weiss, T.Gruźlewski, WNT 6. Software Optimization for High-Performance Computing; Wadleigh, Crawford, Prentice Hall 2000 3/26/2018 Przetwarzanie równoległe - wstęp 1

Materiały związane z przedmiotem www.cs.put.poznan.pl/rwalkowiak Użutkownik: student Hasło: 3.10.2017 3/26/2018 Przetwarzanie równoległe - wstęp 2

Konsultacje W trakcie zajęć semestru W poniedziałki w godz. 18.30-20.00 Zapraszam do konsultacji zagadnień związanych z przedmiotem: projekty, zadania egzaminacyjne, wykładany materiał. 3/26/2018 Przetwarzanie równoległe - wstęp 3

Zmiany w stosunku do ubiegłych lat Zaliczenie w formie egzaminu podczas sesji. Forma pytań zaliczeniowych nie zmienia się. Pytania problemowe jako test zrozumienia zagadnień z zakresu przetwarzania równoległego. 3/26/2018 Przetwarzanie równoległe - wstęp 4

Przykład 1 zadania egz. Proszę skorzystać z prawa Amdahla. Sp(s;p) jest to przyspieszenie dla obliczeń charakteryzujących się częścią sekwencyjną (niezrównoleglającą się) równą s przeprowadzonych na p procesorach. Analogicznie oznaczona jest efektywność E(s;p). Wiadomo z prawa Amdahla, że przyspieszenie wzrasta z liczbą procesorów. Wiadomo też, że efektywność obliczeń spada wraz z liczbą procesorów. Proszę powiedzieć: Ile i dlaczego będą równe Sp(s;p=nieskończoność), E(s;p=nieskończoność)? Proszę wyjaśnić ile wynosi iloraz E(s=0,2; p=nieskończoność)/ E(s=0,4; p=nieskończoność)? 3/26/2018 Przetwarzanie równoległe - wstęp 5

Przykład 2 zadania egz. Za pomocą odpowiedniej funkcji przydzielono 4 wątki na 4 procesory systemu równoległego (z prywatnymi pamięciami podręcznymi o długości linii pp 64 bajty). Obliczenia 4 wątków utworzonych dla kodu podanego poniżej korzystają ze zmiennych współdzielonych typu float (4 bajty). Zmienne i oraz n są przechowywane w rejestrach. 0,5 Z ilu różnych obiektów zmiennych korzystają wątki - proszę wymienić wszystkie? Które obiekty zmiennych są prywatne a które są współdzielone? 1,0 Proszę wyjaśnić - Ile wynosi stosunek trafień do pp dla dostępów (odczyty i zapisy) do zmiennych współdzielonych, a ile do zmiennych prywatnych? int i,n; float a[n],suma; #pragma omp parallel for reduction(suma:+) schedule(static,1) for (i=0; i<n; i++) Suma+=a[i]]; 3/26/2018 Przetwarzanie równoległe - wstęp 6

Zakres przedmiotu 1. Motywacje do zagadnień przetwarzania 2. Architektury maszyn 3. Modele przetwarzania 4. Podstawy projektowania algorytmów 5. Ocena efektywności programów 6. Komunikacja w systemach 7. Algorytmy 3/26/2018 Przetwarzanie równoległe - wstęp 7

Dlaczego warto studiować przetwarzanie równoległe? Przetwarzanie sekwencyjne jest dziś całkiem szybkie Jednak: Potrzebujemy ciągle rosnącej wydajności Budujemy systemy równoległe np. procesory wielordzeniowe, wieloprocesorowe karty graficzne Potrzebujemy umiejętności tworzenia programów równoległych Równoległość to duże wyzwanie intelektualne dla informatyki modele, języki, algorytmy, sprzęt 3/26/2018 Przetwarzanie równoległe - wstęp 8

Zamiana sytuacji w technologii mikroprocesorów Lata 1986-2002 mikroprocesory przyspieszały średnio z roku na rok o około 50% (większa efektywność obliczeń) Od 2003: wzrost efektywności około 20% na rok, obserwacja granic wzrostu prędkości wynikających z: właściwości fizycznych materiałów (odprowadzanie energii cieplnej, cieplno - niestabilne systemy, opóźnienia transmisji sygnału), wykorzystania możliwości zrównoleglenia przetwarzania na poziomie pojedynczego procesora (długość słowa, superskalarność) wysokiej złożoności struktury mikroprocesora Dziś równoległość przetwarzania nie tylko w superkomputerach i centrach naukowych. Zamiast projektować i realizować szybsze mikroprocesory umieszcza się wiele procesorów w ramach pojedynczego układu scalonego tzw. rdzenie. 3/26/2018 Przetwarzanie równoległe - wstęp 9

Oczekiwania na wzrost efektywności - przykłady Modelowanie klimatu, prognozowanie pogody Nauki biologiczne (badania genomu, struktury białek itp) Badania nad lekarstwami, szczepionkami Poszukiwania nowych źródeł energii Analiza danych w gospodarce 3/26/2018 Przetwarzanie równoległe - wstęp 10

Rola programistów co jest problemem? Dodatkowe rdzenie nie powodują wzrostu efektywności obliczeń - jeśli programiści ich nie wykorzystają ( wykorzystywane komputera tylko dla kodu sekwencyjnego). Efektywność przetwarzania programów sekwencyjnych nie wzrasta w systemach wielordzeniowych, wieloprocesorowych. Konieczne rozumienie sposobu działania systemów równoległych, wiedza o programowaniu równoległym i umiejętności przeprowadzenia równoległych obliczeń dla wykorzystania procesorów wielordzeniowych i kart graficznych. 3/26/2018 Przetwarzanie równoległe - wstęp 11

Możliwe podejścia w programowaniu dla systemów równolełych Ponowne napisanie programów sekwencyjnych aby stały się Zastosowanie programów zrównoleglających: Ograniczony zakres powodzenia Zrównoleglenie tylko pewnych konstrukcji kodowych np. równoległe wykonanie pętli Trudne zadnie aby było efektywnie (możliwe?) Podejście od nowa - zaprojektowanie algorytmu, tak aby odzwierciedlał równoległość dostępną w problemie i metodzie jego rozwiązania. 3/26/2018 Przetwarzanie równoległe - wstęp 12

Dalsze uzasadnienia dla przetwarzania równoległego Skrócenie czasu projektownia i wdrożenia systemów wieloprocesorowych (lub wielordzeniowych) wykorzystanie standardowych interfejsów sprzętowych pozwala na zastosowanie nowych architektur i technologii procesorów, zaawansowane narzędzia projektowe i testujące. Postęp w standaryzacji środowisk przetwarzania równoległego zapewniający dłuższy cykl życia aplikacji równoległych (MPI, Open MP, OpenGL, CUDA) 3/26/2018 Przetwarzanie równoległe - wstęp 13

Budowa sprzętu - równoległość wewnętrzna Wzrost złożoności układów scalonych (IC) podwojenie złożoności w ciągu 18 miesięcy (wg Gordona Moora) poprzez nowe technologie wytwarzania IC. Dla wykorzystania możliwego technologicznie wzrostu złożoności IC i jego przekształcenia na wzrost wydajności przetwarzania konieczna praca nad równoległością wewnętrzną procesora (potokowość, superskalarność i aby były możliwe: dynamiczne przetwarzania rozkazów, predykcja rozgałęzień, wstępne pobranie kodu i danych), konieczne zrozumienie równoległości wewnętrznej procesora. 3/26/2018 Przetwarzanie równoległe - wstęp 14

Prędkość dostępu do pamięci (ang. memory wall) powiązania z przetwarzaniem równoległym Przyrost prędkości zegarów procesorów przewyższa wzrost prędkości dostępu do jednostki pamięci. Efektem jest konieczność korzystania z szybszych systemów pamięci pamięci podręcznej. Efektywność systemów jest zależna od stopnia obsługi żądań dostępu do pamięci w ramach szybkiej pamięci podręcznej. Zasada lokalności obowiązująca przy projektowaniu algorytmu równoległego prowadzi do kodu efektywnie korzystającego z pamięci podręcznej widoczne tutaj są korzyści z badań nad równoległością dla zapewniania efektywności przetwarzania sekwencyjnego. 3/26/2018 Przetwarzanie równoległe - wstęp 15

Lokalność przetwarzania, dostępu do danych W systemach równoległych ogólna przepustowość procesorypamięć jest większa niż w systemach jednoprocesorowych z powodu: większej pamięci podręcznej, równoległego dostępu procesorów do pamięci. Wynik: podział na (równolegle realizowane) podproblemy umożliwia większą lokalność przetwarzania i wyższą efektywność dostępu do pamięci. Dodatkowo wzrost rozmiaru pp (w systemie równoległym) prowadzi do efektywnego przetwarzania (możliwe jest nawet skrócenie czasu przetwarzania w większym stopniu niż wynikający z użytej liczby procesorów). 3/26/2018 Przetwarzanie równoległe - wstęp 16

Rozważmy prosty problem 1 2 3 5 5 6 7 8 4 5 1 3 0 3 1 1 1 1 1 1 1 7 9 101 Sumowanie elementów tablicy a1 = rdtsc(); for(int i=0;i<max;i++) suma+=table[i]; a2 = rdtsc(); printf("czas obliczeń =%llu us \n", (a2- a1)*3/10000); Czas przetwarzania sekwencyjnego: dla MAX 100000 i Intel 2,8 GHz i5 (4 rdzenie) 250 us 3/26/2018 Przetwarzanie równoległe - wstęp 17

Zróbmy to równolegle P1 P2 P3 P4 Sumowanie elementów tablicy za pomocą 4 procesów a1 = rdtsc(); #pragma omp parallel #pragma omp for shared(table,suma) for(int i=0;i<max;i++) suma+=table[i]; a2 = rdtsc(); printf("czas obliczeń =%llu us \n", (a2-a1)*3/10000); 3/26/2018 Przetwarzanie równoległe - wstęp 18

Równoległe sumowanie elementów Wyniki: wyścig niepoprawne wyścig w dostępie do współdzielonej zmiennej - rezultat nadpisania odczytanych i wykorzystywanych przez inny proces (na tym samych lub innym procesorze) wartości zmiennej suma Rozwiązanie: Synchronizacja dostępu do zmiennej współdzielonej 3/26/2018 Przetwarzanie równoległe - wstęp 19

Równoległe sumowanie elementów poprawny program liczy się powoli Rozwiązanie 2: a1 = rdtsc(); #pragma omp parallel #pragma omp for shared(table,suma) for(int i=0;i<max;i++) #pragma omp atomic suma+=table[i]; a2 = rdtsc(); printf("czas obliczeń =%llu us \n", (a2-a1)*3/10000); Wynik poprawny: czas pracy około 2800 us czyli zamiast skrócenia czasu obliczeń - 11 razy dłużej niż sekwencyjnie. Dlaczego? 3/26/2018 Przetwarzanie równoległe - wstęp 20

L2 Równoległe sumowanie elementów Memory L2 L3 L2 L2 Koszty: #pragma omp parallel for for(int i=0;i<max;i++) #pragma omp atomic suma+=table[i]; koszt dostępu do pamięci (dyrektywa atomic wprowadza odczyt i zapis wartości zmiennej z/do pamieci przed/po jej wykorzystaniem koszt dostępu do zamka (mutex_lock) dla synchronizacji dostępu do zmiennej na poziomie procesów koszt przepisywania danych pomiędzy poziomami pamięci: procesorem, pamięcią podręczną L1 jednego rdzenia, wspóldzieloną pp L3, L1 innego rdzenia, a nawet do innego procesora (gdy wiele fizycznych procesorów) suma jest: współdzielona modyfikowana ale nie jest lokalna!! nie jest w sposób ciągły dostępna dla wątku w procesorze, na którym wątek 3/26/2018 jest przetwarzany 21 L1 L1 L1 L1 P1 P2 P3 P4 Przepisywanie wartości współdzielonej

Równoległe sumowanie elementów Rozwiązanie 3: Większa lokalność przetwarzania prywatna suma #pragma omp parallel { float sumal=0.0; #pragma omp for for(int i=0;i<max;i++) sumal+=table[i]; #pragma omp atomic ;poza pętlą każdy wątek jeden raz } suma+=sumal; Czas przetwarzania na 4 procesorach: 70 us czyli 3,6 x szybciej niż sekwencyjnie. Wnioski: 1. efektywna równoległość = maksymalizacja lokalności dostępów do danych 2. równoległość to często konieczność synchronizacji obliczeń (ale synchronizacji efektywnej rzadko występującej). 3/26/2018 Przetwarzanie równoległe - wstęp 22

Równoległe sumowanie elementów 3/26/2018 Przetwarzanie równoległe - wstęp 23

Cele w programowaniu równoległym Skalowalność: kolejne procesory mogą zostać dodane dla szybszego rozwiązania problemu Wydajność: efektywnie wykorzystać dostępne procesory - przyspieszenie Przenośność: oprogramowanie nadające się do przenoszenia między systemami 3/26/2018 Przetwarzanie równoległe - wstęp 24