Interface Contract Enforcement for Improvement of Computational Quality of Services (CQoS) for Scientific Components Li Li 1, Tamara L. Dahlgren 2, Lois.

Slides:



Advertisements
Similar presentations
Program Verification Using the Spec# Programming System ETAPS Tutorial K. Rustan M. Leino, Microsoft Research, Redmond Rosemary Monahan, NUIM Maynooth.
Advertisements

National Institute of Advanced Industrial Science and Technology Ninf-G - Core GridRPC Infrastructure Software OGF19 Yoshio Tanaka (AIST) On behalf.
Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.
Effective Coordination of Multiple Intelligent Agents for Command and Control The Robotics Institute Carnegie Mellon University PI: Katia Sycara
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
ITEC200 Week02 Program Correctness and Efficiency.
Software Testing and Quality Assurance
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
Managed Assertions : language-neutral behavioral contracts for components 2 nd Rotor Workshop 25 April 2003 Nam Tran Monash University
OOP #10: Correctness Fritz Henglein. Wrap-up: Types A type is a collection of objects with common behavior (operations and properties). (Abstract) types.
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
The new The new MONARC Simulation Framework Iosif Legrand  California Institute of Technology.
Chapter 1 Principles of Programming and Software Engineering.
Eiffel Language and Design by Contract Contract –An agreement between the client and the supplier Characteristics –Expects some benefits and is prepared.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Dagstuhl, February 16, 2009 Layers in Grids Uwe Schwiegelshohn 17. Februar 2009 Layers in Grids.
Challenges in Performance Evaluation and Improvement of Scientific Codes Boyana Norris Argonne National Laboratory Ivana.
Loads Balanced with CQoS Nicole Lemaster, Damian Rouson, Jaideep Ray Sandia National Laboratories Sponsor: DOE CCA Meeting – January 22, 2009.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
An Automated Component-Based Performance Experiment and Modeling Environment Van Bui, Boyana Norris, Lois Curfman McInnes, and Li Li Argonne National Laboratory,
CCA Forum Fall Meeting October CCA Common Component Architecture Update on TASCS Component Technology Initiatives CCA Fall Meeting October.
EUROPEAN UNION Polish Infrastructure for Supporting Computational Science in the European Research Space The Capabilities of the GridSpace2 Experiment.
High-Performance Component- Based Scientific Software Engineering Boyana Norris Argonne National Laboratory CSDMS Meeting:
The Metadata System1. 2 Introduction Metadata is data that describes data. Traditionally, metadata has been found in language- specific files (e.g. C/C++
Metadata Creation with the Earth System Modeling Framework Ryan O’Kuinghttons – NESII/CIRES/NOAA Kathy Saint – NESII/CSG July 22, 2014.
CQoS Update Li Li, Boyana Norris, Lois Curfman McInnes Argonne National Laboratory Kevin Huck University of Oregon.
Component Infrastructure of CQoS and Its Application in Scientific Computations Li Li 1, Boyana Norris 1, Lois Curfman McInnes 1, Kevin Huck 2, Joseph.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
CASC This work was performed under the auspices of the U.S. Department of Energy by University of California Lawrence Livermore National Laboratory under.
Victor Eijkhout and Erika Fuentes, ICL, University of Tennessee SuperComputing 2003 A Proposed Standard for Numerical Metadata.
Managed by UT-Battelle for the Department of Energy 1 Integrated Catalogue (ICAT) Auto Update System Presented by Jessica Feng Research Alliance in Math.
A Component Infrastructure for Performance and Power Modeling of Parallel Scientific Applications Boyana Norris Argonne National Laboratory Van Bui, Lois.
Tammy Dahlgren with Tom Epperly, Scott Kohn, and Gary Kumfert Center for Applied Scientific Computing Common Component Architecture Working Group October.
CSE 219 Computer Science III Program Design Principles.
Low-Level Detailed Design SAD (Soft Arch Design) Mid-level Detailed Design Low-Level Detailed Design Design Finalization Design Document.
Plans and Opportunities Involving Beam Dynamics Components ComPASS SAP Project and Phase I and II Doe SBIR Boyana Norris (ANL) In collaboration with Stefan.
Components for Beam Dynamics Douglas R. Dechow, Tech-X Lois Curfman McInnes, ANL Boyana Norris, ANL With thanks to the Common Component Architecture (CCA)
Building an Electron Cloud Simulation using Bocca, Synergia2, TxPhysics and Tau Performance Tools Phase I Doe SBIR Stefan Muszala, PI DOE Grant No DE-FG02-08ER85152.
SAP Participants: Douglas Dechow, Tech-X Corporation Lois Curfman McInnes, Boyana Norris, ANL Physics Collaborators: James Amundson, Panagiotis Spentzouris,
CS 261 – Data Structures Preconditions, Postconditions & Assert.
Scott Kohn with Tammy Dahlgren, Tom Epperly, and Gary Kumfert Center for Applied Scientific Computing Lawrence Livermore National Laboratory October 2,
DEVS Based Modeling and Simulation of the CORBA POA F. Bernardi, E. de Gentili, Pr. J.F. Santucci {bernardi, gentili, University.
PerfExplorer Component for Performance Data Analysis Kevin Huck – University of Oregon Boyana Norris – Argonne National Lab Li Li – Argonne National Lab.
A Software Framework for Distributed Services Michael M. McKerns and Michael A.G. Aivazis California Institute of Technology, Pasadena, CA Introduction.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
90-723: Data Structures and Algorithms for Information Processing Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 1: Introduction Data.
Computational Science & Engineering meeting national needs Steven F. Ashby SIAG-CSE Chair March 24, 2003.
CSCE 314 Programming Languages Reflection Dr. Hyunyoung Lee 1.
Application Communities Phase 2 (AC2) Project Overview Nov. 20, 2008 Greg Sullivan BAE Systems Advanced Information Technologies (AIT)
CIMA and Semantic Interoperability for Networked Instruments and Sensors Donald F. (Rick) McMullen Pervasive Technology Labs at Indiana University
David Evans CS201j: Engineering Software University of Virginia Computer Science Lecture 10: Programming Exceptionally.
Quality of Service for Numerical Components Lori Freitag Diachin, Paul Hovland, Kate Keahey, Lois McInnes, Boyana Norris, Padma Raghavan.
VIEWS b.ppt-1 Managing Intelligent Decision Support Networks in Biosurveillance PHIN 2008, Session G1, August 27, 2008 Mohammad Hashemian, MS, Zaruhi.
Performance-Driven Interface Contract Enforcement for Scientific Components 10th International Symposium on Component-Based Software Engineering Medford,
Toward Multi-Language, Multi-Component Interface Contract Enforcement
Class Invariants Class invariants are logical conditions to ensure the correct working of a class. Class invariants must hold true when an object is created,
Boyana Norris Argonne National Laboratory Ivana Veljkovic
Presented by Munezero Immaculee Joselyne PhD in Software Engineering
Principles of Programming and Software Engineering
Applied Software Implementation & Testing
Mariana Vertenstein CCSM Software Engineering Group NCAR
Introduction to Web Services
CSE 1020:Software Development
Presentation transcript:

Interface Contract Enforcement for Improvement of Computational Quality of Services (CQoS) for Scientific Components Li Li 1, Tamara L. Dahlgren 2, Lois Curfman McInnes 1, and Boyana Norris 1 1 Argonne National Laboratory, Argonne, IL. 2 Lawerence Livermore National Laboratory, CA. CCA meeting Jan. 2010

22 Outline Introduction to CQoS and Interface Contracts Contract Enforcement in CQoS Application Use Cases Ongoing and Future Work

3 Computational Quality of Service (CQoS) Complex Multidisciplinary Applications –Common component interfaces + programming language interoperability + dynamic composability easy access to suites of independently developed algorithms and implementations –No single research group can select or tune all components of a given application Capitalize on the CCA* component approach –Support interoperability of different implementations –Facilitate component replacement, recomposition, etc. Automate the configuration and runtime adaptation of high- performance component applications –Instrumentation of component interfaces –Performance data gathering and analysis –Adaptive algorithm support 3

44 Motivating Examples Simulation times for nonlinear PDE-based models depend on the robustness and efficiency of sparse linear solvers –Attributes of the coefficient matrix of linear system change with time –How to select linear solver and reconfigure the solver component Quantum Chemistry challenges: –How do we adapt to resource changes at runtime and select the most appropriate solver among interoperable QC components and reconfigure algorithmic parameters? QC components from QCSAP FACETS fusion

5 Computational Quality of Service(CQoS) Infrastructure Develop general-purpose tools; build application-specific capabilities on top of these Analysis Infrastructure Performance monitoring, problem/solution characterization, performance model building Performance Databases (historical & runtime) Performance Databases (historical & runtime) Interactive Analysis and Model Building Substitution Assertion Database Substitution Assertion Database Scientist can analyze data interactively Scientist can provide decisions on substitution and reparameterization Instrumented Component Application Cases Instrumented Component Application Cases Control Infrastructure Interpretation and execution of control laws to modify an application’s behavior Control System (parameter changes and component substitution) Control System (parameter changes and component substitution) CQoS-Enabled Component Application CQoS-Enabled Component Application Component A Component B Component C Component Substitution Set Enforce contract

6 Interface Contracts: Runtime Checkable Annotations in SIDL* Specifications Ensure the following (with respect to the specification) at runtime: Components written correctly Programs use components correctly The proper component is used (at the right time) Aid runtime adaptation, especially for long-running applications double dot (in array u, in array v, in double tol) throws sidl.PreViolation, sidl.PostViolation; require/* Preconditions */ u_is_1d: (u != null) implies (dimen(u) == 1;) v_is_1d: (v != null) implies (dimen(v) == 1;) same_size: size(u) == size(v); non_negative_tolerance: tol >= 0.0; ensure/* Postconditions */ areEqual(u, v, tol) implies (result >= 0.0); (isZero(u, tol) and isZero(v, tol)) implies nearEqual(result, 0.0, tol); double dot (in array u, in array v, in double tol) throws sidl.PreViolation, sidl.PostViolation; require/* Preconditions */ u_is_1d: (u != null) implies (dimen(u) == 1;) v_is_1d: (v != null) implies (dimen(v) == 1;) same_size: size(u) == size(v); non_negative_tolerance: tol >= 0.0; ensure/* Postconditions */ areEqual(u, v, tol) implies (result >= 0.0); (isZero(u, tol) and isZero(v, tol)) implies nearEqual(result, 0.0, tol); Preconditions are obligations on component callers Postconditions are obligations on component implementations *SIDL = Scientific Interface Definition Language

77 Outline Introduction to CQoS and Interface Contracts Contract Enforcement in CQoS Application Use Cases Ongoing and Future Work

8 Contract Structured Solver Contract Nonlinear Solver Contract Linear Solver Components with Interface Contracts CQoS Infrastructure Analysis Component Performance & Metadata Database Component Database Component Store/Query component performance & metadata Extract component parameter tuning info. Query data/store results A Contract-Enhanced CQoS Component App. CQoS-Enabled Component Application

99 CQoS Interface Contract Types Argument validator –Ensure proper component arguments and parameters in Pre- conditions Performance data collector and evaluator –Collect and evaluate a component’s performance in Post- conditions Exception handler –Handle contract-raised exceptions –Perform CQoS-related tasks, e.g., Proxy that handles external calls to CQoS functions Adaptive decision maker

10 Outline Introduction to CQoS and Interface Contracts Contract Enforcement in CQoS Application Use Cases Ongoing and Future Work

11 Towards Optimal Petascale Simulations (TOPS) int computeResidual(in array x, in array f) throws sidl.PreViolation, sidl.PostViolation; require not_null_x : x != null; not_null_f : f != null; x_is_2d: dimen(x) == 2; f_is_2d : dimen(f) == 2; ensure non_negative_result: result > 0; Parallel (non-)linear algebraic solver components Incorporate CQoS capabilities to facilitate adaptive solver selection at runtime Enforce interface contract to –Ensure proper TOPS parameter and component use –Conduct performance check and adaptation action(s) by calling CQoS functions Towards Optimal Petascale Simulations

12 2D Driven Cavity Flow 1 1 T. S. Coffey, C.T. Kelley, and D.E. Keyes. Pseudo-transient continuation and differential algebraic equations. SIAM J. Sci. Comp, 25:553–569, Parallel driven cavity flow model in a two-dimensional rectangular cavity Nonlinear PDE-based test case in CQoS testbed Linear solver: GMRES(30), vary only fill level of ILU preconditioner Adaptive heuristic based on: –Matrix properties (which change during runtime) computed with Anamod (Eijkhout, ) Enforce contract to –Evaluate linear solver performance in post-conditions –Handle solver failure –Make adaptation decision, adjust fill level of preconditioner

13 interface Solver extends gov.cca.Port, AdaptiveDriver.PerfEvaluator { … void solve(out TypeMap perfData) throws sidl.PostViolation; ensure perf_evaluator: slowConvergence(perfData) == true; … } Definition of a linear solver that examines performance using interface contract and user-defined evaluation function. AdaptiveDriver::AdaptiveContext adaptCnxt = AdaptiveDriver::AdaptiveContext::_create(); … try { KSPsolver.solve(perfData); } catch (::sidl::PostViolation _ex){ std::cerr << “There is performance problem with this run.” << std::endl; AdaptiveDriver::AdaptiveSolver kspSolver = AdaptiveDriver::AdaptiveSolver::_create() ; adaptCnxt.setAdaptiveSolver(kspSolver); adaptCnxt.setAdaptiveType(ADAPTIVE_KSP); adaptCnxt.AdaptApply(); } Implementation code that calls the solver and processes poor-performed solver run with adaptation functions. package AdaptiveDriver version 1.0{ /* This interface evaluates performance of a solver.*/ interface PerfEvaluator { bool slowConvergence(in TypeMap perfResult); } /* This class deals with context change * and applies solver adaptation. */ class AdaptiveContext { int AdaptApply(); opaque getAdaptiveSolver(); void setAdaptiveSolver(in opaque algo); void setAdaptiveType(in int type); … … } /* This class makes solver adaptation decision, * may invoke CQoS functions. */ class AdaptiveSolver { int adapt(inout opaque A); } /* This class uses CQoS DB functions to manage * performance and meta-info. */ class DataManagement { void storeData(in TypeMap data); void retrieveData(inout TypeMap data); } SIDL file that defines performance evaluation, adaptation, and data management functions.

14 Outline Introduction to CQoS and Interface Contracts Contract Enforcement in CQoS Application Use Cases Ongoing and Future Work

15 Ongoing and Future Work Develop regression tests for contract-enhanced components, e.g., TOPS components Generalize CQoS-related contract enforcement in component interface specification Apply to more problem domains, implementing extensions as necessary

16 Acknowledgements to Collaborators CCA Forum members Funding: DOE Scientific Discovery through Advanced Computing (SciDAC) program Thank you!