Programowanie współbieżne Wstęp do obliczeń równoległych. Rafał Skinderowicz

Podobne dokumenty
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

Analiza efektywności przetwarzania współbieżnego

Analiza ilościowa w przetwarzaniu równoległym

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

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

Algorytmy i Struktury Danych

Nowoczesne technologie przetwarzania informacji

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór

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

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

Programowanie równoległe

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Algorytmy dla maszyny PRAM

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

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

Wydajność komunikacji grupowej w obliczeniach równoległych. Krzysztof Banaś Obliczenia wysokiej wydajności 1

Wprowadzenie do złożoności obliczeniowej

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

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

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

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia

TEORETYCZNE PODSTAWY INFORMATYKI

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

Analityczne modelowanie systemów równoległych

Numeryczna algebra liniowa

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

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

Efektywność algorytmów

5. Model komunikujących się procesów, komunikaty

Matematyczne Podstawy Informatyki

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

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

Zasady analizy algorytmów

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

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

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

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

1. Analiza algorytmów przypomnienie

Języki, automaty i obliczenia

21 Model z pamięcią współdzieloną (model PRAM) - Parallel Random Access Machine

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

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

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Efektywność Procedur Obliczeniowych. wykład 5

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Działanie komputera i sieci komputerowej.

Wstęp do programowania

Podstawy Informatyki. Sprawność algorytmów

Przetwarzanie równoległesprzęt

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Informatyka 1. Złożoność obliczeniowa

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

Podstawy działania sieci

Teoretyczne podstawy informatyki

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

Imię, nazwisko, nr indeksu

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Zaawansowane algorytmy i struktury danych

Architektura komputerów

Równoległe algorytmy sortowania. 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.

Teoretyczne podstawy informatyki

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

INFORMATYKA SORTOWANIE DANYCH.

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

PROBLEMY NIEROZSTRZYGALNE

4. Procesy pojęcia podstawowe

Podstawy Informatyki. Metody dostępu do danych

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Obliczenia inspirowane Naturą

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

Architektura komputerów

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Złożoność algorytmów. Wstęp do Informatyki

Sortowanie zewnętrzne

Podstawy Informatyki Systemy sterowane przepływem argumentów

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Losowość w rozproszonym modelu

Architektura komputerów

4. Procesy pojęcia podstawowe

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Projektowanie. Projektowanie mikroprocesorów

Transformata Fouriera. Sylwia Kołoda Magdalena Pacek Krzysztof Kolago

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

WYMAGANIA EGZAMINACYJNE DLA KLASY IV WYMAGANIA SZCZEGÓŁOWE

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

Zadania jednorodne 5.A.Modele przetwarzania równoległego. Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Podział układów cyfrowych. rkijanka

Matematyczne Podstawy Informatyki

Obliczenia równoległe

Transkrypt:

Programowanie współbieżne Wstęp do obliczeń równoległych Rafał Skinderowicz

Plan wykładu Modele obliczeń równoległych Miary oceny wydajności algorytmów równoległych Prawo Amdahla Prawo Gustavsona

Modele obliczeń równoległych Projektując algorytm rozwiązujący zadany problem należy uwzględnić model obliczeń Model obliczeń określa w jaki sposób mogą być gromadzone, przechowywane i przetwarzane dane i wyniki obliczeń oraz jakie operacje mogą być wykonywane na danych Modele obliczeń mogą różnić się siłą Nieformalnie siła modelu określa jakiego rodzaju problemy można rozwiązać za pomocą algorytmu realizowanego w danym modelu obliczeń

Modele obliczeń równoległych Siłę modelu można wyrazić za pomocą rozpoznawanej klasy języków formalnych Przykładowe modele obliczeń wg rosnącej siły: Deterministyczny automat skończony rozpoznaje języki regularne Automat ze stosem rozpoznaje języki bezkontekstowe Deterministyczna Maszyna Turinga oraz model RAM rozpoznają języki rekursywne Najpopularniejszy model obliczeń, to RAM, czyli maszyna o dostępie swobodnym (ang. Random Access Machine)

