Search code examples
performancerandomjulianormal-distributionjuno-ide

Julia drawing from standard normal distribution


I need to draw 53000000 observations from a standard normal distribution. My current code takes a long time to run in Julia (in fact, it's been running for the past twenty minutes) and I'm wondering if there's anything I can do to speed it up. Here's what I tried:

using Distributions
d = Normal()
shock = rand(d, 1, 53000000)

The code works instantaneously when I execute it in REPL (I am working in Juno/Atom), but lags at this point (drawing from the standard normal) when I step through using the debugger. So I think the debugger may be the real culprit here.


Solution

  • It may be that the 1/2 gig of memory used by the allocation of the variable shock is sometimes causing swapping when the debugger is loaded.

    Try running this to see, in the debugger:

    using Distributions, Base.Sys
    
    println("Free memory is $(Int(Sys.free_memory()))")
    d = Normal()
    shock = rand(d, 1, 53000000)
    println("shock uses $(sizeof(shock)) bytes.")
    println("Free memory is $(Int(Sys.free_memory()))")
    

    Are you close to out of memory in gigs?