I have just started working with distributed processing.
I would like to run in "Grid Only Mode", freeing up all logical CPU cores for Visual Studio.
I followed the instructions in the Grid Only Mode section of the Distributed Processing documentation page.
[list=1]
Set max number of processing threads to 0
Turned off the local node in the distributed processing window
However it seems like NCrunch is still respecting the values set in the CPU Cores assigned to NCrunch / Visual Studio settings.
When I run a build, I can see only the cores assigned to VS being used.
Is this correct and I need to update these values, or have I configured something wrong?
If these values do need to be updated, should I assign any cores to NCrunch?
You've set things up correctly for grid only mode. It's worth noting that turning off the local node in the distributed processing window is by itself enough (the changing of the max processing threads is optional).
When in grid only node, the CPU affinity settings for NCrunch are still applied to the local machine. There is still value of having a dedicated CPU core for the NCrunch engine, as even though the tests are running remotely, the engine still needs to do work to coordinate test runs and merge coverage data.
I would recommend adjusting your CPU core assignments so that NCrunch has a single CPU core and VS has all the rest. If you notice the 'core utilisation' in the corner spinner popup seems to be constantly in the red, you can maybe try giving it two cores.
EDIT: Given complications with the core assignments with VSCSCompiler.exe, I'm changing my recommendation here. You are better to do away with core assignments and simply assign ALL cores to both VS and NCrunch when working in grid-only mode. In this way, the O/S can balance the load and we don't end up cornering the VS build system by accident.