Evaluation and Validation

Slides:



Advertisements
Similar presentations
Fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund.
Advertisements

Analysis of Computer Algorithms
Evaluation and Validation
Fakultät für informatik informatik 12 technische universität dortmund Standard Optimization Techniques Peter Marwedel Informatik 12 TU Dortmund Germany.
Technische universität dortmund fakultät für informatik informatik 12 Specifications and Modeling Peter Marwedel TU Dortmund, Informatik
fakultät für informatik informatik 12 technische universität dortmund Optimizations - Compilation for Embedded Processors - Peter Marwedel TU Dortmund.
Pareto Points Karl Lieberherr Slides from Peter Marwedel University of Dortmund.
© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Xianfeng Li Tulika Mitra Abhik Roychoudhury
ECE 667 Synthesis and Verification of Digital Circuits
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
POLITECNICO DI MILANO Parallelism in wonderland: are you ready to see how deep the rabbit hole goes? ILP: VLIW Architectures Marco D. Santambrogio:
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Constraint Systems used in Worst-Case Execution Time Analysis Andreas Ermedahl Dept. of Information Technology Uppsala University.
Virtual Memory Hardware Support
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
I MPLEMENTING S YNCHRONOUS M ODELS ON L OOSELY T IME T RIGGERED A RCHITECTURES Discussed by Alberto Puggelli.
Describing Syntax and Semantics
Introduction to Optimization (Part 1)
Software Testing Sudipto Ghosh CS 406 Fall 99 November 9, 1999.
ECE355 Fall 2004Software Reliability1 ECE-355 Tutorial Jie Lian.
Chapter 1 Algorithm Analysis
Design Space Exploration
Pipelines for Future Architectures in Time Critical Embedded Systems By: R.Wilhelm, D. Grund, J. Reineke, M. Schlickling, M. Pister, and C.Ferdinand EEL.
WCET Analysis for a Java Processor Martin Schoeberl TU Vienna, Austria Rasmus Pedersen CBS, Denmark.
Chapter 1 Computer System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
1 Automatic Refinement and Vacuity Detection for Symbolic Trajectory Evaluation Orna Grumberg Technion Haifa, Israel Joint work with Rachel Tzoref.
Analysis of Algorithms
1 Software Testing. 2 Path Testing 3 Structural Testing Also known as glass box, structural, clear box and white box testing. A software testing technique.
Evaluation and Validation Peter Marwedel TU Dortmund, Informatik 12 Germany 2013 年 12 月 02 日 These slides use Microsoft clip arts. Microsoft copyright.
Complexity of Algorithms
Timing Analysis of Embedded Software for Speculative Processors Tulika Mitra Abhik Roychoudhury Xianfeng Li School of Computing National University of.
CS 211: Computer Architecture Lecture 6 Module 2 Exploiting Instruction Level Parallelism with Software Approaches Instructor: Morris Lancaster.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Static WCET Analysis vs. Measurement: What is the Right Way to Assess Real-Time Task Timing? Worst Case Execution Time Prediction by Static Program Analysis.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Theory and Practice of Software Testing
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
CS412/413 Introduction to Compilers Radu Rugina Lecture 18: Control Flow Graphs 29 Feb 02.
Optimal Superblock Scheduling Using Enumeration Ghassan Shobaki, CS Dept. Kent Wilken, ECE Dept. University of California, Davis
1 Control Flow Graphs. 2 Optimizations Code transformations to improve program –Mainly: improve execution time –Also: reduce program size Can be done.
Real-time aspects Bernhard Weirich Real-time Systems Real-time systems need to accomplish their task s before the deadline. – Hard real-time:
Chapter 13 Backtracking Introduction The 3-coloring problem
CSE 522 WCET Analysis Computer Science & Engineering Department Arizona State University Tempe, AZ Dr. Yann-Hang Lee (480)
CS 9633 Machine Learning Support Vector Machines
Aircraft Landing Problem
Applied Discrete Mathematics Week 2: Functions and Sequences
Memory COMPUTER ARCHITECTURE
Software Testing.
Control Flow Testing Handouts
Analysis of Algorithms
GC 211:Data Structures Week 2: Algorithm Analysis Tools
Software Engineering (CSI 321)
GC 211:Data Structures Algorithm Analysis Tools
Optimizing Compilers Background
Outline of the Chapter Basic Idea Outline of Control Flow Testing
Cache Memory Presentation I
Standard Optimization Techniques
CSCI1600: Embedded and Real Time Software
Chapter 6. Large Scale Optimization
Integer Linear Programming
Language-based Security
Institute of Computing Tech.
Chapter 12 Pipelining and RISC
CSCI1600: Embedded and Real Time Software
Performance Evaluation of Real-Time Systems
Chapter 6. Large Scale Optimization
Software Testing and QA Theory and Practice (Chapter 5: Data Flow Testing) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
Presentation transcript:

