The Exascale Computing Project has published a new report to foster and advance software productivity and sustainability for extreme-scale computational science. The report introduces work by the IDEAS-ECP project, explaining its approach, outcomes, and impact of work in partnership with the ECP and broader computational science community.
The DOE Exascale Computing Project (ECP) provides a unique opportunity to advance computational science through an accelerated growth phase in extreme-scale computing. However, disruptive changes in computer architectures and the complexities of tackling new frontiers in extreme-scale modeling, simulation, and analysis present daunting challenges to the productivity of software developers and the sustainability of software artifacts.
Target readers are all those who care about the quality and integrity of scientific discoveries based on simulation and analysis. While the difficulties of extreme-scale computing intensify software challenges, issues are relevant across all computing scales, given universal increases in complexity and the need to ensure the trustworthiness of computational results.
This report summarizes technical and cultural challenges in scientific software productivity and sustainability. We introduce work by the IDEAS project within ECP (called IDEAS-ECP, ) to foster and advance software productivity and sustainability for extreme-scale CSE, including partnerships with complementary groups. IDEAS goals are to qualitatively change the culture of extreme-scale computational science and to provide a foundation (through software productivity methodologies and an extreme-scale software ecosystem) that enables transformative and reliable next-generation predictive science and decision support.
Work spans four synergistic strategies:
- Curating methodologies to improve software practices of individuals and teams
- Incrementally and iteratively upgrading software practices
- Establishing software communities
- Engaging in community outreach
Because these issues are relevant throughout all scales of scientific computing, we aim for broad readership—and we hope that these experiences and resources may be useful in other contexts, as individuals and teams work within their own projects, institutions, and communities to advance software practices and overall productivity.