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

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

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

Numeryczna algebra liniowa

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

Analiza ilościowa w przetwarzaniu równoległym

Numeryczna algebra liniowa. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

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

Nowoczesne technologie przetwarzania informacji

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

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

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

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

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

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

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

Analityczne modelowanie systemów równoległych

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

Task Parallel Library

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

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

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

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

3. FUNKCJA LINIOWA. gdzie ; ół,.

Programowanie równoległe

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

Przetwarzanie równoległe Zadanie domowe III

MESco. Testy skalowalności obliczeń mechanicznych w oparciu o licencje HPC oraz kartę GPU nvidia Tesla c2075. Stanisław Wowra

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

Równoległe algorytmy sortowania. Krzysztof Banaś Obliczenia równoległe 1

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

- odnajduje część wspólną zbiorów, złączenie zbiorów - wyodrębnia podzbiory;

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

1 Równania nieliniowe

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

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

Iteracyjne rozwiązywanie równań

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

dr inż. Jarosław Forenc

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

Metody numeryczne I Równania nieliniowe

INFORMATYKA SORTOWANIE DANYCH.

Matematyczne Podstawy Informatyki

Operacje grupowego przesyłania komunikatów. Krzysztof Banaś Obliczenia równoległe 1

Wprowadzenie do złożoności obliczeniowej

Pamięci masowe. ATA (Advanced Technology Attachments)

2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu.

9 Funkcje Użyteczności

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Optymalizacja ciągła

Funkcja liniowa - podsumowanie

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

Optymalizacja ciągła

Modyfikacja algorytmów retransmisji protokołu TCP.

KONSPEKT LEKCJI MATEMATYKI (2 LEKCJE) W III KLASIE GIMNAZJUM OPRACOWAŁA RENATA WOŁCZYŃSKA

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

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

ROZKŁAD MATERIAŁU DO III KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

22 Pochodna funkcji definicja

Programowanie procesorów graficznych GPGPU

Algorytmy i Struktury Danych

O superkomputerach. Marek Grabowski

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

FUNKCJE LICZBOWE. Na zbiorze X określona jest funkcja f : X Y gdy dowolnemu punktowi x X przyporządkowany jest punkt f(x) Y.

Matematyka licea ogólnokształcące, technika

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

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

Otrzymaliśmy w ten sposób ograniczenie na wartości parametru m.

Podstawy Informatyki. Metody dostępu do danych

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

