In the band calculation, a triple parallelization is made for three loops:
spin multiplicity, k-points, and eigenstates, where the spin multiplicity means
one, two, and one for spin-unpolarized, spin-polarized, and non-collinear calculations,
respectively. The priority of parallelization is in order of spin multiplicity,
k-points, and eigenstates.
In addition, when the number of processors used in the parallelization
exceeds (spin multiplicity)(the number of k-points), OpenMX uses
an efficient way in which finding the Fermi level and calculating
the density matrix are performed by just one diagonalization at each k-point.
For the other cases, twice diagonalizations are performed at each k-point
for saving the size of used memory in which the second diagonalization is
performed to calculate the density matrix after finding the Fermi level.
In Fig. 18 (c) we see a good speed-up ratio as a function of processors
in the elapsed time for a spin-unpolarized calculation of carbon diamond consisting
of 64 carbon atoms with 333 k-points.
The input file *DIA64_Band.dat* is found in the directory 'work'.
In this case the spin multiplicity is one, and the number of k-points used for
the actual calculation is (3*3*3-1)/2+1=14 since the k-points in the half
Brillouin zone is taken into account for the collinear calculation, and
the -point is included when all the numbers of k-points for a-, b-,
and c-axes are odd. So it is found that the speed-up ratio exceeds the ideal one
in the range of processors over 14, which means the algorithm in the
parallelization is changed to the efficient scheme.
As well as the cluster calculation, to avoid the calculation of eigenstates in
the higher energy region, it is highly recommended to use 'dstevx' which is specified
by the following keyword 'scf.lapack.dste':

scf.lapack.dste dstevx # dstegr|dstedc|dstevx, default=dstevxSince 'dstevx' is default, if you like 'dstevx', you do not need to specify the keyword. In case of 'dstevx', the eigenstates to be calculated is automatically evaluated by the number of electrons. In case of 'dstevx', the eigenstates to be calculated is automatically determined by the number of electrons. In the other schemes 'dstegr' and 'dstedc', eigenstates in the higher energy region are also calculated.