Wstęp do programowania równoległego



Podobne dokumenty
Nowoczesne technologie przetwarzania informacji

Wstęp do programowania równoległego

Architektura komputerów

Nowoczesne technologie przetwarzania informacji

Bazy danych. Andrzej Łachwa, UJ, /15

Ćwiczenie nr 2 Zbiory rozmyte logika rozmyta Rozmywanie, wnioskowanie, baza reguł, wyostrzanie

2. Charakterystyka obliczeń współbieżnych i rozproszonych.

architektura komputerów w. 6 Pamięć I

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Macierze dyskowe RAID

W. Guzicki Zadanie 23 z Informatora Maturalnego poziom rozszerzony 1

I. LOGICZNE STRUKTURY DRZEWIASTE

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

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

WSTĘP DO PROGRAMOWANIA

Rok akademicki: 2015/2016 Kod: RBM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Programowanie dynamiczne

Budowa systemów komputerowych

DEMERO Automation Systems

Charakterystyka systemów plików

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

Podstawy programowania

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Excel w logistyce - czyli jak skrócić czas przygotowywania danych i podnieść efektywność analiz logistycznych

Programowanie Zespołowe

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Komunikacja w sieci Industrial Ethernet z wykorzystaniem Protokołu S7 oraz funkcji PUT/GET

Sieci komputerowe cel

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

TEST WIADOMOŚCI: Równania i układy równań

MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie arkusza kalkulacyjnego EXCEL do rozwiązywania układów równań liniowych metodą wyznacznikową

Zagadnienia transportowe

PODSTAWY DZIAŁANIA UKŁADÓW CYFROWYCH

Statystyczna analiza danych w programie STATISTICA. Dariusz Gozdowski. Katedra Doświadczalnictwa i Bioinformatyki Wydział Rolnictwa i Biologii SGGW

Architektura Systemów Komputerowych. Sterowanie programem skoki Przerwania

Gruntowy wymiennik ciepła PROVENT- GEO

Ćwiczenie: "Ruch harmoniczny i fale"

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

Projekt MES. Wykonali: Lidia Orkowska Mateusz Wróbel Adam Wysocki WBMIZ, MIBM, IMe

Komputer i urządzenia z nim współpracujące

Harmonogramowanie projektów Zarządzanie czasem

Prezentacja dotycząca sytuacji kobiet w regionie Kalabria (Włochy)

ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:

Nowości w module: BI, w wersji 9.0

Od redakcji. Symbolem oznaczono zadania wykraczające poza zakres materiału omówionego w podręczniku Fizyka z plusem cz. 2.

Mikrokontrolery AVR. Konfigurowanie mikrokontrolera ATMEGA16

1 Granice funkcji. Definicja 1 (Granica w sensie Cauchy ego). Mówimy, że liczba g jest granicą funkcji f(x) w punkcie x = a, co zapisujemy.

Wiedza niepewna i wnioskowanie (c.d.)

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

PRZEWODNIK PO PRZEDMIOCIE

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

G PROGRAMMING. Part #4

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

PRÓG RENTOWNOŚCI i PRÓG

Zarządzanie kosztami w dziale utrzymania ruchu

INFORMATOR TECHNICZNY GE FANUC. Rezerwacja w sterownikach programowalnych GE Fanuc. Standby Redundancy najprostszy system rezerwacji

RAPORT z diagnozy Matematyka na starcie

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

PRZETWORNIK NAPIĘCIE - CZĘSTOTLIWOŚĆ W UKŁADZIE ILORAZOWYM

PoluProduction. <jedi> Vision. Version 1.0

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA

STA T T A YSTYKA Korelacja

Technologie Informacyjne

Systemy mikroprocesorowe - projekt

Pracownia budowy pojazdów samochodowych.

MAKSYMALNA WYDAJNOŚĆ MŁOTY HYDRAULICZNE TYPU TXH

Wydział Zarządzania. Poziom i forma studiów. Ścieżka dyplomowania: Kod przedmiotu: Punkty ECTS 1) W - 15 C- 15 L- 0 P- 0 Ps- 0 S- 0

