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.


George K. Thiruvathukal, Professor of Computer Science
Loyola University, Chicago


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 (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

Software Engineering for Science Workshop Series

Software Sustainability Institute

Previous Work

Jeff Carver and George K. Thiruvathukal, Software Engineering Need not be Difficult,

Jeffrey C. Carver, Neil P. Chue Hong, George K. Thiruvathukal, Software Engineering for Science, October 20, 2016 by Chapman and Hall/CRC.

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