performance-driven interface contract enforcement for scientific components

22
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 ([email protected]) http://www.llnl.gov/comp/bio.php/dahlgren1 UCRL-PRES-232517 This work was performed under the auspices of the U.S. Department of Energy by the University of Lawrence Livermore National Laboratory under Contract No. W-7405-Eng-48.

Upload: cathleen-guerrero

Post on 01-Jan-2016

30 views

Category:

Documents


0 download

DESCRIPTION

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 ([email protected]) http://www.llnl.gov/comp/bio.php/dahlgren1. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Performance-Driven Interface Contract Enforcement for Scientific Components

Performance-Driven Interface Contract Enforcement for Scientific Components10th International Symposium on

Component-Based Software EngineeringMedford, MA USAJuly 9-11, 2007

Tamara “Tammy” Dahlgren ([email protected])http://www.llnl.gov/comp/bio.php/dahlgren1

UCRL-PRES-232517

This work was performed under the auspices of the U.S. Department of Energy by the University of CaliforniaLawrence Livermore National Laboratory under Contract No. W-7405-Eng-48.

Page 2: Performance-Driven Interface Contract Enforcement for Scientific Components

2

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

Page 3: Performance-Driven Interface Contract Enforcement for Scientific Components

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)Different organizations different development processes (and rigor)

Application

ComponentRepository

ComponentC

ComponentB

ComponentA

Page 4: Performance-Driven Interface Contract Enforcement for Scientific Components

4

