You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2019/09/26 12:15:12 UTC

[commons-rng] branch master updated (1f6b611 -> bd4c225)

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-rng.git.


    from 1f6b611  RNG-116: RandomSource to expose supported interfaces.
     new 53ed4fe  Added example of how to benchmark named generators using JMH parameters
     new bd4c225  Updated user guide performance table.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 commons-rng-examples/examples-jmh/pom.xml |  1 +
 src/site/apt/userguide/rng.apt            | 72 +++++++++++++++----------------
 2 files changed, 37 insertions(+), 36 deletions(-)


[commons-rng] 01/02: Added example of how to benchmark named generators using JMH parameters

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-rng.git

commit 53ed4feb000eec73f024331abc8d99b4ece66a9e
Author: aherbert <ah...@apache.org>
AuthorDate: Thu Sep 26 11:55:44 2019 +0100

    Added example of how to benchmark named generators using JMH parameters
---
 commons-rng-examples/examples-jmh/pom.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/commons-rng-examples/examples-jmh/pom.xml b/commons-rng-examples/examples-jmh/pom.xml
index 4d9fec7..ec2321e 100644
--- a/commons-rng-examples/examples-jmh/pom.xml
+++ b/commons-rng-examples/examples-jmh/pom.xml
@@ -134,6 +134,7 @@
 
            java -jar target/examples-jmh.jar -h
            java -jar target/examples-jmh.jar NextDoubleGenerationPerformance -rf json -rff out.json
+           java -jar target/examples-jmh.jar NextIntGen.*nextInt$ -p randomSourceName=MSWS,PCG_MCG_XSH_RS_32
       -->
       <id>examples-jmh</id>
       <build>


[commons-rng] 02/02: Updated user guide performance table.

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-rng.git

commit bd4c2258f3127817d3774a9a98690bcf97b12742
Author: aherbert <ah...@apache.org>
AuthorDate: Thu Sep 26 13:15:07 2019 +0100

    Updated user guide performance table.
    
    Manually re-ran any score with a high error so that score/error < 0.03.
    Updated the table to use the mean of 10 runs not the median.
    
    Checked scores using a correlation of nextFloat vs nextInt and
    nextDouble vs nextLong should be close to 1. Manually re-ran outliers to
    verify the timing results.
    
    Fixed outlier MSWS. It should be the fastest int generator (results
    already stated it is the fastest float generator).
    
    The PCG RR variants are verified outliers (slower then expected) for
    nextFloat generation.
    
    Final table:
    
    double vs long  R^2 = 0.9934
    float  vs int   R^2 = 0.9831
---
 src/site/apt/userguide/rng.apt | 72 +++++++++++++++++++++---------------------
 1 file changed, 36 insertions(+), 36 deletions(-)

diff --git a/src/site/apt/userguide/rng.apt b/src/site/apt/userguide/rng.apt
index 62c18ce..8a94456 100644
--- a/src/site/apt/userguide/rng.apt
+++ b/src/site/apt/userguide/rng.apt
@@ -561,77 +561,77 @@ ListSampler.shuffle(rng, list)
 *-----------------------*---------*---------*---------*---------*---------*
 || RNG identifier       || <<<boolean>>> || <<<double>>> || <<<long>>> || <<<float>>> || <<<int>>> |
 *-----------------------+---------:---------:---------:---------:---------:
-| JDK                   |       1 |       1 |       1 |       1 |       1 |
+| JDK                   | 1.00000 | 1.00000 | 1.00000 | 1.00000 | 1.00000 |
 *-----------------------+---------:---------:---------:---------:---------:
-| WELL_512_A            | 1.22655 | 0.65071 | 0.62194 | 0.93623 | 0.78108 |
+| WELL_512_A            | 1.22756 | 0.64774 | 0.62119 | 0.93622 | 0.77620 |
 *-----------------------+---------:---------:---------:---------:---------:
-| WELL_1024_A           | 1.39152 | 0.65642 | 0.61325 | 0.94264 | 0.75083 |
+| WELL_1024_A           | 1.23448 | 0.64702 | 0.61258 | 0.91802 | 0.70279 |
 *-----------------------+---------:---------:---------:---------:---------:
-| WELL_19937_A          | 1.26758 | 0.95801 | 0.90653 | 1.16216 | 1.12007 |
+| WELL_19937_A          | 1.26780 | 0.95420 | 0.90732 | 1.16158 | 1.11143 |
 *-----------------------+---------:---------:---------:---------:---------:
-| WELL_19937_C          | 1.63209 | 1.06124 | 0.93953 | 1.20843 | 1.12656 |
+| WELL_19937_C          | 1.28621 | 1.05665 | 0.93851 | 1.20811 | 1.12241 |
 *-----------------------+---------:---------:---------:---------:---------:
