Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
6733 Discussions

Is the GNU GSL Mersenne twister PRNG faster than the MKL VSL version?

oscar_m_
Beginner
296 Views

Hello everybody

I would like to perform some montecarlo simulations using the well-known Mersenne Twister PRNG. Before to start to write my code I decided to test the performance of this PRNG using the GSL and MKL libraries, so I wrote a small code for such comparison. The results I got suggested that the GSL version is faster.  May it be possible or am I doing something wrong?. I am compiling using

[]$icpc benchmark.c -O3 -c

[]$icpc benchmark.o -o benchmark -L/opt/intel/parallel_studio_xe_2017/compilers_and_libraries_2017/linux/mkl/lib/intel64 -mkl:parallel -lgsl -lgslcblas

Do you have a feeling about what is happening? The code is in attachment. It takes as argument the number of random variables to be generated.

Thanks

0 Kudos
1 Solution
Gennady_F_Intel
Moderator
296 Views

Oscar,  i didn't noticed at the attached the example of you benchmark. The picture is clear now -  we don't recommend to use MKL RNG on the vectore size 1 like you did. 

View solution in original post

5 Replies
Gennady_F_Intel
Moderator
296 Views

This is an unexpected perf results. could you try the latest mkl 2018? what the performance numbers do you obtain?

Gennady_F_Intel
Moderator
297 Views

Oscar,  i didn't noticed at the attached the example of you benchmark. The picture is clear now -  we don't recommend to use MKL RNG on the vectore size 1 like you did. 

oscar_m_
Beginner
296 Views
If I create a buffer with size equal to the number of random variables e.g. 10^8 will the mersenne twister from MKL be faster than the GNU version? Can you try and confirm it please.
Gennady_F_Intel
Moderator
296 Views

yes, it will. The performance difference will depend on system where you will execute this code.

oscar_m_
Beginner
296 Views

Thanks Gennady. Luckily, that was the trick, BTW my application will use MPI so I will have to use the MT2203 generator to obtain different sequences for each MPI task. Do you know about a toy code showing how to use the MT2203? May be a link.

Reply