API transakcyjne BitMarket.pl

14.Rozwiązywanie zadań tekstowych wykorzystujących równania i nierówności kwadratowe.

Podejmowanie decyzji. Piotr Wachowiak

Accelerated Graphics Port AGP Advanced Graphics Port AGP jest magistralą równoległą.

Temat: Czy świetlówki energooszczędne są oszczędne i sprzyjają ochronie środowiska? Imię i nazwisko

Komputerowe Systemy Sterowania Sem.VI, Wykład organizacyjny

Konfiguracja historii plików

OPIS PRZEDMIOTU ZAMÓWIENIA:

Szczegółowe wyjaśnienia dotyczące definicji MŚP i związanych z nią dylematów

ROZWIĄZANIA ZADAŃ Zestaw P3 Odpowiedzi do zadań zamkniętych

Systemy informatyczne w zarządzaniu wiedzą. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

2.Prawo zachowania masy

WYMAGANIA EDUKACYJNE SPOSOBY SPRAWDZANIA POSTĘPÓW UCZNIÓW WARUNKI I TRYB UZYSKANIA WYŻSZEJ NIŻ PRZEWIDYWANA OCENY ŚRÓDROCZNEJ I ROCZNEJ

Utrzymanie aplikacji biznesowych SI PSZ

CASE CPI może być wczesnym wskaźnikiem tendencji zmian cen w gospodarce

7. REZONANS W OBWODACH ELEKTRYCZNYCH

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami.

Środki manipulowania. prof. PŁ dr hab. inż. Andrzej Szymonik Łódź 2015/2016

Bioinformatyka Laboratorium, 30h. Michał Bereta

Powiatowy Urząd Pracy w Trzebnicy. w powiecie trzebnickim w 2008 roku Absolwenci w powiecie trzebnickim

EKONOMETRIA II SYLABUS A. Informacje ogólne

Przykłady wybranych fragmentów prac egzaminacyjnych z komentarzami Technik ochrony fizycznej osób i mienia 515[01]

Zaproszenie do projektu. Warszawa Lokalnie

Techniczne nauki М.М.Zheplinska, A.S.Bessarab Narodowy uniwersytet spożywczych technologii, Кijow STOSOWANIE PARY WODNEJ SKRAPLANIA KAWITACJI

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Transkrypt:

Wstęp do programowania równoległego Interdyscyplinarne Centrum Modelowania Matematycznego i Komputerowego Uniwersytet Warszawski http://www.icm.edu.pl Maciej Szpindler m.szpindler@icm.edu.pl Maciej Cytowski m.cytowski@icm.edu.pl Wersja 1.PL, Październik 2009 15.02.2011 Wstęp do programowania równoległego 1

Plan Motywacja i cel wykładu Forma i program wykładu, zasady zaliczenia Wprowadzenie do programowania równoległego Koncepcja programowania równoległego Przykładowe zastosowania Rozwój architektur komputerowych, prawo Moore a Rodzaje równoległości Prawa Amdahl a i Gustafsona Skalowalność aplikacji Abstrakcyjne modele programowania równoległego 15.02.2011 Wstęp do programowania równoległego 2

Plan Motywacja i cel wykładu Forma i program wykładu, zasady zaliczenia Wprowadzenie do programowania równoległego Koncepcja programowania równoległego Przykładowe zastosowania Rozwój architektur komputerowych, prawo Moore a Rodzaje równoległości Prawa Amdahl a i Gustafsona Skalowalność aplikacji Abstrakcyjne modele programowania równoległego 15.02.2011 Wstęp do programowania równoległego 3

Motywacja wykładu Rozwiązywanie wielu zagadnień współczesnej nauki wymaga zastosowania obliczeń wielkiej skali Trendy w rozwoju współczesnych procesorów i komputerów wielordzeniowość, wieloprocesorowość, hybrydowość Sposób wydajnego wykorzystania współczesnych i przyszłych komputerów jest i będzie możliwy tylko dzięki zastosowaniu przetwarzania równoległego Początki programowania równoległego to lata 1960 1970 Obecnie programowanie równoległe oparte jest na: znanych od dekad modeli programowania równoległego, nowych paradygmatów programowania równoległego, językach przyszłości tworzonych dla przyszłych architektur komputerowych. Znajomość technik programowania równoległego to obowiązek każedgo programisty 15.02.2011 Wstęp do programowania równoległego 4

