543 research outputs found
Improving the performance of bubble sort using a modified diminishing increment sorting
Sorting involves rearranging information into either ascending or descending order. There are many
sorting algorithms, among which is Bubble Sort. Bubble Sort is not known to be a very good sorting
algorithm because it is beset with redundant comparisons. However, efforts have been made to
improve the performance of the algorithm. With Bidirectional Bubble Sort, the average number of
comparisons is slightly reduced and Batcher’s Sort similar to Shellsort also performs significantly
better than Bidirectional Bubble Sort by carrying out comparisons in a novel way so that no
propagation of exchanges is necessary. Bitonic Sort was also presented by Batcher and the strong
point of this sorting procedure is that it is very suitable for a hard-wired implementation using a sorting
network. This paper presents a meta algorithm called Oyelami’s Sort that combines the technique of
Bidirectional Bubble Sort with a modified diminishing increment sorting. The results from the
implementation of the algorithm compared with Batcher’s Odd-Even Sort and Batcher’s Bitonic Sort
showed that the algorithm performed better than the two in the worst case scenario. The implication is
that the algorithm is faster
A Novel Hybrid Quicksort Algorithm Vectorized using AVX-512 on Intel Skylake
The modern CPU's design, which is composed of hierarchical memory and
SIMD/vectorization capability, governs the potential for algorithms to be
transformed into efficient implementations. The release of the AVX-512 changed
things radically, and motivated us to search for an efficient sorting algorithm
that can take advantage of it. In this paper, we describe the best strategy we
have found, which is a novel two parts hybrid sort, based on the well-known
Quicksort algorithm. The central partitioning operation is performed by a new
algorithm, and small partitions/arrays are sorted using a branch-free
Bitonic-based sort. This study is also an illustration of how classical
algorithms can be adapted and enhanced by the AVX-512 extension. We evaluate
the performance of our approach on a modern Intel Xeon Skylake and assess the
different layers of our implementation by sorting/partitioning integers, double
floating-point numbers, and key/value pairs of integers. Our results
demonstrate that our approach is faster than two libraries of reference: the
GNU \emph{C++} sort algorithm by a speedup factor of 4, and the Intel IPP
library by a speedup factor of 1.4.Comment: 8 pages, research pape
Comparison of parallel sorting algorithms
In this master's thesis we studied, implemented and compared sequential and parallel sorting algorithms. We implemented seven algorithms: bitonic sort, multistep bitonic sort, adaptive bitonic sort, merge sort, quicksort, radix sort and sample sort. Sequential algorithms were implemented on a central processing unit using C++, whereas parallel algorithms were implemented on a graphics processing unit using CUDA architecture. We improved the above mentioned implementations and adopted them to be able to sort input sequences of arbitrary length. We compared algorithms on six different input distributions, which consist of 32-bit numbers, 32-bit key-value pairs, 64-bit numbers and 64-bit key-value pairs. The results show that radix sort is the fastest sequential sorting algorithm, whereas radix sort and merge sort are the fastest parallel algorithms (depending on the input distribution). With parallel implementations we achieved speedups of up to 157-times in comparison to sequential implementations
JPEG steganography with particle swarm optimization accelerated by AVX
Digital steganography aims at hiding secret messages in digital data transmitted over insecure channels. The JPEG format is prevalent in digital communication, and images are often used as cover objects in digital steganography. Optimization methods can improve the properties of images with embedded secret but introduce additional computational complexity to their processing. AVX instructions available in modern CPUs are, in this work, used to accelerate data parallel operations that are part of image steganography with advanced optimizations.Web of Science328art. no. e544
- …