Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Products go Green: Worst-Case Energy Consumption in Software Product Lines

34 views

Published on

Presentation @ SPLC'17

Published in: Software
  • Be the first to comment

  • Be the first to like this

Products go Green: Worst-Case Energy Consumption in Software Product Lines

  1. 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
  2. 2. MOTIVATION Marco Couto @ GSL - HASLab/INESC TEC 2
  3. 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. 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. 5. THE CHALLENGE Marco Couto @ GSL - HASLab/INESC TEC 5
  6. 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. 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. 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. 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. 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
  11. 11. ENERGY MODEL HOW TO BUILD IT? Marco Couto @ GSL - HASLab/INESC TEC 11
  12. 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. 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]
  14. 14. SOFTWARE PRODUCT LINES HOW TO DO ENERGY ANALYSIS IN THIS CASE? Marco Couto @ GSL - HASLab/INESC TEC 14
  15. 15. STATIC ENERGY ANALYSIS THIS TIME, FOR SPL! 15Marco 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 SolverCFG (feature-oriented) 1 53 2 Bounded CFG (feature-oriented)(feature-oriented) Intraprocedural Dataflow Analysis for Software Product Lines - [AOSD '12] x1 > C0 x1+x2 = C1 x1+x3 = C2 ... max(∑ xi.ti) IPET Constraints x1 > C0 x1+x2 = C1 x1+x3 = C2 ... max(∑ xi.ti) IPET Constraints (1 per product)
  16. 16. RESULTS Marco Couto @ GSL - HASLab/INESC TEC 16
  17. 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
  18. 18. WHAT COMES NEXT Marco Couto @ GSL - HASLab/INESC TEC 18
  19. 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. 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. 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

×