Wstęp do programowania równoległego



Podobne dokumenty
Nowoczesne technologie przetwarzania informacji

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

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

Wstęp do programowania równoległego

16. Taksonomia Flynn'a.

1. ARCHITEKTURY SYSTEMÓW KOMPUTEROWYCH

Programowanie Rozproszone i Równoległe. Edward Görlich goerlich@th.if.uj.edu.pl

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

Nowoczesne technologie przetwarzania informacji

Obliczenia Wysokiej Wydajności

Architektura komputerów

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

O superkomputerach. Marek Grabowski

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

Algorytmy i Struktury Danych

Obliczenia Wysokiej Wydajności

Architektura mikroprocesorów TEO 2009/2010

Programowanie procesorów graficznych GPGPU

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

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.

Moc płynąca z kart graficznych

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

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.

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Klasyczny cykl pracy procesora sekwencyjnego. współczesne architektury. c Dr inż.

Podstawy Informatyki Systemy sterowane przepływem argumentów

Architektura komputerów

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

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

Komputery równoległe. Zbigniew Koza. Wrocław, 2012

Algorytmy dla maszyny PRAM

Budowa Mikrokomputera

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

Numeryczna algebra liniowa

Architektura Komputerów

Nowinkach technologicznych procesorów

Przetwarzanie potokowe pipelining

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

3.Przeglądarchitektur

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

i3: internet - infrastruktury - innowacje

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

3.Przeglądarchitektur

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

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

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

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1

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

Programowanie współbieżne i rozproszone

Architektura komputerów

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

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

Systemy wieloprocesorowe i wielokomputerowe

HPC na biurku. Wojciech De bski

Architektura mikroprocesorów z rdzeniem ColdFire

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych

Przetwarzanie Równoległe i Rozproszone

Programowanie w modelu równoległości danych oraz dzielonej globalnej pamięci wspólnej. Krzysztof Banaś Obliczenia równoległe 1

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

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

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

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

architektura komputerów w. 7 Cache

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

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

Analiza ilościowa w przetwarzaniu równoległym

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

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

Wprowadzenie. Co to jest klaster? Podział ze względu na przeznaczenie. Architektury klastrów. Cechy dobrego klastra.

Wstęp. Przetwarzanie współbieżne, równoległe i rozproszone

Programowanie Rozproszone i Równoległe

Dydaktyka Informatyki budowa i zasady działania komputera

Tesla. Architektura Fermi

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

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

Podstawy Techniki Mikroprocesorowej wykład 13: MIMD. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

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

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów AUTOR: ADAM KOLIŃSKI ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów

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

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

Wstęp. Przetwarzanie równoległe. 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.

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

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

Architektura systemów komputerowych. Przetwarzanie potokowe I

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

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

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

Nowinki technologiczne procesorów

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

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

T2A_W01 T2A_W01 T2A_W02 3 SI_W03 Posiada szeroką wiedzę w zakresie teorii grafów T2A_W01

Alternatywne modele programowania równoległego

Systemy operacyjne III

Organizacja pamięci w procesorach graficznych

Przetwarzanie Równoległe i Rozproszone

Metody optymalizacji soft-procesorów NIOS

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

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 1

Plan Motywacja Cel wykładu Forma wykładu i zasady zaliczenia Program wykładu Wprowadzenie do programowania równoległego Abstrakcyjne modele programowania równoległego 2

Motywacja wykładu Trendy w rozwoju współczesnych procesorów Zasoby KDM - potencjał i praktyka - potrzeba popularyzacji obliczeń równoległych Programowanie równoległe - jak realizować obliczenia równoległe 3

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 Human Genome Project (ORNL) Zidentyfikowanie ok. 20 25 tys. genów tworzących ludzkie ciało Ustalenie sekwencji ok. 3 biliona związków chemicznych, które tworzą ludzkie DNA Prognozowanie pogody 48 godzinna prognoza na ok.200 rdzeniach 1,5 godziny obliczeń 4

Cel wykładu Przegląd podstawowych zagadnień związanych z obliczeniami równoległymi Prezentacja najpopularniejszych narzędzi programowania równoległego Popularyzacja programowania równoległego Udostępnienie narzędzi dla zastosowań naukowych w obliczeniach i symulacjach Nauka podstawowych metod programowania równoległego 5

Forma wykładu Wykład / laboratorium w odstępach dwu-tygodniowych 14 zajęć Zasady zaliczenia Przykładowy program do implementacji Materiały Slajdy z wykładu Skrypt Strona www 6

