[ILNumerics Core Module]
Namespace: ILNumerics
Assembly: ILNumerics.Core (in ILNumerics.Core.dll) Version: 5.5.0.0 (5.5.7503.3146)
Property Value
Type: UInt32In order to maximize execution speed of numerical algorithms, the value of MaxNumberThreads should be equal to the number of real processor cores on the system. For processors utilizing Hyper-threading the number on virtual cores may be higher. However, since those virtual cores share certain ressources for execution they would not be of great help for many computational functions. Hence, the number of 'cores' appearing e.g. in the windows task manager is misleading and the true number of independent cores should be considered for MaxNumberThreads instead. Consult your proccessor vendor in order to find out, how many independant cores your system utilizes.
If, on the other hand, your algorithm mainly performs search and replace style data processing where the numerical coprocessor is rarely needed it may pay of to utilize more threads in parallel. In this case you may try higher values here. The default value is the number of main processor cores, though.
If your algorithm uses a custom parallel execution models, it may be necessary to set this value to '1'. ILNumerics will run single threaded then - leaving you the option to configure the execution on parallel threads on your own.
The setting of this value also effects the corresponding value of any unmanaged optimized support library (e.g. MKL), which is internally used by ILNumerics.
[ILNumerics Core Module]