Skip to content

Recommencing computation

Karel Kubicek edited this page Mar 2, 2018 · 6 revisions

Computation determinism

The entire run can be repeated bit-to-bit, providing these criteria are met:

  • seeding
    Program is set to run from fixed seed and the same main seed as in previous run is provided. The seed is set in the config file as "seed" : null, where null means random seed (used seed will be written to stdout for further repetition). If you want to insert specific seed, it is input as string in hexadecimal form, like: "seed" : "1fe40505e131963c".
  • configuration file is the same (except the seeding)
    The code uses PRNG in various parts and the computation is derived from generated data, therefore small changes of config file (like used metaheuristic) changes thePRNG state and also the computation determinism.
  • quantum random data
    If pre-generated random number data is used (e.g., obtained from Quantum Random Number Generator Service), the same data is provided now as was provided in the previous run. Note that most experiments are not using QRNG anymore.
  • same compiler was used for the binaries
    We encountered computation differences among different compilers (gcc, clang). This behavior is not inspected and well-known.

An alternative bit-to-bit computation is recommencing the initial state of previous computation (that is, loading state and initial population and providing same configuration file and random number data files).

Clone this wiki locally