Program wykładu 1. Wprowadzenie do programowania równoległego 2. Architektury równoległe 3. Projektowanie algorytmów równoległych 4. Komunikacja i synchronizacja 5. Programowanie MPI 6. Programowanie Shared Memory 7. Zastosowania: ciekawe przykłady 7

Wprowadzenie do programowania równoległego 8

Programowanie współbieżne a programowanie równoległe Współbieżność i równoległość to dwie różne rzeczy Dwa zadania T1 oraz T2 są współbieżne jeśli kolejność ich wykonania w czasie nie jest zdefiniowana przed uruchomieniem, tzn: T1 może zostać uruchomione i może się zakończyć przed T2 T2 może zostać uruchomione i może się zakończyć przed T1 T1 oraz T2 mogą być uruchomione w tym samym czasie (równolegle) T1 i T2 mogą być uruchomione wymiennie (alternatywa).. inne Program na jedno-rdzeniowym jedno-wątkowym procesorze może być współbieżny ale nie równoległy Równoległość jest podzbiorem współbieżności Programowania równoległe nie jest podzbiorem programowania współbieżnego (inne techniki, modele, zagadnienia, ) Bardzo podobne zagadnienia: synchronizacja, operacje atomowe, komunikacja, 9

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 10

Rozwój HPC na przestrzeni lat The TOP500 Project: Looking Back over 15 Years of Supercomputing Experience Hans Werner Meuer 11

Motywacje dla obliczeń równoległych 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 12

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 13

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) od 1986 do 2000 roku średni roczny wzrost 50% vs 10% Multicore i architektury dedykowane AMD Barcelona QuadCore PowerXCell8i MD Grape-3 NVIDIA Fermi 14

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

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 16

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, 17

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 18

Współczesne architektury komputerów równoległych Współczesne architektury komputerowe prezentują wiele poziomów równoległości ze względu na: Architekturę jednostek obliczeniowych Architekturę dostępu do pamięci Przykład: CrayX1E tornado Każdy węzeł składa się z 4 procesorów MSP (MultiStreaming Processors). W ramach węzła dostępne jest 16GB pamięci RAM. Każdy procesor MSP składa się z 4 jednostek SSP (SingleStreaming Processors). 1 typ równoległości: jednostki wektorowe wewnątrz SSP 2 typ równoległości: automatyczne zrównoleglenie na poziomie MSP 3 typ równoległości: równoległość na poziomie węzła (model pamięci współdzielonej) 4 typ równoległości: równoległość na poziomie całego komputera (model pamięci rozproszonej) 19

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; 20

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 21

Abstrakcyjne modele programowania równoległego 22

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 23

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 24

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 25

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 26

Formy równoległości Poziom bitów Poziom instrukcji Poziom pętli Poziom zadań Poziom programów 27

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 28

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ęć 29

Hierarchia równoległości 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 30

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 Intensywność komunikacji i synchronizacji procesów/zadań częsta komunikacja (fine-grained) sporadyczna komunikacja (coarse-grained) rozważana jest częstość operacji komunikacyjnych w ciągu sekundy 31

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 32

Mapowanie i load-balancing Mapowanie - przydział procesów realizujących podproblemy do procesorów Równoważenie pracy pomiędzy procesorami (loadbalancing) 33

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 34

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 35

Skalowalność i Prawo Amdahla Speed-up przyśpieszenie - stosunek czasu wykonania algorytmu i liczby użytych procesów Skalowalność zmiana czasu wykonania algorytmu ze wzrostem liczby procesów Algorytm równoległy jest uznawany za optymalny gdy jego skalowalność jest bliska liniowej W zastosowaniach znane jest mało algorytmów optymalnych dla liczby procesorów większej od kilkunastu Prawo Amdahla Określa maksymalny możliwe przyśpieszenie algorytmu o określonej części sekwencyjnej (nierównoległej) 36

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

Prawo Amdahla http://en.wikipedia.org/wiki/parallel_computing 38

Analiza złożoności Analiza złożoności algorytmu równoległego jest znacznie trudniejsza niż w przypadku sekwencyjnym 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? Znajomość systemu i jego architektury W realiach czas wykonania może się znacznie różnić od wynikającego z analizy 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 39

Laboratorium Dostęp do komputerów w laboratorium: Wypełniamy pola: Nazwisko i imię Temat grantu: Laboratorium COPR-OG Adres poczty elektronicznej Kierownik grantu: Maciej Szpindler Proponowany identyfikator max 8 znaków ascii Hasło początkowe Pytania, problemy: m.szpindler@icm.edu.pl m.cytowski@icm.edu.pl 40