Performance-Driven Interface Contract Enforcement for Scientific Components 10th International Symposium on Component-Based Software Engineering Medford,

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Configuration management
Interface Contract Enforcement for Improvement of Computational Quality of Services (CQoS) for Scientific Components Li Li 1, Tamara L. Dahlgren 2, Lois.
A Coherent Grid Traversal Algorithm for Volume Rendering Ioannis Makris Supervisors: Philipp Slusallek*, Céline Loscos *Computer Graphics Lab, Universität.
Chapter 1. The Phases of Software Development. Data Structure 2 Chapter outline  Objectives  Use Javadoc to write a method’s complete specification.
Chapter 10 Introduction to Arrays
Error Management with Design Contracts Karlstad University Computer Science Error Management with Design Contracts Eivind J. Nordby, Martin Blom, Anna.
Tammy Dahlgren, Tom Epperly, Scott Kohn, and Gary Kumfert Center for Applied Scientific Computing Common Component Architecture Working Group October 3,
Information Retrieval in Practice
Making the Most of What We Know: Towards Effective Use of Genomics Data Terence Critchlow Center for Applied Scientific Computing Lawrence Livermore National.
OOP #10: Correctness Fritz Henglein. Wrap-up: Types A type is a collection of objects with common behavior (operations and properties). (Abstract) types.
Programming Languages Structure
Karlstad University Computer Science Design Contracts and Error Management Design Contracts and Errors A Software Development Strategy (anpassad för PUMA)
Tools and Services for the Long Term Preservation and Access of Digital Archives Joseph JaJa, Mike Smorul, and Sangchul Song Institute for Advanced Computer.
Chapter 1 Principles of Programming and Software Engineering.
1 Dan Quinlan, Markus Schordan, Qing Yi Center for Applied Scientific Computing Lawrence Livermore National Laboratory Semantic-Driven Parallelization.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
MS thesis/project ideas for MS students in the Department of Computer Science at the University of Minnesota Duluth suggestions by Dr Andrew Brooks, Heller.
Overview of Search Engines
January 27, 2002 ECEN5033 University of Colorado -- Class Testing 1 Specifying interactions Remainder of slides assume Operations defined by a class are.
An Automated Component-Based Performance Experiment and Modeling Environment Van Bui, Boyana Norris, Lois Curfman McInnes, and Li Li Argonne National Laboratory,
Introduction and simple using of Oracle Logistics Information System Yaxian Yao
Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.
CCA Forum Fall Meeting October CCA Common Component Architecture Update on TASCS Component Technology Initiatives CCA Fall Meeting October.
Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann OCL-based Runtime Monitoring of JVM.
1 Babak Behzad, Yan Liu 1,2,4, Eric Shook 1,2, Michael P. Finn 5, David M. Mattli 5 and Shaowen Wang 1,2,3,4 Babak Behzad 1,3, Yan Liu 1,2,4, Eric Shook.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Associative Pattern Memory (APM) Larry Werth July 14, 2007
Survey of Semantic Annotation Platforms
Chandrika Kamath and Imola K. Fodor Center for Applied Scientific Computing Lawrence Livermore National Laboratory Gatlinburg, TN March 26-27, 2002 Dimension.
SIAM Computational Science and Engineering1 10 February Components for Scientific Computing: An Introduction David E. Bernholdt Computer Science.
Tammy Dahlgren with Tom Epperly, Scott Kohn, and Gary Kumfert Center for Applied Scientific Computing Common Component Architecture Working Group October.
Accelerating Scientific Exploration Using Workflow Automation Systems Terence Critchlow (LLNL) Ilkay Altintas (SDSC) Scott Klasky(ORNL) Mladen Vouk (NCSU)
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.
Center for Component Technology for Terascale Simulation Software CCA is about: Enhancing Programmer Productivity without sacrificing performance. Supporting.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Technology and Science, Osaka University Dependence-Cache.
Presented by An Overview of the Common Component Architecture (CCA) The CCA Forum and the Center for Technology for Advanced Scientific Component Software.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Investigating Adaptive Compilation using the MIPSpro Compiler Keith D. Cooper Todd Waterman Department of Computer Science Rice University Houston, TX.
Scott Kohn with Tammy Dahlgren, Tom Epperly, and Gary Kumfert Center for Applied Scientific Computing Lawrence Livermore National Laboratory October 2,
Presented by Scientific Annotation Middleware Software infrastructure to support rich scientific records and the processes that produce them Jens Schwidder.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
Chapter 3: Software Project Management Metrics
Presented by Jens Schwidder Tara D. Gibson James D. Myers Computing & Computational Sciences Directorate Oak Ridge National Laboratory Scientific Annotation.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
Distributed Components for Integrating Large- Scale High Performance Computing Applications Nanbor Wang, Roopa Pundaleeka and Johan Carlsson
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Using Loop Invariants to Detect Transient Faults in the Data Caches Seung Woo Son, Sri Hari Krishna Narayanan and Mahmut T. Kandemir Microsystems Design.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Tammy Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert.
Bronis R. de Supinski and Jeffrey S. Vetter Center for Applied Scientific Computing August 15, 2000 Umpire: Making MPI Programs Safe.
Exception Handling in C + + Introduction Overview of C++ Exception Handling Designing With Exceptions Exception Handling Philosophies Conclusion.
A. Sim, CRD, L B N L 1 SRM Collaboration Meeting, Sep , 2005 SRM v3.0 LBNL Implementation Status Report Scientific Data Management Research Group.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
1 ENERGY 211 / CME 211 Lecture 14 October 22, 2008.
Simbios Simbios ™ The National Center for Physics-Based Simulation of Biological Structures at Stanford SimTK Framework CCA for Physics Based Simulation.
Principles of Programming & Software Engineering
Toward Multi-Language, Multi-Component Interface Contract Enforcement
Evaluation Anisio Lacerda.
Abdulmotaleb El Saddik University of Ottawa
Principles of Programming and Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Helping a friend out Guidelines for better software
CSE 1020:Software Development
Presentation transcript:

