Conclusions
Overview
Teaching: 0 min
Exercises: 0 minQuestions
Objectives
Summarize learning for the design module
Final takeaways
- Requirements gathering and intentional design are indispensable for sustainable software development
- Many books and online resources available for good design principles
- Research software poses additional constraints on design because of its exploratory nature
- Scientific research software has further challenges
- High performance computing research software has even more challenges
- That are further exacerbated by the ubiquity of accelerators in platforms
- Separation of concerns at various granularities\, and abstractions enable sustainable software design
Resources
https://doi.org/10.6084/m9.figshare.13283714.v1
https://www.exascaleproject.org/event/kokkos-class-series
A Design Proposal for a Next Generation Scientific Software Framework
Software Design for Longevity with Performance Portability
Key Points
Investing in design is critical for reliable, maintainable and extensible software