This is a short summary of useful keywords in the context of large-scale calculations. Not all of them were mentioned during this tutorial, but may be worth a try for your large-scale workflow.
use_local_index: A must-set keyword for all simulations with more than 100 atoms. In any large-scale run, this keyword should be used. This keyword ensures that the memory usage per task (!) does not needlessly scale O(N^2) - a scenario that would otherwise prevent the code from running any larger systems.
use_local_indexcan lead to slight slowdown (test to see if this is even the case) but can actually also facilitate speed-ups for large cases.
load_balancing: Can lead to a small speedup when used together with
use_local_index. Should usually work but using
use_local_indexon its own is also fine.
Things that were not discussed above but may be worth checking:
preconditioner kerker off: For periodic runs, a so called preconditioner is used in the mixing. For systems that are safely non-metallic, this may not be needed and, in large runs, can save noticeable amounts of time. However, note this does need testing especially for very large runs.
elsi_restartkeyword: If you are trying to restart a single scf cycle for a very large system, you can use the electronic restart. However, be careful, e.g. you must use ALL k-points when using GGA restart files to start a hybrid run. (In scalar-relativistic DFT-GGA runs of periodic systems, FHI-aims, by default, uses time reversal symmetry to reduce the number of k-points. In order to use all k-points (no symmetry use in the Brillouin zone at all) in preparation of writing restart files for a subsequent hybrid DFT run, set
frozen_core_scfkeyword: In simulations dominated by the eigensolver ("solution of K.-S. equations"), you can achieve substantial speedup at essentially no accuracy loss 1 by "freezing" core orbitals in the eigenvalue solver. E.g., to freeze all core orbitals deeper than -200 eV, use:
frozen_core_scf .true. frozen_core_scf_cutoff -200