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

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

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

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

PRZEWODNIK PO PRZEDMIOCIE

Algorytmy i Struktury Danych

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

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

Analiza 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

System obliczeniowy laboratorium oraz. mnożenia macierzy

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

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 równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

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

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

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

Przetwarzanie Rozproszone i Równoległe

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

Nowoczesne technologie przetwarzania informacji

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

Programowanie Rozproszone i Równoległe

Analiza ilościowa w przetwarzaniu równoległym

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

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

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

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

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

Numeryczna algebra liniowa

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

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.

Budowa Mikrokomputera

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

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności

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Ą

Moc płynąca z kart graficznych

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

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

4. Procesy pojęcia podstawowe

Programowanie procesorów graficznych GPGPU

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

i3: internet - infrastruktury - innowacje

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

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

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

Algorytmy dla maszyny PRAM

Modelowanie procesów współbieżnych

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

Architektura mikroprocesorów TEO 2009/2010

Architektura komputerów

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 CZASU RZECZYWISTEGO. Specjalność magisterska Katedry Systemów Elektroniki Morskiej

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

Metody optymalizacji soft-procesorów NIOS

4. Procesy pojęcia podstawowe

Architektura komputerów

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

Wprowadzenie do programowania współbieżnego

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

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

16. Taksonomia Flynn'a.

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

Architektura potokowa RISC

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

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

INŻYNIERIA OPROGRAMOWANIA

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

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

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

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

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

Podstawy Informatyki Systemy sterowane przepływem argumentów

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

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

Katedra Systemów Elektroniki Morskiej. Specjalność Systemy elektroniki morskiej

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

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

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Wstęp. Przetwarzanie równoległe. Krzysztof Banaś Obliczenia równoległe 1

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

Dydaktyka Informatyki budowa i zasady działania komputera

HARMONOGRAM EGZAMINÓW - rok akademicki 2015/ semestr zimowy. Kierunek ENERGETYKA - studia inżynierskie środa

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

DLA SEKTORA INFORMATYCZNEGO W POLSCE

Program Obliczeń Wielkich Wyzwań Nauki i Techniki (POWIEW)

Wykład Ćwiczenia Laboratorium Projekt Seminarium

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

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa, Inżynieria oprogramowania, Technologie internetowe

USŁUGI HIGH PERFORMANCE COMPUTING (HPC) DLA FIRM. Juliusz Pukacki,PCSS

Urządzenia wejścia-wyjścia

Ograniczenia efektywności systemu pamięci

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

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

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 11/16/2016 Przetwarzanie równoległe - wstęp 1

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 11/16/2016 Przetwarzanie równoległe - wstęp 2

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 11/16/2016 Przetwarzanie równoległe - wstęp 3

Zamiana sytuacji w technologii mikroprocesorów Lata 1986-2002 mikroprocesory przyspieszały średnio z roku na rok o około 50% 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. 11/16/2016 Przetwarzanie równoległe - wstęp 4

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 11/16/2016 Przetwarzanie równoległe - wstęp 5

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

Możliwe podejścia 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. 11/16/2016 Przetwarzanie równoległe - wstęp 7

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) 11/16/2016 Przetwarzanie równoległe - wstęp 8

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. 11/16/2016 Przetwarzanie równoległe - wstęp 9

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 (40 % rocznie) przewyższa wzrost prędkości dostępu do jednostki pamięci (10 % rocznie). 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. 11/16/2016 Przetwarzanie równoległe - wstęp 10

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). 11/16/2016 Przetwarzanie równoległe - wstęp 11

Przetwarzanie danych W pewnych zastosowaniach komputerów wielkie ilości danych muszą być przeanalizowane, a ilość danych powoduje nierealność zbierania ich w jednej lokacji. Sytuacja ta prowadzi naturalnie do rozproszonego i równoległego przetwarzania. 11/16/2016 Przetwarzanie równoległe - wstęp 12

Jak pisać programy równoległe? 1. Równoległość na poziomie zadań podział wśród procesorów zadań realizowanych dla rozwiązania problemu. 2. Równoległość na poziomie danych podział danych używanych w rozwiązaniu problemu, każdy procesor realizuje podobne operacje na swoich danych. 11/16/2016 Przetwarzanie równoległe - wstęp 13

Rodzaje równoległości: przykład 1 poprawianie prac egzaminacyjnych Egzamin: 8 pytań, 150 studentów Poprawianie prac egzaminacyjnych: Praca dla 4 asystentów 11/16/2016 Przetwarzanie równoległe - wstęp 14

Rodzaje równoległości przykład 1 poprawianie prac egzaminacyjnych Asystent A poprawia Grupę I1 Asystent B poprawia Grupę I2 Asystent C poprawia Grupę I3 Asystent D poprawia Grupę I4 LUB Asystent A poprawia pytania 1 i 2 Asystent B poprawia pytania 3 i 4 Asystent C poprawia pytania 5 i 6 Asystent D poprawia pytania 7 i 8 Równoległość danych Równoległość zadań 11/16/2016 Przetwarzanie równoległe - wstęp 15

Cele zajęć Koncepcje szukanie równoległości w problemie i metodzie Algorytmy - różne zasoby wiele procesorów, różne cele nie prędkość obliczeń procesu, a przepustowość przetwarzania zbioru danych Języki mniej sterowania przepływem obliczeń, więcej niezależności Sprzęt optymalizacja komunikacji i ukrycie komunikacji pod czasem niezbędnym do wykonania obliczeń Programowanie opis przetwarzania bez użycia pojęcia kolejności 11/16/2016 Przetwarzanie równoległe - wstęp 16

Przetwarzanie równoległe, a rozproszone Pojęcie Przetwarzanie Równoległe Przetwarzanie Rozproszone Cel Prędkość Wygoda, elastyczność Interakcje Częste Rzadkie Ziarnistość Małe ziarna zadań Duże ziarna zadań Niezawodność Zakładana Nie zakładana 11/16/2016 Przetwarzanie równoległe - wstęp 17

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 11/16/2016 Przetwarzanie równoległe - wstęp 18

Zróbmy to równolegle P1 P2 P3 P4 Sumowanie elementów tablicy za pomocą 4 procesoró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); 11/16/2016 Przetwarzanie równoległe - wstęp 19

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 procesor wartości zmiennej suma Rozwiązanie: Synchronizacja dostępu do zmiennej 11/16/2016 Przetwarzanie równoległe - wstęp 20

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? 11/16/2016 Przetwarzanie równoległe - wstęp 21

L2 Równoległe sumowanie elementów Memory L2 L3 L2 L2 L1 L1 L1 L1 P1 P2 P3 P4 Przepisywanie wartości współdzielonej #pragma omp parallel for for(int i=0;i<max;i++) #pragma omp atomic suma+=table[i]; Koszty: koszt oczekiwania koszt dostępu do zamka (mutex_lock) dla synchronizacji dostępu do zmiennej 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 procesora 11/16/2016 22

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). 11/16/2016 Przetwarzanie równoległe - wstęp 23

Równoległe sumowanie elementów 11/16/2016 Przetwarzanie równoległe - wstęp 24

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 11/16/2016 Przetwarzanie równoległe - wstęp 25