-| WELL_44497_A          | 1.27947 | 1.05099 | 0.97995 | 1.17942 | 1.14505 |
+| WELL_44497_A          | 1.28290 | 1.04643 | 0.97920 | 1.18315 | 1.13812 |
 *-----------------------+---------:---------:---------:---------:---------:
-| WELL_44497_B          | 1.29627 | 1.09318 | 1.03165 | 1.27612 | 1.20631 |
+| WELL_44497_B          | 1.29803 | 1.08804 | 1.03050 | 1.27588 | 1.19919 |
 *-----------------------+---------:---------:---------:---------:---------:
-| MT                    | 1.18432 | 0.50200 | 0.43068 | 0.68716 | 0.58454 |
+| MT                    | 1.18727 | 0.49954 | 0.43062 | 0.69037 | 0.58075 |
 *-----------------------+---------:---------:---------:---------:---------:
-| ISAAC                 | 0.98139 | 0.54663 | 0.49022 | 0.60317 | 0.51107 |
+| ISAAC                 | 0.98206 | 0.54405 | 0.48967 | 0.60378 | 0.50929 |
 *-----------------------+---------:---------:---------:---------:---------:
-| SPLIT_MIX_64          | 1.14366 | 0.13497 | 0.09827 | 0.28296 | 0.19552 |
+| SPLIT_MIX_64          | 1.14541 | 0.13405 | 0.09897 | 0.28460 | 0.19431 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XOR_SHIFT_1024_S      | 1.14959 | 0.18661 | 0.14464 | 0.34088 | 0.24819 |
+| XOR_SHIFT_1024_S      | 1.15061 | 0.18243 | 0.14459 | 0.34174 | 0.25242 |
 *-----------------------+---------:---------:---------:---------:---------:
-| TWO_CMRES             | 1.16246 | 0.18330 | 0.15270 | 0.34889 | 0.33741 |
+| TWO_CMRES             | 1.16284 | 0.18267 | 0.15281 | 0.34984 | 0.28657 |
 *-----------------------+---------:---------:---------:---------:---------:
-| MT_64                 | 1.17373 | 0.27447 | 0.23400 | 0.48126 | 0.36190 |
+| MT_64                 | 1.17461 | 0.27294 | 0.23374 | 0.48280 | 0.35967 |
 *-----------------------+---------:---------:---------:---------:---------:
-| MWC_256               | 1.15806 | 0.25385 | 0.21488 | 0.36679 | 0.25665 |
+| MWC_256               | 1.15759 | 0.25411 | 0.21631 | 0.36768 | 0.25554 |
 *-----------------------+---------:---------:---------:---------:---------:
-| KISS                  | 1.17711 | 0.41357 | 0.41569 | 0.54175 | 0.42867 |
+| KISS                  | 1.17760 | 0.41165 | 0.41526 | 0.54227 | 0.42641 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XOR_SHIFT_1024_S_PHI  | 1.16777 | 0.18515 | 0.14398 | 0.34273 | 0.24949 |
+| XOR_SHIFT_1024_S_PHI  | 1.16893 | 0.18236 | 0.14382 | 0.34424 | 0.24821 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_RO_SHI_RO_64_S     | 1.16587 | 0.18998 | 0.13528 | 0.24388 | 0.18467 |
+| XO_RO_SHI_RO_64_S     | 1.16685 | 0.18914 | 0.13536 | 0.24512 | 0.18364 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_RO_SHI_RO_64_SS    | 1.17344 | 0.24622 | 0.17832 | 0.29342 | 0.20841 |
+| XO_RO_SHI_RO_64_SS    | 1.15470 | 0.24486 | 0.17811 | 0.29518 | 0.20803 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_SHI_RO_128_PLUS    | 1.14797 | 0.26314 | 0.18365 | 0.32612 | 0.25379 |
+| XO_SHI_RO_128_PLUS    | 1.15176 | 0.26227 | 0.18374 | 0.32524 | 0.25558 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_SHI_RO_128_SS      | 1.15925 | 0.32620 | 0.25970 | 0.58654 | 0.28701 |
+| XO_SHI_RO_128_SS      | 1.15975 | 0.32451 | 0.25989 | 0.40865 | 0.28614 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_RO_SHI_RO_128_PLUS | 1.15165 | 0.10623 | 0.08201 | 0.25829 | 0.17334 |
+| XO_RO_SHI_RO_128_PLUS | 1.16683 | 0.10546 | 0.08192 | 0.25955 | 0.17326 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_RO_SHI_RO_128_SS   | 1.15669 | 0.13465 | 0.10156 | 0.27627 | 0.20088 |
+| XO_RO_SHI_RO_128_SS   | 1.15738 | 0.13400 | 0.10186 | 0.27885 | 0.19879 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_SHI_RO_256_PLUS    | 1.14012 | 0.13972 | 0.11090 | 0.29441 | 0.21667 |
+| XO_SHI_RO_256_PLUS    | 1.14354 | 0.14036 | 0.11078 | 0.29566 | 0.21558 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_SHI_RO_256_SS      | 1.14601 | 0.17540 | 0.12801 | 0.32067 | 0.23569 |
+| XO_SHI_RO_256_SS      | 1.14810 | 0.17469 | 0.12788 | 0.32338 | 0.23577 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_SHI_RO_512_PLUS    | 1.17019 | 0.25455 | 0.19365 | 0.40153 | 0.34492 |
+| XO_SHI_RO_512_PLUS    | 1.16148 | 0.25360 | 0.19347 | 0.40327 | 0.34086 |
 *-----------------------+---------:---------:---------:---------:---------:
