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

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

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

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

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

Programowanie równoległe

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

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

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

Analiza efektywności przetwarzania współbieżnego

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

PROBLEM PRZEPŁYWOWY Z PRZEZBROJENIAMI ORAZ CIĄGŁĄ PRACĄ MASZYN Wojciech BOŻEJKO, Radosław IDZIKOWSKI, Mieczysław WODECKI

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

Analiza ilościowa w przetwarzaniu równoległym

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

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

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Sortowanie topologiczne skierowanych grafów acyklicznych

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Teoria obliczeń i złożoność obliczeniowa

Obliczenia równoległe

Kolorowanie wierzchołków grafu

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

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

Harmonogramowanie przedsięwzięć

Optymalizacja. Przeszukiwanie lokalne

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Znajdowanie skojarzeń na maszynie równoległej

Algorytmy dla maszyny PRAM

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

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

Algorytmy sortujące 1

8. Neuron z ciągłą funkcją aktywacji.

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Algorytmy stochastyczne laboratorium 03

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Wstęp do programowania

Strategia "dziel i zwyciężaj"

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

Wybrane podstawowe rodzaje algorytmów

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym.

Sprawozdanie do zadania numer 2

9.4 Czasy przygotowania i dostarczenia

Instrukcja projektowa cz. 2

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

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

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Algorytmy i Struktury Danych

Programowanie w VB Proste algorytmy sortowania

Analiza algorytmów zadania podstawowe

Obliczenia iteracyjne

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Przetwarzanie równoległe Zadanie domowe III

Spacery losowe generowanie realizacji procesu losowego

Programowanie dynamiczne cz. 2

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Maciej Piotr Jankowski

Szeregowanie zadań. Wykład nr 3. dr Hanna Furmańczyk

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

Sortowanie przez scalanie

Nowoczesne technologie przetwarzania informacji

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

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Wyznaczanie optymalnej trasy problem komiwojażera

Podstawy Informatyki Systemy sterowane przepływem argumentów

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Definicja pochodnej cząstkowej

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Struktury danych (I): kolejka, stos itp.

9.9 Algorytmy przeglądu

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

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

Programowanie dynamiczne

Obliczenia Naturalne - Algorytmy Mrówkowe

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Algorytmy i Struktury Danych

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

Algorytmika Problemów Trudnych

Programowanie równoległe

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

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

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

TEORIA GRAFÓW I SIECI

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

Digraf. 13 maja 2017

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

Optymalizacja ciągła

Zagadnienie transportowe

System wspomagania harmonogramowania przedsięwzięć budowlanych

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

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

Transkrypt:

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe

Agenda Cykliczny problem przepływowy Minimalny czas cyklu Wzorce Bloki zadań Równoległe wyznaczanie bloków Eksperymenty obliczeniowe Przyspieszenie Skalowalność Podsumowanie dr inż. Mariusz Uchroński Równoległy algorytm... 2/21

Cykliczny problem przepływowy Dane są: zbiór zadań J = {1, 2,..., n}, zbiór maszyn M = {1, 2,..., m}. Zadania ze zbioru J należy wykonać należy wykonać cyklicznie (w sposób powtarzalny) na maszynach ze zbioru M. Zadanie j J jest ciągiem m operacji. Operacja O k,j odpowiada czynności wykonywania zadania j na maszynie k, w czasie p k,j. Po zakończeniu pewnej, a przed rozpoczęciem następnej operacji należy wykonać przezbrojenie maszyny. Niech s k i,j (k M, i j i, j J ) będzie czasem przezbrojenia pomiędzy operacją O k,i oraz O k,j. dr inż. Mariusz Uchroński Równoległy algorytm... 3/21

Minimalny czas cyklu Zbiór zadań wykonywanych w pojedynczym cyklu nazywany jest MPS-em (ang. minimal part set). MPS-y są przetwarzane cyklicznie, jeden po drugim. Należy wyznaczyć kolejność wykonywania zadań (taką samą na każdej maszynie), która minimalizuje czas cyklu, tj. termin rozpoczęcia wykonywania zadań ze zbioru J w następnym cyklu. Dla ustalonej permutacji π Φ oraz maszyny k M n 1 T k (π) = (p k,π(i) + sπ(i),π(i+1)) k + p k,π(n) + sπ(n),π(1). k i=1 jest czasem wykonywania zadań dla kolejności π. Minimalny czas cyklu T (π) = min{t i (π) : i = 1, 2,..., m}. dr inż. Mariusz Uchroński Równoległy algorytm... 4/21

