Evolution of FLASH, a multi-physics scientific simulation code for high-performance computing

Anshu Dubey, Katie Antypas, Alan C. Calder, Chris Daley, Bruce Fryxell, J. Brad Gallagher, Donald Q. Lamb, Dongwook Lee, Kevin Olson, Lynn B. Reid, Paul Rich, Paul M. Ricker, Katherine M. Riley, Robert Rosner, Andrew Siegel, Noel T. Taylor, Klaus Weide, Francis Timmes, Natasha Vladimirova, John Zuhone

Research output: Contribution to journalArticle

18 Scopus citations

Abstract

The FLASH code has evolved into a modular and extensible scientific simulation software system over the decade of its existence. During this time it has been cumulatively used by over a thousand researchers to investigate problems in astrophysics, cosmology, and in some areas of basic physics, such as turbulence. Recently, many new capabilities have been added to the code to enable it to simulate problems in high-energy density physics. Enhancements to these capabilities continue, along with enhancements enabling simulations of problems in fluid-structure interactions. The code started its life as an amalgamation of already existing software packages and sections of codes developed independently by various participating members of the team for other purposes. The code has evolved through a mixture of incremental and deep infrastructural changes. In the process, it has undergone four major revisions, three of which involved a significant architectural advancement. Along the way, a software process evolved that addresses the issues of code verification, maintainability, and support for the expanding user base. The software process also resolves the conflicts arising out of being in development and production simultaneously with multiple research projects, and between performance and portability. This paper describes the process of code evolution with emphasis on the design decisions and software management policies that have been instrumental in the success of the code. The paper also makes the case for a symbiotic relationship between scientific research and good software engineering of the simulation software.

Original languageEnglish (US)
Pages (from-to)225-237
Number of pages13
JournalInternational Journal of High Performance Computing Applications
Volume28
Issue number2
DOIs
StatePublished - May 2014

    Fingerprint

Keywords

  • FLASH
  • community code
  • multi-physics
  • multi-scale
  • scientific application code
  • software evolution

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture

Cite this

Dubey, A., Antypas, K., Calder, A. C., Daley, C., Fryxell, B., Gallagher, J. B., Lamb, D. Q., Lee, D., Olson, K., Reid, L. B., Rich, P., Ricker, P. M., Riley, K. M., Rosner, R., Siegel, A., Taylor, N. T., Weide, K., Timmes, F., Vladimirova, N., & Zuhone, J. (2014). Evolution of FLASH, a multi-physics scientific simulation code for high-performance computing. International Journal of High Performance Computing Applications, 28(2), 225-237. https://doi.org/10.1177/1094342013505656