Cel wykładu Przegląd podstawowych zagadnień związanych z obliczeniami równoległymi Prezentacja najpopularniejszych narzędzi programowania równoległego Udostępnienie narzędzi dla zastosowań naukowych w obliczeniach i symulacjach Przybliżenie podstawowych metod obliczeń równoległych Popularyzacja programowania równoległego! projekty programistyczne, prace licencjackie, magisterskie, praca naukowa, praca zawodowa 15.02.2011 Wstęp do programowania równoległego 5

Plan Motywacja i cel wykładu Forma i program wykładu, zasady zaliczenia Wprowadzenie do programowania równoległego Koncepcja programowania równoległego Przykładowe zastosowania Rozwój architektur komputerowych, prawo Moore a Rodzaje równoległości Prawa Amdahl a i Gustafsona Skalowalność aplikacji Abstrakcyjne modele programowania równoległego 15.02.2011 Wstęp do programowania równoległego 6

Forma wykładu Dwie części: wykład/szkolenia laboratorium Zasady zaliczenia: równoległa implementacja algorytmu z wykorzystaniem zaprezentowanych narzędzi konsultacje podczas zajęć Komputery: dostęp do superkomputerów ICM i ich środowisk programistycznych Materiały: Dostęp poprzez główną stronę ICM: http://www.icm.edu.pl/ (zakładka Edukacja) 15.02.2011 Wstęp do programowania równoległego 7

Program wykładu Wstępny program: 1. Wstęp do programowania równoległego (W) 2. Podstawowe zagadnienia programowania równoległego (W) 3. Biblioteka MPI (S) 4. Biblioteka MPI (S) 5. Biblioteka MPI (L) 6. Biblioteka MPI-2 (S) 7. Programowanie w modelu OpenMP (S) 8. Programowanie w modelu OpenMP (S) 9. Programowanie w modelu OpenMP (L) 10. Nowe paradygmaty programowania równoległego (hybrydowe, PGAS i inne) (W) 11. Programowanie w modelu MPI + OpenMP (L) 12. Praca nad projektem zaliczeniowym (L) 13. Praca nad projektem zaliczeniowym (L) 14. Praca nad projektem zaliczeniowym (L) W wykład, S szkolenie, L laboratorium 15.02.2011 Wstęp do programowania równoległego 8

Wycieczka Planowana jest wycieczka do serwerowni ICM (pod koniec semestru). Jak wyglądają współczesne superkomputery i centra danych? Budowa maszyn obliczeniowych i systemów przechowywania danych. Budowa infrastruktury zasilania i chłodzenia dużych serwerowni. ICM UW, Ul. Pawińskiego 5a (blok D) Piętro -1 oraz -2 15.02.2011 Wstęp do programowania równoległego 9

Konta w ICM Konta dostępowe do ICM i naszych maszyn obliczeniowych będą "imienne". Proszę każdego z Was o przesłanie propozycji loginu (max 8 znaków, tylko małe litery alfabetu łacińskiego lub cyfry, pierwszym znakiem musi być litera). Domyślnie konta otwierane będą do czasu zakończenia aktywności związanej z zajęciami w danym semestrze. Istnieje jednak możliwość przedłużenia ich ważności, jeśli zdecydujecie się na dalsze obcowanie z programowaniem równoległym, do czego gorąco zachęcamy! 15.02.2011 Wstęp do programowania równoległego 10

Plan Motywacja i cel wykładu Forma i program wykładu, zasady zaliczenia Wprowadzenie do programowania równoległego Koncepcja programowania równoległego Przykładowe zastosowania Rozwój architektur komputerowych, prawo Moore a Rodzaje równoległości Prawa Amdahl a i Gustafsona Skalowalność aplikacji Abstrakcyjne modele programowania równoległego 15.02.2011 Wstęp do programowania równoległego 11

