| NMathConfigurationReproducibility Property |
Gets and sets the value of the MKL Conditional Numerical Reproducibility (CNR) flag.
Namespace: CenterSpace.NMath.CoreAssembly: NMath (in NMath.dll) Version: 7.4
Syntax public static bool Reproducibility { get; set; }
Public Shared Property Reproducibility As Boolean
Get
Set
public:
static property bool Reproducibility {
bool get ();
void set (bool value);
}
static member Reproducibility : bool with get, set
Property Value
BooleanRemarks
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