RandStream generators & dieharder validation suite?
Mostrar comentarios más antiguos
Hi,
Has anyone investigated the various MATLAB RandStream generator algorithms (see table in middle of page) using the dieharder validation suite? I'm seeking to generate large numbers (in the millions) of exceptionally uniformly random values & would appreciate seeing the detailed tabular output that dieharder provides.
I'm not super-handy with Visual Studio, but can pull off the basics. I would like to build the dieharder project myself, but as far as I can tell it seems to be targeted towards linux. Is this correct? Has anyone successfully modified the project for Visual Studio? If so, do you have general results you could share please about how any of the MATLAB random number generators fare?
I understand that my question relates in large part to a 3rd party product (Visual Studio) & thus isn't eligible for help from MATLAB support. Additionally, perhaps only a small fraction of MATLAB users are experienced with linux, Windows, & Visual Studio.
Obviously, there are other external venues where I can pose this same question. However, given the extensive MATLAB support for random number generation & numerous discussion threads about RNG, I thought I'd give my question a shot here first, hoping to find an interested & expert cross-platform compiler user.
Knowing that offering something especially real in return for help often gets faster results, I'm up for negotiating (via private message) a fair Paypal fee if s/o can provide step-by-step instructions for how to get the latest dieharder distribution to build in VS 2010. Of course, freely-offered help is always appreciated, but not expected in this case.
Due to the complexity of the issue & potential for a confusing thread, I would like to ask please that you make sure to verify a successful build at your end before posting any super-lengthy Answers.
However I get this answered, either here or via some external site, & whether by a helpful altruist or a needy graduate student, I will make sure all relevant information is posted here: a complete step-by-step solution & my test results for 2-3 chosen RandStream generators.
Thanks, Brad
3 comentarios
Jan
el 13 de En. de 2013
The nature of a public forum is to share solutions with the community. A discussion is a part of finding a solution, therefore I would not see this a cluttering. The offering of a fee does not encourage me to answer and I do not think that this should happen more often.
Bradley Stiritz
el 14 de En. de 2013
Jan
el 14 de En. de 2013
Dear Brad, without doubt you were very clear about your intention to share the results. You have neither been offending not rude. Offering a fee is polite, legal and fair. I do not not want to discourage you to pay anybody who assists you to solve your problem. Therefore I have no reasons to criticize the contents or tone of your question.
I got too many personal messages of cheaters, who offered some dollars for solving their homework. In opposite to this your question has a obviously a serious background. But the public appearance of money can have a bad influence to a forum, which lives from voluntary contributors. Therefore I've written, that I personally do not want this to happen more often, but not, that it should not happen at all.
In another Matlab forum there is a specific category for payed programming or assistance jobs. Unfortunately in this category about 20% of the threads must be deleted, because they violate the forum policies.
I hope my opinion got clearer now.
Respuesta aceptada
Más respuestas (2)
Peter Perkins
el 14 de En. de 2013
0 votos
Brad, if your goal is to run Dieharder, I can't help.
If your goal is to verify that the generators in MATLAB pass stringent tests of randomness, then you'll find that L'Ecuyer and Simard published a paper a few years back that includes results for their TestU01 suite on a wide variety of generators, including mt19937ar, mrg32k3a, and mlfg6331, the recommended current generators in MATLAB.
Hope this helps.
6 comentarios
Bradley Stiritz
el 14 de En. de 2013
Jan
el 14 de En. de 2013
I see, that you have a strong scientific interest in testing the RNGs. Although others have investigated the algorithms already, further research is always a challenge, because there have been enough bugs in the implementations.
But why do you prefer MSVC 2010 for this? Die test suites have been developed under Linux, which is cheap, fast to install and easy to use. A migration of the OS and the compiler is a source of errors, which could be avoided. I'd expect, that the program is faster when compiled by MSVC than my MINGW, but if processing time matters, the Intel compilers would be even better. Nevertheless, the time required for porting and testing the source code will surely exceed the runtime.
Bradley Stiritz
el 15 de En. de 2013
Jan
el 15 de En. de 2013
Thanks for you answer, Brad. I can reconsider the arguments.
You can try this: Boot the machine from a Linux live CD, e.g. an Ubuntu. Ask a student how to install the DIEHARDER rpm. As far as I can see, you get pre-compiled binaries directly, otherwise a compilation is straight. Run DIEHARDER. I estimate this will cost you 10 minutes (again: 20 in real life).
Migrating DIEHARDER successfully and reliably to MSVC will costs at least one week, this means two weeks in the real life. The compilers have a lot of tiny but evil differences - in opposite to Matlab driven on different platforms. Therefore I do not think that it is only a problem of creating an MSVC project from a make file, but the code itself will require modifications and an exhaustive testing and validation afterwards. Because any software above a certain size contains bugs, any changes might reveal some. Afterwards it is questionable, if fixing the bug causes other problems far away from the concerned code lines. It is extremely time-consuming to investigate this exhaustively and this is, in my opinion, the reason, why there is no description in the net how to compile DIEHARDER in MSVC. Linux booted from a live CD or installed in a virtual machine is much cheaper (with respect to your time-commitment) and more reliable.
On the other hand I do not want to support that you are working to death. Perhaps your decision to port it to MSVC has a much deeper sense, because it takes weeks, not although.
Bradley Stiritz
el 15 de En. de 2013
Bradley Stiritz
el 15 de En. de 2013
Jan Pospisil
el 25 de Feb. de 2013
0 votos
One of my student tested the generators in his bachelor thesis, he used the generators in Matlab as well as the true random generator /dev/urandom in linux systems, then he exported the numbers for dieharder and run all the dieharder tests. If you are interested, I can send you the PDF.
Categorías
Más información sobre Random Number Generation en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!