Czym są obliczenia równoległe? Obliczenia równoległe to takie, w których wiele operacji obliczeniowych wykonuje się jednocześnie w ramach dostępnych jednostek obliczeniowych (procesorów, rdzeni, węzłów obliczeniowych). Bardzo często duże problemy obliczeniowe mogą być podzielone na mniejsze podproblemy, które mogą wykonywać się jednocześnie. Przez wiele lat obliczenia równoległe wykonywane były jedynie w branży HPC (High Performance Computing). Dzisiaj wiedza o programowaniu równoległym i umiejętności przeprowadzania równoległych obliczeń potrzebne są wszystkim 15.02.2011 Wstęp do programowania równoległego 12

Przykładowe projekty Blue Brain Project (EPFL & IBM) symulacje oddziaływań w sieci neuronów mózgu szczura 22.8 Tflops BG/L 100 milionów neuronów (połowa mózgu szczura) 1 PFlops 1 bilion neuronów ludzki mózg 100 bilionów neuronów Millenium Simulation (2005) Symulacja kosmologiczna powstawania m.in. galaktyk Więcej niż 10 10 cząstek Prognozowanie pogody 48 godzinna prognoza na ok.200 rdzeniach 1,5 godziny obliczeń 15.02.2011 Wstęp do programowania równoległego 13

Obszary zastosowań Obronność i bezpieczeństwo Przeszukiwanie olbrzymich zbiorów danych Symulacje klimatu i atmosfery Dynamika molekularna Chemia obliczeniowa Bioinformatyka Fizyka wysokich energii Obliczenia inżynierskie Grafika wysokiej jakości 15.02.2011 Wstęp do programowania równoległego 14

Jak zmienia się wydajność komputerów na przestrzeni lat? Komputer przenośny Osborne Executive z 1982 roku i iphone z roku 2007. Komputer Executive waży 100 razy więcej, jest mniej więcej 500 razy większy, kosztuje 10 razy więcej i ma 100 krotnie mniejsze taktowanie procesora. http://en.wikipedia.org/wiki/moore s_law 15.02.2011 Wstęp do programowania równoległego 15

Prawo Moore a Prawo Gordona E. Moore a rok 1965 ilość tranzystorów w układach scalonych rośnie wykładniczo, podwajając się mniej więcej co dwa lata http://en.wikipedia.org/wiki/moore s_law 15.02.2011 Wstęp do programowania równoległego 16

Coraz szybciej Czy możemy zbudować procesor o częstotliwości 1THz? 20 czerwca 2006 Georgia Tech i IBM przedstawiły procesor działający z częstotliwością ponad 500 GHz Wykonanie: krzem i german Chłodzenie: ciekły hel Temperatura: 4.5K ~ -268.65 C Częstotliwość w temp. pokojowej: 350GHz Pobór mocy:?? Pobór mocy: P = C V 2 F C pojemność elektryczna liczona na cykl V napięcie elektryczne F częstotliwość 7 Maj 2004 the end of frequency scaling Intel wstrzymuje rozwój technologii Tejas i Jayhawk (następców Pentium4 i Xeon) ~ 7GHz 15.02.2011 Wstęp do programowania równoległego 17

Ograniczenia w budowie mikroprocesorów Power Wall zapotrzebowanie na moc rośnie wraz ze wzrostem szybkości procesora Memory Wall rosnąca dysproporcja pomiędzy szybkością procesorów a szybkością dostępu do pamięci (ograniczona przepustowość pamięci) Wskaźnik Byte/Flop. Multicore i architektury dedykowane AMD Barcelona QuadCore PowerXCell8i MD Grape-3 NVIDIA Fermi Nowa interpretacja prawa Moore a Ilość rdzeni przypadających na pojedyncze gniazdo procesora będzie się podwajać co dwa lata. 15.02.2011 Wstęp do programowania równoległego 18