Model RAM Pamięć Procesor Model RAM składa się z: Pamięci złożonej z nieskończonej liczby komórek o unikalnych adresach W komórce pamięci można zapisać liczbę całkowitą Czas dostępu (zapis, odczyt) do komórki niezależnie od jej adresu jest stały Procesor realizuje program złożony z ciągu instrukcji (należących do pewnego skończonego zbioru) Program zapisany jest w jednostce sterującej modelu, a nie w pamięci

Model RAM Model obliczeń jest wygodną abstrakcją rzeczywistej maszyny obliczeniowej Ułatwia projektowanie i analizę algorytmów Podstawowymi kryteriami oceny algorytmu sekwencyjnego dla modelu RAM są: Złożoność czasowa funkcja określająca czas działania algorytmu w zależności od rozmiaru danych wejściowych Złożoność pamięciowa funkcja określająca liczbę komórek pamięci niezbędną do poprawnego wykonania programu w zależności od rozmiaru danych wejściowych Rozmiar danych wejściowych, to liczba naturalna określająca wielkość zbioru danych wejściowych, np. w problemie sortowania ciągu liczb równa jest liczbie elementów w ciągu

Złożoność czasowa przypomnienie Najczęściej wyróżnia się złożości czasowe: pesymistyczną określa najdłuższy możliwy czas działania algorytmu dla danych wejściowych o danym rozmiarze n T pes (n) = sup d Dn {t(d)} oczekiwaną (średnią) określa oczekiwany czas działania algrytmu dla danych wejściowych o rozmiarze n T śr (n) = d D n p(d)t(d), gdzie D n to zbiór zestawów danych wejściowych, p(d) prawd. wystąpienia zestawu Złożoność czasową wyraża się przez liczbę wykonywanych w algorytmie dominujących operacji elementarnych (t(d))

Modele obliczeń równoległych Dla obliczeń równoległych definiuje się odrębne modele obliczeń Do najpopularniejszych należą: model równoległy z pamięcią wspólną (ang. parallel random access machine, PRAM) model sieciowy dla obliczeń z przesyłaniem wiadomości

Model wzorowany na modelu RAM Procesory współdzielą pamięć, ale mają również pamięć lokalną Procesory pracują synchronicznie centralny zegar Programy procesorów mogą się różnić Pamięć wspólna umożliwia szybkie komunikowanie się procesorów ze sobą komórka zapisana w kroku i przez dany procesor może zostać odczytana w kroku i + 1 przez inny Model PRAM Pamięć wspólna Procesor 1 Procesor 2 Procesor p Pamięć lokalna Pamięć lokalna Pamięć lokalna

Warianty modelu PRAM W modelu PRAM mogą wystąpić konflikty w dostępie do pamięci wspólnej, np. jeden procesor zapisuje, a drugi odczytuje w tym samym kroku tę samą komórkę W związku z tym wyróżnia się następujące warianty modelu PRAM: EREW (ang. exclusive read, exclusive write) niedopuszczalny jest jednoczesny dostęp (ani zapis, ani odczyt) do tej samej komórki CREW (ang. concurrent read, exclusive write) dopuszczalny jest jednoczesny odczyt przez wiele proc., ale nie zapis CRCW (ang. concurrent read, concurrent write) dopuszcza się zarówno jednoczesny odczyt, jak i zapis przez wiele procesorów Wyróżnia się warianty CRCW ze względu na sposób rozwiązania konfliktu w przypadku jednoczesnego zapisu

Wady i zalety modelu PRAM Podstawową zaletą modelu PRAM jest jego prostota, która ułatwia analizę algorytmów projektowanych dla tego modelu, tj. dowodzenie poprawności, analiza złożoności Podstawowy problem, to brak możliwości praktycznej realizacji Nie da się utrzymać stałego czasu dostępu do pamięci, gdy liczba procesorów wzrasta W praktyce udaje się implementować dla maks. kilkudziesięcu procesorów

