OP-E7.2 New Infrastructure and Examples of Code Verification in E3SM

                    

Poster Title

New Infrastructure and Examples of Code Verification in E3SM

AuthorsAndreas Wilke (Unlicensed)Hui WanBill Spotz (Unlicensed)Gregory Barnett (Unlicensed)Peter CaldwellAnshu Dubey (Unlicensed)Richard Easter (Unlicensed)Carlo Graziani (Unlicensed), Brian Griffin, Vince LarsonLance Rayborn (Unlicensed)Sean SantosRachel Scanza (Unlicensed)Jian Sun (Unlicensed)Kai ZhangAndy Salinger
First AuthorAndreas Wilke (Unlicensed)
Session TypeE3SM session
Session IDE7
Submission TypePresentation
GroupInfrastructure / CMDV
Experiment
Poster Link




Abstract

Verification is the process of determining that a code correctly represents the developer’s conceptual description and specifications. From a software engineering perspective, verification is a crucial part of the development and maintenance process that builds confidence in the software. From an Earth system modeling perspective, verification helps ensure that the simulations represent the intended physics rather than numerical artifacts or coding bugs. We postulate that most E3SM developers do some verification (i.e., testing) of their code as they write it, but those tests typically have very limited coverage; they are often not formalized, shared with others, or captured by a standard testing system.

Started as part of the CMDV-Software project and continuing into E3SM Phase II, a comprehensive attempt is being made to build an infrastructure that encourages the formalization of verification in E3SM. Our infrastructure contains a flexible “test-runner” that manages the work flow of code deployment and compilation, the execution of verification tests, and the reporting of test results to a dashboard. The test-runner is configurable and can be run on demand during code development or on a regular basis as part of the project’s regression testing. A second component of the infrastructure is the use of Jupyter notebook to provide “literate programming” documentation and control of the model and tests. On the Earth system modeling side, verification tests are being developed for three parameterizations in the atmosphere model: the aerosol module MAM, the turbulence and clouds parameterization CLUBB, and the cloud microphysics parameterization package MG2. This presentation will introduce to the E3SM developers the infrastructure and a selection of the verification tests.