Determinism

When a calculation is performed in parallel over multiple CPUs or cores, the order in which specific computations occur can and will change.

This can cause roundoff error to accumulate differently.

For many models the final result of these differences are nearly impossible to detect. But for a wide class of models these differences can magnify, resulting in a situation where every time you run a given model you will get a different result.

It is important to note that all of these results are equally valid, as they are all within the range of finite-precision floating point error.

Deterministic mode sacrifices efficiency and memory to force the parallel computation to result in the same answer every time, regardless of the number of CPUs used for calculations or their relative speed.

By default the program runs in deterministic mode. This can be changed by setting the model deterministic off in a data file. The default is also adjusted by unchecking the “Deterministic by default” box in Tools/Options/General in the User Interface.

Consequences Of Turning Determinism off

  • The model runs faster

    How much faster is code- and model-dependent. FLAC3D ignores the determinism flag, and is always deterministic. 3DEC is about 10% faster. PFC3D is about 15% faster.

  • Results results are not repeatable

    In some cases where small changes propagate, you will get very different results every time you run the model.

  • Data files (and project bundle) cannot reliably reproduce results

    For archiving purposes, resulting save files should be saved along with input data.

  • For problems requiring support, Itasca may not be able to duplicate the issue

    In such a case the model should be re-run the model with determinism on. If the problem no longer occurs, there might be very little we can do to help you.