Evaluation and Validation Iwan Sonjaya,MT © Springer, 2010 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.

Structure of this course 2: Specification Design repository Design 3: ES-hardware 8: Test Application Knowledge 6: Application mapping 5: Evaluation & validation (energy, cost, performance, …) 7: Optimization 4: system software (RTOS, middleware, …) Numbers denote sequence of chapters

Validation and Evaluation Definition: Validation is the process of checking whether or not a certain (possibly partial) design is appropriate for its purpose, meets all constraints and will perform as expected (yes/no decision). Definition: Validation with mathematical rigor is called (formal) verification. Definition: Evaluation is the process of computing quantitative information of some key characteristics of a certain (possibly partial) design.

How to evaluate designs according to multiple criteria? Many different criteria are relevant for evaluating designs: Average & worst case delay power/energy consumption thermal behavior reliability, safety, security cost, size weight EMC characteristics radiation hardness, environmental friendliness, .. How to compare different designs? (Some designs are “better” than others)

Definitions Let X: m-dimensional solution space for the design problem. Example: dimensions correspond to # of processors, size of memories, type and width of busses etc. Let F: n-dimensional objective space for the design problem. Example: dimensions correspond to average and worst case delay, power/energy consumption, size, weight, reliability, … Let f(x)=(f1(x),…,fn(x)) where xX be an objective function. We assume that we are using f(x) for evaluating designs. objective space solution space f(x) x x

Pareto points We assume that, for each objective, an order < and the corresponding order  are defined. Definition: Vector u=(u1,…,un) F dominates vector v=(v1,…,vn) F  u is “better” than v with respect to one objective and not worse than v with respect to all other objectives: Definition: Vector u F is indifferent with respect to vector v F  neither u dominates v nor v dominates u

Pareto points A solution xX is called Pareto-optimal with respect to X  there is no solution yX such that u=f(x) is dominated by v=f(y). x is a Pareto point. Definition: Let S ⊆ F be a subset of solutions. v ∈ F is called a non-dominated solution with respect to S  v is not dominated by any element ∈ S. v is called Pareto-optimal  v is non-dominated with respect to all solutions F. A Pareto-set is the set of all Pareto-optimal solutions Pareto-sets define a Pareto-front (boundary of dominated subspace)

Pareto Point worse indifferent better indifferent Objective 1 (e.g. energy consumption) worse indifferent Pareto-point better indifferent Objective 2 (e.g. run time) (Assuming minimization of objectives)

Pareto Set Pareto set = set of all Pareto-optimal solutions Objective 1 (e.g. energy consumption) Pareto set = set of all Pareto-optimal solutions dominated Pareto- set Objective 2 (e.g. run time) (Assuming minimization of objectives)

One more time … Pareto point Pareto front

Design space evaluation Design space evaluation (DSE) based on Pareto-points is the process of finding and returning a set of Pareto-optimal designs to the user, enabling the user to select the most appropriate design.

How to evaluate designs according to multiple criteria? Many different criteria are relevant for evaluating designs: Average & worst case delay power/energy consumption thermal behavior reliability, safety, security cost, size weight EMC characteristics radiation hardness, environmental friendliness, .. How to compare different designs? (Some designs are “better” than others)

Average delays (execution times) Estimated average execution times : Difficult to generate sufficiently precise estimates; Balance between run-time and precision π x Accurate average execution times: As precise as the input data is. We need to compute average and worst case execution times

