HPCE / hpce-2017-cw6

2 stars 17 forks source link

LCG workload_Clone() #47

Closed davidanderle closed 6 years ago

davidanderle commented 6 years ago

Looking at your recently uploaded test results I started wondering whether the <workload_Clone()> in the LCG Workload functions correctly. Almost all the LCG tests failed while none of the STDs did. Since I can see no other obvious reasons of LCGs not passing the p tests, I wonder whether you can confirm that LCG <workload_Clone()> does indeed make an independent copy of the given <unif01_gen*>.

m8pple commented 6 years ago

You might be thinking about this the wrong way round - the whole point of TestU01 is to find generators that are not random enough, as there is a long history of people using random number generators that cause things to fail. So a generator failing a test is ideally not saying something about whether the generator is implemented correctly (hopefully it is), but is saying something about whether the algorithm being used for generation is good enough.

LCGs, and particularly 32-bit LCGs, are known to be relatively weak, though it depends on the size of the state. Despite all using the LCG64 algorithm, some instances of workload_lcg will have degenerate parameters - this is actually what the search use-case is aimed at - you are trying to find good parameters for a fixed algorithm.

davidanderle commented 6 years ago

Ah, it makes sense. I blindly assumed that the given RNG will be random enough. Kudos!