Superkomputery i ich wydajność Superkomputery to maszyny wieloprocesorowe o dużej wydajności obliczeniowej Wydajność obliczeniowa mierzona jest zwykle jako liczba Flop/s (Floating Point Operations Per Second) Przykładowe wyliczenie dla procesora AMD Opteron Barcelona: 2.3 GHz * 4 rdzenie * 4 operacje w cyklu = 36.8 Giga Flop/s Obecnie największe superkomputery osiągają wydajność 1 Peta Flop/s = 10 15 Flop/s Lista TOP500 klasyfikacja 500 najmocniejszych superkomputerów świata pod względem wydajności praktycznej na komputerach uruchamiany jest program LINPACK z dziedziny algebry liniowej miejsce komputera na liście zależy od liczby Flop/s zmierzonych programem LINPACK 15.02.2011 Wstęp do programowania równoległego 19

Rozwój HPC na przestrzeni lat The TOP500 Project: Looking Back over 15 Years of Supercomputing Experience Hans Werner Meuer 15.02.2011 Wstęp do programowania równoległego 20

Największe superkomputery świata - Jaguar Jaguar Cray XT5 Procesor: AMD Opteron 6 core 2.6 GHz System: Linux Rpeak: 2.3 Pflop/s Rmax: 1.7 Pflop/s Liczba rdzeni: 224 162 Miejsce instalacji: Oak Ridge National Laboratory 15.02.2011 Wstęp do programowania równoległego 21

Rodzaje równoległości Równoległość na poziomie bitów (bit-level parallelizm) zwiększanie długości słowa procesora wpływa na ilość instrukcji potrzebnych do wykonania operacji na zmiennych, których wielkość jest większa niż długość słowa Równoległość na poziomie instrukcji (instruction level parallelizm ILP) techniki implementowane zazwyczaj przez kompilator i wykorzystujące specjalną budowę mikroprocesorów, które umożliwiają uruchamianie niezależnych od siebie instrukcji równocześnie, np.: Potokowość (instruction pipelining): wykorzystanie specjalizowanych grup logicznych procesora ustawionych w potok do wykonywania podobnych operacji jedna po drugiej Pobranie instrukcji z pamięci instruction fetch (IF) Zdekodowanie instrukcji instruction decode (ID) Wykonanie instrukcji execute (EX) Dostęp do pamięci memory access (MEM) Zapisanie wyników działania instrukcji write back (WB) Wykonanie poza kolejnością (out-of-order execution): zdolność mikroprocesorów do wykonywania instrukcji poza zdefiniowaną kolejnością; kolejne instrukcje wstawiane są do bufora i uruchamiane gdy zależności są spełnione i odpowiednia jednostka wykonująca (functional unit) jest gotowa Wykonywanie spekulatywne (speculative execution): zdolność mikroprocesorów przetwarzających instrukcje potokowo do wykonywania instrukcji znajdujących się za skokiem warunkowym, co do którego jeszcze nie wiadomo, czy nastąpi 15.02.2011 Wstęp do programowania równoległego 22

Rodzaje równoległości Równoległość na poziomie danych (data parallelizm) ten sam zestaw instrukcji wykonywany jest na całych blokach danych (na kilku elementach równocześnie), np.: instrukcje wektorowe SIMD Równoległość na poziomie pętli (loop-level parallelizm) iteracje konkretnej pętli w kodzie rozdzielane są pomiędzy dostępnymi jednostkami obliczeniowymi np. w postaci wątków (model OpenMP) #pragma omp parallel for for (i = 0; i < N; i++) a[i] = 2 * i; Równoległość na poziomie zadania (task parallelizm) obliczenia realizowane są przez wiele jednostek obliczeniowych realizujących różne wątki, czy procesy na tych samych lub różnych danych program:... if CPU="a" then do task "A" else if CPU="b" then do task "B" end if... end program 15.02.2011 Wstęp do programowania równoległego 23

Rodzaje równoległości Równoległość na poziomie konstrukcji algorytmu Operacja wygładzania danych Input: tablica 1D z liczbami zmiennoprzecinkowymi Algorytm: każdemu elementowi tablicy przypisujemy średnią jego dwóch sąsiadów proces ten wykonujemy N-razy Output: tablica z wygładzonymi danymi Różne rozważania i optymalizacje: minimalizacja komunikacji, load balancing, 15.02.2011 Wstęp do programowania równoległego 24

