Marco Couto
marco.l.couto@inesctec.pt
STATIC ENERGY PREDICTION
IN SOFTWARE:
A WORST-CASE SCENARIO APPROACH
MOTIVATION
Marco Couto @ GSL - HASLab/INESC TEC 2
ENERGY VS. POWER
3
• Power (w) – rate (or effort) at which that work is done
• Energy (J) – amount of work done
• Power can change constantly while Energy is the accumulation
Energy = Power x Seconds
Power
Energy
100W360,000 J = x 3,600s
ENERGY EFFICIENT SOFTWARE
• Programmers problems:
• How to analyze
• How to interpret
• How to improve
• Researchers problem:
• How to provide information to developers
4
Mining questions about software energy consumption
- [MSR’14]
Integrated energy-directed test suite optimization
- [ISTA’14]
Seeds: A software engineer’s energy-optimization decision
support framework - [ICSE’14]
THE CHALLENGE
Marco Couto @ GSL - HASLab/INESC TEC 5
STATIC ENERGY ANALYSIS
WHY?
• Dynamic can be too costly
1. Build application + tests
2. Intrument app and/or tests
3. Run tests
4. Gather measurements and analyze them
5. Repeat N times
• ‘M’ apps -> Repeat all ‘M’ times
• Are all cases covered?
6Marco Couto @ GSL - HASLab/INESC TEC
‘M’ times
STATIC ENERGY ANALYSIS
HOW?
• How is it done for execution time?
• WCET – Worst Case Execution Time
• Can we do the same for energy?
7Marco Couto @ GSL - HASLab/INESC TEC
STATIC ENERGY EXECUTION TIME ANALYSIS
HOW?
8Marco Couto @ GSL - HASLab/INESC TEC
How exactly does WCET works?
</>
Source Code CFG
Machine Behavior
Dataflow
Bound Computation
Analysis Steps
1
53
2
Bounded CFG
T
Execution Time
Model
ILP Solver
x1 > C0
x1+x2 = C1
x1+x3 = C2
...
max(∑ xi.ti)
IPET Constraints
IPET – IMPLICIT PATH ENUMERATION TECHNIQUE
A.K.A CONSTRAINT GENERATOR
• Each node has:
• A count variable, ‘x’
• A cost variable, ‘t’
• Each edge has:
• A count variable, ‘x’
• 4 Simple but strong premises:
1. Start and end nodes accessed exactly 1 time
2. #x of node i = sum (#x of all pred. of i)
3. #x of node i = sum (#x of all succ. of i)
4. Loops must have na upper bound
9Marco Couto @ GSL - HASLab/INESC TEC
STATIC ENERGY ANALYSIS
HOW?
10Marco Couto @ GSL - HASLab/INESC TEC
How exactly does WCEC works?
</>
Source Code CFG
Machine Behavior
Dataflow
Bound Computation
Analysis Steps
1
53
2
Bounded CFG
E
Energy Model
ILP Solver
x1 > C0
x1+x2 = C1
x1+x3 = C2
...
max(∑ xi.ti)
IPET Constraints
ENERGY MODEL
HOW TO BUILD IT?
Marco Couto @ GSL - HASLab/INESC TEC 11
BUILDING THE ENERGY MODEL
• Two types of instructions:
• Path-Independent:
• x=1;
• i++;
• a=2*b;
• return 0;
• Path-Dependent:
• Allocations: malloc(sizeof(int)) ≠ malloc(sizeof(double))
• System calls: scanf(“%d”, &a) ≠ scanf(“%f”, &a)
• Other functions: strcmp(...), atoi(...), sizeof(...), ...
• Some instructions depend on others:
• ‘int x = z;’ depends on the declaration of z
• ‘printf(“%d”, a);’ assumes a has a previous assigned value
12Marco Couto @ GSL - HASLab/INESC TEC
Estimating Mobile Application Energy Consumption using
Program Analysis - [ICSE’13]
BUILDING THE ENERGY MODEL
• Path-Independent:
• Execute N times
• Repeat M times, measure each time and sum all
• At the end: energy = (sum/M/N) – dependencies
• Path-Dependent:
• Execute N times
• Repeat M times, measure each time
• At the end: energy = max(all measures) – dependencies
13Marco Couto @ GSL - HASLab/INESC TEC
Estimating Mobile Application Energy Consumption using
Program Analysis - [ICSE’13]
SOFTWARE PRODUCT LINES
THE CASE STUDY
Marco Couto @ GSL - HASLab/INESC TEC 14
SOFTWARE PRODUCT LINE
15Marco Couto @ GSL - HASLab/INESC TEC
“(…) a set of related software products (…)
generated from reusable assets.”
A B
CORE
D E
C
A B
CORE
D E
C
{B, C, D}
A B
CORE
D E
C
{A, E}
A B
CORE
D E
C
{A, B, C, D}
Feature
Product
configuration
STATIC ENERGY ANALYSIS
THIS TIME, FOR SPL!
16Marco Couto @ GSL - HASLab/INESC TEC
C
Source Code CFG
Machine Behavior
Dataflow
Bound Computation
Analysis Steps
1
53
2
Bounded CFG
E
Energy Model
ILP Solver
x1 > C0
x1+x2 = C1
x1+x3 = C2
...
max(∑ xi.ti)
IPET ConstraintsCFG
(feature-oriented)
1
53
2
Bounded CFG
(feature-oriented)(feature-oriented)
Intraprocedural Dataflow Analysis for Software Product Lines
- [AOSD '12]
RESULTS
Marco Couto @ GSL - HASLab/INESC TEC 17
PRELIMINARY RESULTS
• A SPL with 7 (exclusive) features
Results submited to SPLC’17 – Software Product Lines Conference, 21st edition:
“Products go green: Worst-Case Energy Consumption in Software Product Lines”
18Marco Couto @ GSL - HASLab/INESC TEC
WHAT NOW?
• This work was focused on accuracy
• Technique’s performance could be improved...
• Main reason: shared constraints are re-calculated for every product
19Marco Couto @ GSL - HASLab/INESC TEC
A B
CORE
D E
C
{B, C, D}
A B
CORE
D E
C
{A, B, C, D}
...
#Constraints for B
...
#Constraints for C
...
#Constraints for D
...
Constraint
Generator
...
#Constraints for B
...
#Constraints for C
...
#Constraints for D
...
Constraint
Generator
*
*
*Constraints solved more than once!
WHAT NOW?
• Accuracy can also be improved!
• Include a machine behavior analysis
• -> different energy consumptions per instruction
• Consider lower abstraction level
• For now, we analyzed C code
• Apply technique to different contexts
• Mobile?
• Embedded?
• ???
20Marco Couto @ GSL - HASLab/INESC TEC
Marco Couto
marco.l.couto@inesctec.pt
STATIC ENERGY PREDICTION
IN SOFTWARE:
A WORST-CASE SCENARIO APPROACH

Static Energy Prediction in Software: A Worst-Case Scenario Approach

  • 1.
    Marco Couto marco.l.couto@inesctec.pt STATIC ENERGYPREDICTION IN SOFTWARE: A WORST-CASE SCENARIO APPROACH
  • 2.
    MOTIVATION Marco Couto @GSL - HASLab/INESC TEC 2
  • 3.
    ENERGY VS. POWER 3 •Power (w) – rate (or effort) at which that work is done • Energy (J) – amount of work done • Power can change constantly while Energy is the accumulation Energy = Power x Seconds Power Energy 100W360,000 J = x 3,600s
  • 4.
    ENERGY EFFICIENT SOFTWARE •Programmers problems: • How to analyze • How to interpret • How to improve • Researchers problem: • How to provide information to developers 4 Mining questions about software energy consumption - [MSR’14] Integrated energy-directed test suite optimization - [ISTA’14] Seeds: A software engineer’s energy-optimization decision support framework - [ICSE’14]
  • 5.
    THE CHALLENGE Marco Couto@ GSL - HASLab/INESC TEC 5
  • 6.
    STATIC ENERGY ANALYSIS WHY? •Dynamic can be too costly 1. Build application + tests 2. Intrument app and/or tests 3. Run tests 4. Gather measurements and analyze them 5. Repeat N times • ‘M’ apps -> Repeat all ‘M’ times • Are all cases covered? 6Marco Couto @ GSL - HASLab/INESC TEC ‘M’ times
  • 7.
    STATIC ENERGY ANALYSIS HOW? •How is it done for execution time? • WCET – Worst Case Execution Time • Can we do the same for energy? 7Marco Couto @ GSL - HASLab/INESC TEC
  • 8.
    STATIC ENERGY EXECUTIONTIME ANALYSIS HOW? 8Marco Couto @ GSL - HASLab/INESC TEC How exactly does WCET works? </> Source Code CFG Machine Behavior Dataflow Bound Computation Analysis Steps 1 53 2 Bounded CFG T Execution Time Model ILP Solver x1 > C0 x1+x2 = C1 x1+x3 = C2 ... max(∑ xi.ti) IPET Constraints
  • 9.
    IPET – IMPLICITPATH ENUMERATION TECHNIQUE A.K.A CONSTRAINT GENERATOR • Each node has: • A count variable, ‘x’ • A cost variable, ‘t’ • Each edge has: • A count variable, ‘x’ • 4 Simple but strong premises: 1. Start and end nodes accessed exactly 1 time 2. #x of node i = sum (#x of all pred. of i) 3. #x of node i = sum (#x of all succ. of i) 4. Loops must have na upper bound 9Marco Couto @ GSL - HASLab/INESC TEC
  • 10.
    STATIC ENERGY ANALYSIS HOW? 10MarcoCouto @ GSL - HASLab/INESC TEC How exactly does WCEC works? </> Source Code CFG Machine Behavior Dataflow Bound Computation Analysis Steps 1 53 2 Bounded CFG E Energy Model ILP Solver x1 > C0 x1+x2 = C1 x1+x3 = C2 ... max(∑ xi.ti) IPET Constraints
  • 11.
    ENERGY MODEL HOW TOBUILD IT? Marco Couto @ GSL - HASLab/INESC TEC 11
  • 12.
    BUILDING THE ENERGYMODEL • Two types of instructions: • Path-Independent: • x=1; • i++; • a=2*b; • return 0; • Path-Dependent: • Allocations: malloc(sizeof(int)) ≠ malloc(sizeof(double)) • System calls: scanf(“%d”, &a) ≠ scanf(“%f”, &a) • Other functions: strcmp(...), atoi(...), sizeof(...), ... • Some instructions depend on others: • ‘int x = z;’ depends on the declaration of z • ‘printf(“%d”, a);’ assumes a has a previous assigned value 12Marco Couto @ GSL - HASLab/INESC TEC Estimating Mobile Application Energy Consumption using Program Analysis - [ICSE’13]
  • 13.
    BUILDING THE ENERGYMODEL • Path-Independent: • Execute N times • Repeat M times, measure each time and sum all • At the end: energy = (sum/M/N) – dependencies • Path-Dependent: • Execute N times • Repeat M times, measure each time • At the end: energy = max(all measures) – dependencies 13Marco Couto @ GSL - HASLab/INESC TEC Estimating Mobile Application Energy Consumption using Program Analysis - [ICSE’13]
  • 14.
    SOFTWARE PRODUCT LINES THECASE STUDY Marco Couto @ GSL - HASLab/INESC TEC 14
  • 15.
    SOFTWARE PRODUCT LINE 15MarcoCouto @ GSL - HASLab/INESC TEC “(…) a set of related software products (…) generated from reusable assets.” A B CORE D E C A B CORE D E C {B, C, D} A B CORE D E C {A, E} A B CORE D E C {A, B, C, D} Feature Product configuration
  • 16.
    STATIC ENERGY ANALYSIS THISTIME, FOR SPL! 16Marco Couto @ GSL - HASLab/INESC TEC C Source Code CFG Machine Behavior Dataflow Bound Computation Analysis Steps 1 53 2 Bounded CFG E Energy Model ILP Solver x1 > C0 x1+x2 = C1 x1+x3 = C2 ... max(∑ xi.ti) IPET ConstraintsCFG (feature-oriented) 1 53 2 Bounded CFG (feature-oriented)(feature-oriented) Intraprocedural Dataflow Analysis for Software Product Lines - [AOSD '12]
  • 17.
    RESULTS Marco Couto @GSL - HASLab/INESC TEC 17
  • 18.
    PRELIMINARY RESULTS • ASPL with 7 (exclusive) features Results submited to SPLC’17 – Software Product Lines Conference, 21st edition: “Products go green: Worst-Case Energy Consumption in Software Product Lines” 18Marco Couto @ GSL - HASLab/INESC TEC
  • 19.
    WHAT NOW? • Thiswork was focused on accuracy • Technique’s performance could be improved... • Main reason: shared constraints are re-calculated for every product 19Marco Couto @ GSL - HASLab/INESC TEC A B CORE D E C {B, C, D} A B CORE D E C {A, B, C, D} ... #Constraints for B ... #Constraints for C ... #Constraints for D ... Constraint Generator ... #Constraints for B ... #Constraints for C ... #Constraints for D ... Constraint Generator * * *Constraints solved more than once!
  • 20.
    WHAT NOW? • Accuracycan also be improved! • Include a machine behavior analysis • -> different energy consumptions per instruction • Consider lower abstraction level • For now, we analyzed C code • Apply technique to different contexts • Mobile? • Embedded? • ??? 20Marco Couto @ GSL - HASLab/INESC TEC
  • 21.
    Marco Couto marco.l.couto@inesctec.pt STATIC ENERGYPREDICTION IN SOFTWARE: A WORST-CASE SCENARIO APPROACH