Yes, sim_solver_memory_allocation seems to be situation specific, perhaps a better answer is leave sim_solver_memory_allocation set to the default unless you have a need to limit this. Tad's explanation is good to understand proper usage on this.
It seems that simulate will use the max number of cores as default, so I am not sure not sure what the purpose of "cpus_to_use". This is also probably best left set the the default.