Determines the number of logical CPU cores for WFO training (Zorro S
required). Either a positive value for the number of cores to use, or a negative value for the number of cores not to use, f.i. -1 for using all available cores but one. Default = 0 for no multi-core training. The WFO cycles are evenly distributed among parallel Zorro processes assigned to different CPU cores.
The more cores, the faster is the training run; f.i. assigning 5 cores of a 6-core CPU will reduce the training time by 80%.
The current core
number in a WFO multicore training run, or the current
process number, or 0 when no multicore process is running (read/only).
- NumCores must be set in the INITRUN.
Sliders and other user interface controls should be
at default settings for the training, since their positions are not
transferred to other cores.
- Zorro supports up to 72 cores. How many cores are really used depends on
available CPU threads (logical processors) and on the number of WFO cycles.
Obviously, no more cores than WFO cycles are assigned, but it is possible to
set up more cores than CPU threads are available. Training will then consume most CPU resources and can render the PC
temporarily unresponsive. The number of physical and logical threads is displayed in the Windows Task Manager.
- Multicore training uses the command line for passing parameters and script name to the separate training processes. The script name must be command line compliant, i.e. no blanks and no path,
and the script must be located in the Strategy folder. No
other parameters can be passed to the training processes via command line.
- The processes run as minimized Zorro instances. The message windows display only the cycles trained by the dedicated process. Parameter diagrams in multi-core mode are generated from the main process only, not from the parallel processes. The
TESTNOW flag is not compatible with multicore
- Training R-based algorithms works also in
multi-core mode. Several R instances will then run in parallel. The
used R libraries must support parallel processes. That's not the case when they connect to a local or remote server (such as
or when they use the GPU or other hardware resources (such as Keras,
or MxNet in GPU mode).
- Aside from WFO, Zorro processes on different cores can also be started by command
line and communicate with each
other. For details see processes.
NumCores = -2; // use all logical cores but two
► latest version online