Implementation of B-trees on GPU
Implementace B-stromů na 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
B-Tree je datová struktura, která provádí vkládání, mazání a vyhledávání klíčů a hodnot se složitostí O(log n). Tato práce se zabývá jejich studiem a implementací na kartách GPU. Byly naimplementovány dvě varianty B-Tree: B+Tree a B-Link-Tree, obě patřičně upravené pro paralelní zpracování. Tyto varianty jsou popsané a implementované pro grafické karty NVIDIA v jazyce C++ s pomocí CUDA API a TNL knihovny. V práci je uvedena analýza existujících GPU i CPU řešení a jednotlivé úpravy a optimalizace provedené na výsledných strukturách. Všechny implementace jsou řádně otestované, změřené a porovnané s vybranými implementacemi dostupnými pro GPU a CPU.
B-Tree is a data structure that performs inserting, deleting, and searching of key-value pairs in O(log n) time. This thesis is about the implementation of a B-Tree capable of execution on GPU cards. Two variants of B-Tree are implemented: B+Tree and B-Link-Tree, both modified to make use of the parallel processing power. These variants are studied and implemented for NVIDIA GPUs using the C++ programming language and CUDA API with the help of the TNL library. This thesis contains an analysis of existing GPU and CPU solutions and explains the changes and optimizations made to the presented solution. All variants are thoroughly tested, measured, and compared against chosen GPU and CPU implementations.
B-Tree is a data structure that performs inserting, deleting, and searching of key-value pairs in O(log n) time. This thesis is about the implementation of a B-Tree capable of execution on GPU cards. Two variants of B-Tree are implemented: B+Tree and B-Link-Tree, both modified to make use of the parallel processing power. These variants are studied and implemented for NVIDIA GPUs using the C++ programming language and CUDA API with the help of the TNL library. This thesis contains an analysis of existing GPU and CPU solutions and explains the changes and optimizations made to the presented solution. All variants are thoroughly tested, measured, and compared against chosen GPU and CPU implementations.
Description
Keywords
datové struktury, B-strom, Compute Unified Device Architecture, CUDA, grafická karta, GPU, TNL, C++, výpočetní cluster, HPC, řízení paralelního zpracování, data structures, B-Tree, Compute Unified Device Architecture, CUDA, graphics processing unit, GPU, TNL, C++, high-performance computing, HPC, concurrency control
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í.