The QMCkl library for software developers and HPC experts

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).

Open Source   

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.


In this video interview, Antony Scemama introduces us to TREX QMCKl library