Contracts added to common interfaces can be used to improve software quality.package vector version 1.0 { interface Utils { …

double norm (in array<double> 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<double> 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

vector.Utils.isZero (u, tol), which would typically be O(|u|)which would typically be O(|u|)

Page 5: Performance-Driven Interface Contract Enforcement for Scientific Components

5

Computational Scientists are typically willing to incur no more than 10% overhead.Program

InitiationProgram

Termination

Total Execution Time

Program

Method (annotated)

Preconditions

Postconditions

EnforcementOverhead

≤ 10% ?

Invariants

Hence, this research focuses on performance-driven sampling.

Hence, this research focuses on performance-driven sampling.

Page 6: Performance-Driven Interface Contract Enforcement for Scientific Components

6

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

Page 7: Performance-Driven Interface Contract Enforcement for Scientific Components

7

Enforcement automatically generated by Babel* language interoperability toolkit.

vectorUtilities

Stub Code

Impl Code

Skeleton Code

*Experiments were conducted using an experimental version of Babel based on release 0.10.8.

Enforcement Execution TracesEnforcement Execution Traces

Global Contract EnforcementGlobal Contract Enforcement

AnnotatedSIDL files

AnnotatedSIDL files

AnnotatedSIDL files Intermediate Rep

Page 8: Performance-Driven Interface Contract Enforcement for Scientific Components

8

Enforcement tracing currently provides simple timing dumps on exercised contracts.

ProgramInitiation

ProgramTermination

Enforcement Trace Timing points

Program

Method (annotated)

Preconditions

Postconditions Invariants

Page 9: Performance-Driven Interface Contract Enforcement for Scientific Components

9

Global enforcement options are based on two parameters: frequency and type.Enforcement Frequency

Never

Always

Periodic

Random

Adaptive Timing (AT)Adaptive Timing (AT)

Adaptive Fit (AF)Adaptive Fit (AF)

Simulated Annealing (SA)Simulated Annealing (SA)

Contract [Clause] TypeAll

Constant-time

Linear-time

Preconditions*

Postconditions*

Invariants*

Simple Expressions

Method Calls

Results

*All combinations of the three Eiffel method clause types are actually available.

Page 10: Performance-Driven Interface Contract Enforcement for Scientific Components

10

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

Page 11: Performance-Driven Interface Contract Enforcement for Scientific Components

11

Input sets were varied for three of five programs, forming a total of thirteen trials.Component Program Description

Simplicial Mesh

MARetrieve all faces from the mesh then, for each face, retrieve the adjacent vertices.

ARetrieve all faces from the mesh in sets based on size of input array. Sizes 1, 14587 (10%), and 145870 (100%).

AARetrieve 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 10000.

Page 12: Performance-Driven Interface Contract Enforcement for Scientific Components

12

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

0%10%20%30%40%50%60%70%80%90%

100%

A-1AA-1

MA

MT

VT-6

VT-10

AA-145

87

AA-145

870

VT-100

A-145

87

A-145

870

VT-100

0

VT-100

00

Trial

Mea

n T

otal

Exe

cuti

on T

ime

(per

tra

ce)

Program Methods Preconditions Postconditions

10%

Page 13: Performance-Driven Interface Contract Enforcement for Scientific Components

13

0%

20%

40%

60%

80%

100%

120%

140%

160%

180%

VT-6

VT-10

VT-100

AA-1M

A

AA-145

87

AA-145

870

A-1M

T

VT-100

0

A-145

87

VT-100

00

A-145

870

Trial

1

10

100

1000

10000

100000

1000000

10000000

Median Actual Enforcement Overhead Linear-time Clause Checks (% Total)Total Number of Clause Checks

Enforcement performance was generally better without tracing instrumentation.

Reason: A combination of tracing instrumentation and program speed.

10%

Page 14: Performance-Driven Interface Contract Enforcement for Scientific Components

14

0%

20%

40%

60%

80%

100%

120%

140%

160%

180%

VT-6

VT-10

VT-100

AA-1M

A

AA-145

87

AA-145

870

A-1M

T

VT-100

0

A-145

87

VT-100

00

A-145

870

Trial

Median Overhead (AT, 5%) # Clauses Enforced (% Total)# Violations Detected (% Always) Median Overhead (Always)

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!

Page 15: Performance-Driven Interface Contract Enforcement for Scientific Components

15

0%

20%

40%

60%

80%

100%

120%

140%

160%

180%

VT-6

VT-10

VT-100

AA-1M

A

AA-145

87

AA-145

870

A-1M

T

VT-100

0

A-145

87

VT-100

00

A-145

870

Trial

Median Overhead (AF, 5%) # Clauses Enforced (% Total)

# Violations Detected (% Always) Median Overhead (Always)

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

Page 16: Performance-Driven Interface Contract Enforcement for Scientific Components

16

Simulated Annealing (SA) sampling performed similar to AF, except in presence of tight loops.

0%

20%

40%

60%

80%

100%

120%

140%

160%

180%

VT-6

VT-10

VT-100

AA-1M

A

AA-145

87

AA-145

870

A-1 MT

VT-100

0

A-145

87

VT-100

00

A-145

870

Trial

Median Overhead (SA, 5%) # Clauses Enforced (% Total)# Violations Detected (% Always) Median Overhead (Always)

10%

50-83% of trial’s clause checks take ≤ 5% of their method’s execution time

Page 17: Performance-Driven Interface Contract Enforcement for Scientific Components

17

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

Page 18: Performance-Driven Interface Contract Enforcement for Scientific Components

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

Page 19: Performance-Driven Interface Contract Enforcement for Scientific Components

19

Thank you for your attention.

Any Questions?

Page 20: Performance-Driven Interface Contract Enforcement for Scientific Components

20

For more information related to this work, refer to the following web sites. Components Project

http://www.llnl.gov/casc/components Note: Experiments conducted using experimental prototype

of the Babel toolkit

Common Component Architecture (CCA) Forum http://cca-forum.org

Center for Technology for Advanced Scientific Component Software (TASCS) SciDAC’s Plug and Play

Supercomputing http://www.scidac.gov/compsci/TASCS.html

Page 21: Performance-Driven Interface Contract Enforcement for Scientific Components

21

Supplemental Material

Page 22: Performance-Driven Interface Contract Enforcement for Scientific Components

22

Contract characteristics varied across programs, in one case across input sets.

ProgramArray Size

Contract Clauses Enforced (by policy)

Const. Linear SE MC Precond Postcond

MA n/a 50% 50% 0% 100%

50% 50%

A All 100% 0% 50% 50%

AA

1 75% 25% 25% 75%

14587 77% 24% 26% 73%

145870 88% 20% 30% 63%

MT n/a 99.995% .005% 73% 27% 58% 42%

VT All 95% 8% 0% 100% 80% 33%

One annotated method ≤ Two contract clause enforcement opportunities