Presenters: David Bernholdt (ORNL), Anshu Dubey (ANL), Mike Heroux (SNL), Alicia Klinvex (SNL), Lois Curfman McInnes (ANL)

Abstract: CSE software—crosscutting technology that connects advances in mathematics, computer science, and domain-specific science and engineering—is a foundation of sustained CSE collaboration and scientific progress. However, the need for increasingly broad functionality on ever more complex computer architectures creates daunting challenges for software development and sustainability.

This tutorial provides information on best practices in software engineering explicitly tailored for CSE. Goals are improving the productivity of those who develop CSE software and increasing the sustainability of software artifacts. We will discuss practices that are relevant for projects of all sizes, with emphasis on small teams (for example, a faculty member and collaborating students). Topics are:

  • Why Effective Software Practices Are Essential for CSE Projects
  • An Introduction to Software Licensing
  • Better (Small) Scientific Software Teams
  • Improving Reproducibility through Better Software Practices
  • Testing of HPC Scientific Software