Programowanie komputerów równoległych Wątki Programowanie za pomocą biblioteki POSIX threads. Podstawowe operacje: pthread_create, pthread_run, pthread_join, pthread_mutex,.. Wymiana komunikatów Programowanie za pomocą biblioteki MPI (Message Passing Interface) Podstawowe operacje: MPI_Init, MPI_Send, MPI_Recv, MPI_Barrier,.. Dyrektywy kompilatora Programowanie za pomocą OpenMP zestaw dyrektyw kompilatora. Przykład: #pragma omp parallel for for (i = 0; i < N; i++) a[i] = 2 * i; 15.02.2011 Wstęp do programowania równoległego 25

Programowanie komputerów równoległych Inne bardziej egzotyczne modele programowania równoległego: łączone MPI i OpenMP UPC (Unified Parallel C) Co-Array Fortran Nowoczesne języki programowania równoległego: CUDA dla GPGPU OpenCL, Cell SuperScalar RapidMind Chapel, X10, Fortres 15.02.2011 Wstęp do programowania równoległego 26

Ograniczenia programowania równoległego Jaką maksymalną wydajność może uzyskać nasz program, jeśli: użyjemy szybszego procesora, użyjemy kilku lub wielu procesorów. Odpowiedzi na takie pytania szukano w latach 60tych XX wieku 15.02.2011 Wstęp do programowania równoległego 27

Gene Amdahl Urodzony 16 listopada 1922 w USA w rodzinie skandynawskich imigrantów Architekt komputerowy IBM: praca nad systemami mainframe Potem: Amdahl Corporation Znany głównie ze względu na publikację: Validity of the single processor approach to achieving large scale computing capabilities, IBM Sunnyvale, California, AFIPS Spring Joint Computer Conference, 1967 Na podstawie pracy G.Amdahla sformułowane zostało jedno z najbardziej znanych praw w dziedzinie obliczeń równoległych Prawo to do dziś nazywane Prawem Amdahl'a wyraża ograniczenia w prowadzeniu obliczeń równoległych 15.02.2011 Wstęp do programowania równoległego 28

Prawo Amdahla (1967) Prawo Amdahla Potencjalne możliwe przyśpieszenie S algorytmu o jest równe: n liczba procesów T S( n) 1 T n F 1 1 F n T_ - czas wykonania algorytmu F udział części nierównoległej http://en.wikipedia.org/wiki/parallel_computing 15.02.2011 Wstęp do programowania równoległego 29

Prawo Amdahla (1967) http://en.wikipedia.org/wiki/parallel_computing 15.02.2011 Wstęp do programowania równoległego 30

Krytyka prawa Amdahl a Prawo i teoria Amdahl a znalazła wielu krytyków Główny zarzut: prawo Amdahl a ma zastosowanie tylko dla aplikacji z niezmiennym rozmiarem zadania 1h 1h 2h 1h 1h 1h 1h Maksymalny speed-up: 2x 15.02.2011 Wstęp do programowania równoległego 31

Prawo Gustafsona (1988) Każdy wystarczająco duży problem może być efektywnie zrównoleglony P ilość procesorów, S przyśpieszenie, alfa część programu, której nie da się zrównoleglić 1h 1h 4h 2h 2h 1h 1h Maksymalny speed-up: >2x 15.02.2011 Wstęp do programowania równoległego 32

Skalowalność Speed-up przyśpieszenie - stosunek czasu wykonania algorytmu i liczby użytych procesów Skalowalność zmiana czasu wykonania programu mierzona dla zmiennej liczby procesorów lub zmiennego rozmiaru zadania Program równoległy jest uznawany za optymalny gdy jego skalowalność jest bliska liniowej W zastosowaniach znane jest mało programów optymalnych dla liczby procesorów większej od kilkunastu Rodzaje skalowalności: Strong scalability stały rozmiar problemu, zmienna liczba procesów Weak scalability stała liczba procesów, zmienny rozmiar zadania 15.02.2011 Wstęp do programowania równoległego 33

