1 Approved for unlimited release as SAND 2010-3325 C Verification Practices for Code Development Teams Greg Weirs Computational Shock and Multiphysics.

Slides:



Advertisements
Similar presentations
Generation of Pareto Optimal Ensembles of Calibrated Parameter Sets for Climate Models Keith Dalbey, Ph.D. Sandia National Labs, Dept 1441, Optimization.
Advertisements

System Integration Verification and Validation
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Page 1 APP + Trilinos Integration Status, Opportunities, and Challenges Roscoe A. Bartlett Department of Optimization.
Systems Analysis, Prototyping and Iteration Systems Analysis.
Ensemble Emulation Feb. 28 – Mar. 4, 2011 Keith Dalbey, PhD Sandia National Labs, Dept 1441 Optimization & Uncertainty Quantification Abani K. Patra, PhD.
Alternate Software Development Methodologies
Chapter 15 Application of Computer Simulation and Modeling.
Problem Uncertainty quantification (UQ) is an important scientific driver for pushing to the exascale, potentially enabling rigorous and accurate predictive.
Exploring Communication Options with Adaptive Mesh Refinement Courtenay T. Vaughan, and Richard F. Barrett Sandia National Laboratories SIAM Computational.
Discrete-Event Simulation: A First Course Steve Park and Larry Leemis College of William and Mary.
Verification of GIMP with Manufactured Solutions Philip Wallstedt – Jim Guilkey –
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Introduction to Software Testing
Design, Implementation and Maintenance
SAND Number: P Sandia is a multi-program laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department.
VENDORS, CONSULTANTS AND USERS
Page - 1 Rocketdyne Propulsion & Power Role of EASY5 in Integrated Product Development Frank Gombos Boeing Canoga Park, CA.
Improving Contaminant Mixing Models For Water Distribution Pipe Networks Siri Sahib S. Khalsa University of Virginia Charlottesville, VA
Automated Computer Account Management in Active Directory June 2 nd, 2009 Bill Claycomb Systems Analyst Sandia National Laboratories Sandia is a multiprogram.
Challenges for Assessments of Modeling and Simulation in the Large Greg Weirs Sandia National Laboratories P.O. Box 5800, Albuquerque, NM 87185
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
NASA Langley Research Center - 1Workshop on UQEE Prediction of Computational Quality for Aerospace Applications Michael J. Hemsch, James M. Luckring, Joseph.
LTE Review (September 2005 – January 2006) January 17, 2006 Daniel M. Dunlavy John von Neumann Fellow Optimization and Uncertainty Estimation (1411) (8962.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
Chapter 2 The process Process, Methods, and Tools
SAINT2002 Towards Next Generation January 31, 2002 Ly Sauer Sandia National Laboratories Sandia is a multiprogram laboratory operated by Sandia Corporation,
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
CPIS 357 Software Quality & Testing
Software Configuration Management (SCM)
Version, Date, POC Name 1 Purpose: To investigate multiscale flow discretizations that represent both the geometry and solution variable using variable-order.
Principles of Scalable HPC System Design March 6, 2012 Sue Kelly Sandia National Laboratories Abstract: Sandia National.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
Breakdown voltage calculations using PIC-DSMC Paul S. Crozier, Jeremiah J. Boerner, Matthew M. Hopkins, Christopher H. Moore, Lawrence C. Musson Sandia.
Page 1 Trilinos Release Improvement Issues Roscoe A. Bartlett Department of Optimization & Uncertainty Estimation Trilinos.
Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation,
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
A Code Verification Checklist P. Knupp and C. Ober Software Engineering Seminar Series May 13, 2008 SAND P.
Strategies for Solving Large-Scale Optimization Problems Judith Hill Sandia National Laboratories October 23, 2007 Modeling and High-Performance Computing.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
VENDORS, CONSULTANTS AND USERS. WHY CAN’T COMPANIES DEVELOP THEIR OWN ERP PACKAGES? To develop an ERP package is a complex & time consuming activity which.
NCHRP Project Development of Verification and Validation Procedures for Computer Simulation use in Roadside Safety Applications SURVEY OF PRACTITIONERS.
LAMMPS Users’ Workshop
Danny Dunlavy, Andy Salinger Sandia National Laboratories Albuquerque, New Mexico, USA SIAM Parallel Processing February 23, 2006 SAND C Sandia.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Page 1 Almost Continuous Integration for the Co-Development of Highly Integrated Applications and Third Party Libraries Roscoe A. Bartlett
Faculty Coach: Professor Martinez  Justin Mahar  Chris Baum  Greg Schmitz  Adam Abdelhamed.
Site Report DOECGF April 26, 2011 W. Alan Scott Sandia National Laboratories Sandia National Laboratories is a multi-program laboratory managed and operated.
Click to add text Systems Analysis, Prototyping and Iteration.
Page 1 Integration Strategies for Computational Science & Engineering Software Roscoe A. Bartlett Department of Optimization.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Multifidelity Optimization Using Asynchronous Parallel Pattern Search and Space Mapping Techniques Genetha Gray*, Joe Castro i, Patty Hough*, and Tony.
SCIENTIFIC DISCOVERY EXPERIMENT THEORY SCIENTIFIC COMPUTING 1.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
5 September 2002AIAA STC Meeting, Santa Fe, NM1 Verification and Validation for Computational Solid Mechanics Presentation to AIAA Structures Technical.
Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation,
NON-PROPRIETARY DATA NASA SBIR/STTR Technologies A Mesh Adaptation and Shape Optimization on Unstructured Meshes PI: William M. Eppard CRM SOLUTIONS,
Automated File Server Disk Quota Management May 13 th, 2008 Bill Claycomb Computer Systems Analyst Infrastructure Computing Systems Department Sandia is.
Computational Fluid Dynamics Lecture II Numerical Methods and Criteria for CFD Dr. Ugur GUVEN Professor of Aerospace Engineering.
Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation,
OPERATING SYSTEMS CS 3502 Fall 2017
Software testing
Different Types of Testing
Software Development Life Cycle
VENDORS, CONSULTANTS AND USERS
Testing and Test-Driven Development CSC 4700 Software Engineering
What is a System? A system is a collection of interrelated components that work together to perform a specific task.
Presentation transcript:

1 Approved for unlimited release as SAND C Verification Practices for Code Development Teams Greg Weirs Computational Shock and Multiphysics Department Sandia National Laboratories 25 May 2010 Sandia is a multiprogram laboratory operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL85000.

2 My Experience Computational Fluid Dynamics (CFD) of reacting flows – aerospace engineering U. of Chicago FLASH code – astrophysics Sandia ALEGRA code – Solid Dynamics + Magneto- Hydro-Dynamics (MHD). Most examples I will show are from ALEGRA. Your mileage may vary.

3 Expectation of Quality The public The customer Analysts Expectations of the accuracy of scientific simulations vary. Who are you trying to convince? Code developers – My house – My job – The company – Your house – Some money I’d bet X on the result; X= Uncertainty Quantification Error bars on simulation results Result converges with refinement Mesh refinement Eyeball norm Trends are reasonable Result is plausible Result is not ridiculous Code returns a result

4 Context What makes engineering physics modeling and simulation software different?  Our simulations provide approximate solutions to problems for which we do not know the exact solution. This leads to two more questions: How good are the approximations? How do you test the software?

5 What is code verification? How good is your code? Has the algorithm been correctly implemented? How can the algorithm be improved? Governing Equations (IDEs) Governing Equations (IDEs) Discrete Equations Numerical Solutions Algorithms (FEM, ALE, AMG, etc.) Implementation (C++, Linux, MPI, etc.) Code Verification SQE

6 What else do I need? SA/UQ Validation Solution Verification How good is your simulation? How good is your code? How large is the numerical error? Are these equations adequate? Governing Equations (IDEs) Governing Equations (IDEs) Discrete Equations Numerical Solutions Code Verification SQE

7 Uncertain Outputs from Uncertain Inputs Governing Equations (PDEs) Governing Equations (PDEs) Discrete Equations Numerical Solutions Inputs: parameters to governing equations, algorithms, and discrete equations Outputs: metrics of interest Uncertainty Quantification and Code Verification are nearly orthogonal

8 Informal Definitions Software Quality Engineering (SQE) Manage software complexity Code VerificationAssess algorithms and their implementation vs. exact solutions Solution VerificationEstimate discretization error ValidationAssess physics models vs. experimental data SA / UQAssess sensitivity of answer to input parameters An ingredients list for predictive simulation, not a menu.

9 ALEGRA Test Suite Unit tests Regression Verification Performance (Scaling) Performance (Scaling) Prototypes Validation SA/UQ SQEApps

10 The Gauntlet “Prototype” simulations contributed by ALEGRA users Have no exact solution User-defined success criteria for each case Might represent a capability we want to maintain Might agitate our current capabilities The Usual Suspects…

11 The Production Line Over time, the ALEGRA code team has developed a software infrastructure to support testing Ability to run a large number of simulations repeatedly Ability to compare results with a baseline Ability to report pass/diff/fail Run on platforms of interest at regular intervals

12 The Production Line Code verification tests further require: Ability to handle different types of reference solutions Ability to compute error norms and convergence rates Flexibility for computing specialized metrics for specific test problems *Some of these capabilities are helpful for solution verification

13 Verification Is Not Free Principal Costs: Infrastructure development Test development Recurring Costs – A tax on development: Maintenance of existing tests Code development becomes a very deliberate process

14 Verification As A Continuous Process To set up a verification problem once takes significant effort – steep learning curve, infrastructure is not in place Running a verification analysis you have maintained takes minimal work Without regular, automated verification testing, verification results go stale quickly - they do not reflect the current state of the code

15 Code Verification Identifies Algorithmic Weaknesses One purpose of code verification is to find bugs. Code verification often finds bugs that are subtle and otherwise difficult to identify. The eyeball norm finds most obvious bugs quickly. Perhaps a better use of code verification is to guide code development. Some bugs are algorithmic and conceptual. Code verification identifies algorithmic weaknesses. Large errors are a weakness.

16 Code Developers Do Code Verification Code developers best understand the numerical methods they are using Code developers are best able to use the results of code verification (and other forms of assessment) to improve the algorithms they use Code verification as an accreditation exercise has no lasting impact on code quality

17 Verification Testing Must Be a Team Ethic Discipline is required to keep a “clean” test suite – to keep all tests passing; “stop-the-line” mentality If only part of the team values verification, that part is always carrying the other developers Maintaining an automated verification test suite is probably necessary but definitely not sufficient Developers should be using verification tests interactively

18 Costs In Context Code developers retain practices that justify their expense. Consider version control software (CVS, SVN, git…): 1.Do you remember a time before you used it? 2.Would you consider going back? Verification should be as critical

19 Sustainable Verification Continuous verification is a necessary practice for code quality Code verification is the foundation for other forms of assessment Verification guides development Sustainable Verification: The benefits of verification outweigh the costs.