Hi Jay,
Thanks for posting. I wish I could give a straight answer on this one, as it depends very much on the nature of the tests you're running. There are pros and cons.
The advantages of having a larger 16 core PC are:
* Response times will be faster because no network sync is involved
* Debugger capable under NCrunch (grid nodes can't debug)
* Less complex setup to maintain (you won't need to manage the tool stack over two separate machines)
* The extra cores can be helpful for other non-NCrunch tasks
The advantages of having a grid node are:
* You can share the capacity with a CI system or other team members
* What runs on the grid node has no way of interfering with your local machine, so there is less chance of resource starvation/drag impacting VS.
* If you have tests that require exclusive use of the UI, you can run these on the grid node without them driving you crazy on your local machine.
* Generally, the hardware for servers can scale further than a local PC (will cost more $$$ though)
* Because the grid node doesn't need to worry about reserving capacity for a UI, you can overload it more than a local machine, giving you more capacity. You might only be able to work with 12 runners on a 16 core desktop machine, but if the equivalent hardware is used for a grid node, you could get 20 runners with slightly higher execution times.
I'm generally of the opinion that if you have the funds to do it, you should do both. Developer time is extremely expensive. Using hardware to improve productivity usually pays off very quickly in our sector.