wolniejsze uczenie wypowiadanych sekwencji językowych, trudności w odczytaniu liczb (szczególnie zawierających zera), trudności w pisaniu liczb (np.

Algorytmy dla maszyny PRAM

Rozkład materiału nauczania

Zasady dynamiki Newtona. dr inż. Romuald Kędzierski

Pochodne funkcji wraz z zastosowaniami - teoria

II. Wstęp: Funkcje elementarne - część 2

Programowanie celowe #1

Wymagania edukacyjne z matematyki dla klasy I gimnazjum wg programu Matematyka z plusem

Optymalizacja ciągła

Przykładowe sprawozdanie. Jan Pustelnik

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

Funkcje elementarne. Ksenia Hladysz Własności 2. 3 Zadania 5

Zarządzanie pamięcią w systemie operacyjnym

Schemat programowania dynamicznego (ang. dynamic programming)

MATEMATYKA WYKAZ UMIEJĘTNOŚCI WYMAGANYCH NA POSZCZEGÓLNE OCENY DLA KLASY DRUGIEJ

WYMAGANIA na poszczególne oceny-klasa I Gimnazjum

Elementy dynamiki klasycznej - wprowadzenie. dr inż. Romuald Kędzierski

MATeMAtyka 3. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony. Zakres podstawowy i rozszerzony

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

FUNKCJA LINIOWA, RÓWNANIA I UKŁADY RÓWNAŃ LINIOWYCH

Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Funkcje IV. Wymagania egzaminacyjne:

II. FUNKCJE WIELU ZMIENNYCH

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Fakt 3.(zastosowanie różniczki do obliczeń przybliżonych) Przy czym błąd, jaki popełniamy zastępując przyrost funkcji

4b. Badanie przebiegu zmienności funkcji - monotoniczność i wypukłość

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

Zapisujemy:. Dla jednoczesnego podania funkcji (sposobu przyporządkowania) oraz zbiorów i piszemy:.

Wymagania edukacyjne z matematyki w klasie III gimnazjum

Transkrypt:

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

Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności Ogólnie, choć nie do końca ściśle, oznacza ona dobre zachowanie systemu (sprzętu, środowiska wykonania, programu) w sytuacji rosnącego obciążenia i, najczęściej, rosnących zasobów Mówiąc o skalowalności często rozważa się wydajność jako funkcję rosnącego obciążenia i, ewentualnie, rosnących zasobów Wydajność definiowana jest zależnie od dziedziny (jak to już było wielokrotnie podkreślane) stąd też pojęcia skalowalności bywają różne W dziedzinie Obliczeń Wysokiej Wydajności wprowadza się ścisłe definicje i miary związane ze skalowalnością obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 2

Przyspieszenie i efektywność obliczeń Miary wydajności obliczeń równoległych: przyspieszenie obliczeń: S(p) = Ts / T (p) Ts czas rozwiązania zadania najlepszym algorytmem sekwencyjnym na pojedynczym procesorze T (p) czas rozwiązania zadania rozważanym algorytmem równoległym na p procesorach (w praktyce często zamiast Ts używa się T (1) ) efektywność zrównoleglenia: E(p) = S(p) / p ideałem jest uzyskanie liniowego przyspieszenia i 100% efektywności (jak musi się zachowywać narzut obliczeń, T narz (p) = T (p) T (1)/p, aby uzyskać przyspieszenie liniowe?) Krzysztof Banaś Obliczenia Wysokiej Wydajności 3

Przyspieszenie i efektywność obliczeń Miary wydajności obliczeń równoległych: obserwacja dla danej liczby procesorów przyspieszenie obliczeń równoległych jest większe dla zadań większych (ten sam problem, ten sam algorytm, ten sam program, zmienia się tylko wielkość zadania) dzieje się tak dla zadań, dla których przy stałym p i rosnącym rozmiarze ilość obliczeń rośnie szybciej niż narzut obliczeń równoległych miara wielkości zadania praca W = liczba operacji wykonywanych przy realizacji zadania można próbować wyrazić przyspieszenie jako funkcję dwóch parametrów liczby procesorów i wielkości zadania, S(p,W) (podobnie efektywność E(p,W)) otrzymuje się funkcję dwóch zmiennych, którą można dalej analizować rozpatrując różne jej przekroje Krzysztof Banaś Obliczenia Wysokiej Wydajności 4

Przyspieszenie skalowane Miary wydajności obliczeń równoległych przyspieszenie skalowane to przyspieszenie jakie uzyskuje się rozważając dla danej liczby procesorów p zadanie o rozmiarze p krotnie większym od zadania rozwiązywanego na pojedynczym procesorze jako funkcja liczby procesorów przyspieszenie skalowane jest równe: S S (p) = T (1, pw 0 ) / T (p, pw 0 ) = p*t (1, W 0 ) / T (p, pw 0 ) liniowe przyspieszenie skalowane uzyskuje się przy powyższych założeniach wtedy, kiedy czas rozwiązania nie zmienia się przy rozwiązaniu zadania o rozmiarze p krotnie większym na p razy więcej procesorach efektywność zrównoleglenia jest wtedy stała Krzysztof Banaś Obliczenia Wysokiej Wydajności 5

Skalowalność programów Miary wydajności obliczeń równoległych analiza przyspieszenia skalowanego i skalowanej efektywności jest czasem w literaturze nazywana badaniem tzw. słabej skalowalności (weak scalability) czyli związanej z wydajnością przy stałym rozmiarze zadania na pojedynczym procesorze słabą skalowalność odróżnia się w takim kontekście od silnej skalowalności (przy stałym całkowitym rozmiarze zadania analiza klasyczna, Amdahla, itp.) program będzie wykazywał taką słabą skalowalność (inaczej skalowalność w sensie słabszym) jeżeli czas rozwiązania zadania p krotnie większego (analizując ściśle należałoby powiedzieć o pracy p krotnie większej ) na p razy większej liczbie procesorów będzie pozostawał niezmieniony (lub rósł tylko nieznacznie) (tak jak w przypadku liniowego przyspieszenia skalowanego) Krzysztof Banaś Obliczenia Wysokiej Wydajności 6

Skalowalność programów Miary wydajności obliczeń równoległych innym z pojęć określających zachowanie programu równoległego dla rosnącego rozmiaru zadania i rosnącej liczby procesorów jest skalowalność równoległa (parallel scalability) program nazywamy skalowalnym równolegle jeżeli istnieje taka funkcja W(p), że efektywność obliczeń równoległych jako funkcja E(W(p), p) jest ograniczona od dołu przez liczbę większą od zera jeśli W(p) jest funkcją liniową mówimy o liniowej skalowalności często jesteśmy zainteresowani tylko takimi funkcjami W(p), dla których wymagany rozmiar pamięci nie przekracza dostępnych zasobów (najczęściej pamięć rośnie liniowo wraz ze wzrostem liczby procesorów) Krzysztof Banaś Obliczenia Wysokiej Wydajności 7

Skalowalność programów Miary wydajności obliczeń równoległych analiza równoległej skalowalności programu jest zbliżona do poszukiwania tzw. funkcji izoefektywności funkcja izoefektywności to taka funkcja W izo (p), dla której efektywność jako funkcja W i p jest stała: E( W izo (p), p ) = const ( > 0 ) geometrycznie chodzi o uzyskanie takiego przekroju wykresu E(W,P) dla którego E=const obliczenia, dla których istnieje funkcja izoefektywności są skalowalne obliczenia liniowo skalowalne mają liniową funkcję izoefektywności Krzysztof Banaś Obliczenia Wysokiej Wydajności 8

Skalowalność programów Miary wydajności obliczeń równoległych istnienie funkcji izoefektywności jest związane z narzutem obliczeń równoległych: narz narz E = S / p = T s /(p T ) = T s /(T s + pt ) = 1/(1+pT /T s ) stała efektywność oznacza, że stosunek całkowitego narzutu wykonania równoległego do czasu obliczeń sekwencyjnych jest stały przy stałym rozmiarze zadania stałą efektywność uzyskuje się gdy narzut całkowity jest stały, czyli narzut na jeden procesor maleje narz odwrotnie proporcjonalnie do liczby procesorów p (pt (p) = const) co praktycznie nigdy nie zachodzi jeśli rozmiar zadania (i czas obliczeń sekwencyjnych) rośnie liniowo wraz z liczbą procesorów wystarcza, aby narzut całkowity także rósł liniowo, czyli aby narzut na jeden procesor pozostawał stały Krzysztof Banaś Obliczenia Wysokiej Wydajności 9

Skalowalność programów Miary wydajności obliczeń równoległych do wykazania, że obliczenia są liniowo skalowalne wystarcza spełnienie jednego z warunków: stałego czasu rozwiązania zadania p krotnie większego na p razy większej liczbie procesorów stałego narzutu wykonania równoległego na jeden procesor dla zadań o rozmiarze rosnącym liniowo wraz z liczbą procesorów liniowej funkcji izo efektywności liniowego przyspieszenia skalowanego obliczeń niewielkie odstępstwa od powyższych warunków charakteryzują programy dobrze skalowalne duże odstępstwa charakteryzują programy nieskalowalne (niespełniające kryterium skalowalności) i źle skalowalne (formalnie spełniające kryterium skalowalności, ale dla silnie rosnących funkcji rozmiaru zadania w zależności od liczby procesorów) Krzysztof Banaś Obliczenia Wysokiej Wydajności 10

Skalowalność obliczeń Skalowalność jest kluczowym pojęciem dla równoległych obliczeń wysokiej wydajności W praktyce nie istnieją programy dające się idealnie zrównoleglić (o liniowym przyspieszeniu), natomiast istnieją programy dobrze skalowalne (o liniowym przyspieszeniu skalowanym) Wydajność przetwarzania (różnie definiowana w różnych dziedzinach zastosowań) daje się często ustalić na podstawie analizy skalowalności W dziedzinie obliczeń wysokiej wydajności (HPC): wydajność = liczba_operacji / czas, co często daje się przybliżyć jako: przyspieszenie*czas_wykonania_1_operacji Krzysztof Banaś Obliczenia Wysokiej Wydajności 11

Przykład Analizując algorytmy równoległe będziemy często posługiwali się prostym modelem wydajności, w którym zakłada się, że: Pewne operacje w algorytmach są dominujące i całkowity czas realizacji tych operacji dobrze przybliża całkowity czas obliczeń na pojedynczym procesorze Wszystkie operacje dominujące zajmują tyle samo czasu Czas ten oznaczamy przez t c Jednostką, w której wyrażamy t c może być jednostka czasu lub np. liczba taktów zegara (to ostatnie ułatwia dostosowanie analizy do konkretnego sprzętu) Poza t c uwzględnia się tylko dwa inne parametry sprzętu charakteryzujące czas komunikacji t s i t w Dające się zrównoleglić obliczenia są idealnie zrównoważone Krzysztof Banaś Obliczenia Wysokiej Wydajności 12

Przykład Obliczenie normy wektora o rozmiarze N N operacji mnożenia i dodawania idealne zrównoleglenie Konieczność uzyskania globalnej sumy pomijalny czas obliczeń, istotny czas komunikacji Algorytm naiwny wszystkie procesory przesyłają swoje sumy częściowe do wybranego procesora Czas realizacji zadania: 2*N*t c /p + p*(t s +8*t w ) Analiza uwzględniająca: przyspieszenie, efektywność, przyspieszenie skalowane, efektywność skalowaną, funkcję izoefektywności, ograniczenia pamięciowe Krzysztof Banaś Obliczenia Wysokiej Wydajności 13

Przykład Krzysztof Banaś Obliczenia Wysokiej Wydajności 14

Przykład Krzysztof Banaś Obliczenia Wysokiej Wydajności 15

Optymalizacja programów równoległych Minimalizacja czasu wykonania programów równoległych (czyli redukcja narzutu równoległego) może zostać osiągnięta przez realizację m.in. następujących kroków: zmniejszenie liczby przesyłanych danych zmniejszenie liczby wymienianych komunikatów (zwiększenie ziarnistości obliczeń) unikanie przepełnienia sieci zmniejszenie liczby dodatkowych operacji (często w sprzeczności ze zmniejszeniem rozmiaru przesyłanych danych) równoważenie obciążenia nakładanie obliczeń i komunikacji optymalne wykorzystanie hierarchii pamięci optymalną realizację obliczeń sekwencyjnych Krzysztof Banaś Obliczenia Wysokiej Wydajności 16