Model sieciowy Sieć połączeń Procesor 1 Procesor 2 Procesor p Pamięć lokalna Pamięć lokalna Pamięć lokalna Brak współdzielonej pamięci w zamian procesory (węzły) połączone łączami Łącza tworzą sieć połączeń Wymiana danych między procesorami wymaga przesyłania komunikatów (ang. message passing) Procesory mogą pracować synchronicznie lub asynchronicznie

Model sieciowy topologie Sposób połączenia procesorów ze sobą definiuje topologię sieci połączeń. Do jej opisu wystarczy graf: wierzchołki to procesory krawędzie to dwukierunkowe łącza między procesorami Nie każda topologia nadaje się do każdego rodzaju obliczeń równoległych. Różne topologie sieci połączeń można opisać parametrami: średnica sieci maksymalny stopień wierzchołka szerokość połowienia sieci spójność krawędziowa koszt sieci Rysunek : Sieć pełna

Parametry sieci Średnica sieci to maksymalna liczba łączy między dowolną parą wierzchołków im mniejsza średnica tym lepiej Maksymalny stopień wierzchołka maksymalna liczba łączy do danego procesora wpływa na złożoność procedur komunikacyjnych im mniejszy stopień tym lepiej przy wzroście liczby proc. nie powinien rosnąć szybko najlepiej wcale Szerokość połowienia sieci minimalna liczba krawędzi, które muszą zostać usunięte, aby podzielić ją na dwie równe podsieci od szerokości połowienia zależy przepustowość sieci, a od niej wydajność większa szerokość połowienia, to mniejsza liczba konfliktów w komunikacji

Parametry sieci, c.d. Spójność krawędziowa minimalna liczba krawędzi, które muszą ulec awarii, aby sieć stała się niespójna im większa spójność, tym większa odporność na uszkodzenia duża spójność to mnogość dróg między procesorami Koszt sieci koszt wykonania, zarządzania i utrzymania sieci połączeń między procesorami w najprostszym przypadku mierzony liczbą krawędzi (łącz) w rzeczywistości trzeba uwzględnić przełączniki, karty sieciowe itd.

Parametry sieci połączeń przykład Najlepsze własności komunikacyjne ma sieć pełna średnica sieci: 1 maksymalny stopień wierzchołka: p 1 szerokość połowienia sieci: p 2 /4 spójność krawędziowa: p 1 koszt sieci: p(p 1) Rysunek : Sieć pełna Podstawowe wady: duży koszt dla 100 tyś. proc. potrzeba blisko 10 mld (!) łączy fatalna skalowalność

Siatki i torusy Do najpopularniejszych topologii sieci połączeń należą siatki Kompromis relatywnie niski koszt, ale zwiększona średnica i niska spójność krawędziowa W siatce d wymiarowej każdy procesor oprócz brzegowych jest połączony z 2d procesorami (stopień wierzchołka) Po dodaniu połączeń między brzegowymi procesorami otrzymujemy d wymiarowy torus 0,0 0,1 0,2 0 1 2 3 4 1,0 1,1 1,2 2,0 2,1 2,2

Fat-tree Procesory stanowią liście drzewa, węzły wewnętrzne to przełączniki Szerokość łączy rośnie im bliżej korzenia stała szerokość połowienia na każdym poziomie drzewa ang. constant bi-sectional bandwidth (CBB) Umożliwia nieblokujące połączenia między dowolną parą węzłów duża wydajność 0 1 2 3 4 5 6 7

Parametry dla wybranych topologii sieci Rodzaj Średnica Maks. Szer. Spójność Koszt sieci stopień poł. kraw. Pełna 1 p 1 p 2 /4 p 1 p(p 1)/2 Siatka 1-d p 1 2 1 1 p 1 Pierścień p/2 2 2 2 p Siatka 2-d 2( p 1) 4 p 2 2(p p) Torus 2-d 2 p/2 4 2 p 4 2p Kostka log p log p p/2 log p (p log p)/2 Fat tree 2 log 2 p p p/2 1 p log 2 p

