PoW Solver work is distributed across multiple CPU cores. One-half of available CPU cores are allocated to PoW Solvers; the other half remain available for other Validator threads to run on.
If you run an eight-core machine:
8/2 x (slow multi-core) > 1 fast single core
On a quad-core (4) machine:
4/2 x (slow multi-core) > 1 fast single core
or could be:
4/2 x (slow multi-core) < 1 fast single core
At startup, the PoW script examines the set of eligible CPUs on which the Validator process is allowed to run. The number of Solver processes spawned is one-half that set size. The script won’t re-examine that affinity set at run-time.
If you dynamically change CPU allocation using Docker commands, the eligible CPU set would only affect scheduling of the other Validator threads and would not affect the number of Solvers.