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

Podobne dokumenty
Numeryczna algebra liniowa

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

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

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

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

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

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

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

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

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

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

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Analiza ilościowa w przetwarzaniu równoległym

Matematyczne Podstawy Informatyki

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

Analiza efektywności przetwarzania współbieżnego

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

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

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

Algorytmy numeryczne 1

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

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

3URJUDPRZDQLHZVSyáELH*QHZVWS

4. Procesy pojęcia podstawowe

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

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

Macierzowe algorytmy równoległe

LEKCJA TEMAT: Zasada działania komputera.

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

INFORMATYKA SORTOWANIE DANYCH.

Modelowanie procesów współbieżnych

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

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

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

Algorytmy i Struktury Danych

Przetwarzanie rozproszone

Architektura komputerów

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

4. Procesy pojęcia podstawowe

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

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

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

Budowa komputera Komputer computer computare

Algorytmy sortujące 1

Operacje grupowego przesyłania komunikatów

UKŁADY MIKROPROGRAMOWALNE

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

Architektura komputerów

Nowoczesne technologie przetwarzania informacji

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi:

Projekt struktury sieci neuronowej

Architektura komputerów

Metody uporządkowania

TEORETYCZNE PODSTAWY INFORMATYKI

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

Programowanie procesorów graficznych GPGPU

4. Procesy pojęcia podstawowe

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

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

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

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

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

Architektura komputerów

Ograniczenia efektywności systemu pamięci

Obliczenia Wysokiej Wydajności

Przesyłania danych przez protokół TCP/IP

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

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

Podstawy Informatyki Systemy sterowane przepływem argumentów

Technologie Informacyjne

Ogólne zasady projektowania algorytmów i programowania

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

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

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

Programowanie dynamiczne

Task Parallel Library

MATERIAŁY POMOCNICZE DO LABORATORIUM Z PRZETWARZANIA RÓWNOLEGŁEGO KWIECIEŃ 2018

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

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

Architektura potokowa RISC

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

Algorytmy dla maszyny PRAM

Interfejs transmisji danych

zmiana stanu pamięci następuje bezpośrednio (w dowolnej chwili czasu) pod wpływem zmiany stanu wejść,

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Jak zrównolegla się algorytmy - projektowanie algorytmów równoległych

Analityczne modelowanie systemów równoległych

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

WPROWADZENIE Mikrosterownik mikrokontrolery

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

System plików. Warstwowy model systemu plików

Programowanie równoległe

Wykład 1. Systemy przekazywania wiadomości z założeniem bezbłędności działania

Architektura komputerów. Układy wejścia-wyjścia komputera

Ćwiczenie nr: 9 Obliczenia rozproszone MPI

Czujniki obiektowe Sterowniki przemysłowe

IPC: Kolejki komunikatów

Projektowanie. Projektowanie mikroprocesorów

Transkrypt:

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

Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM

Task-channel model

Task-channel model Abstrakcyjny model algorytmu równoległego Zadanie: zawiera program sekwencyjny i jego lokalną pamięć Porty We/Wy Porty różnych zadań połączone są kanałami

Zadania Zadania wykonują 5 podstawowych operacji: Obsługa pamięci lokalnej Wysyłanie danych (Send) Odbieranie danych (Receive) Tworzenie zadań (Create, fork) Kończenie zadań (Terminate)

Kanał Kanał jest to kolejka komunikatów łącząca port wyjścia pewnego zadania z portem wyjścia innego zadania Kolejność odbierania danych jest taka sama, jak kolejność ich wysyłania Kanał wejściowy może zostać zablokowany, jeżeli nie ma w nim danych do odczytu Kanał wyjściowy nigdy nie ulega zablokowaniu (pomyśl np. o kolejce zadań dla drukarki) Odbieranie: operacja synchroniczna Wysyłanie: operacja asynchroniczna

Dostęp do pamięci Pamięci lokalna jest wyraźnie oddzielona od globalnej Dostęp do pamięci lokalnej jest szybki Dostęp do pamięci globalnej poprzez kanały znacznie wolniejszy Wyraźne rozróżnienie pamięci lokalnej (prywatnej) od globalnej pomaga w analizie wydajności rzeczywistych algorytmów

Projektowanie algorytmów równoległych metodą Fostera Ogólna metoda postępowania Składa się z czterech kroków: Podział (Partitioning) Komunikacja (Communication) Skupianie (Agglomeration) Odwzorowanie (Mapping)

Podział-Komunikacja- Scalanie-Odwzorowanie