Podsumowanie Projektując algorytm równoległy należy uwzględnić architekturę komputera, na którym będzie wykonywany Idealnie, gdy zadanie daje się podzielić na niezależne porcje obliczeń o podobnym i odpowiednio dużym rozmiarze Każdy okres czasu poświęcony na oczekiwanie na transfer danych obniża efektywność wykorzystania procesorów, nierzadko drastycznie Nie każde zadanie nadaje się dla każdej architektury, szczególnie w modelu sieciowym ograniczona przenośność

Złożoność czasowa alg. równoległych Dodatkowa zmienna liczba procesorów p Wzór: T pes (p, n) = sup d D n {t(p, d)} gdzie: D n to zbiór zestawów danych wejściowych, t(p, d) liczba operacji dominujących wykonywanych dla zestawu danych d od momentu rozpoczęcia obliczeń przez pierwszy procesor, aż do momentu zakończenia obliczeń przez wszystkie procesory

Przyspieszenie Przyspieszenie algorytmu równoległego definiuje się następująco: S(p, n) = T (1, n) T (p, n) gdzie T (1, n) oznacza złożoność czasową najlepszego algorytmu sekwencyjnego dla rozwiązywanego problemu Przyspieszenie określa korzyść z wykorzystania obliczeń równoległych Maksymalna wartość przyspieszenia to p przyspieszenie liniowe

Przyspieszenie c.d. Zazwyczaj S(p, n) jest mniejsze od p ze względu na nierównomierne obciążenie procesorów obliczeniami W rzeczywistości, w rzadkich przypadkach, można uzyskać przyspieszenie superliniowe, na skutek zwiększonego sumarycznego rozmiaru pamięci podręcznej

Złożoność c.d. W złożoności czasowej T (1, n) można wyróżnić obliczenia, które: muszą być wykonane sekwencyjnie T s (1, n) mogą być wykonane równolegle T r (1, n) czyli T (1, n) = T s (1, n) + T r (1, n) Konieczność sekwencyjnego wykonania obliczeń wynika najczęściej z zależności danych x:= a + b; y:= c * x ; x:= a + b; y:= c * d;

Przyspieszenie c.d. Zakładając, że obliczenia da się równo rozdzielić między procesorami otrzymujemy: S(p, n) = T (1, n) T (p, n) T s (1, n) + T r (1, n) T s (1, n) + T r (1, n)/p + T o (p, n) T o (1, n) jest dodatkową złożonością wynikającą z organizacji obliczeń równoległych, na którą składa się m.in. komunikacja między procesorami T o (1, n) rośnie wraz z liczbą procesorów p T r (1, n) zazwyczaj rośnie wraz z n szybciej, niż T o (1, n)

Koszt algorytmu równoległego Oprócz przyspieszenia czasem podaje się powiązaną miarę kosztu algorytmu, której definicja to: C(p, n) = pt (p, n) Koszt jest sumą kroków obliczeniowych wykonywanych przez wszystkie procesory podczas rozwiązywania problemu Idealnie, gdy procesory w algorytmie równoległym wykonują łącznie dokładnie tyle samo operacji, co jeden procesor w algorytmie sekwencyjnym: pt (p, n) = T (1, n) W praktyce jest to trudne, ponieważ każda dodatkowa operacja poświęcona np. na komunikację między procesorami jest już nadmiarowa w stosunku do T (1, n) C o (p, n) = pt (p, n) T (1, n)

Efektywność Efektywność wykorzystania procesorów (ang. efficiency, processor utilization) definiowana jest jako: E(p, n) = S(p, n) p = T (1, n) pt (p, n) Maksymalna efektywność wynosi 1, co oznacza, ze procesory wykorzystywane są w 100% czyli brak okresów bezczynności oraz zerowe koszty komunikacji

Skalowalność Nieformalnie skalowalność odpowiada na pytanie, czy opłacalne jest zwiększenie liczby procesorów (np. podwojenie), by skrócić czas działania algorytmu Opłacalność można mierzyć efektywnością obliczeń, a więc zależy nam na zachowaniu stałej efektywności Efektywność maleje wraz ze wzrostem liczby procesorów, ponieważ rosną m.in. koszty komunikacji

