Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Products go Green: Worst-Case Energy Consumption in Software Product Lines
1. Marco Couto *, Paulo Borba †, Jácome Cunha ‡,
João Paulo Fernandes §, Rui Pereira *, João Saraiva *
* HASLab/INESC TEC, Uni. do Minho
† CIn, Univ. Federal de Pernambuco
‡ NOVA LINCS, Univ. NOVA de Lisboa
§ CISUC, Univ. de Coimbra
marco.l.couto@inesctec.pt, phmb@cin.ufpe.br, jacome@fct.unl.pt, jpf@dei.uc.pt, {ruipereira, saraiva}@di.uminho.pt
PRODUCTS GO GREEN: WORST-
CASE ENERGY CONSUMPTION IN
SOFTWARE PRODUCT LINES
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]
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?
• Even worse for SPL
• Naively: ‘F’ products -> F * M repetitions!
• With sampling: Potentialy inaccurate
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 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
9. 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
10. 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
12. 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]
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]
17. PRELIMINARY RESULTS
• A SPL with 7 (exclusive) features
• Pre-processor based SPL
• Varying from ~1753 LOC to ~2938 LOC
• Different approaches for computing the disparity between 2 pictures
17Marco Couto @ GSL - HASLab/INESC TEC
19. 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!
20. WHAT NOW?
• WCEC is rather accurate, but…
• Does it happen often?
• Ideas:
• Probability Distributions
• Energy Consumption Value
• Probability Distribution of Energy
• Probabilistic Program Analysis
• Add probabilities to each flow
20Marco Couto @ GSL - HASLab/INESC TEC
A
B
C
CFG
Worst consumption
path for P1: A->B->C
pA(x) pB(x) pA(x)++
probability
energy
All worst case
scenarios
CFG
(feature-oriented)
Prob. Prog.
Analysis
Analysis Steps
{Prod. 1}
- 10 J (20%)
- 42 J (35%)
- 50 J (40%)
- 96 J (5%)
{Prod. 2}
. . .
21. Marco Couto *, Paulo Borba †, Jácome Cunha ‡,
João Paulo Fernandes §, Rui Pereira *, João Saraiva *
* HASLab/INESC TEC, Uni. do Minho
† CIn, Univ. Federal de Pernambuco
‡ NOVA LINCS, Univ. NOVA de Lisboa
§ CISUC, Univ. de Coimbra
marco.l.couto@inesctec.pt, phmb@cin.ufpe.br, jacome@fct.unl.pt, jpf@dei.uc.pt, {ruipereira, saraiva}@di.uminho.pt
PRODUCTS GO GREEN: WORST-
CASE ENERGY CONSUMPTION IN
SOFTWARE PRODUCT LINES