I meant randbool() in v0.3, where it was a more direct call, not randbool() in v0.4. Anyway, I just found the problem and patched it. Adding one '@inline' now makes rand(Bool) in v0.4 about as fast as randbool() in v0.3.
Should I open an issue (bug report), or just make a PR ? On Monday, January 5, 2015 8:59:02 PM UTC+1, Viral Shah wrote: > > I doubt that rand(Bool) is any slower, since randbool() calls rand(Bool). > It is worth filing this as a performance regression. > > -viral > > On Monday, January 5, 2015 9:41:45 PM UTC+5:30, [email protected] > wrote: >> >> It may be in part the implementation of the RNG. I think it is also in >> part whether the abstraction is optimized away. >> Notice that Julia v0.3 is faster than v0.4. This is probably randbool() >> vs. rand(Bool). >> >> On Monday, January 5, 2015 4:50:56 PM UTC+1, Isaiah wrote: >>> >>> Very neat. Just in case this gets posted to the interwebz, it is worth >>> pointing out that the performance advantage for Julia can probably be >>> explained by differences in the underlying RNG. We use dsFMT, which is >>> known to be one of (if not the?) fastest MT libraries around. I could not >>> find any published comparisons in a quick google, but based on this test >>> harness [1], dsFMT may be significantly faster than std::mt19937: >>> >>> ``` >>> ihnorton@julia:~/tmp/cpp-random-test$ ./random-real >>> C++11 : 2.34846 >>> Boost : 0.371674 >>> dSFMT : 0.281255 >>> GSL : 0.649981 >>> ``` >>> >>> [1] https://github.com/yomichi/cpp-random-test >>> >>> >>> On Mon, Jan 5, 2015 at 10:12 AM, <[email protected]> wrote: >>> >>>> Oh, and, (I forgot to mention!) the Julia code runs much faster. >>>> >>>> >>>> On Monday, January 5, 2015 3:56:07 PM UTC+1, [email protected] >>>> wrote: >>>>> >>>>> Hi, here is a comparison of Julia and C++ for simulating a random walk >>>>> <https://github.com/jlapeyre/ranwalk-Julia-vs-Cxx>. >>>>> >>>>> It is the first Julia program I wrote. I just pushed it to github. >>>>> >>>>> --John >>>>> >>>>> >>>
