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"
Sorting Algorithms Intel Threading Building Blocks Tutorials Parallel For Loop Video Concurrent Queue VideoRead more "Useful Links"
Every computer system whether a laptop, a mobile device, a souped up desktop gaming system, or a distributed system in the cloud or on-premises, has many factors which limit performance. Limits such as memory bandwidth, cache bandwidth, number of cores, clock frequency of each core, network bandwidth, parallel instructions availability and capability, graphics processor computational […]Read more "Performance Limiters"
Most computer programming languages provide built-in standard sorting algorithms. Let’s compare performance of these. C++ Sorting The above graph shows performance of the standard C++ STL sort algorithm. The vertical axis is time measured in seconds. The horizontal axis is array size of integers (32-bits each). Signed 32-bit integer values in the array are random […]Read more "Sorting Speed of Several Languages"
Every programming language provides methods for generating random numbers, because random numbers are useful in so many situations. For years the C programming language only provided the rand() function, which generates 15 random bits per function call. To generate a 32-bit integer, it takes 3 calls to rand() to accumulate 32 bits. On my quad-core […]Read more "Random Number Generator"