1. Podział Podział obliczeń i danych na mniejsze części Podział na domeny wg danych (domain decomposition) Np. podział macierzy na podmacierze, wiersze, wstęgi; podział dużej pętli na mniejsze Zazwyczaj skupiamy się na największym zbiorze danych lub danych najczęściej używanych Podział dużego zadania na podzadania (dekompozycja funkcjonalna) Prowadzi do podziału problemu na zadania elementarne (primitive tasks)

Na tym etapie ignorujemy sprzęt, na którym miałby się wykonać program; Szukamy wszytskich okazji do zrównoleglenia algorytmu

Dekompozycja danych Struktura danych Zadanie elementarne

Dekompozycja funkcjonalna Możliwe przetwarzanie potokowe Zadania mają zwykle inny rozmiar

Zadania elementarne Powinno być ich dużo więcej niż jednostek obliczeniowych Powinny mieć mniej więcej ten sam rozmiar (obejmować podobną liczbę danych i mieć podobną złożoność obliczeniową) Ich liczba powinna rosnąć z wielkością problemu Narzut związany z podziałem zadania na zadania elementarne powinien być minimalny W miarę możliwości warto rozważyć kilka podziałów na zadania elementarne

2. Komunikacja Jakie dane muszą być przesyłane między zadaniami elementarnymi? Komunikacja lokalna: angażuje niewiele zadań elementarnych Przydzielamy kanały komunikacji Komunikacja globalna: angażuje bardzo dużą liczbę zadań elementarnych Warto rozważyć zastąpienie jej komunikacją lokalną

2. Przykład: redukcja S = x 0 + x 1 + x 2 + +x n x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 S W tym rozwiązaniu jedno zadanie (S) wykonuje wszystkie operacje: komunikacja i obliczenia Algorytm jest szeregowy Koszt: O(n)

Przykład: redukcja S = x 0 + x 1 + x 2 + +x n x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 czas x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 0 = S x 1 x 2 x 3 x 4 x 5 x 6 x 7 Zrównoleglono obliczenia i komunikację Koszt: O(log 2 (n))

Przykład: redukcja S = x 0 + x 1 + x 2 + +x n x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 czas x 0 = S x 1 x 2 x 3 x 4 x 5 x 6 x 7 Zrównoleglono obliczenia i komunikację Koszt: O(log 2 (n)), mimo iż wykonuje się więcej obliczeń i transferów danych niż w rozwiązaniu szeregowym

Pożądane cechy komunikacji: Zrównoważenie Komunikacja w każdym kanale zajmuje mniej więcej tyle samo zasobów Niewielki stopień Każde zadanie elementarne komunikuje się tylko z kilkoma zadaniami sąsiednimi Możliwość przetwarzania równoległego Zadania mogą przesyłać dane jednocześnie w różnych kanałach Różne zadania mogą jednocześnie wykonywać obliczenia

Komunikacja wprowadza dodatkowy narzut na wykonanie programu, bo nie występuje w programie szeregowym Należy minimalizować komunikację między zadaniami elementarnymi

3. Scalanie Scalanie (agglomeration) polega na łączeniu zadań elementarnych w większe zadania Cel: zwiększenie efektywności Zwykle etap ten służy do redukcji czasu komunikacji i wymaga znajomości sprzętu, na jakim będzie wykonywany program W programowaniu wykorzystującym MPI zwykle 1 scalone zadnie odpowiada 1 procesorowi W programowaniu wykorzystującym CUDA zadań jest zwykle dużo więcej niż jednostek wykonawczych

3. Scalanie Scalanie kilku zadań elementarnych eliminuje komunikację między nimi: zwiększenie lokalności Scalanie może też dotyczyć kanałów komunikacyjnych: wysłanie 1 komunikatu o długości M*N jest bardziej efektywne niż wysłanie M komunikatów o długości N Opóźnienie (latencja, latency) może wynosić od dziesiątek nanosekund po setki mikrosekund

Scalanie: pożądane cechy Zwiększenie lokalności programu Scalone zadania mają podobny koszt obliczeniowy i komunikacyjny Liczba zadań rośnie z rozmiarem problemu Powtórzone obliczenia zajmują mniej czasu, niż komunikacja, którą zastępują Ilość dodatkowych danych potrzebnych do scalenia zadań elementarnych jest niewielka

4. Odwzorowanie Odwzorowanie jest to przyporządkowanie scalonych zadań procesorom Cel: maksymalizacja użycia procesorów i minimalizacja komunikacji między procesorowej To są zwykle 2 sprzeczne zadania: potrzebny kompromis Zadania tworzone dynamicznie etc.

4. Odwzorowanie Cel: maksymalizacja użycia procesorów i minimalizacja komunikacji między procesorowej To są zwykle sprzeczne zadania:

Przykłady