1. The CECAM Electronic Structure Library and the modular software development paradigm
- Author
-
Oliveira, Micael J. T., Papior, Nick, Pouillon, Yann, Blum, Volker, Artacho, Emilio, Caliste, Damien, Corsetti, Fabiano, de Gironcoli, Stefano, Elena, Alin M., Garcia, Alberto, Garcia-Suarez, Victor M., Genovese, Luigi, Huhn, William P., Huhs, Georg, Kokott, Sebastian, Kucukbenli, Emine, Larsen, Ask H., Lazzaro, Alfio, Lebedeva, Irina V., Li, Yingzhou, Lopez-Duran, David, Lopez-Tarifa, Pablo, Luders, Martin, Marques, Miguel A. L., Minar, Jan, Mohr, Stephan, Mostofi, Arash A., O'Cais, Alan, Payne, Mike C., Ruh, Thomas, Smith, Daniel G. A., Soler, Jose M., Strubbe, David A., Tancogne-Dejean, Nicolas, Tildesley, Dominic, Torrent, Marc, and Yu, Victor Wen-zhe
- Subjects
Condensed Matter - Materials Science ,Physics - Computational Physics - Abstract
First-principles electronic structure calculations are very widely used thanks to the many successful software packages available. Their traditional coding paradigm is monolithic, i.e., regardless of how modular its internal structure may be, the code is built independently from others, from the compiler up, with the exception of linear-algebra and message-passing libraries. This model has been quite successful for decades. The rapid progress in methodology, however, has resulted in an ever increasing complexity of those programs, which implies a growing amount of replication in coding and in the recurrent re-engineering needed to adapt to evolving hardware architecture. The Electronic Structure Library (\esl) was initiated by CECAM (European Centre for Atomic and Molecular Calculations) to catalyze a paradigm shift away from the monolithic model and promote modularization, with the ambition to extract common tasks from electronic structure programs and redesign them as free, open-source libraries. They include "heavy-duty" ones with a high degree of parallelisation, and potential for adaptation to novel hardware within them, thereby separating the sophisticated computer science aspects of performance optimization and re-engineering from the computational science done by scientists when implementing new ideas. It is a community effort, undertaken by developers of various successful codes, now facing the challenges arising in the new model. This modular paradigm will improve overall coding efficiency and enable specialists (computer scientists or computational scientists) to use their skills more effectively. It will lead to a more sustainable and dynamic evolution of software as well as lower barriers to entry for new developers., Comment: Revised version as finally accepted by J. Chem. Phys. to appear within the Special Topic in Electronic Structure Software (version prior to JCP's typesetting and proofs)
- Published
- 2020
- Full Text
- View/download PDF