Parallel graph algorithms for GPU
Paralelní grafové algoritmy pro GPU
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date of defense
Abstract
Tato bakalářská práce je zaměřená na několik běžných grafových problémů a na jejich řešení s pomocí paralelních grafových algoritmů. Jedná se o problémy nalezení maximální nezávislé množiny, minimální kostry grafu, souvislých a silně souvislých komponent. Tato práce poskytuje teoretický kontext potřebný pro popsání zmíněných problémů a navrhuje jejich řešení za pomoci běžných sekvenčních algoritmů. Hlavní snaha práce však směřuje k algoritmům paralelním a jejich implementaci využívající CUDA, C++ a knihovnu TNL. Tyto implementace jsou schopny běhu jak na GPU paralelně, tak na CPU sekvenčně (či paralelně s pomocí OpenMP). Práce obsahuje detailní popis těchto algoritmů a jejich implementace. Také informuje o procesu testování správné funkčnosti, měření výkonu na různých zařízeních (GPU, CPU) a uprávách vedoucích k lepšímu výkonu. Výstupem práce jsou plně funkční a otestované implementace pro 3 ze 4 problémů. Pro problém minimální kostry grafu je výstup rozpracovaná částečně fungující implementace.
This bachelor thesis targets several common graph problems and their solutions using parallel graph algorithms. These are the problems of finding the maximal independent set, minimal spanning tree, connected and strongly connected components. This paper provides the theoretical context needed to describe the aforementioned problems and proposes their solutions using common sequential algorithms. However, the main effort of the thesis is directed towards parallel algorithms and their implementation using CUDA, C++, and the TNL library. These implementations are capable of running both on the GPU in parallel and on the CPU sequentially (or in parallel using OpenMP). This thesis contains a detailed description of these algorithms and their respective implementations. It also reports on the process of correctness testing, performance measurements on different devices (GPU, CPU), and further improving performance. The output of this work is fully functional and tested implementations for 3 of the 4 problems. For the minimal spanning tree problem, a semi-functional work-in-progress implementation is offered.
This bachelor thesis targets several common graph problems and their solutions using parallel graph algorithms. These are the problems of finding the maximal independent set, minimal spanning tree, connected and strongly connected components. This paper provides the theoretical context needed to describe the aforementioned problems and proposes their solutions using common sequential algorithms. However, the main effort of the thesis is directed towards parallel algorithms and their implementation using CUDA, C++, and the TNL library. These implementations are capable of running both on the GPU in parallel and on the CPU sequentially (or in parallel using OpenMP). This thesis contains a detailed description of these algorithms and their respective implementations. It also reports on the process of correctness testing, performance measurements on different devices (GPU, CPU), and further improving performance. The output of this work is fully functional and tested implementations for 3 of the 4 problems. For the minimal spanning tree problem, a semi-functional work-in-progress implementation is offered.
Description
Keywords
Benchmarkování, CUDA C++, GPU Programování, Knihovna TNL, Maximální Nezávislá Množina, Minimální Kostra Grafu, OpenMP, Paralelní Algoritmy, Silně Souvislá Komponenta, Souvislá Komponenta, Teorie Grafů, Unit Testování, Výpočetní Cluster, Benchmarking, Connected Component, CUDA C++, GPU Programming, Graph Theory, High Performance Computing, Maximal Independent Set, Minimal Spanning Tree, OpenMP, Parallel Algorithms, Strongly Connected Component, TNL Library, Unit Testing
Citation
Underlying research data set URL
Permanent link
Rights/License
A university thesis is a work protected by the Copyright Act of the Czech Republic. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one`s own expense. The use of thesis should be in compliance with the Copyright Act.
Vysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem v platném znění.
Vysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem v platném znění.