Wzorce Wyznaczenie minimalnego czasu pracy k-tej maszyny można sprowadzić do następującego problemu komiwojażera. Niech H k = (V, E; p, s) będzie grafem pełnym, gdzie zbiór wierzchołków: V = J, zbiór łuków: E = {(v, u) : v u, v, u V}, wagi wierzchołków: p(v) = p k,v, v V, wagi łuków: s(e) = s k e, e E. Minimalny czas pracy k-tej maszyny jest równy długości drogi komiwojażera w grafie H k, tj. minimalnego (ze względu na długość) cyklu Hamiltona. Permutacja π k określająca drogę komiwojażera w grafie H k nazywana będzie wzorcem dla k-tej maszyny. dr inż. Mariusz Uchroński Równoległy algorytm... 5/21

Bloki zadań Niech B = (π(a), π(a + 1),..., π(b)), (1) będzie ciągiem bezpośrednio występujących po sobie zadań w permutacji π Φ, π k wzorcem dla k-tej maszyny oraz u, v (u v, 1 u, v n) parą liczb takich, że: W1: π(a) = π (u), π(a + 1) = π (u + 1),..., π(b 1) = π (v 1), π(b) = π (v), lub W2: π(b) = π (u), π(b 1) = π (u + 1),..., π(a + 1) = π (v 1), π(a) = π (v) W3: B jest maksymalnym podciągiem ze względu na zawieranie. Jeżeli ciąg zadań (1) spełnia warunki W1 i W3 lub W2 i W3, to nazywamy go blokiem na k-tej maszynie (k M). dr inż. Mariusz Uchroński Równoległy algorytm... 6/21

Równoległe wyznaczanie bloków Złożoność obliczeniowa sekwencyjnego algorytmu wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami wynosi O(n). Twierdzenie Wyznaczenie bloków dla cyklicznego problemu przepływowego z przezbrojeniami można wykonać w czasie O(log n) na mn-procesorowej maszynie CREW PRAM. dr inż. Mariusz Uchroński Równoległy algorytm... 7/21

Równoległe wyznaczanie bloków Wejście: permutacje: π = (π(1), π(1),..., π(n)) oraz π = (π (1), π (1),..., π (n)) Wyjście: wektor pozycji początkowych bloków (b 1, b 2,..., b k ), k liczba bloków, oraz wektor pozycji końcowych bloków (e 1, e 2,..., e k ) π = (8, 10, 7, 4, 5, 6, 3, 1, 9, 2) π = (9, 3, 1, 6, 10, 7, 4, 5, 2, 8) k = 2, b = (2, 7), e = (5, 8) B 1 = (10, 7, 4, 5), B 2 = (3, 1) dr inż. Mariusz Uchroński Równoległy algorytm... 8/21

Równoległe wyznaczanie bloków Krok 1. parfor r {1, 2,..., p} do π(0) := π(n + 1) := π (0) := π (n + 1) := 1; (π ) 1 (0) := (π ) 1 (n + 1) := 1; if (poprzednia pozycja w π jest identyczna jak w π, tj. π(r 1) = π ((π ) 1 (π(r)) 1)) then B b [r] := 1; else B b [r] := 0; if (następna pozycja w π jest identyczna jak w π, tj. π(r + 1) = π ((π ) 1 (π(r)) + 1)) then B e [r] := 1; else B e [r] := 0; dr inż. Mariusz Uchroński Równoległy algorytm... 9/21

Równoległe wyznaczanie bloków π = (8, 10, 7, 4, 5, 6, 3, 1, 9, 2) π = (9, 3, 1, 6, 10, 7, 4, 5, 2, 8) (π ) 1 = (3, 9, 2, 7, 8, 4, 6, 10, 1, 5) B b = (0, 0, 1, 1, 1, 0, 0, 1, 0, 0) B e = (0, 1, 1, 1, 0, 0, 1, 0, 0, 0) dr inż. Mariusz Uchroński Równoległy algorytm... 10/21

Równoległe wyznaczanie bloków Krok 2. parfor r {1, 2,..., p} do if ((B b [r] = 0) and (B b [r + 1] = 1)) then B b [r] := 1; else B b [r] := 0; B b = (0, 1, 0, 0, 0, 0, 1, 0, 0, 0) dr inż. Mariusz Uchroński Równoległy algorytm... 11/21

Równoległe wyznaczanie bloków Krok 3. parfor r {1, 2,..., p} do if ((B e [r] = 0) and (B e [r 1] = 1)) then B e [r] := 1; else B e [r] := 0; B e = (0, 0, 0, 0, 1, 0, 0, 1, 0, 0) dr inż. Mariusz Uchroński Równoległy algorytm... 12/21

