Requests for technical support from the VASP group should be posted in the VASP-forum.

NPAR

NPAR = [integer]
Default: NPAR = number of cores

Description: NPAR determines the number of bands that are treated in parallel.

VASP currently offers parallelisation (and data distribution) over bands, parallelization (and data distribution) over plane wave coefficients, and as of VASP.5.3.2, parallelization over k-points (no data distribution, see KPAR). To obtain high efficiency on massively parallel systems or modern multi-core machines, it is strongly recommended to use all at the same time. Most algorithms work with any data distribution (except for the single band conjugated gradient, which is considered to be obsolete).

NPAR determines how many bands are treated in parallel. The current default is NPAR=# of cores, meaning that one orbital is treated by one core. NCORE is then set to 1. If NPAR=1, NCORE is set to the number of cores. This implies data distribution over plane wave coefficients only: all cores will work together on every individual band, i.e., the plane wave coefficients of each band are distributed over all cores. This is usually very slow and should be avoided.

NPAR=# of cores is the optimal setting for platforms with a small communication bandwidth and is a good choice for up to 8 cores, as well as for machines with a single core per node and a Gigabit network. However, this mode substantially increases the memory requirements, because the non-local projector functions must be stored entirely on each core. In addition, substantial all-to-all communications are required to orthogonalize the bands. On massively parallel systems and modern multi-core machines we strongly urge to set

${\displaystyle {\textrm {NPAR}}\approx {\sqrt {{\textrm {\#of}}\;{\textrm {cores}}}}}$

or

${\displaystyle {\textrm {NCORE}}={\textrm {\#of}}\;{\textrm {cores}}\;{\textrm {per}}\;{\textrm {compute}}\;{\textrm {node}}}$

In selected cases, we found that this improves the performance by a factor of up to four compared to the default, and it also significantly improves the stability of the code due to reduced memory requirements.

NCORE is available from VASP.5.2.13 on, and is more handy than the previous parameter NPAR. The user should either specify NCORE or NPAR, where NPAR takes a higher preference. The relation between both parameters is

${\displaystyle {\textrm {NCORE}}={\textrm {\#of}}\;{\textrm {cores}}/{\textrm {NPAR}}}$