Performance-Driven Interface Contract Enforcement for Scientific Components 10th International Symposium on Component-Based Software Engineering Medford, MA USA July 9-11, 2007 Tamara “Tammy” Dahlgren UCRL-PRES This work was performed under the auspices of the U.S. Department of Energy by the University of California Lawrence Livermore National Laboratory under Contract No. W-7405-Eng-48.

2 Performance-Driven Interface Contract Enforcement for Scientific Components Motivation Babel Toolkit Extensions Experiments Summary

3 Applications built using plug-and-play components depend on common interfaces. Multiple implementations conform to the same specification  Provide same basic services  Require same basic inputs  Implementations can vary significantly to include differences in… Algorithms  Solution accuracies Underlying data structures Implementation language(s)  C, C++, Fortran 77/9x/20xx, Python, Java Different organizations  different development processes (and rigor) Application Component Repository Component C Component B Component A

4 Contracts added to common interfaces can be used to improve software quality. package vector version 1.0 { interface Utils { … double norm (in array u, in double tol) throws /* Exceptions */ sidl.PreViolation, NegativeValueException, sidl.PostViolation; require/* Preconditions */ not_null : u != null; u_is_1d : dimen (u) == 1; non_negative_tolerance : tol >= 0.0; ensure/* Postconditions */ no_side_effects : is pure; non_negative_result : result >= 0.0; nearEqual (result, 0.0, tol) iff isZero (u, tol); … } } package vector version 1.0 { interface Utils { … double norm (in array u, in double tol) throws /* Exceptions */ sidl.PreViolation, NegativeValueException, sidl.PostViolation; require/* Preconditions */ not_null : u != null; u_is_1d : dimen (u) == 1; non_negative_tolerance : tol >= 0.0; ensure/* Postconditions */ no_side_effects : is pure; non_negative_result : result >= 0.0; nearEqual (result, 0.0, tol) iff isZero (u, tol); … } } Example based on Babel’s vector.sidl (class) specification which would typically be O(|u|) vector.Utils.isZero (u, tol), which would typically be O(|u|)

5 Computational Scientists are typically willing to incur no more than 10% overhead. Program Initiation Program Termination Total Execution Time Program Method (annotated) Preconditions Postconditions Enforcement Overhead ≤ 10% ? Invariants Hence, this research focuses on performance-driven sampling.

