rdoddanavar / hpr-sim

6DOF Flight Simulation for High Power Model Rocketry
https://rdoddanavar.github.io/hpr-sim/
GNU General Public License v3.0
3 stars 2 forks source link

Montecarlo Capability #16

Closed rdoddanavar closed 2 years ago

rdoddanavar commented 4 years ago

CPP routine that generates random sequence given seed (int) and desired distribution (string), using the <random> library: http://www.cplusplus.com/reference/random/

Multiprocessing capability w/ RNG

rdoddanavar commented 4 years ago

Is this going to be an issue? https://codingnest.com/generating-random-numbers-using-c-standard-library-the-problems/

rdoddanavar commented 3 years ago

Use python's multiprocessing module to execute runs

rdoddanavar commented 3 years ago
rdoddanavar commented 3 years ago

Be careful with numpy.random; make sure RNG state is properly isolated between processes (import multiprocessing as mp

rdoddanavar commented 3 years ago

Use new instance of numpy.random.RandomState() in each process to isolate RNG state(s)

rdoddanavar commented 3 years ago

Managing RNG state across processes, consequences on seeding:

rdoddanavar commented 3 years ago

Passing multiple arguments into map for Pool:

Good solution are those above, in tandem with functools.partial:

rdoddanavar commented 3 years ago

Use Philox in numpy.random to generate independent, uncorrelated streams: https://numpy.org/doc/stable/reference/random/parallel.html#independent-streams