Software Engineering Practices

Progress in scientific research, in part, depends upon progress in scientific software development, which is often done in high-performance computing environments, such as clusters, supercomputers, and the cloud. Embracing best practices in software engineering will be necessary to ensure robust HPC solutions, owing to the innate complexity present in concurrent/parallel/distributed software development in general. While many associate software engineering with stereotypical monolithic software development processes (e.g., waterfall, spiral, etc.), we argue that embracing SE does not require a one-size-fits-all model and is worthy of community attention.

Some questions we plan to address in this space include, but are not limited to: (1) What SE process is best suited to typical HPC software development? (2) Given the mathematical/scientific nature of most HPC software development, how effective are modern code-testing techniques for addressing this domain? (3) How well can traditional SE methods support important quality (and other) metrics needed in HPC software development? (4) What impact does the use of SE methodology have on important considerations such as quality, sustainability (of the software itself) and reproducibility (a peer TCHPC initiative)? The objective of the SE initiative is to have a conversation to advance impactful SE practices within the HPC community.

Lead

George K. Thiruvathukal, Professor of Computer Science
Loyola University, Chicago
email: gkt@cs.luc.edu

Activities

As a first step, we would like to start a conversation about best practices, tools, experiences, etc. To facilitate this, we have started a Slack group.

Please e-mail gkt@cs.luc.edu (after August 18, 2017, please) to be invited to our Slack group. Please make sure to use an official e-mail address from your institution and include your name, department, affiliation, and web page URL in the body of your e-mail message.

We plan to summarize the Slack conversation on the TCHPC website.

Related Efforts

Computing in Science and Engineering Software Engineering Track
www.computer.org/cms/Computer.org/ComputingNow/docs/2016-software-engineering-track.pdf

Software Engineering for Science Workshop Series
www.se4science.org/workshops/

Software Sustainability Institute
www.software.ac.uk/

Previous Work

Jeff Carver and George K. Thiruvathukal, Software Engineering Need not be Difficult, figshare.com/articles/WSSSPE/830442

Jeffrey C. Carver, Neil P. Chue Hong, George K. Thiruvathukal, Software Engineering for Science, October 20, 2016 by Chapman and Hall/CRC.
www.crcpress.com/Software-Engineering-for-Science/Carver-Hong-Thiruvathukal/p/book/9781498743853

Please e-mail gkt@cs.luc.edu to suggest additional efforts and directly-related software engineering work targeting high-performance and/or scientific computing.