Click or drag to resize

NMathConfigurationReproducibility Property

Gets and sets the value of the MKL Conditional Numerical Reproducibility (CNR) flag.

Namespace: CenterSpace.NMath.Core
Assembly: NMath (in NMath.dll) Version: 7.4
Syntax
public static bool Reproducibility { get; set; }

Property Value

Boolean
Remarks
For general single and double precision IEEE floating-point math, the order of computation matters. For example, in infinite precision arithmetic, the associative property holds, (a+b)+c = a+(b+c), but on a computer using double precision floating-point numbers, rounding error is introduced, and the equality is not guaranteed. The order of floating-point operations within a single executable program is affected by code-path selection based on a variety of factors: run-time processor dispatching, data array alignment, variation in number of threads, threaded algorithms, and so forth.

If strict reproducibility is a requirement, set the Reproducibility property equal to true, or use the equivalent environment variable or app config setting. You must also set the suggested number of MKL threads to a constant value--see SetMKLNumThreads().

For more information, see https://software.intel.com/en-us/articles/introduction-to-the-conditional-numerical-reproducibility-cnr

NOTE: Using MKL Conditional Numerical Reproducibility can significantly degrade performance, and is only recommended for use during testing or debugging, such as comparison to previous 'gold' results.

See Also