The very general approach, which I first saw in tech talk on Youtube growth [1] is this: identify and fix your bottlenecks, drink, sleep, etc, continue with bottlenecks again.
So, when you've got too much work and cores sit idle, well, run more processes. Using the same approach you'll know when to stop or even shrink process pool.