My C# program initiates a Parallel.For loop where the loop count is normally around 250. The loops contain functions which compare values against each other and add/remove values to/from Lists depending on the outcome. Some objects are also created and stored in Lists. It normally takes about 3 minutes for all loops to run.
On my 4-core Intel i7 6700K task manager shows 100% utilisation across all 8 threads. However, when I run the program on a 16-core AMD Ryzen 1950X, the utilisation only ever reaches 35%.
Both systems have 2x4GB of DDR4 2133 MHz RAM. The program uses about 800MB of RAM
What are the possible causes of the under-utilisation of the 16-core CPU?