Skalowalność c.d. Przykładowo: załóżmy, że dla p = 10 procesorów efektywność E(10, n) = 80%, czyli przyspieszenie S(10, n) = pe(10, n) = 8, po podwojeniu liczby procesorów efektywność spadła do 60%, czyli E(20, n) = 60%, stąd przyspieszenie S(20, n) = 12 czy opłaca się za skrócenie o połowę czasu obliczeń zapłacić dwukrotnie więcej?

Skalowalność c.d. Załóżmy, że dana jest równoległa wersja algorytmu sekwencyjnego o efektywności T (1, n) E(p, n) = pt (p, n), ponieważ pt (p, n) = T (1, n) + C o (p, n) otrzymujemy: E(p, n) = T (1, n) T (1, n) + C o (p, n) = 1 1 + C o (p,n) T (1,n)

Skalowalność c.d. W celu zachowania stałej efektywność przy rosnącej liczbie procesorów należy zachować stałą wartość ułamka: C o (p, n) T (1, n) = Θ(1) Gdy dokładamy procesory, to nieuchronnie rośnie C o (p, n) Pozostaje nam zwiększanie T (1, n), które zależy od n Czyli musimy zwiększać rozmiar danych wejściowych Innymi słowy większe komputery dla większych problemów Jeżeli udaje się zachować efektywność przy rosnącej liczbie procesorów oraz rozmiarze problemu, to algorytm (system) jest skalowalny

Przyspieszenie uwagi Jak wspomniano, wartość przyspieszenia zależy przede wszystkim od tego jaką część obliczeń w algorytmie można wykonać równolegle, a jaka musi zostać wykonana sekwencyjnie. część sekwencyjna (zależność danych) część równoległa (brak zależności danych) a = b + c; d = a + 1; e = d + a; for(i=0; i < e; i++) M[i] = 1;

Przyspieszenie przykład 1 procesor czas 5 procesorów 25 sekund sekwencyjna 25 sekund sekwenycjna 50 sekund równoległa 10 sekund 25 sekund sekwencyjna 25 sekund sekwenycjna 100 sekund 60 sekund Przyspieszenie = 100 sek. / 60 sek. = 1.67 razy Efektywność = 1.67 / 5 = 33.4%

Przyspieszenie przykład p p t t Rozmiar danych n = 8 Czas wykonania T (1, n) = 8 Czas wykonania T (2, n) = 5 Przyspieszenie S(2, n) = T (1,n) T (2,n) = 8 5 Efektywność E(2, n) = S(2,n) = 8/5 = 8 2 2 10 Koszt C(p, n) = p T (p, n) = 2 T (2, n) = 10

Przyspieszenie przykład p p t t Czas wykonania T (2, n) = 5 Przyspieszenie S(2, n) = T (1,n) T (2,n) = 8 5 Efektywność E(2, n) = S(2,n) = 8/5 = 8 2 2 10 Koszt C(p, n) = p T (p, n) = 2 T (2, n) = 10 Czas wykonania T (6, n) = 3 Przyspieszenie S(6, n) = T (1,n) T (6,n) = 8 3 Efektywność E(6, n) = S(6,n) = 8/3 = 8 6 6 18 44% Koszt C(p, n) = p T (p, n) = 6 T (6, n) = 18

Prawo Amdahla Maksymalne wartość przyspieszenia określona jest wzorem podanym przez Gena Amdahla S(p,n) = sekwencyjna część obliczeń 1 s + (1-s)/p równoległa część obliczeń s część obliczeń w algorytmie, które muszą być wykonane sekwencyjnie p liczba procesorów Rysunek : Gene Amdahl (2008)

Prawo Amdahla Prawo Amdahla 20.00 Przyspieszenie 18.00 16.00 14.00 12.00 10.00 8.00 Część równ. 50% 75% 90% 95% 6.00 4.00 2.00 0.00 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 Liczba procesorów

