Dear mailing list subscribers,
Parallel programming excels at computing vast amounts of data
simultaneously. This leads to high demands on random number generators, both
when it comes to producing random numbers quickly and with a good quality
factor/high period. Good random number generators like Ranlux provides the
ability to choose what trade-off you want between speed and quality (the
"luxuary" factor).

As many of you might know, there are a lot of issues with clrandom, for
example the high execution time on some platforms. Also, some of my
colleagues recently discovered that with more and more random numbers, the
quality quickly become worse and worse. I've been talking a bit to Andreas
about implementing a better PRNG in PyOpenCL, for example Ranlux or Mersenne
Twister (which I believe numpy is based on). Unfortunatley, I am not skilled
enough to do so, and Andreas seems to have a lot on his plate at the moment.
So what I'm asking is if anyone already has implemented a better PRNG in
PyOpenCL, or is interested in doing so. I suspect that it would be possible
to get a lot of the job done for free by using implementations done directly
in OpenCL. Here is an example of implementing Mersenne Twister:
http://www.pgroup.com/lit/articles/insider/v2n2a4.htm
I also happen to have the source code for a Ranlux implementation with C++
as host programming language, if anyone is interested.


I believe that a better PRNG is something that all of us will benefit
greatly from.

Yours sincerely,
Patric Holmvall
_______________________________________________
PyOpenCL mailing list
[email protected]
http://lists.tiker.net/listinfo/pyopencl

Reply via email to