Has the Increase in Processing Power Diminished the Need for Complicated Sorting Algorithms?
Today, we live in an era with great technological advantages, abundant resources and infinity of data. We can learn about anything, from anywhere at any time at a reasonable costs. The devices we use every day are getting more powerful and cheaper day after day, which makes our problems easier and faster to solve.
One of the most important operations and most used ones in computer science, even today, are the sorting operations. They apply on simple principles and complex algorithms to give the best result. Each of these algorithms is different in structure and execution speed. Are these speeds depending solely on the complexity of the algorithm or are they also depending on the computing power of the devices we use?
In order to get to the answer of this very popular question, I started analyzing few tests and results of the execution time of the most used and well-known sorting algorithms compared on computers with different processing powers.
The execution time of algorithms directly relates to the size of the input data and the complexity and efficiency of the algorithm itself. If we input more or bigger data, the sorting algorithms will take more time to give the results. In addition, if the algorithm is more complex, again, the results will calculate more slowly. However, if the algorithm is more efficiently constructed, we will get the results faster.
Execution time of these algorithms is directly proportional to the power consumption, after running a few tests, it resulted that some algorithms run faster than others did (Ahmed M. Aliyu 4). This means those that have low CPU time tend to have less power consumption resulting in slower execution time. Hence, meaning that a linearly constructed algorithm will calculate the results faster on a computer with less processing power than on a state-of-the-art computing machine.
The reason for this is the way the algorithm is constructed. If we have a linear base algorithm, it will use one thread of the CPU and calculate linearly. These types of linear calculations are calculating the operations in order, from left to right, one operation at a time. In consequence of this, we do not need greater processing power, because the algorithm will not use it and it will not affect the execution time.
The processors we use today are multi-cored and multi-threaded, with great clock speeds and low power consumption. In order to use them for speeding up the execution time of the sorting algorithms, we should first reconstruct the algorithm from linear to parallel (Kevin Jouper 31-44). This will result in speeding up the execution time in a way that the parallel algorithm now uses all the threads of the multi-core processor instead of one (Darko Božidar 5-14). We can accelerate the calculations even more using the GPU’s CUDA processing, but that is not part of our discussion here.
Using parallel constructed algorithms with today’s CPUs and their huge amount of processing power, the execution time of the sort algorithms, will not be much affected by the size of quantity of input data.
In conclusion, in order to speed up the execution time of the algorithms we first need to reconstruct them in parallel ones and increase their efficiency. In this way, our multi-core multi-threaded huge processing power CPUs can do the job properly of accelerating the calculations of the results of the used sorting algorithm. Making them work parallel instead of linear calculations, meaning calculating more operations at a time. However, if we tend to use linear type of algorithms the processing power does not make a difference since the calculations of the operations happen in order, linearly, using only one thread of the processor.
Ahmed M. Aliyu, Dr. P. B. Zirra. “Evaluation of Power Consumption of Modified.” (IJCSIT) International Journal of Computer Science and Information Technologies 5.1 (2014): 4. Document.
Darko Božidar, Tomaž Dobravec. Comparison of parallel sorting algorithms. Techical Report. Ljubljana: Faculty of Computer and Information Science, University of Ljubljana, Slovenia, 2015. Document.
Kevin Jouper, Henrik Nordin. Performance analysis of multithreaded. Thesis. Karlskrona: Dept. Computer Science & Engineering, Blekinge Institute of Technology, 2015. Document.
An essay about programming doesn’t sound like a good idea, right? If you want to learn programming and coding, you should do just that – code. Moreover, describing all the steps you take using words is just plain boring and useless, or at least it seems so to many aspiring IT specialists. Don’t worry – if you are better with coding than with words, we will help you to overcome this nuisance. Check out the sample essay about programming and use it as an example for your own writing. We believe that a good example is worth ten theoretical articles, and we strive to provide you with quality writing.
As for the theoretical writing, you can’t completely disregard it – so we also have articles and posts with writing tricks, techniques and trusted advice from our experienced authors. We try to make theory as fun as humanly possible. In case you are struggling with topic choice, make sure to check all our posts with paper topic suggestions – we are sure you will be able to find something that suits you perfectly. Essay writing can be annoying, but there are ways to make it easier and more pleasant, and we are always ready to share those ways with you.