[ https://issues.apache.org/jira/browse/RNG-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16984577#comment-16984577 ]
Alex Herbert commented on RNG-86: --------------------------------- I had some compute time to spare so ran all the generators that did not fail at 4TB output for the full PractRand duration of 32TB to see what would happen: {noformat} RNG PractRand ∩ ISAAC - SPLIT_MIX_64 - MWC_256 - KISS - XO_RO_SHI_RO_64_SS - XO_SHI_RO_128_SS - XO_RO_SHI_RO_128_SS - XO_SHI_RO_256_SS - XO_SHI_RO_512_SS - PCG_XSH_RR_32 - PCG_XSH_RS_32 42 4 TiB PCG_RXS_M_XS_64 - PCG_MCG_XSH_RR_32 45 32 TiB MSWS - SFC_32 - SFC_64 - JSF_32 - JSF_64 - XO_SHI_RO_128_PP - XO_RO_SHI_RO_128_PP - XO_SHI_RO_256_PP - XO_SHI_RO_512_PP - XO_RO_SHI_RO_1024_PP - XO_RO_SHI_RO_1024_SS - {noformat} h2. RNG testing Most of the generators are fine with this amount of amount. This is 2^45 bytes or 2^43 integers or 2^42 longs. The only generators that are not OK with this are some of the PCG ones. Here are their results for the 3 runs to only 4TB of output: {noformat} PCG_XSH_RR_32 -,-,- PCG_XSH_RS_32 41,-,- PCG_RXS_M_XS_64 -,-,- PCG_MCG_XSH_RR_32 -,-,- PCG_MCG_XSH_RS_32 40,41,41 2 TiB PCG_XSH_RR_32_OS -,-,- PCG_XSH_RS_32_OS -,-,- PCG_RXS_M_XS_64_OS -,-,- {noformat} These show that the RS output transformation is weaker than RR. This is expected as described by the author of PCG. The PCG_MCG_XSH_RR_32 generator fails at 32TB. This generator has an underlying 64-bit Lehmer-style MCG generator with no increment and a period of 2^62. The equivalent PCG generator using an LCG with an increment and a period of 2^64 did not fail (PCG_XSH_RR_32). h2. Run times The total run time of the tests was 84 days 08:54:26.27. Each was running PractRand multi-threaded which gives an approximate 3x speed up. So single threaded this would be around 2/3 of a year. This does not count the thread used for Java to generate the output. In real terms it took about 3 weeks on two workstations with a total of 40 cores. I don't think there is a need to run this much testing on new generators added to the library. The current threshold of passing 4TB of PractRand is good enough to spot all the weak generators in the library. Any new generators should continue to be tested at that level with 3 runs of PractRand. This takes approximately the same amount of time as 5 runs of BigCrush. However note that to achieve similar run-times PractRand uses double the number of cores as the stress test application reserves 3 cores per PractRand test process as opposed to 1 for a BigCrush test process; 1 core is reserved for the java RNG: {noformat} PractRand = 1 + 3 BigCrush = 1 + 1 {noformat} > PractRand > --------- > > Key: RNG-86 > URL: https://issues.apache.org/jira/browse/RNG-86 > Project: Commons RNG > Issue Type: Wish > Components: examples > Reporter: Gilles Sadowski > Assignee: Alex Herbert > Priority: Minor > Fix For: 1.3 > > > Integrate another test suite to the {{RandomStressTester}} application: > [http://pracrand.sourceforge.net/] > The library also contains many RNG implementations (C++). > FTR: https://markmail.org/message/74zmora4jrhwb5hu -- This message was sent by Atlassian Jira (v8.3.4#803005)