A domain-agnostic approach to software for scientists
When entering the field of highly specialized scientific disciplines, software development tends to follow rules shared and agreed within that specific scientific community, which, however, are often not reusable by others. The goal of TREX is to reimplement the algorithms in a domain-agnostic way such that HPC experts can easily provide the most efficient implementation for exascale hardware.
Within the TREX project, state-of-the-art programs for quantum Monte Carlo (QMC) calculations are analysed to identify key algorithms to be then implemented in a human-readable, open-source software QMCkl library. The library is further optimized for future exascale supercomputers by computer scientists of the TREX project. The QMC codes within TREX are at different stages of software development but are all algorithmically extremely advanced and uniquely powerful in the landscape of electronic structure methods.
These codes will be fully integrated in the TREX software platform as inter-operable autonomous tools that can be readily interfaced with each other and with the optimized exascale-enabling QMCkl library. The computational kernels of the QMCkl library will be used by all QMC codes via a common application programming interface (API).
All TREX software (codes and libraries) follows an open-source development model. The libraries are released under the BSD license facilitating their introduction in commercial codes and allowing private companies to provide tuned versions to their customers. The high-performance library is developed in the C/C++ programming language and a C API.
We expect that the flexible, open, and inclusive European software-development model of TREX will greatly enlarge the pool of potential users and developers of these quantum chemical methodologies for extreme accuracy in Europe and worldwide. Hence, we aim to act as a nucleation center for the larger quantum chemical community of exascale applications. In particular, the creation of a well-documented and self-contained high-performance library will incentivise widely used quantum chemical application codes to adopt QMCkl an external module for QMC calculations.
The TREX project adopts the design principles of the extremely successful BLAS/Lapack libraries, which consists in separating the performance-critical numerical algorithms written by the High Performance Computing (HPC) experts from the more abstract quantum chemistry method program layers written by the scientists. The QMC specialists develop a human-readable implementation of the QMCkl library with their codes. The HPC experts then focus on a high-performance implementation of the same library, which can be linked in the QMC codes as replacement of the human-readable one. This separation frees the HPC developers from constraints in their implementation, having only to guarantee that each function produces the same results as the one in the reference library. Moreover, the modular program structure offers ideal conditions for performance optimization. The high-level functions in the library make calls to functions from the lower level(s) and, thus, will enable the HPC experts to handle efficiently the memory transfers from the CPU to the accelerators, possibly offloading the complete calculation on the accelerator. In the long run all software developers in the field of QMC will benefit from this library.
Within three years, the European quantum Monte Carlo codes will be equipped with the QMCkl high-performance library provided by the TREX project, enabling massively parallel QMC calculations to be run routinely on the world’s largest supercomputers.