IMPLEMENTACJA I PORÓWNANIE WYDAJNOŚCI WYBRANYCH ALGORYTMÓW GRAFOWYCH W WARUNKACH OBLICZEŃ RÓWNOLEGŁYCH

Podobne dokumenty
REFERAT PRACY DYPLOMOWEJ

Sprawozdanie do zadania numer 2

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Grafy i sieci w informatyce - opis przedmiotu

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

a) 7 b) 19 c) 21 d) 34

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

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

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

SUPERKOMPUTER OKEANOS BADAWCZE GRANTY OBLICZENIOWEWE

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

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

Złożoność obliczeniowa klasycznych problemów grafowych

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

Matematyczne Podstawy Informatyki

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

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Matematyczne Podstawy Informatyki

Minimalne drzewa rozpinające

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

Digraf. 13 maja 2017

Obliczenia Wysokiej Wydajności

Dostęp do europejskich systemów obliczeniowych Tier-0/Tier-1 w ramach PRACE

Zaawansowane programowanie w języku C++

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

Architektura komputerów

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

Załącznik Nr 5 do Zarz. Nr 33/11/ Kod przedmiotu:aisd2

Algorytmy wyznaczania centralności w sieci Szymon Szylko

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.

Nowoczesne technologie przetwarzania informacji

Składowanie, archiwizacja i obliczenia modelowe dla monitorowania środowiska Morza Bałtyckiego

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

Programowanie sieciowe. Tadeusz Trzaskalik

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Algorytm Chaitin a. Problem kolorowania grafu. Krzysztof Lewandowski Mirosław Jedynak

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

PRZEWODNIK PO PRZEDMIOCIE

Dostęp do europejskich systemów obliczeniowych Tier-0 w ramach PRACE

Przykład planowania sieci publicznego transportu zbiorowego

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

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

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

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

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

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

PROCESOR Z ODBLOKOWANYM MNOŻNIKIEM!!! PROCESOR INTEL CORE I7 4790K LGA1150 BOX

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

TEORETYCZNE PODSTAWY INFORMATYKI

Raport Hurtownie Danych

Znajdowanie skojarzeń na maszynie równoległej

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

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

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

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

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

Praca dyplomowa magisterska

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

Obliczenia Wysokiej Wydajności

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

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

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

AiSD zadanie trzecie

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

Programowanie dynamiczne i algorytmy zachłanne

Metody uporządkowania

Wysokowydajna implementacja kodów nadmiarowych typu "erasure codes" z wykorzystaniem architektur wielordzeniowych

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

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

Graf. Definicja marca / 1

Algorytmy i Struktury Danych

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

PYTANIA BUDOWA KOMPUTERA kartkówki i quizy

Temat: Sieci neuronowe oraz technologia CUDA

Podejście zachłanne, a programowanie dynamiczne

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka

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

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

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

SKOJARZENIA i ZBIORY WEWN. STABILNE WIERZCH. Skojarzeniem w grafie G nazywamy dowolny podzbiór krawędzi parami niezależnych.

Metody Programowania

Informatyka w szkole - algorytm Dijkstry dla każdego. Krzysztof Diks Instytut Informatyki, Uniwersytet Warszawski

Algorytmika Problemów Trudnych

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

Lista 4. Kamil Matuszewski 22 marca 2016

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

E ' E G nazywamy krawędziowym zbiorem

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Problemy z ograniczeniami

Wersje desktopowe (Kaby Lake-S)

Task Parallel Library

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Ogólne wiadomości o grafach

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Transkrypt:

IMPLEMENTACJA I PORÓWNANIE WYDAJNOŚCI WYBRANYCH ALGORYTMÓW GRAFOWYCH W WARUNKACH OBLICZEŃ RÓWNOLEGŁYCH Michał Podstawski Praca dyplomowa napisana pod kierunkiem Prof. WSTI dr hab. inż. Jarosława Śmiei w roku akademickim 2016/2017 Szablon prezentacji - SlidesCarnival

1. Wstępne założenia

Problemy grafowe i HPC część 1 W świecie współczesnej informatyki - ze względu na rosnącą ilość i złożoność przetwarzanych danych - poszukiwanie skutecznych rozwiązań dla klasycznych problemów grafowych stało się jednym z głównych zagadnień. Jest to związane z faktem, że rozwiązania takie są niezbędne w wielu dynamicznie rozwijających się dziedzinach, takich jak: implementacje uczenia maszynowego (machine learning) analiza struktur sieci społecznościowych (social networks) rozwój inżynierii obliczeniowej (computational science) Big Data

Problemy grafowe i HPC część 2 Rozwój tej dziedziny związany jest także z gwałtownym postępem w zakresie HPC (High Performance Computing), i na zwiększaniu wydajności nowoczesnych komputerów polegającym nie na dodawaniu mocy obliczeniowej pojedynczego procesora, ale na mnożeniu ilości takich jednostek i udostępnianiu możliwości współbieżnego przetwarzania informacji. Właśnie to sprawia, że wiele tradycyjnych rozwiązań dla problemów grafowych przestało być przydatnych gdyż nie da się ich wykorzystać w wypadku przetwarzania równoległego.

