next up previous contents
Next: Parallelisation Up: Parallelise serial segments of Previous: Density matrix from eigenvectors   Contents

Direct space Hamiltonian

The Hamiltonian building routine has seen a significant rewrite which has resulted in a tenfold speedup, due to memory access optimisations. The cost of the routine was already linear and the real space Hamiltonian storage format sparse. Parallelisation over the atoms did show a speedup but the necessary gather negated any gains. This was not because the gather was slow but rather due to the routine being particularly fast. The time for this routine is now negligble and it is executed only once before the self-consistency takes place.

The Bloch transform applied at each $ k$-point produces $ k$-dependent matrices which use the real space ones. This routine has also been modified, such that only the necessary local pieces of the global 2D block cyclic distributed arrays are built, thus avoiding the usage of darray_scatter.


Table 1: Projected minimal memory requirements in GB if all $ H^k$ and $ S^k$ are stored instead of recalculated. Structure constants sizes are also included. Atoms are assumed to be $ d$-elements,
atoms/edge $ k$-pts/edge atoms 1 $ k$-pt all $ k$-pts $ B$ $ B'$
1 16 1 0.00 0.06 0.00 0.00
2 8 8 0.00 0.51 0.00 0.00
3 6 27 0.01 2.47 0.00 0.00
4 4 64 0.06 4.11 0.03 0.02
5 4 125 0.25 15.69 0.10 0.07
6 4 216 0.73 46.85 0.31 0.22
7 2 343 1.85 14.77 0.79 0.55
8 2 512 4.11 32.91 1.76 1.22
9 1 729 8.34 8.34 3.56 2.47
10 1 1000 15.69 15.69 6.71 4.66
11 1 1331 27.80 27.80 11.88 8.25
12 1 1728 46.85 46.85 20.02 13.90


It is possible to avoid the repeated Bloch transforms during self-consistency by saving the matrices for all $ k$-points then only transform the diagonal blocks. This is because the off diagonal updates, when needed, are applied directly to $ H^k$. Table 1 lists the estimated requirements for typical use scenarios. There are cases with few atoms, 100-300, which should be possible to execute on small computers but the memory usage will be prohibitively high.


next up previous contents
Next: Parallelisation Up: Parallelise serial segments of Previous: Density matrix from eigenvectors   Contents
DP 2013-08-01