How can I know how many cores are needed for my calculation?
The most efficient number of cores depends on few things: the system, the machine where you run the calculation and also the basis set that you are employing.
SIESTA by default parallelizes over orbitals.
In principle you may use as many processors as you want. However, for performance reasons it may be advisable to limit your number of processors in order to have at least 10 atoms per core and not less.
A number of atoms per core between 10 and 30 would provide, in general, a relatively good parallelization efficiency. It is a good starting point to test further the most efficient number of CPUs for each specific simulation.
If you have a very small system with very many k-points, then Diag.ParallelOverK may be a good option. Check the Diag.* flags in the manual to see which means what and what may apply to your use-case.
To have an idea about how SIESTA scales with the number of cores on some HPC please visit the page https://departments.icmab.es/leem/siesta/siestimator/siestimator.php.