
DCA++ project: Sustainable and scalable development of a high-performance research code
Author(s) -
Urs R. Hähner,
Giovanni Balduzzi,
Peter Doak,
Thomas Maier,
Raffaele Solcà,
T. C. Schulthess
Publication year - 2019
Publication title -
journal of physics. conference series
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.21
H-Index - 85
eISSN - 1742-6596
pISSN - 1742-6588
DOI - 10.1088/1742-6596/1290/1/012017
Subject(s) - computer science , codebase , scalability , agile software development , software engineering , software , multidisciplinary approach , task (project management) , software development , code (set theory) , systems engineering , computational science , data science , engineering , programming language , social science , set (abstract data type) , database , sociology
Scientific discoveries across all fields, from physics to biology, are increasingly driven by computer simulations. At the same time, the computational demand of many problems necessitates large-scale calculations on high-performance supercomputers. Developing and maintaining the underlying codes, however, has become a challenging task due to a combination of factors. Leadership computer systems require massive parallelism, while their architectures are diversifying. New sophisticated algorithms are continuously developed and have to be implemented efficiently for such complex systems. Finally, the multidisciplinary nature of modern science involves large, changing teams to work on a given codebase. Using the example of the DCA++ project, a highly scalable and efficient research code to solve quantum many-body problems, we explore how computational science can overcome these challenges by adopting modern software engineering approaches. We present our principles for scientific software development and describe concrete practices to meet them, adapted from agile software development frameworks.