<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Le 03/04/2017 à 15:44, Jaime Fernández del Río a écrit :<br>
    <blockquote
cite="mid:CAPOWHWkbovJhZxbm3Sp0cFXTpxtYTFfM=hLnx9y9+R1RcVwYyw@mail.gmail.com"
      type="cite">
      <div><a moz-do-not-send="true"
href="https://github.com/JuliaLang/julia/blob/7fb758a275a0b4cf0e3f4cbf482c065cb32f0011/doc/src/stdlib/numbers.md#L116">This</a> says
        that Julia uses <a moz-do-not-send="true"
          href="http://www.math.sci.hiroshima-u.ac.jp/%7Em-mat/MT/SFMT/#dSFMT">this
          library</a>, which is different from the home brewed version
        of the Mersenne twister in NumPy. The second link I posted
        claims their speed comes from generating double precision
        numbers directly, rather than generating random bytes that have
        to be converted to doubles, as is the case of NumPy through this
        <a moz-do-not-send="true"
href="https://github.com/numpy/numpy/blob/master/numpy/random/mtrand/randomkit.c#L514">magical
          incantation</a>. They also throw the SIMD acronym around,
        which likely means their random number generation is
        parallelized.</div>
      <div><br>
      </div>
      <div>My guess is that most of the speed-up comes from the SIMD
        parallelization: the Mersenne algorithm <a
          moz-do-not-send="true"
href="https://github.com/numpy/numpy/blob/master/numpy/random/mtrand/randomkit.c#L221">does
          a lot of work</a> to produce 32 random bits, so that likely
        dominates over a couple of arithmetic operations, even if
        divisions are involved.</div>
    </blockquote>
    Thanks for the feedback.<br>
    <br>
    I'm not good in enough in reading Julia to be 100% sure, but I feel
    like that the random.jl
    (<a class="moz-txt-link-freetext" href="https://github.com/JuliaLang/julia/blob/master/base/random.jl">https://github.com/JuliaLang/julia/blob/master/base/random.jl</a>)
    contains a Julia implementation of Mersenne Twister... but I have no
    idea whether it is the "fancy" SIMD version or the "old" 32bits
    version.<br>
    <br>
    best,<br>
    Pierre<br>
  </body>
</html>