Równoległe wyznaczanie bloków Krok 4. Wyznaczyć sumy prefiksowe P elementów z tablicy B b, tj.. r r {1,2,...,p} P[r] = B b [i] i=1 B b = (0, 1, 0, 0, 0, 0, 1, 0, 0, 0) P = (0, 1, 1, 1, 1, 1, 2, 2, 2, 2) dr inż. Mariusz Uchroński Równoległy algorytm... 13/21

Równoległe wyznaczanie bloków Krok 5. parfor r {1, 2,..., p} do if (B b [r] = 1) then b[p[r]] := r; if (B e [r] = 1) then e[p[r]] := r; B e = (0, 0, 0, 0, 1, 0, 0, 1, 0, 0) B b = (0, 1, 0, 0, 0, 0, 1, 0, 0, 0) P = (0, 1, 1, 1, 1, 1, 2, 2, 2, 2) b = (2, 7), e = (5, 8) dr inż. Mariusz Uchroński Równoległy algorytm... 14/21

Eksperymenty obliczeniowe Równoległa algorytm wyznaczania bloków została zaimplementowana w języku C++ z wykorzystaniem biblioteki OpenMP. Dane na potrzeby eksperymentów obliczeniowych (permutacje zadań) zostały wygenerowane losowo. Liczba elementów permutacji zmieniała się w zakresie 10 3 10 7. Eksperymenty obliczeniowe zostały przeprowadzone w dwóch środowiskach obliczeniowych z pamięcią współdzieloną: 1 CPU procesor wielordzeniowy Intel Xeon E5-2670 (2.30 GHz) pozwalający na wykorzystanie 48 procesorów (węzeł klastra Bem), 2 MIC koprocesor Intel Xeon Phi 3120A (6GB, 1.1 GHz) pozwalający na wykorzystanie 228 procesorów. dr inż. Mariusz Uchroński Równoległy algorytm... 15/21

Przyspieszenie względne Przyspieszenie względne algorytmu równoległego zdefiniowane jest w następujący sposób S = T s T p, (2) gdzie T p jest czasem wykonania algorytmu równoległego na maszynie równoległej z p procesorami, a T s jest czasem wykonania algorytmu równoległego uruchomionego w sposób sekwencyjny, tj. dla p = 1 na tej samej maszynie. dr inż. Mariusz Uchroński Równoległy algorytm... 16/21

6 5 n=10 10 3 n=100 10 3 n=1000 10 3 n=10000 10 3 4 przyspieszenie 3 2 1 0 0 5 10 15 20 25 30 35 liczba procesorów Rysunek: Zależność przyspieszenia od liczby procesorów Intel Xeon E5-2670. dr inż. Mariusz Uchroński Równoległy algorytm... 17/21

12 10 n=10 10 3 n=100 10 3 n=1000 10 3 n=10000 10 3 8 przyspieszenie 6 4 2 0 0 20 40 60 80 100 120 140 liczba procesorów Rysunek: Zależność przyspieszenia od liczby procesorów Intel Xeon Phi 3120A. dr inż. Mariusz Uchroński Równoległy algorytm... 18/21

Skalowalność Algorytm równoległy jest skalowalny jeżeli jego efektywność nie zmienia się przy zmianie liczby procesorów i rozmiaru problemu o ten sam czynnik. Silna skalowalność zachodzi gdy utrzymanie efektywności algorytmu równoległego jest możliwe poprzez zwiększenie liczby procesorów bez zwiększania rozmiaru problemu. Słaba skalowalność zachodzi gdy utrzymanie efektywności algorytmu równoległego wymaga zwiększenia liczby procesorów i rozmiaru problemu o ten sam czynnik. dr inż. Mariusz Uchroński Równoległy algorytm... 19/21

12 10 p=16 p=32 p=64 p=128 8 przyspieszenie 6 4 2 0 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 rozmiar Rysunek: Zależność przyspieszenia od liczby zadań Intel Xeon Phi 3120A. dr inż. Mariusz Uchroński Równoległy algorytm... 20/21

Podsumowanie Z uzyskanych wyników widać, że dla różnej liczby zadań w permutacji przyspieszenie początkowo dość szybko wzrasta, osiąga maksimum, a następnie powoli zmniejsza się. Liczba procesorów dla którego osiągane jest maksimum przyspieszenia zależy od rozmiaru problemu. Przedstawiony algorytm równoległego wyznaczania bloków może zostać zastosowany jako element algorytmów metaheurystycznych w celu przyspieszenia obliczeń. dr inż. Mariusz Uchroński Równoległy algorytm... 21/21