Parallel Run

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.

Are there any options I should optimize in the input file to maximize the parallel efficiency? Like in the VASP, there are two options NCORE and KPAR controlling how to configure parallel running.

Hi,

In the fdf input file you can decide if you want to parallelize over orbitals (default settings) or over k points. The parallelization over k-points is useful where the number of k-points is much larger than the number of processors.
Please check the flag Diag.ParallelOverK in the manual.

Regards