Working on a very large project. Should I get a PC with, say 16 cores or get a server and run the distributed nCrunch ?
Thanks
Jay
Remco NCrunch Developer
#16589
08 Apr 2023 23:46 UTC
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.
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.
Deleted post
#16615
18 Apr 2023 08:38 UTC
Deleted post
#16864
08 Sep 2023 05:18 UTC
Post a reply
Log in to reply.