Javascript must be enabled to continue!
Performance Comparison of three Sorting Algorithms Using Shared Data and Concurrency Mechanisms in Java
View through CrossRef
Sorting large data sets or database is a problem commonly found in Computer Science and to find a solution to this problem, several quicksorting algorithms were developed while some need to be improved upon to make them more efficient. Sorting algorithms can be developed using both shared and non-shared data based on programmers’ choices. This paper aimed to develop three distinct sorting algorithms that involved shared data using three concurrency mechanisms in Java to measure their running times and to compare their performances. The main method used is the practical measurement of running times using benchmarking carried out on a machine with eight (8) processing cores. System current Time Millis () was used to measure time during the experiment. The results show that SD-Parallel quick sort implementation using Atomicity outperforms the other two algorithms. It was also shown that creating more threads leads to overhead when algorithms are developed using shared data. It was concluded that the running times of algorithms that involved shared data increase with the increase in the array size when proper synchronization is performed It was further revealed that SD-Parallel quick sort implemented using Acyclic-Barrier emerged as the second-best algorithm. Other concurrency mechanisms namely: Phaser, and Double-Atomicity provided by other Java JDK versions have the capacity of building more efficient framework that can be used to improve the performance of these algorithms due to their dynamic functionality. These and other concurrency mechanism provided by Java deserves further investigation as they are also capable of building more efficient algorithm.
Title: Performance Comparison of three Sorting Algorithms Using Shared Data and Concurrency Mechanisms in Java
Description:
Sorting large data sets or database is a problem commonly found in Computer Science and to find a solution to this problem, several quicksorting algorithms were developed while some need to be improved upon to make them more efficient.
Sorting algorithms can be developed using both shared and non-shared data based on programmers’ choices.
This paper aimed to develop three distinct sorting algorithms that involved shared data using three concurrency mechanisms in Java to measure their running times and to compare their performances.
The main method used is the practical measurement of running times using benchmarking carried out on a machine with eight (8) processing cores.
System current Time Millis () was used to measure time during the experiment.
The results show that SD-Parallel quick sort implementation using Atomicity outperforms the other two algorithms.
It was also shown that creating more threads leads to overhead when algorithms are developed using shared data.
It was concluded that the running times of algorithms that involved shared data increase with the increase in the array size when proper synchronization is performed It was further revealed that SD-Parallel quick sort implemented using Acyclic-Barrier emerged as the second-best algorithm.
Other concurrency mechanisms namely: Phaser, and Double-Atomicity provided by other Java JDK versions have the capacity of building more efficient framework that can be used to improve the performance of these algorithms due to their dynamic functionality.
These and other concurrency mechanism provided by Java deserves further investigation as they are also capable of building more efficient algorithm.
Related Results
DOMASCOS (DOMAin Specific COncurrency Skeletons)
DOMASCOS (DOMAin Specific COncurrency Skeletons)
Existing approaches to concurrent programming, albeit essential, are easily used incorrectly. Testing is difficult due to the inherent non-determinism introduced by concurrency, es...
Concurrent Scaling: Evaluating AWS Lambda Performance through Load Testing
Concurrent Scaling: Evaluating AWS Lambda Performance through Load Testing
Abstract
In the dynamic environment of serverless computing, efficient concurrency management and reasonable utilization of load testing techniques closely correlate with p...
Visualization of sorting algorithms in the virtual reality environment
Visualization of sorting algorithms in the virtual reality environment
This study examines the use of virtual reality (VR) in programming, specifically in visualization of sorting methods. Addressing students’ needs to better understand and implement ...
Technique for Mitigating Time Complexity
Technique for Mitigating Time Complexity
Ordered data may be handled rapidly, however unstructured data may require additional time to get results. Sorting is employed for data organization. This is a fundamental requirem...
Preprocessing: A method For Reducing Time Complexity
Preprocessing: A method For Reducing Time Complexity
Data can be processed quickly if it is in some order, whereas unsequenced data can take more time to obtain results. Sorting is used for data arrangement. It is also one of the ess...
Optimization of the TLR7/8 Activation-Based Sorting System for Goat Sperm
Optimization of the TLR7/8 Activation-Based Sorting System for Goat Sperm
Background:Current research indicates that the immunological separation method based on differentially expressed proteins in X- and Y-chromosome-bearing sperm represents a novel ap...
Temporally Correct Algorithms for Transaction Concurrency Control in Distributed Databases
Temporally Correct Algorithms for Transaction Concurrency Control in Distributed Databases
Many activities are comprised of temporally dependent events that must be executed in a specific chronological order. Supportive software applications must preserve these temporal ...
Not that Concurrent!
Not that Concurrent!
Concurrency is, in the literature, often used as a noun with a range of strengths: there is more or less concurrency; it is more or less limited; it may even be seen described as c...