Cel pracy Właśnie te powody stały się motywacją mojego projektu inżynierskiego. Za cel postawiłem sobie implementację czterech ważnych algorytmów grafowych w ten sposób, by dało się je wykorzystać w przetwarzaniu współbieżnym w środowiskach HPC. Do sprawdzenia, w jakim stopniu cel udało się osiągnąć, wykorzystałem kilka szczegółowych metryk, które pozwoliły na bardziej drobiazgową ocenę wydajności i skalowalności przedstawianych rozwiązań.

Główne problemy Ze względu na programowanie współbieżne dostosowane do potrzeb HPC napotkałem podczas projektu kilka problemów, które nie występują w tradycyjnym procesowaniu synchronicznym. Do elementów, które mają największy wpływ na wydajność w wypadku algorytmów na superkomputerach, i które mogą stanowić poważny problem podczas projektowania implementacji, należą głównie: PRZETWARZANIE WIELOWĄTKOWE SYNCHRONIZACJA WĄTKÓW ZASTOSOWANIE BLOKAD I SEKCJI KRYTYCZNYCH ILOŚĆ OPERACJI Z i DO PAMIĘCI

Warianty push i pull W trakcie teoretycznego przygotowania pracy okazało się, że w różnych algorytmach korzystnym może okazać się aktualizowanie wartości wierzchołków w dwóch kierunkach: PUSH kiedy aktualizujemy wartości sąsiadów procesowanego wierzchołka PULL kiedy aktualizujemy wartość procesowanego wierzchołka W każdym wypadku dokonałem implementacji obu wariantów, żeby porównać wydajność i zdecydować, który z nich jest bardziej optymalny w danym grafie.

2. Wykorzystane narzędzia

Język i biblioteki C++ OpenMP 4.5 igraph 0.7.1 Metis 5.1.0 Intel Threading Building Blocks 2017 Update 1 FoMPI LibSciBench

Testowe grafy TYP ID n m Social network (orc) Social network (pok) Ground-truth community Purchase network orc 3.07M 117M pok 1.63M 30.6M ljn 3.99M 34.6M am 262k 1.23M Road network rca 1.96M 2.76M R-MAT rmat 33M-268M 66M-4.28B

Hardware - CSCS Piz Daint (Daint) - Cray XC30: każda jednostka składowa posiada 8-rdzeniowy procesor Intel E5-2670 Sandy Bridge CPU z 32 GB DDR3-1600 RAM i NVIDIA Tesla K20X z 6 GB GDDR5 RAM. - CSCS Piz Dora (Dora) - Cray XC40: każda jednostka składowa posiada dwa 2-rdzeniowe procesory Intel Haswells E5-2690 i 64 GB DDR4 RAM; połączenia takie same jak w Daint. - Trivium V70.05 (Trivium) - posiada procesor Intel Core i7-4770, zawierający cztery 3.4 GHz Haswell z 2 wielowątkowymi rdzeniami, zapewniając sprzętowo 8 wątków; każdy rdzeń ma 32 KB cache L1 i 256 KB cache L2; procesor posiada 8 MB łączonego L3 cache i 8 GB RAM.

3. Algorytmy i implementacja

SSSP Single Source Shortest Path Problem znajdowania najkrótszej ścieżki jest jednym z najbardziej klasycznych problemów grafowych. Chodzi o znalezienie takiej ścieżki łączącej dwa wierzchołki, której koszt przejścia byłby możliwe najniższy. W implementowanym wariancie interesowało nas wyznaczenie najkrótszych ścieżek dojścia z zadanego wierzchołka startowego do każdego wierzchołka w grafie. Rys. https://en.wikipedia.org/wiki/shortest_path_problem#/media/file:shortest_path_with_direct_weights.svg [Data dostępu 11-04-2017]

SSSP Single Source Shortest Path Istnieją dwa tradycyjne algorytmy stanowiące rozwiązanie tego problemu: ALGORYTM DJIKSTRY (gdy nie ma wag ujemnych) ALGORYTM BELLMANA-FORDA Ich wadą jest fakt, że oba (szczególnie Djikstry) nie w pełni dają się wykorzystać w warunkach obliczeń równoległych. Stąd dla potrzeb projektu dokonałem implementacji ALGORYTMU DELTA-STEPPING, który został zaproponowany nie tylko jako połączenie obu wymienionych algorytmów, ale także jako algorytm, który stworzony jest z myślą o środowiskach rozproszonych.

SSSP Single Source Shortest Path Algorytm DELTA-STEPPING opiera się na założeniu, że graf można podzielić na mniejsze podgrafy kubełki (buckets), które mogą być procesowane równolegle. Dzięki podziale krawędzi na lekkie i ciężkie udaje się także uzyskać optymalizację płynącą z faktu, że krawędzie lekkie, jako te, które mają większą szanse uczestnictwa w finalnym rozwiązaniu, procesuje się kilkukrotnie, a krawędzie ciężkie tylko raz.