Plan Motywacja i cel wykładu Forma i program wykładu, zasady zaliczenia Wprowadzenie do programowania równoległego Koncepcja programowania równoległego Przykładowe zastosowania Rozwój architektur komputerowych, prawo Moore a Rodzaje równoległości Prawa Amdahl a i Gustafsona Skalowalność aplikacji Abstrakcyjne modele programowania równoległego 15.02.2011 Wstęp do programowania równoległego 34

Model idealnego komputera równoległego PRAM = Parallel Random Access Machine n jednostek obliczeniowych oraz globalna jednorodna pamięć Jednostki są sterowane wspólnym zegarem, ale mogą wykonywać różne instrukcje w każdym cyklu Wspólna pamięć P{1} P{2}.. P{n} Model PRAM ignoruje wpływ i koszty komunikacji między komponentami komputera równoległego 15.02.2011 Wstęp do programowania równoległego 35

Model PRAM c.d. Modele typu PRAM: Exclusive-read, exclusive-write najbardziej restrykcyjny (i realistyczny) model, dostęp do elementu pamięci ma jednocześnie tylko jeden procesor Concurrent-read, exclusive-write jednoczesny odczyt z pamięci, zapis do pamięci na wyłączność Exclusive-read, concurrent-write Concurrent-read, concurrent-write najmniej restrykcyjny model dający największą swobodę w projektowaniu algorytmu, ale najmniej realistyczny Modele PRAM służą do projektowania i analizy algorytmów Realizacja komputera typu PRAM dla dużej liczby n, jest technicznie bardzo złożona i kosztowna 15.02.2011 Wstęp do programowania równoległego 36

Klasyfikacja modeli równoległości Taksonomia Flynna SISD = Single Instruction Single Data Klasyczny komputer skalarny wykonujący kolejne instrukcje, jedna po drugiej na pojedynczych danych SIMD = Single Instruction Multiple Data Procesor / komputer potrafi wykonać pojedynczą instrukcję dla całego potoku (wektora) danych (procesor wektorowy) Zakłada równoległość danych MISD = Multiple Instruction Single Data Komputer potrafi wykonać jednocześnie zbiór instrukcji na jednej danej MIMD = Multiple Instruction Multiple Data Zbiór procesorów może wykonywać równolegle i niezależnie instrukcje na wielu danych Najczęściej spotykana forma równoległości sprzętowej 15.02.2011 Wstęp do programowania równoległego 37

Klasyfikacja modeli równoległości Rozszerzenia modelu MIMD: SPMD = Single Program Multiple Data pojedynczy program jest uruchamiany w wielu kopiach na różnych zestawach danych najbardziej rozpowszechniony sposób tworzenia programów równoległych a.out a.out a.out P{1} P{2}.. P{2} dane MPMD = Multiple Program Multiple Data wiele niezależnych procesorów wykonuje równolegle różne programy 15.02.2011 Wstęp do programowania równoległego 38

Typy architektur równoległych i hierarchia równoległości Model pamięci współdzielonej Procesory współdzielą globalną, wspólną przestrzeń adresowa szybka komunikacja i synchronizacja ograniczona liczba procesorów, pojemna pamięć CPU CPU pamięć CPU CPU 15.02.2011 Wstęp do programowania równoległego 39

sieć komputerowa Typy architektur równoległych i hierarchia równoległości Model pamięci rozproszonej Procesory operują na prywatnej, lokalnej pamięci nieograniczona liczba procesorów, ograniczona ilość pamięci koszt komunikacji rośnie z liczbą procesorów błędy trudne do wyśledzenia CPU pamięć CPU CPU CPU pamięć pamięć pamięć 15.02.2011 Wstęp do programowania równoległego 40

Hierarchia równoległości systemowej Procesory superskalarne i procesory wektorowe Równoległość na poziomie instrukcji Jednostki wielowątkowe Procesory wielordzeniowe Systemy SMP / Systemy NUMA Klastry Systemy masywnie równoległe Pojedynczy chip Wiele chipów Pojedynczy system Wiele systemów Pojedyncza instalacja Gridy Wiele systemów, wiele instalacji 15.02.2011 Wstęp do programowania równoległego 41

