NBSEBLOCKO: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
Description: {{TAG|NBSEBLOCKO}} specifies the blocking factor for the occupied states when setting up the BSE Hamiltonian. | Description: {{TAG|NBSEBLOCKO}} specifies the blocking factor for the occupied states when setting up the BSE Hamiltonian. | ||
---- | ---- | ||
By default, the construction of the BSE Hamiltonian in VASP is parallelized over k-points, such that each MPI rank can compute a pair of k-points. This way the BSE Hamiltonian setup can be parallelized | By default, the construction of the BSE Hamiltonian in VASP is parallelized over '''k'''-points, such that each MPI rank can compute a pair of '''k'''-points. This way the BSE Hamiltonian setup can be parallelized with | ||
::<math>\text{total ranks}=\mathrm{NKPTS\times(NKPTS+1)/2}</math> | |||
or for spin-polarized case | |||
::<math>\text{total ranks}=\mathrm{NKPTS\times 2\times(NKPTS\times 2+1)/2}</math>, | |||
If | where <math>\mathrm{NKPTS}</math> is the total number of '''k'''-points in the full Brillouin zone. However, if a large number of MPI ranks is used in a calculation with too few '''k'''-point, this leads to load imbalance, where some of the MPI ranks will have no data to compute. In such cases, it is recommended to use parallelization over bands. If the parallelization over bands is used, all occupied (unoccupied) bands are divided into | ||
{{NB|mind|Parallelization over bands with {{TAG| | ::<math>\mathrm{NBLKO=NBANDSO/NBSEBLOCKO}</math> | ||
and | |||
::<math>\mathrm{NBLKV=NBANDSV/NBSEBLOCKV}</math> | |||
blocks, respectively. | |||
Such a band blocking allows VASP to parallelize the setup of the matrix with | |||
::<math>\text{total ranks}=\mathrm{NBLKO\times NBLKV\times NKPTS\times (NBLKO\times NBLKV\times NKPTS+1)/2}</math> | |||
or for spin-polarized case | |||
::<math>\text{total ranks}=\mathrm{NBLKO\times NBLKV\times NKPTS\times 2\times (NBLKO\times NBLKV\times NKPTS\times 2+1)/2}</math> | |||
If neither <math>\mathrm{NBSEBLOCKV}</math> nor <math>\mathrm{NBSEBLOCKO}</math> is specified, no paralliziation over bands is used and <math>\mathrm{NBLKO=1}</math> and <math>\mathrm{NBLKV=1}</math>. | |||
{{NB|mind|Parallelization over bands with {{TAG|NBSEBLOCKV}} does not work with the old BSE driver, i.e., {{TAG|IBSE}}{{=}}0}} | |||
== Related tags and sections == | == Related tags and sections == |
Revision as of 12:41, 12 June 2024
NBSEBLOCKO = [integer]
Default: NBSEBLOCKO | = -1 |
Description: NBSEBLOCKO specifies the blocking factor for the occupied states when setting up the BSE Hamiltonian.
By default, the construction of the BSE Hamiltonian in VASP is parallelized over k-points, such that each MPI rank can compute a pair of k-points. This way the BSE Hamiltonian setup can be parallelized with
or for spin-polarized case
- ,
where is the total number of k-points in the full Brillouin zone. However, if a large number of MPI ranks is used in a calculation with too few k-point, this leads to load imbalance, where some of the MPI ranks will have no data to compute. In such cases, it is recommended to use parallelization over bands. If the parallelization over bands is used, all occupied (unoccupied) bands are divided into
and
blocks, respectively.
Such a band blocking allows VASP to parallelize the setup of the matrix with
or for spin-polarized case
If neither nor is specified, no paralliziation over bands is used and and .
Mind: Parallelization over bands with NBSEBLOCKV does not work with the old BSE driver, i.e., IBSE=0 |
Related tags and sections
BSE, NBSEBLOCKV, BSE calculations