Efficient sorting algorithms for memory hierarchies
Efektivní třídící algoritmy pro paměťovou hierarchii
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/193623Identifiers
Study Information System: 272630
Collections
- Kvalifikační práce [11218]
Author
Advisor
Referee
Mareš, Martin
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Computer Science - Theoretical Computer Science
Department
Computer Science Institute of Charles University
Date of defense
10. 9. 2024
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
třídění|paměťové hierarchieKeywords (English)
sorting|memory hierarchyV této práci představujeme nový náhodný cache-oblivious třídící algoritmus, založený na jiném algoritmu zvaném ColumnSort, který objevil Leighton. Náš algoritmus dosahuje asymptotické optimality ve střední hodnotě běhů. Jelikož je cache-oblivious, není nutné žádné další dolaďování. Ukážeme, že jeho implementace je přímočará a vejde do přibližně 100 řádků kódu, proto věříme, že je dostupný a lze ho snadno integrovat do existujících systémů. Poté, co podrobně ukážeme implementaci, dokážeme jeho střední hodnotu a nejhorší dobu běhu a následně porovnáme naši implementaci s existující implementací Funnel Sort od Rønna a std::sort poskytovanou standardní knihovnou C++. 1
In this thesis, we introduce a novel random cache-oblivious sorting algorithm loosely based on another sorting algorithm called ColumnSort shown by Leighton. Our algorithm achieves asymptotic optimality in expected case. As it is cache-oblivious, no further finetuning is necessary. We also demonstrate that its implementation is straightforward and can fit in approximately 100 lines of code, therefore we believe it is accessible and can be easily integrated into existing systems. After we show the implementation in detail, we prove its expected and worst running times and then we compare our implementation with the existing implementation of Funnel Sort implemented by Rønn and std::sort provided by standard C++ library. 1