ePrints.FRI - University of Ljubljana, Faculty of Computer and Information Science

Quicksort algorithms for the CPU and GPU

Jernej Erker (2013) Quicksort algorithms for the CPU and GPU. EngD thesis.

Download (2908Kb)


    Quicksort algorithm was discovered in 1960 and is present for more than half a century, nevertheless it is still very popular and fast. Different versions of the algorithm are being used in standard libraries of a number of programming languages. The algorithm is fairly simple to understand, robust in the sense that it is efficient in most cases and it does not need a lot of resources. It is based on the Divide and Conquer principle which means that we solve the problem by recursively breaking it down into two or more sub-problems, which we solve and combine the solutions to form a solution to the original problem. There were many attempts of improving the algorithm, so there are a lot of different implementations. The main difference between them is the manner in which they partition the elements of the array. NVIDIA Corporation presented the parallel computing platform CUDA in 2006. It makes GPUs accessible for computation like CPUs. Main advantage of executing algorithms on the GPU is the use of massive parallelism. Actually making good use of this parallelism is another thing altogether. The purpose of this thesis is to present different partitioning methods and introduce the consequences of using a different number of pivots or partitioning the array into a different number of sub-arrays. We will review analyses of the time complexities of all the cases and describe the quicksort algorithm, prepared for execution on the GPU. In the end we will compare presented algorithms and state our interpretations of the results.

    Item Type: Thesis (EngD thesis)
    Keywords: quicksort, parallel, sorting, algorithms, CUDA
    Number of Pages: 72
    Language of Content: Slovenian
    Mentor / Comentors:
    Name and SurnameIDFunction
    doc. dr. Tomaž Dobravec258Mentor
    Link to COBISS: http://www.cobiss.si/scripts/cobiss?command=search&base=50070&select=(ID=9986644)
    Institution: University of Ljubljana
    Department: Faculty of Computer and Information Science
    Item ID: 2078
    Date Deposited: 02 Jul 2013 12:17
    Last Modified: 22 Jul 2013 13:43
    URI: http://eprints.fri.uni-lj.si/id/eprint/2078

    Actions (login required)

    View Item