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

15 Citations (Scopus)

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

Fingerprint

Multiphysics
Physics
High Performance
Cosmology
Astrophysics
Computing
Fluid structure interaction
Maintainability
Software packages
Software engineering
Simulation
Turbulence
Software Process
Simulation Software
Enhancement
Amalgamation
Portability
Software Engineering
Simulation System
Software Package

Keywords

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

ASJC Scopus subject areas

  • Software
  • Hardware and Architecture
  • Theoretical Computer Science

Cite this

Evolution of FLASH, a multi-physics scientific simulation code for high-performance computing. / Dubey, Anshu; Antypas, Katie; Calder, Alan C.; Daley, Chris; Fryxell, Bruce; Gallagher, J. Brad; Lamb, Donald Q.; Lee, Dongwook; Olson, Kevin; Reid, Lynn B.; Rich, Paul; Ricker, Paul M.; Riley, Katherine M.; Rosner, Robert; Siegel, Andrew; Taylor, Noel T.; Weide, Klaus; Timmes, Francis; Vladimirova, Natasha; Zuhone, John.

In: International Journal of High Performance Computing Applications, Vol. 28, No. 2, 2014, p. 225-237.

Research output: Contribution to journalArticle

Dubey, A, Antypas, K, Calder, AC, Daley, C, Fryxell, B, Gallagher, JB, Lamb, DQ, Lee, D, Olson, K, Reid, LB, Rich, P, Ricker, PM, Riley, KM, Rosner, R, Siegel, A, Taylor, NT, 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, vol. 28, no. 2, pp. 225-237. https://doi.org/10.1177/1094342013505656
Dubey, Anshu ; Antypas, Katie ; Calder, Alan C. ; Daley, Chris ; Fryxell, Bruce ; Gallagher, J. Brad ; Lamb, Donald Q. ; Lee, Dongwook ; Olson, Kevin ; Reid, Lynn B. ; Rich, Paul ; Ricker, Paul M. ; Riley, Katherine M. ; Rosner, Robert ; Siegel, Andrew ; Taylor, Noel T. ; Weide, Klaus ; Timmes, Francis ; Vladimirova, Natasha ; Zuhone, John. / Evolution of FLASH, a multi-physics scientific simulation code for high-performance computing. In: International Journal of High Performance Computing Applications. 2014 ; Vol. 28, No. 2. pp. 225-237.
@article{cca1f946a7ac4460b0434dd5a94dfc8a,
title = "Evolution of FLASH, a multi-physics scientific simulation code for high-performance computing",
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.",
keywords = "community code, FLASH, multi-physics, multi-scale, scientific application code, software evolution",
author = "Anshu Dubey and Katie Antypas and Calder, {Alan C.} and Chris Daley and Bruce Fryxell and Gallagher, {J. Brad} and Lamb, {Donald Q.} and Dongwook Lee and Kevin Olson and Reid, {Lynn B.} and Paul Rich and Ricker, {Paul M.} and Riley, {Katherine M.} and Robert Rosner and Andrew Siegel and Taylor, {Noel T.} and Klaus Weide and Francis Timmes and Natasha Vladimirova and John Zuhone",
year = "2014",
doi = "10.1177/1094342013505656",
language = "English (US)",
volume = "28",
pages = "225--237",
journal = "International Journal of High Performance Computing Applications",
issn = "1094-3420",
publisher = "SAGE Publications Inc.",
number = "2",

}

TY - JOUR

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

AU - Dubey, Anshu

AU - Antypas, Katie

AU - Calder, Alan C.

AU - Daley, Chris

AU - Fryxell, Bruce

AU - Gallagher, J. Brad

AU - Lamb, Donald Q.

AU - Lee, Dongwook

AU - Olson, Kevin

AU - Reid, Lynn B.

AU - Rich, Paul

AU - Ricker, Paul M.

AU - Riley, Katherine M.

AU - Rosner, Robert

AU - Siegel, Andrew

AU - Taylor, Noel T.

AU - Weide, Klaus

AU - Timmes, Francis

AU - Vladimirova, Natasha

AU - Zuhone, John

PY - 2014

Y1 - 2014

N2 - 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.

AB - 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.

KW - community code

KW - FLASH

KW - multi-physics

KW - multi-scale

KW - scientific application code

KW - software evolution

UR - http://www.scopus.com/inward/record.url?scp=84900526473&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84900526473&partnerID=8YFLogxK

U2 - 10.1177/1094342013505656

DO - 10.1177/1094342013505656

M3 - Article

AN - SCOPUS:84900526473

VL - 28

SP - 225

EP - 237

JO - International Journal of High Performance Computing Applications

JF - International Journal of High Performance Computing Applications

SN - 1094-3420

IS - 2

ER -