Modele równoległości drobno- i gruboziarnistej Trywialna równoległość całkowita niezależność danych (embarrassingly parallel) Nie-trywialna równoległość zależność danych Proporcja ilości komunikacji względem obliczeń (ziarnistość) częsta komunikacja, podział na małe zadania obliczeniowe (finegrained) sporadyczna komunikacja pomiędzy kosztownymi partiami obliczeń (coarse-grained) rozważana jest częstość operacji komunikacyjnych w ciągu sekundy 15.02.2011 Wstęp do programowania równoległego 42

Dekompozycja problemu obliczeniowego Dekompozycja problemu - podział na podproblemy Metoda i sposób podziału determinuje typ równoległości Stopień i schemat zależności podproblemów prowadzi do projektu algorytmu Gdy znamy zależności pomiędzy podproblemami: wybieramy model algorytmu odpowiednią architekturę komputera równoległego Interesuje nas poprawne i szybkie rozwiązanie problemu "stosowane" programowanie równoległe = obliczenia równoległe Analiza problemu Podział na podzadania Projekt algorytmu Realizacja 15.02.2011 Wstęp do programowania równoległego 43

Mapowanie i load-balancing Mapowanie - przydział procesów realizujących podproblemy do procesorów Równoważenie pracy pomiędzy procesorami (loadbalancing) 15.02.2011 Wstęp do programowania równoległego 44

Abstrakcyjne modele algorytmów równoległych Zrównoleglenie ze względu na dane (Data Parallel) Zadania są przydzielane statycznie do procesów na podstawie podziału danych wejściowych na podzbiory identyczne operacje są wykonywane równolegle na podzbiorach danych Task Graph model Algorytm odzwierciedla graf zależności podproblemów Stosowany dla problemów dających się podzielić na kaskadę niezależnych zadań Work Pool model Zadania są dynamicznie przydzielane do procesów w celu najlepszego zrównoważenia pracy Stosowany dla gdy rozmiar danych podproblemu jest mały w porównaniu z kosztem obliczeń Master-Slave Zakłada podział na wyróżnione procesy rozdzielające pracę (master) i wykonujące obliczenia (slave) Pipeline/Stream processing Strumień danych przepływa przez kolejne procesy przetwarzające 15.02.2011 Wstęp do programowania równoległego 45

Aspekty technologiczne obliczeń równoległych Nowe technologie wprowadzają nowe narzędzia dla programistów Czas życia niektórych narzędzi jest krótki Nie wszystkie rozwiązania są przenaszalne pomiędzy różnymi architekturami Przykładowo: Unified Parallel C, co-array Fortran Ograniczenia technologiczne zmuszają konstruktorów do wprowadzania coraz bardziej skomplikowanych rozwiązań Hierarchiczna pamięć Mechanizmy spójności Wydajność kontra niezawodność Ze względów ekonomicznych w obliczeniach równoległych wprowadza się rozwiązania masowe dominacja klastrów nad superkomputerami obliczenia na kartach graficznych i innych akceleratorach 15.02.2011 Wstęp do programowania równoległego 46

Analiza złożoności Analiza złożoności algorytmu równoległego Definicja złożoności/wydajności algorytmu (?) Musi zawierać czas wykonania oraz liczbę użytych procesów Powinna odwoływać się do wydajności odpowiedniego algorytmu sekwencyjnego Jak zmienia się koszt algorytmu ze zmianą rozmiaru danych wejściowych? Jak zmienia się koszt / czas wykonania ze zmianą stopnia równoległości? Znajomość systemu i jego architektury Czas wykonania może się znacznie różnić od wynikającego z analizy Skalowalność weak scaling kontra strong scaling Wpływ i uwarunkowanie sprzętowe Szybkość komunikacji Prędkość przesyłu transfer rate, opóźnienia - latency Czas synchronizacji rośnie (zwykle nieliniowo) z liczbą procesorów Operacje komunikacyjne mogą być wykonywane nie-deterministycznie 15.02.2011 Wstęp do programowania równoległego 47

Dziękujemy! 15.02.2011 Wstęp do programowania równoległego 48