В теории:
- если программы постоянно жрут ресурсы, не ожидая внешних данных - лучше раскидать по разным ядрам.
- если то одна, то другая может простаивать, а может захотеть столько, сколько может дать процессор - на все ядра.
Ну и не забываем, что система тоже на чем-то будет выполняться, и если это винда, то заскучать ядрам, занимаясь одной и той же задачей, она не даст.