Radix Sort is a high performance linear time sorting algorithm, which does not use comparisons. Instead, Radix Sort looks at each digit of the key and processes based on those digits. Two variations of the algorithm exit: least significant digit (LSD), and most significant digit (MSD). Each of the two variations has its own attributes, […]Read more "Radix Sort Implementations"
The above graph compares performance of several different sorting algorithms implemented in C++. X-axis is the array size being sorted. Y-axis is the time in seconds it took to sort the array. The faster the algorithm, the less time it takes to sort. The above graph is for arrays filled with uniformly distributed random unsigned […]Read more "C++ Sorting Algorithms"
So far, we’ve measured performance of random number generators in software on a single CPU core, on multiple cores, on a powerful laptop, on a workstation, as well as on mobile and desktop graphics processors (GPU). Let’s compare them to each other, fair or not. The above graph shows the number of times each random […]Read more "Performance Comparison of Random Number Generators"
Intel’s 2017 MKL random number generator functions do not provide parallel functions, but provide mechanisms to support multi-threaded generation. Some of these algorithms are bound by memory performance and run significantly faster when the array fits in the processor cache. These algorithms should scale well running on multiple cores when each array fits in non-shared […]Read more "CPU Parallel Random Number Generator"
The above chart graphically compares performance of the four Random Number Generators we discussed above. GPU substantially outperforms any of the CPU based implementations. However, so far the time to transfer the data from GPU memory to system memory has not been included in our measurements. The above graph shows how much faster the GPU […]Read more "Comparison of Random Number Generators"
NVIDIA has implemented several pseudo-random number generation (PRNG) algorithms that run on its family of powerful Graphics Processor Units (GPU). The GPU accelerates these algorithm by running them on its many computational cores, taking advantage of parallel computation, local embedded memory and high bandwidth external memory. The following graph compares performance of these algorithms, generating […]Read more "GPU Random Number Generators"