-| XO_SHI_RO_512_SS      | 1.16127 | 0.27050 | 0.21896 | 0.41566 | 0.35364 |
+| XO_SHI_RO_512_SS      | 1.16359 | 0.27005 | 0.21910 | 0.41828 | 0.35155 |
 *-----------------------+---------:---------:---------:---------:---------:
-| PCG_XSH_RR_32         | 0.94110 | 0.30309 | 0.26161 | 0.39280 | 0.19952 |
+| PCG_XSH_RR_32         | 0.94365 | 0.30150 | 0.26162 | 0.39426 | 0.19832 |
 *-----------------------+---------:---------:---------:---------:---------:
-| PCG_XSH_RS_32         | 0.94289 | 0.24067 | 0.18844 | 0.29202 | 0.20038 |
+| PCG_XSH_RS_32         | 0.94766 | 0.23958 | 0.18884 | 0.29117 | 0.20081 |
 *-----------------------+---------:---------:---------:---------:---------:
-| PCG_RXS_M_XS_64       | 1.14866 | 0.13325 | 0.11365 | 0.29439 | 0.20838 |
+| PCG_RXS_M_XS_64       | 1.15168 | 0.13238 | 0.11352 | 0.29651 | 0.20707 |
 *-----------------------+---------:---------:---------:---------:---------:
-| PCG_MCG_XSH_RR_32     | 0.94086 | 0.29029 | 0.28379 | 0.36289 | 0.17871 |
+| PCG_MCG_XSH_RR_32     | 0.94123 | 0.28870 | 0.28352 | 0.36381 | 0.17816 |
 *-----------------------+---------:---------:---------:---------:---------:
-| PCG_MCG_XSH_RS_32     | 0.93713 | 0.22664 | 0.17866 | 0.26299 | 0.16919 |
+| PCG_MCG_XSH_RS_32     | 0.93742 | 0.22574 | 0.17845 | 0.26411 | 0.16822 |
 *-----------------------+---------:---------:---------:---------:---------:
-| MSWS                  | 1.12773 | 0.17979 | 0.15224 | 0.23583 | 0.19053 |
+| MSWS                  | 1.12821 | 0.17897 | 0.15428 | 0.23731 | 0.15224 |
 *-----------------------+---------:---------:---------:---------:---------:
-| SFC_32                | 1.14919 | 0.28371 | 0.19399 | 0.32854 | 0.26122 |
+| SFC_32                | 1.15334 | 0.28210 | 0.19387 | 0.32224 | 0.26020 |
 *-----------------------+---------:---------:---------:---------:---------:
-| SFC_64                | 1.13896 | 0.14117 | 0.26818 | 0.31351 | 0.23760 |
+| SFC_64                | 1.13927 | 0.14057 | 0.11686 | 0.31031 | 0.23761 |
 *-----------------------+---------:---------:---------:---------:---------:
-| JSF_32                | 1.14369 | 0.24454 | 0.17016 | 0.29664 | 0.22666 |
+| JSF_32                | 1.14659 | 0.24439 | 0.17106 | 0.29932 | 0.22710 |
 *-----------------------+---------:---------:---------:---------:---------:
-| JSF_64                | 1.13731 | 0.13444 | 0.10965 | 0.27864 | 0.21230 |
+| JSF_64                | 1.13970 | 0.13366 | 0.10999 | 0.28153 | 0.21406 |
 *-----------------------+---------:---------:---------:---------:---------:
 
   The <<<RandomSource.JDK>>> generator uses thread-safe (synchronized) <<<int>>> generation which has a performance overhead (see the <<<int>>> generation results). For the <<<boolean>>> generation the synchronization occurs 1 in 32 calls and the resulting performance is good. However the output will be low quality and this generator should not be used. See the {{{a5._Quality}Quality}} section for details.