SSSP wyniki

SSSP wyniki Wydajniejszy w tym wypadku jest wariant PUSH.

GC Graph Coloring Kolorowanie grafu jest problemem polegającym na takim pokolorowaniu wierzchołków grafu najmniejszą możliwą ilością kolorów, by dwa wierzchołki o tym samym kolorze ze sobą nie graniczyły. To problem o tyle ważny, że jego rozwiązanie stanowi istotną metrykę dla grafu, mówiącą o jego gęstości i stopniu komplikacji. Rys. https://plus.maths.org/issue8/features/phones/fig2.jpg [data dostępu: 6/11/2016]

GC Graph Coloring W przetwarzaniu równoległym najpowszechniej za standard uznawane jest rozwiązanie zaproponowane przez Erika Bomana i to ono stało się podstawą mojej implementacji. Polega na podzieleniu grafu na mniejsze podgrafy, przeprocesowaniu każdego równolegle za pomocą któregoś ze znanych algorytmów synchronicznych (w moim wypadku kolorowanie zachłanne), a następnie rozwiązaniu konfliktów na granicach podgrafów. Dodatkowo zaproponowałem rozwiązanie oparte o koncepcję kubełków (podobnie, jak w SSSP), która okazała się wyjątkowo szybkim wariantem.

GC wyniki

GC wyniki Wydajniejszy w tym wypadku jest wariant PUSH i wariant z kubełkami GrS.

TC Triangle Counting Zliczanie trójkątów jest algorytmem mniej znanym, ale zyskującym coraz większe znaczenie, przede wszystkim ze względu na fakt, że pozwala łatwo ocenić stopień komplikacji grafu i znaleźć punkty jego zgęszczenia. Polega na policzeniu wszystkich trójkątów, tworzonych przez wierzchołki grafu, przy czym o trójkącie możemy mówić, gdy w zbiorze trzech wierzchołków każdy z nich posiada wspólną krawędź z dwoma pozostałymi.

TC Triangle Counting Zliczanie trójkątów jest algorytmem mniej znanym, ale zyskującym coraz większe znaczenie, przede wszystkim ze względu na fakt, że pozwala łatwo ocenić stopień komplikacji grafu i znaleźć punkty jego zgęszczenia. Polega na policzeniu wszystkich trójkątów, tworzonych przez wierzchołki grafu, przy czym o trójkącie możemy mówić, gdy w zbiorze trzech wierzchołków każdy z nich posiada wspólną krawędź z dwoma pozostałymi.

TC Triangle Counting Zliczanie trójkątów jest algorytmem mniej znanym, ale zyskującym coraz większe znaczenie, przede wszystkim ze względu na fakt, że pozwala łatwo ocenić stopień komplikacji grafu i znaleźć punkty jego zgęszczenia. Polega na policzeniu wszystkich trójkątów, tworzonych przez wierzchołki grafu, przy czym o trójkącie możemy mówić, gdy w zbiorze trzech wierzchołków każdy z nich posiada wspólną krawędź z dwoma pozostałymi.

TC wyniki Wydajniejszy w tym wypadku jest wariant PULL

MST Minimum Spanning Tree Problem minimalnego drzewa rozpinającego również należy do klasycznych problemów grafowych. Dotyczy głównie grafów o krawędziach o przyporządkowanych wagach. Polega na znalezieniu takiego drzewa rozpinającego grafu (czyli zestawu krawędzi łączącego między sobą wszystkie wierzchołki), którego waga jest najmniejsza.

MST Minimum Spanning Tree Problem ten ma trzy tradycyjne rozwiązania: - algorytm Prima (Prima Dijkstry) - algorytm Kruskala - algorytm Borůvki (Sollina) W przetwarzaniu równoległym zazwyczaj przyjmuje się, że tak algorytm Prima, jak i Kruskala, w zasadzie nie dają się paralelizować. Z tego względu w trakcie przygotowania projektu używałem algorytmu Borůvki (Sollina).

MST wyniki Wydajniejszy w tym wypadku jest wariant PUSH

4. Podsumowanie projektu

Podsumowanie W trakcie pracy nad projektem udało się zrealizować jego teoretyczne założenia. Dokonano implementacji wszystkich wskazanych algorytmów grafowych, osiągając satysfakcjonujące wyniki. Wykonane implementacje pozwoliły także na lepsze zrozumienie, gdzie i dlaczego algorytmy dają się zrównoleglać, a gdzie konieczne jest wykorzystanie sekcji krytycznych i operacji atomowych. Otrzymane wyniki pozwalają stwierdzić, że zidentyfikowane i zaimplementowane warianty rozwiązania algorytmów grafowych dobrze sprawdziły się w rzeczywistym środowisku rozproszonym. Wszystkie zebrane wyniki posiadają wydajność, która pozwala traktować je jako propozycje możliwe do faktycznego wykorzystania w praktyce.

Dziękuję za uwagę!