Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parallelise-OM #106

Closed
tph-thuering opened this issue Jun 9, 2015 · 1 comment
Closed

parallelise-OM #106

tph-thuering opened this issue Jun 9, 2015 · 1 comment

Comments

@tph-thuering
Copy link
Contributor

Requirements

  1. work out how to create multiple, independent, high-quality RNGs from a
    single seed
  2. split population into several groups or assign each human to one of
    several RNGs
  3. parallelise Population::update1

From another ticket

Potential addition with two objectives:
 * enable easy parallelisation of the human->update() call preserving
 repeatable results

Each human has an RNG state object (3-4 bytes), for independant random
number generation. One RNG state for non-human random calls.

Some initialiser for these generators (possibly another random number
generator):

*   initialised from seed in scenario
*   when humans are not created in initialisation (when previously would
    have been), use anyway to preserve old seeds

This initialiser could be:

*   another random number generator. (If using the same algorithm): some
    conversion between state of this generator and state used as seed for
    each created generator needed to avoid duplicating values
*   an incremented number. Not ideal because this is the same strategy used
    to provide seeds for scenarios.

Most suitible random number generators: taus, taus113, kiss

These are fast and only require a small amount of state information (see
http://home.netsurf.de/wolfgang.ehrhardt/misc_en.html, gsl source).

@dhardy
Copy link
Collaborator

dhardy commented Dec 14, 2018

Superceded by #204 and #194

@dhardy dhardy closed this as completed Dec 14, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants