Improving multi-threaded scaling of CONQUEST
ARCHER2-eCSE08-10
PI: Prof David R Bowler (University College London)
Technical staff: Dr Tuomas Koskela (University College London), Dr Ilektra Christidi (University College London), Connor Aird (University College London)
Subject Area:
Published : 2024-08-19
Density functional theory (DFT) is the most widely used quantum mechanical technique in materials modelling, and can predict the atomic and electronic structure of materials in areas as diverse as physics, chemistry, earth sciences, and biochemistry. Standard computational approaches to DFT are limited in the size of system that they can address to a few hundred atoms, which requires significant approximations or restrictions to the type of problem that can be studied.
The CONQUEST DFT code is designed to model problems with very large numbers of atoms: from several thousand atoms to millions of atoms. This eCSE project was designed to improve the performance of CONQUEST, so that it runs faster and on larger computers, enabling more challenging and interesting problems to be studied. The code is already massively parallel, but this work improves its performance on multi-core computers.
The work was able to improve the overall performance on large problems, leading to a performance that was nearly one and a half times faster. We were also able to speed up one part of the code (exact exchange) by nearly four times, which has the potential to enable very high accuracy calculations (using hybrid DFT functionals) which are both fast and scale to large sizes. This promises to unlock the ability to model large-scale problems with DFT routinely, such as the catalytic properties of gold nanoparticles on surfaces shown below.
Fig. 1 Optimised structures of (a) gold nanoparticle (923 atoms) and (b) gold nanoparticle on MgO.
Information about the code
The CONQUEST code is open source and the source code is available on GitHub with a MIT license. Installation instructions are provided in the documentation. The code can be built from source or installed with the Spack package manager on ARCHER2.