Computational science and engineering communities develop complex applications to solve scientific and engineering challenges. These applications have many moving parts that need to interoperate with one another. These communities are facing new challenges created by the confluence of disruptive changes in computing architectures, demand for greater scientific reproducibility, and new opportunities for higher fidelity simulations with multi-physics and multi-scales. Architecture changes require new software design and implementation strategies, and significant refactoring of existing code. Reproducibility demands more rigor across the entire software endeavor. Code coupling requires aggregate team interactions including integration of software processes and practices. These challenges demand large investments in scientific software development and improved practices. In this presentation I will describe challenges of improving software productivity in computational science projects, especially those that involve high performance computing. I will also describe various efforts in mitigating these challenges through distillation of practices that have been found to be effective, information dissemination, and engagement with the relevant communities. The topics covered will include software lifecycle including software design for longevity, and a software process designed for reproducibility and sustainability.
BIO Sketch | Anshu Dubey is a computer scientist in the mathematics and computer science division at Argonne National Laboratory and a Senior Scientist at large at the University of Chicago. She leads the earth and space sciences sub-area of applications development in the US-DOE Exascale Computing Project. She is also the chief software architect for FLASH, a multiphysics multiscale HPC software that is used by multiple science and engineering domains as their community code. She is interested in all aspects of HPC scientific software including the numerics, design and productivity issues.