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. The accuracy and reliability of results produced by the scientific software depends not only on the individual components behaving correctly, but also on the validity of their interactions. Therefore, a rigorous software process is a critical requirement for scientific productivity using such software. However, most science teams struggle to find a good solution for themselves, partly due to lack of training and partly due to lack of resources within the team. IDEAS (www.ideas-productivity.org), a DOE-funded project aimed toward increasing scientific software productivity, has participants who have faced and resolved many of these challenges. Many of these participants come from scientific software projects (including hypre, PETSc, SuperLU and Trilinos) that have succeeded in instituting a strong culture of software engineering, where it is perceived as an asset in producing scientific results rather than a tax on limited resources. This tutorial leverages the combined expertise of various IDEAS project members to provide a methodology for devising a software process that meets the needs of individual projects.
Purpose of the course (benefits for the attendees)
This tutorial will provide information on best practices in software engineering explicitly tailored for Computational Science and Engineering (CSE). Goals are improving the productivity of those who develop CSE software and increasing the sustainability of software artefacts. 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).
About the tutors
Anshu Dubey recieved her B.Tech in Electrical Engineering from IIT Delhi in India, and her Ph.D. in computer science from Old Dominion University in 1993. She joined the University of Chicago as a post-doctoral appointee in the Astronomy and Astrophysic department. She later joined the Flash Center for Computational Science where she was computer science/applications group lead from 2003-2013 and associate director from 2009-2013. From 2013 to 2015 she was on the staff at Lawrence Berkeley National Laboratory, where she served as work lead and computer systems engineer in the Applied Numerical Algorithms Group. In 2015 she joined the Mathematics and Computer Science Division at Argonne as a Computer Scientist, and was also named a senior fellow at the Computational Institute. She has two decades of experience working in the multiphysics simulations. Her current focus in CSE is on software engineering to enhance both scientific and software productivity of computational scientists.
Rinku Gupta received her M.S. in computer science from Ohio State University in 2002. She joined Dell Inc. as a high performance computing specialist in 2003 where she helped design and develop commodity clustering solutions. In 2006, she joined the Mathematics and Computer Science Division at Argonne National Laboratory. She is currently senior scientic development specialist with focus on research in three different domains related to (a) resiliency and fault tolerance in supercomputing, (b) high performance computing middleware libraries and (c) software engineering targeted to research methodologies for software productivity.
Motivation and Overview
Git - Introduction and advanced features
Testing and Verification
|17:00-18:00||Testing and Verification|
Agile methodologies via Kanban and GitHub
Software lifecycle, documentation and community impact
Capacity and Fees
- See the links below for how to get to the campus of VŠB - Technical University Ostrava and to the IT4Innovations building.
- Documentation for IT4Innovations' computer systems is available at https://docs.it4i.cz/.