anchor.diff:  </solver>
   ----
   
  +A `moveThreadCount` of `4` <<sizingHardwareAndSoftware,saturates almost 5 CPU cores>>:
  +the 4 move threads fill up 4 CPU cores completely
  +and the solver thread uses most of another CPU core.
  +
   The following ``moveThreadCount``s are supported:
   
   * `NONE` (default): Don't run any move threads. Use the single threaded code.
   * ``AUTO``: Let Planner decide how many move threads to run in parallel.
  -On machines or containers with little or no CPUs, this can fall back to the single threaded code.
  +On machines or containers with little or no CPUs, this falls back to the single threaded code.
   * Static number: The number of move threads to run in parallel.
   +
   [source,xml,options="nowrap"]
  
positive.code: [source,xml,options="nowrap"]
  ----
  <solver>
    <moveThreadCount>4</moveThreadCount>
    ...
  </solver>
  ----
  
  That one extra line heavily improves the score calculation speed,
  presuming that your machine has enough free CPU cores.
  It <<sizingHardwareAndSoftware,saturates 5 CPU cores>>:
  the 4 move threads fill up 4 CPU cores and the solver thread itself takes another CPU core.
  
  Advanced configuration:
  
  
negative.code: ** Configure a <<partitionedSearch,Partitioned Search>>.
  * *Multithreaded incremental solving*: solve 1 dataset with multiple threads without sacrificing <<incrementalScoreCalculation, incremental score calculation>>.
  ** Donate a portion of your CPU cores to Planner to scale up the score calculation speed and get the same results in fraction of the time.
  ** Configure <<multithreadedIncrementalSolving,multithreaded incremental solving>>.
  
  image::OptimizationAlgorithms/multiThreadingStrategies.png[align="center"]
  
  