The HECToR Service is now closed and has been superceded by ARCHER.

Metal Conquest

This Distributed Computational Science and Engineering (dCSE) project is to develop the linear scaling Density Functional Theory (DFT) code Conquest. Conquest is an efficient code for calculations in metallic systems and this work will allow larger scale simulations on high performance computing facilities with a more reasonable cost.

The key aims of the project are:

  • Improve the Kerker preconditioner.
  • Implement a wave dependent metric preconditioner.
  • Implement Methfessel-Paxton smearing for Brillouin-zone integration.
  • ScaLAPACK optimisation: to achieve a 30% speed up.
  • Implement k-point parallelisation: to achieve a diagonalisation time which should scale perfectly with the number of processors.

The individual achievements of the project are summarised below:

  • Implementation of Kerker preconditioner and wave dependent metric. The introduction of the Kerker preconditioner allowed test calculations to achieve self-consistency that would be otherwise not possible with linear mixing.
  • Implementation of Methfessel-Paxton smearing. This results in a 60% reduction on the number of k-points required for the test calculation to achieve the same accuracy.
  • Around a 10% speed up is achieved from adjusting ScaLAPACK block parameters.
  • Successful implementation of k-point parallelisation. Initial testing on HECToR XT5h linked with Cray LibSci 10.5.0 gives a 22% speed up for 2 k-points in parallel and a 21% speed up for 4 k-points in parallel.

The following achievement may be beneficial to other DFT codes on HECToR:

  • A potential complication in Methfessel-Paxton smearing was discovered, in that there are possibilities of non-unique Fermi energies. The standard implementation could only pick a random one if this situation arises. We have introduced a search algorithm that will always find the lowest Fermi energy, and hence addresses the issue.

Please see PDF or HTML for a report which summarises this project.