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

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

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

Algorytmy i Struktury Danych

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

PRZEWODNIK PO PRZEDMIOCIE

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

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:

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

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

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

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

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

System obliczeniowy laboratorium oraz. mnożenia macierzy

Przetwarzanie Rozproszone i Równoległe

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.

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

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

Analiza ilościowa w przetwarzaniu równoległym

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

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

Budowa Mikrokomputera

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

Numeryczna algebra liniowa

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności

Programowanie Rozproszone i Równoległe

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

Nowoczesne technologie przetwarzania informacji

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.

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

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

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

4. Procesy pojęcia podstawowe

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

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

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

Moc płynąca z kart graficznych

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

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

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

Algorytmy dla maszyny PRAM

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

Architektura komputerów

4. Procesy pojęcia podstawowe

Metody optymalizacji soft-procesorów NIOS

Architektura komputerów

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

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

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

Architektura potokowa RISC

Architektura mikroprocesorów TEO 2009/2010

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

Modelowanie procesów współbieżnych

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

i3: internet - infrastruktury - innowacje

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

Programowanie procesorów graficznych GPGPU

Podstawy Informatyki Systemy sterowane przepływem argumentów

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

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

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

Wprowadzenie do programowania współbieżnego

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

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

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

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

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

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

Dydaktyka Informatyki budowa i zasady działania komputera

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

16. Taksonomia Flynn'a.

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

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

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

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

INŻYNIERIA OPROGRAMOWANIA

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

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

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

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

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

Systemy na Chipie. Robert Czerwiński

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

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

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

DLA SEKTORA INFORMATYCZNEGO W POLSCE

CZĘŚĆ I. WARSTWA PRZETWARZANIA WSADOWEGO

Urządzenia wejścia-wyjścia

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

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

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

Architektura komputerów II - opis przedmiotu

Transkrypt:

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 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 10/14/2013 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 10/14/2013 Przetwarzanie równoległe - wstęp 2 1.1

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 10/14/2013 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 już 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 np. rdzenie. 10/14/2013 Przetwarzanie równoległe - wstęp 4 1.2

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 10/14/2013 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ą (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ń. 10/14/2013 Przetwarzanie równoległe - wstęp 6 1.3

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 Podejście od nowa - zaprojektowanie algorytmu, tak aby odzwierciedlał równoległość dostępną w problemie i metodzie jego rozwiązania. 10/14/2013 Przetwarzanie równoległe - wstęp 7 Dalsze uzasadnienia dla przetwarzania równoległego Skrócenie czasu realizacji 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) 10/14/2013 Przetwarzanie równoległe - wstęp 8 1.4

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) 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ść, dynamiczne przetwarzania rozkazów, predykcja rozgałęzień, wstępne pobranie kodu i danych), konieczne jej zrozumienie. 10/14/2013 Przetwarzanie równoległe - wstęp 9 Prędkość dostępu do pamięci (ang. memory wall) 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 - Korzyści z równoległości dla sekwencyjności 10/14/2013 Przetwarzanie równoległe - wstęp 10 1.5

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, a dodatkowo wzrost rozmiaru pp (w systemie równoległym) prowadzi do efektywnego przetwarzania (możliwe że skrócenia czasu w większym stopniu niż wynikający z użytej liczby procesorów). 10/14/2013 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. 10/14/2013 Przetwarzanie równoległe - wstęp 12 1.6

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. 10/14/2013 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: 4 asystentów 10/14/2013 Przetwarzanie równoległe - wstęp 14 1.7

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ń 10/14/2013 Przetwarzanie równoległe - wstęp 15 Cele zajęć Koncepcje patrzeć na problemy poprzez równoległe okulary Algorytmy - różne zasoby, różne cele Języki mniej sterowania przepływem obliczeń, więcej niezależności Sprzęt optymalizacja komunikacji i ukrycie komunikacji, Programowanie opis przetwarzania bez użycia pojęcia kolejności 10/14/2013 Przetwarzanie równoległe - wstęp 16 1.8

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 10/14/2013 Przetwarzanie równoległe - wstęp 17 Rozważmy prosty problem 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 10/14/2013 Przetwarzanie równoległe - wstęp 18 1.9

Zróbmy to równolegle P1 P2 P3 P4 Sumowanie elementów tablicy za pomocą 4 procesorów a1 = rdtsc(); #pragma omp parallel 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); 10/14/2013 Przetwarzanie równoległe - wstęp 19 Równoległe sumowanie elementów wyścig Wyniki: niepoprawne rezultat nadpisania odczytanych i wykorzystywanych przez inny procesor wartości zmiennej suma Rozwiązanie: Synchronizacja dostępu do zmiennej 10/14/2013 Przetwarzanie równoległe - wstęp 20 1.10

Równoległe sumowanie elementów poprawny program liczy się powoli Rozwiązanie 2: a1 = rdtsc(); #pragma omp parallel 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? 10/14/2013 Przetwarzanie równoległe - wstęp 21 Równoległe sumowanie elementów Memory L3 #pragma omp parallel for for(int i=0;i<max;i++) #pragma omp atomic suma+=table[i]; L2 L2 L2 L2 L1 L1 L1 L1 P1 P2 P3 P4 Przepisywanie wartości współdzielonej 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 i do innego procesora suma jest modyfikowana i nie jest lokalna!! nie jest w sposób ciągły dostępna w rejestrze 10/14/2013 Przetwarzanie równoległe - wstęp 22 1.11

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 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). 10/14/2013 Przetwarzanie równoległe - wstęp 23 Równoległe sumowanie elementów 10/14/2013 Przetwarzanie równoległe - wstęp 24 1.12

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 10/14/2013 Przetwarzanie równoległe - wstęp 25 1.13