Walt
just in case it will help. i made some performance tests on my laptop with i7-7700hq and here what i had found.
First of all this CPU has 4 cores. if we enable the Hyper-Threading optin then we will see 8 logical processors.
in this case 2 diferent logical processor are processed by 1 phisical. so if we have 2 ships that run all phisics calculation each in its own logical processor the workload will be only on 1 phisical CPU. and overal only 25% of max performance of the CPU.
So after i just disabeld Hyper-Threading in BIOS of the system so 1 processor will be 1 logical processor.
The total workload of CPU rise to 50 % with any big ships. The performance tests shows that 1 batlle that was reproduced several times for each case with Hyper-Threading and without takes diferent time.
the results. without Hyper-Threading the overal performance rise for 35-40%
my suggestion is to add some code that will chosee diferent processors(logical or phisical) for example for frist thread select processor 1(or first) for next thread lunch on processor last(the max numbre of processors)