Worst case execution time (1) Definition of worst case execution time: disrtribution of times worst-case guarantee worst-case performance Time constraint BCETEST BCET WCET WCETEST possible execution times time timing predictability WCETEST must be safe (i.e. ≥ WCET) and tight (WCETEST-WCET≪WCETEST) © Graphics: adopted from R. Wilhelm + Microsoft Cliparts

Worst case execution times (2) Complexity: in the general case: undecidable if a bound exists. for restricted programs: simple for “old“ architectures, very complex for new architectures with pipelines, caches, interrupts, virtual memory, etc. Approaches: for hardware: requires detailed timing behavior for software: requires availability of machine programs; complex analysis (see, e.g., www.absint.de)

WCET estimation: AiT (AbsInt)

WCET estimation for caches Tag Index Offset Address LRU-based replacement = = = = Youngest entry Old state {e} {a} {d} {f} Variables getting older Reference to c New state {c} {e} {a} {d}

Behavior at program joins Worst case {c} {e} {a} {d} Intersection+max. age {} {} {a,c} {d} {a} {} {c,f} {d} Best case {c} {e} {a} {d} Union+min. age {a,c} {e,f} {} {d} {a} {c,f} {} {d} Possibly several variables per entry

ILP model Objective function reflects execution time as a function of the execution time of blocks. To be maximized. Constraints reflect dependencies between blocks. Avoids explicit consideration of all paths  Called implicit path enumeration technique.

Example (1) Program CFG WCETs of BB (aiT 4 TriCore) int main() { int i, j = 0; _Pragma( "loopbound min 100 max 100" ); for ( i = 0; i < 100; i++ ) { if ( i < 50 ) j += i; else j += ( i * 13 ) % 42; } return j; WCETs of BB (aiT 4 TriCore) _main: 21 cycles _L1: 27 _L3: 2 _L4: 2 _L5: 20 _L6: 13 _L2: 20

Example (2) ILP _main: 21 cycles _L1: 27 _L3: 2 _L4: 2 _L5: 20 _L6: 13 Virtual start node Virtual end node Virtual end node per function Variables: 1 variable per node 1 variable per edge Constraints: „Kirchhoff“ equations per node Sum of incoming edge variables = flux through node Sum of outgoing edge variables = flux through node ILP /* Objective function = WCET to be maximized*/ 21 x2 + 27 x7 + 2 x11 + 2 x14 + 20 x16 + 13 x18 + 20 x19; /* CFG Start Constraint */ x0 - x4 = 0; /* CFG Exit Constraint */ x1 - x5 = 0; /* Constraint for flow entering function main */ x2 - x4 = 0; /* Constraint for flow leaving exit node of main */ x3 - x5 = 0; /* Constraint for flow entering exit node of main */ x3 - x20 = 0; /* Constraint for flow entering main = flow leaving main */ x2 - x3 = 0; /* Constraint for flow leaving CFG node _main */ x2 - x6 = 0; /* Constraint for flow entering CFG node _L1 */ x7 - x8 - x6 = 0; /* Constraint for flow leaving CFG node _L1 */ x7 - x9 - x10 = 0; /* Constraint for lower loop bound of _L1 */ x7 - 101 x9 >= 0; /* Constraint for upper loop bound of _L1 */ x7 - 101 x9 <= 0; …. x6 x7 x9 x10 _main: 21 cycles _L1: 27 _L3: 2 _L4: 2 _L5: 20 _L6: 13 _L2: 20 x8 Presentation by R. Wilhelm @ FEST (DVD in German), starting at min. 31:35 min.-47:00

Example (3) Value of objective function: 6268 Actual values of the variables: x2 1 x7 101 x11 100 x14 0 x16 100 x18 100 x19 1 x0 1 x4 1 x1 1 x5 1 x3 1 x20 1 x6 1 x8 100 x9 1 x10 100 x12 100 x13 0 x15 0 x17 100 Presentation by R. Wilhelm @ FEST (DVD in German), starting at min. 31:35 min.-47:00

Summary Evaluation and Validation In general, multiple objectives Pareto optimality Design space evaluation (DSE) Execution time analysis Trade-off between speed and accuracy Computation of worst case execution times Cache/pipeline analysis ILP model for computing WCET of application from WCET of blocks