Paving the way towards Abinit 8 in the post-Moore's law era

15 Apr 2013

2010 has been a turning point in computer electronics, when the semiconductor chip makers decided to change strategies regarding the structuring of integrated circuits, in order to delay the confrontation with the quantum limit until 2020. This decision has put an end to the process improperly called "Moore's law". Since then, the computing power of microprocessors does not increase anymore by accelerating the individual cores, but by increasing the number of cores, while decreasing the frequency of each of these cores to maintain an acceptable power consumption. As a consequence, serial code will now run slower and slower with time, while the focus for software optimisation has now shifted to massive scaling and multi-level parallelism. Carrying out cutting-edge research and accessing the best computing centers will require an efficient scaling up to thousands of processors, which in turn will depend on a much more professional programming style. This change of paradigm will rely upon significant improvements regarding the training of developers.

Abinit has already taken the "scaling turn" over the lifetime of its version 6, both internally and through collaborations with European projects like PRACE. At the same time, there are more and more requests to reuse code coming from Abinit by other projects, as well as a pressing need to improve the test suite and the documentation, driven by the continuous growth of the community, without forgetting the creation of reference databases for scientific data. Thus, in order to be completely successful, this global evolution requires several steps introduced in this talk: further modularisation, enhanced use of highly-optimised external libraries, pruning and rewrite of legacy code, definition of clear APIs, adoption of newer and higher-quality standards, extended workflow refactoring, as well as development of a broad range of bindings to integrate Abinit in various HPC environments. Examples in connection with the build system illustrate various aspects of this evolution and evidence how the evolution of each component of Abinit is tighly bound to that of all others. The resulting picture shows how Abinit 8 might look like and will help define a roadmap to it.