6 Performance-Driven Interface Contract Enforcement for Scientific Components Motivation Babel Toolkit Extensions Experiments Summary

7 Enforcement automatically generated by Babel * language interoperability toolkit. vector Utilities Stub Code Impl Code Skeleton Code * Experiments were conducted using an experimental version of Babel based on release Enforcement Execution Traces Global Contract Enforcement Annotated SIDL files Annotated SIDL files Annotated SIDL files Intermediate Rep

8 Enforcement tracing currently provides simple timing dumps on exercised contracts. Program Initiation Program Termination Enforcement Trace Timing points Program Method (annotated) Preconditions Postconditions Invariants

9 Global enforcement options are based on two parameters: frequency and type. Enforcement Frequency Never Always Periodic Random Adaptive Timing (AT) Adaptive Fit (AF) Simulated Annealing (SA) Contract [Clause] Type All Constant-time Linear-time Preconditions* Postconditions* Invariants* Simple Expressions Method Calls Results * All combinations of the three Eiffel method clause types are actually available.

10 Performance-Driven Interface Contract Enforcement for Scientific Components Motivation Babel Toolkit Extensions Experiments Summary

11 Input sets were varied for three of five programs, forming a total of thirteen trials. ComponentProgramDescription Simplicial Mesh MA Retrieve all faces from the mesh then, for each face, retrieve the adjacent vertices. A Retrieve all faces from the mesh in sets based on size of input array. Sizes 1, (10%), and (100%). AA Retrieve faces as in A plus, for each set of faces, retrieve their corresponding adjacent vertices. The same input sizes used for program A. GRUMMP 0.2.2b’s Volume Mesh MT Exercise and check consistency of five mesh interfaces: core, single entity query and traversal, entity array query and traversal, single entity mesh modification, and entity array mesh modification. Vector Utilities VT Exercise all supported functions to include successful execution; one or more precondition violations; and one or more postcondition violations. Sizes 6 (original), 10, 100, 1000, and

12 Baseline experiments resulted in a variety of profiles using contract enforcement traces. 10%

13 Enforcement performance was generally better without tracing instrumentation. Reason: A combination of tracing instrumentation and program speed. 10%

14 Adaptive Timing (AT) is biased toward ‘fast’ clauses relative to the cost of their methods. 10% 91% of violations in ‘fast’ clauses with linear-time expressions!

15 Adaptive Fit (AF) sampling tuned clause enforcement based on estimated overheads. 10% 50-83% of trial’s clause checks take ≤ 5% of their method’s execution time

16 Simulated Annealing (SA) sampling performed similar to AF, except in presence of tight loops. 10% 50-83% of trial’s clause checks take ≤ 5% of their method’s execution time

17 Performance-Driven Interface Contract Enforcement for Scientific Components Motivation Babel Toolkit Extensions Experiments Summary

18 Performance-Driven Interface Contract Enforcement for Scientific Components Goal: Improve quality of applications built of automatically swapped, plug-and-play, third-party components Approach: Use performance criteria to tune contract [clause] enforcement to the program  Reduce overhead compared to full enforcement (i.e., Always)  Increase enforcement level over other sampling techniques (when appropriate)  Increase probability of detecting more violations Findings: Performance-driven enforcement appears to be most suited to contract clauses that are at most moderately expensive to check  Based on user-specified overhead limit  Relative to program/methods

19 Thank you for your attention. Any Questions?

20 For more information related to this work, refer to the following web sites. Components Project   Note: Experiments conducted using experimental prototype of the Babel toolkit Common Component Architecture (CCA) Forum  Center for Technology for Advanced Scientific Component Software (TASCS)  SciDAC’s Plug and Play Supercomputing 

21 Supplemental Material

22 Contract characteristics varied across programs, in one case across input sets. Program Array Size Contract Clauses Enforced (by policy) Const.LinearSEMCPrecondPostcond MA n/a 50% 0%100% 50% A All 100%0%50% AA 1 75%25% 75% %24%26%73% %20%30%63% MT n/a %.005%73%27%58%42% VT All 95%8%0%100%80%33% One annotated method ≤ Two contract clause enforcement opportunities