Determinism in openPASS
As talked about in the last AC, we want to start the discussion about determinism in openPASS.
For BMW determinism contains several aspects:
- Determinism for all runs of a simulation, when started several times on the same machine.
- Determinism between Linux and Windows (for a special distribution or version and machine). Determinism for many different Linux distributions and Windows versions or special hardware is not in the main focus. Maybe all Linux distributions work in the same manner, so there is no problem within Linux; the same might be also valid for Windows. For determinism, we have two assumptions:
- The releases must be built according to the official documentation and Jenkins configuration.
- A new version of openPASS can lead to different results because of new features or bugfixes.
To assess determinsim, all output files have to be considered.
Determinism is fulfilled, when the output format is exactly the same (number of decimal places, data types, enum vs. enum coding, order of all lines in the output files)
If there are known issues for example in C++ or in the number generator of the operating system, it has to be decided how we handle this problem properly.