Sadly, it is not a question of what we can do, but what we should do. You can use as many cores as you want, but because they are arranged as NUMA and because Dinamica is not NUMA-aware (and assumes that all cores are equal for all tasks – this is important), you might end up with poor performance because one core is the one closer to where the memory for some task was allocated, but the cores in fact doing the computation and using that memory effectively are all located in a different NUMA node. Typically, the OS simply migrates the thread/workers to the cores closer to where the memory was allocated, but when we have lots of threads/workers taking part in the calculation, core migration becomes less feasible, and performance degrades.
So, usually, it helps to reduce the number of cores to prevent this problem. But this is not a silver bullet. It heavily depends on the model and on the layout of the data being used.
So my rule of thumb is: run a portion of your model with all the available cores, see how it goes, reduce the number of cores, and see if that improves performance or causes performance degradation. Once you have a verdict, run the entire model with the resulting number of cores.
Hope that helps!