Vývoj paralelních řadících algoritmů na GPU
Development of parallel sorting algorithms for GPU
Type of document
bakalářská prácebachelor thesis
Author
Xuan Thang Nguyen
Supervisor
Oberhuber Tomáš
Opponent
Šimeček Ivan
Field of study
Teoretická informatikaStudy program
Informatika 2009Institutions assigning rank
katedra teoretické informatikyRights
A university thesis is a work protected by the Copyright Act. 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 http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoš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 http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Show full item recordAbstract
Tato práce se zabývá vybranými paralelními řadícími algoritmy vhodnými pro implementaci na GPU. Jedná se konkrétně o Bitonic sort a Quicksort. Bitonic sort, i když má vyšší časovou složitost, je vhodným kandidátem na řazení malých posloupností. Paralelní Quicksort je rychlejší pro větší vstupy, ale potřebuje $\Theta(n)$ paměťi na pomocné pole pro přeskládání. Oba algoritmy jsou popsány a implementovány pro GPU od NVIDIA s pomocí CUDA API a TNL knihovny. Jako jazyk byl zvolen C++. U Bitonic sortu je navíc představena varianta, která využívá jen lambda funkce a odprošťuje se tak od kontejneru dat. Všechny implementace jsou řádně otestovány, změřeny a porovnány s~jinými implementacemi, které jsou dostupné pro CPU a GPU. This thesis is about selected sorting algorithms suitable for GPU implementation. The chosen algorithms are Bitonic sort and Quicksort. Although Bitonic sort has a worse theoretical time complexity, it is a suitable candidate for sorting smaller inputs. Quicksort is faster for bigger inputs, but for parallel implementation, $\Theta(n)$ auxiliary memory is needed because it is an out-of-place algorithm. Both algorithms were studied and then implemented in C++ extended with CUDA API with the help of TNL library. For Bitonic sort, a version that only uses lambda functions is introduced. The resulting work was then tested, measured, and compared with other CPU and GPU implementations.
Collections
- Bakalářské práce - 18101 [351]