Prawo Amdahla c.d. Prawo Amdahla podaje również górne ograniczenie przyspieszenia 1 lim p s + (1 s)/p = 1 s Przykładowo, dla części sekwencyjnej stanowiącej 1% obliczeń w algorytmie (s = 0.01 ) górna wartość przyspieszenia wynosi 100. W rzeczywistości sytuacja wygląda nawet gorzej, ponieważ w prawie Amdahla przyjęto założenia upraszczające: obliczenia równoległe dają się idealnie równo podzielić między procesorami pominięto czas na organizację obliczeń równoległych, komunikację itd. (T o (p, n))

Prawo Amdahla uwagi W prawie Amdahla celem było skrócenie czasu obliczeń przy zadanym, stałym rozmiarze danych wejściowych (i stałym czasie dla części sekwencyjnej s) Można jednak podejść do problemu od innej strony zachować stały czas części równoległej, a zwiększać rozmiar danych wejściowych, czyli n Przykładowo, symulację meteorologiczną można wykonać na 100 procesorowym komputerze w czasie 1 godziny z dokładnością siatki 1km na komputerze o 10000 procesorach można tę samą symulację wykonać w czasie 1 godziny, ale z dokładnością siatki do 100m

Prawo Gustafsona i Barsisa Niech: p liczba procesorów σ część czasu obliczeń w algorytmie równoległym przypadająca na część sekwencyjną ρ część czasu obliczeń wykonywana równolegle (pomijamy czas na komunikację itp.) Oczywiście, σ + ρ = 1 Jeżeli algorytm ten wykonany zostałby na komputerze sekwencyjnym, to czas jego obliczeń wyniósłby: σ + pρ Wynika stąd, że przyspieszenie wyniosłoby: Ψ(p, n) σ + pρ σ + ρ = σ + pρ = σ + p(1 σ) = p + (1 p)σ Powyższy wzór znany jest jako prawo Gustafsona i Barsisa

Prawo Gustafsona i Barsisa Rysunek : Przyspieszenie w zależności od części sekwencyjnej obliczeń

Prawo Gustafsona i Barsisa Prawo Gustafsona i Barsisa określa skalowalne przyspieszenie, ponieważ wraz ze wzrostem liczby procesorów rośnie rozmiar problemu, tak aby zachować stały czas obliczeń równoległych W prawie Amdahla rozmiar problemu pozostawał stały, a czas obliczeń równoległych ulegał skróceniu Prawo Gustafsona i Barsisa pozwala na osiągnięcie większych przyspieszeń, np. dla części sekwencyjnej równej 1% (σ = 0.01) oraz p = 1000 przyspieszenie Ψ(p, n) 990 Problem: wraz ze wzrostem rozmiaru danych wejściowych rośnie zapotrzebowanie na pamięć operacyjną, dyskową, przepustowość sieci

Uwagi W celu uzyskania dużych przyspieszeń konieczna jest nie tylko duża część obliczeń, którą można zrównoleglić Zarówno prawo Amdahla, jak i prawo Gustafsona pomijają czas T o (p, n) poświęcony na wymianę danych między procesorami oraz organizację obliczeń równoległych Szczególnie w komputerach z rozproszoną pamięcią wymiana komunikatów jest kosztowna należy ograniczać komunikację Rzadka komunikacja zazwyczaj wymaga podziału problemu na większe części, tak by nie zachodziła konieczność częstego pobierania kolejnej porcji danych Oba prawa zakładają równy podział obliczeń między procesorami, co w wielu przypadkach jest trudne do uzyskania

Uwagi Ułatwiony dostęp do komputerów z wieloma jednostkami obliczeniowymi nie zwalnia nas z konieczności uważnego doboru odpowiedniego do zadania algorytmu. Rozmiar Alg. Sekw. Alg. Równ. T (p, n) = n2 p danych (n) T (n) = n log n p=10 p=1000 p=100000 1000 1 10 5 sek 0,0001 sek 0,000001 sek 0,00000001 sek 1000000 0,02 sek 100 sek 1 sek 0,01 sek 1000000000 29,9 sek 3,17 lat 11,57 dni 2,78 godz.