Bitonic Sorting Implementation and Analysis
Shivaram V
Chennai, Tamil Nadu
- 0 Collaborators
This project aims to implement and the performance analysis of the Bitonic Sort algorithm using OneAPI. Works around the paper "The implementation and optimization of Bitonic sort algorithm based on CUDA". ...learn more
Project status: Concept
Overview / Usage
Bitonic sort is a parallel comparison-based sorting algorithm that performs well on parallel architectures. It was first proposed by Ken Batcher in 1968. The algorithm works by dividing the input into two halves and then recursively sorting each half in ascending and descending order. The two halves are then merged together by comparing elements at corresponding positions in the ascending and descending sub-sequences. The algorithm has a time complexity of O(n_log^2(n)) and requires O(n_log(n)) additional memory for the intermediate arrays used in the sorting process. Bitonic sort is often used in parallel computing applications such as GPU programming, where it can exploit the parallelism of modern GPUs to achieve high sorting performance.
We have the following use case: In High-Performance Computing (HPC), kernels are algorithms used to compute sparse data structures. Accelerating sparse applications can be challenging because of their memory-bound nature, which means that the data is not stored in contiguous memory locations. This leads to multiple scatter and gather accesses to slower memory, resulting in poor performance. To improve the performance of sparse applications, specialized hardware components that can accelerate scatter/gather instructions are necessary.