BIGDFT is an electronic structure pseudopotential code that employs Daubechies wavelets as a computational basis, designed for usage on massively parallel architectures. It features high-precision cubic-scaling DFT functionalities enabling treatment of molecular, slab-like as well as extended systems, and efficiently supports hardware accelerators such as GPUs since 2009. Also, it features a linear-scaling algorithm that employs
adaptive Support Functions (generalized Wannier orbitals) enabling the treatment of system of many thousand atoms. The code is developed and released as a software suite made of independent, interoperable components, some of which have already been linked and distributed in other DFT codes.
The BigDFT package is used in production for eight years, mainly in the domain of structure prediction calculations. The recent activities of the BigDFT consortium, performed in the context of various EU projects, have already concentrated some effort in finding solutions for present-day problems for HPC at the petascale level, either from the Developers and Users perspectives. Among the various actions, it is worth to mention,
in particular, that the entire code package has been restructured and redesigned such as to be
- Able to perform highly scalable and very accurate Density Functional Theory Calculations in the many thousand atoms regime with linear scaling computational performances [JCP – PCCP];
- Distributed as a collection of independent pieces of software, packaged in separated modules, some of which have already been used and linked in third party softwares, with MAX flagship codes QE and SIESTA among them [CheSS – PSolver];
- Able to adapt the low-level computational kernels (i.e. wavelet convolutions) to recent (and potentially disruptive) HPC architectures towards kernels Auto-Tuning and Source-To-Source optimization, performed via the BOAST software package in connection with EU consortia since the first Mont-Blanc EU project. The primary goal of the BOAST metaprogramming framework is to simplify the optimization of computing kernels for HPC applications. The main idea is to use a high-level language to define an application program interface (API) of computing kernels (subroutines and their related arguments), but also to describe the way to optimize it (unrolling, vectorization, parametrization, templating, and tiling). BOAST will then test automatically the many possibilities of optimizations and choose the best one after validation from a reference version. Then BOAST can generate pieces of Fortran, C, Open Computing Language (OpenCL), or CUDA codes, and test them for a specific target architecture.
BIGDFT is freely available under the GPL license. The code is distributed either in form of tarball releases as well as directly available from the developers source repository. As of March 2018 the papers associated to the software outcomes of the BigDFT developers consortium have been cited 488 times (source: Web of Science). The BIGDFT web site provides numerous resources for additional information on the code usage
and scientific output.
BIGDFT is mainly written in Fortran, with some modules employing OpenCL, CUDA. It also provides C and Python bindings to its high level routines. From its initial conception the code has been parallelized with a distributed and shared memory paradigms (MPI and OpenMP). It is a code that exhibit excellent parallel scaling on supercomputers. Since the early days of the GPGPU computing (from 2009) the code takes profit of hardware accelerators such as GPUs. Such acceleration is constantly improved and it has recently been inserted in the PSolver package for the efficient calculation of the Fock exchange term. The linear scaling version of the code shows also excellent scaling and state-of-the-art performance figures for time-to-solution for a complete SCF calculation.