SEEDS: THE SOFTWARE ENGINEER'S ENERGY- OPTIMIZATION DECISION - - PowerPoint PPT Presentation

seeds the software engineer s energy optimization
SMART_READER_LITE
LIVE PREVIEW

SEEDS: THE SOFTWARE ENGINEER'S ENERGY- OPTIMIZATION DECISION - - PowerPoint PPT Presentation

The road to: SEEDS: THE SOFTWARE ENGINEER'S ENERGY- OPTIMIZATION DECISION SUPPORT FRAMEWORK James Clause University of Delaware Energy usage is an increasingly important concern REDUCING ENERGY USAGE Software Engineer Source Code


slide-1
SLIDE 1

SEEDS: THE SOFTWARE ENGINEER'S ENERGY- OPTIMIZATION DECISION SUPPORT FRAMEWORK

University of Delaware

James Clause

The road to:

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8
slide-9
SLIDE 9

Energy usage is an increasingly important concern

slide-10
SLIDE 10

Hardware cpu, disk, etc. Operating System Compiler Source Code Software Engineer

REDUCING ENERGY USAGE

slide-11
SLIDE 11

Hardware cpu, disk, etc. Operating System Compiler Source Code Software Engineer

Energy Reducing Transformations Dynamic Voltage Frequency Scaling Batch operations

REDUCING ENERGY USAGE

slide-12
SLIDE 12

Hardware cpu, disk, etc. Operating System Compiler Source Code Software Engineer

Energy Reducing Transformations Dynamic Voltage Frequency Scaling Batch operations Get software engineers involved!

REDUCING ENERGY USAGE

slide-13
SLIDE 13

An Empirical Study of Practitioners’ Perspectives on Green Software Engineering

*University of Delaware, †Microsoft Research, ß IBM Research-Almaden, ΩABB Corporate Research, ∂Google, Inc.

Irene Manotas*, Chris0an Bird†, Rui Zhangß, David ShepherdΩ, Ciera Jaspan∂, Caitlin Sadowski∂, Lori Pollock*, and James Clause*

HOW DO SOFTWARE ENGINEERINGS THINK ABOUT ENERGY DURING DEVELOPMENT?

slide-14
SLIDE 14

METHODOLOGY

Data

Conduct Interviews Create/Distribute Surveys

Distribute 1500 Invitations Create 36 Question Survey 247 Respondents Interview Guide

18 Participants

Code & Analyze Interviews

14 Codes

3 Coders

Interview Transcripts Topical Concordance

454 Respondents 3860

Selective

slide-15
SLIDE 15

METHODOLOGY

Data

Conduct Interviews Create/Distribute Surveys

Distribute 1500 Invitations Create 36 Question Survey 247 Respondents Interview Guide

18 Participants

Code & Analyze Interviews

14 Codes

3 Coders

Interview Transcripts Topical Concordance

454 Respondents 3860

Selective

slide-16
SLIDE 16

METHODOLOGY

Data

Conduct Interviews Create/Distribute Surveys

Distribute 1500 Invitations Create 36 Question Survey 247 Respondents Interview Guide

18 Participants

Code & Analyze Interviews

14 Codes

3 Coders

Interview Transcripts Topical Concordance

454 Respondents 3860

Selective

slide-17
SLIDE 17

METHODOLOGY

Data

Conduct Interviews Create/Distribute Surveys

Distribute 1500 Invitations Create 36 Question Survey 247 Respondents Interview Guide

18 Participants

Code & Analyze Interviews

14 Codes

3 Coders

Interview Transcripts Topical Concordance

454 Respondents 3860

Selective

slide-18
SLIDE 18

METHODOLOGY

Data

Conduct Interviews Create/Distribute Surveys

Distribute 1500 Invitations Create 36 Question Survey 247 Respondents Interview Guide

18 Participants

Code & Analyze Interviews

14 Codes

3 Coders

Interview Transcripts Topical Concordance

454 Respondents 3860

Selective

slide-19
SLIDE 19

WHERE IS ENERGY USAGE A CONCERN?

slide-20
SLIDE 20

62% 73% 64% 38% 60% 24% 14% 26% 43% 24% 15% 13% 11% 20% 16% My applications have requirements about energy usage. (S1) Data Center Embedded Traditional Mobile All

Response

Never Rarely Sometimes Often Almost Always

My applications have requirements about energy usage.

WHERE IS ENERGY USAGE A CONCERN?

slide-21
SLIDE 21

62% 73% 64% 38% 60% 24% 14% 26% 43% 24% 15% 13% 11% 20% 16% My applications have requirements about energy usage. (S1) Data Center Embedded Traditional Mobile All

Response

Never Rarely Sometimes Often Almost Always

My applications have requirements about energy usage.

WHERE IS ENERGY USAGE A CONCERN?

slide-22
SLIDE 22

62% 73% 64% 38% 60% 24% 14% 26% 43% 24% 15% 13% 11% 20% 16% My applications have requirements about energy usage. (S1) Data Center Embedded Traditional Mobile All

Response

Never Rarely Sometimes Often Almost Always

My applications have requirements about energy usage.

WHERE IS ENERGY USAGE A CONCERN?

slide-23
SLIDE 23

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

slide-24
SLIDE 24

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

Prac;;oners care

slide-25
SLIDE 25

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

20% 33% 47% I'm willing to sacrifice performance, usability, etc. for reduced energy usage. (S2)

Response

Never Rarely Sometimes Often Almost Always

Prac;;oners care

slide-26
SLIDE 26

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

Prac;;oners care

slide-27
SLIDE 27

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

Prac;;oners care, but they lack informa;on

slide-28
SLIDE 28

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

Prac;;oners care

19% 30% 51% I have accurate intuitions about the energy usage of my code

Response

Strongly Disagree Disagree Undecided Agree Strongly Agree

“I care about memory usage, CPU usage, I understand those.
 I don’t have the same intuition about energy.”

, but they lack informa;on

slide-29
SLIDE 29

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

Prac;;oners care, but they lack informa;on

slide-30
SLIDE 30

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

Prac;;oners care, but they lack informa;on and tool support

slide-31
SLIDE 31

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

Prac;;oners care

I could learn how to improve energy usage by:

1% 9% 10% 13% 86% 70% 69% 66% 13% 21% 21% 21% Reading documentation Looking at other code Talking to other developers Using tools

Response

Strongly Disagree Disagree Undecided Agree Strongly Agree

, but they lack informa;on and tool support

slide-32
SLIDE 32

WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?

Prac;;oners care, but they lack informa;on and tool support

slide-33
SLIDE 33

GIVING SOFTWARE ENGINEERS THE INFORMATION THEY NEED TO BE SUCCESSFUL

How Do Code Obfuscations Impact Energy Consumption?

University of Delaware

Cagri Sahin, Philip Tornquist, Ryan McKenna, Zachary Pearson, and James Clause

slide-34
SLIDE 34

INCREASING PIRACY RATES

Number of Pirates Past → Future

slide-35
SLIDE 35

INCREASING PIRACY RATES

Number of Pirates Past → Future

slide-36
SLIDE 36

INCREASING PIRACY RATES

Number of Pirates Past → Future

  • Overall, 40% of software is pirated resulting in losses of $63+ billion
  • For mobile applications, piracy rates can approach 90%
slide-37
SLIDE 37

CODE OBFUSCATION

Semantics-preserving transformations that make
 code more difficult for humans (pirates) to understand.

slide-38
SLIDE 38

CODE OBFUSCATION

Developers Pirates Semantics-preserving transformations that make
 code more difficult for humans (pirates) to understand.

slide-39
SLIDE 39

CODE OBFUSCATION

Developers Pirates Users Semantics-preserving transformations that make
 code more difficult for humans (pirates) to understand.

slide-40
SLIDE 40

CODE OBFUSCATION

Developers Pirates Users Semantics-preserving transformations that make
 code more difficult for humans (pirates) to understand.

slide-41
SLIDE 41

CODE OBFUSCATION

Developers Pirates Users Semantics-preserving transformations that make
 code more difficult for humans (pirates) to understand.

slide-42
SLIDE 42

CODE OBFUSCATION

Developers Pirates Users Semantics-preserving transformations that make
 code more difficult for humans (pirates) to understand.

slide-43
SLIDE 43

CODE OBFUSCATION

Developers Pirates Users Developers must balance protecting their applications and preserving battery power, but they lack the necessary information. Semantics-preserving transformations that make
 code more difficult for humans (pirates) to understand.

slide-44
SLIDE 44

EMPIRICAL STUDY

Post Processing 198 Subjects and 11 Applications 8850 Power Profiles (3.2 GB) Energy Usage Data Data Collection Obfuscated Application Creation 4 Obfuscators 5 Configurations 11 Applications 15 Usage Scenarios

slide-45
SLIDE 45

EMPIRICAL STUDY

Post Processing 198 Subjects and 11 Applications 8850 Power Profiles (3.2 GB) Energy Usage Data Data Collection Obfuscated Application Creation 4 Obfuscators 5 Configurations 11 Applications 15 Usage Scenarios

Obfuscated
 Application Creation

  • Apply obfuscations to

each application

slide-46
SLIDE 46

EMPIRICAL STUDY

Post Processing 198 Subjects and 11 Applications 8850 Power Profiles (3.2 GB) Energy Usage Data Data Collection Obfuscated Application Creation 4 Obfuscators 5 Configurations 11 Applications 15 Usage Scenarios

Obfuscated
 Application Creation

  • Apply obfuscations to

each application Data Collection

  • Replay each usage

scenario

  • 30 repetitions for each
  • bfuscated application

and original application

  • 177+ hours of

continuous execution time (over one week)

slide-47
SLIDE 47

EMPIRICAL STUDY

Post Processing 198 Subjects and 11 Applications 8850 Power Profiles (3.2 GB) Energy Usage Data Data Collection Obfuscated Application Creation 4 Obfuscators 5 Configurations 11 Applications 15 Usage Scenarios

Obfuscated
 Application Creation

  • Apply obfuscations to

each application Data Collection

  • Replay each usage

scenario

  • 30 repetitions for each
  • bfuscated application

and original application

  • 177+ hours of

continuous execution time (over one week) Post Processing

  • Discard samples before

and after the execution

  • Convert power profiles

to energy usage data

slide-48
SLIDE 48

POWER MEASUREMENT

  • Nexus 4-based custom energy

measurement platform (EMP)


  • Two Arduino Unos with

current sensing boards


  • Samples current (mA) and

voltage (V) drawn from battery and USB


  • No measurement overheads
slide-49
SLIDE 49

ARE THE IMPACTS NOTICEABLE?

slide-50
SLIDE 50
  • 1. Calculate the percentage of battery charge consumed by a scenario.



 
 


ARE THE IMPACTS NOTICEABLE?

%charge = E 3.8 V × 1000 2100 mA h × 3600 × 100

slide-51
SLIDE 51
  • 1. Calculate the percentage of battery charge consumed by a scenario.



 
 


  • 2. Calculate battery life (time needed to drain the battery).



 
 


  • For our scenarios, battery life ranges from 3.0 to 5.3 hours.


ARE THE IMPACTS NOTICEABLE?

%charge = E 3.8 V × 1000 2100 mA h × 3600 × 100 tdrain = 100 % %charge × D

slide-52
SLIDE 52
  • 1. Calculate the percentage of battery charge consumed by a scenario.



 
 


  • 2. Calculate battery life (time needed to drain the battery).



 
 


  • For our scenarios, battery life ranges from 3.0 to 5.3 hours.

  • 3. Calculate the differences in battery life when using obfuscated versions

instead of the original versions.

ARE THE IMPACTS NOTICEABLE?

%charge = E 3.8 V × 1000 2100 mA h × 3600 × 100 tdrain = 100 % %charge × D

slide-53
SLIDE 53

ARE THE IMPACTS NOTICEABLE?

Change in mean battery life when using an obfuscated version (wilcox, p ≤ 0.05)

When scenarios are run continually, draining the battery from full to empty, 
 differences in battery life range from -16 minutes to +5 minutes.

all

  • pt

rename cf se −3.4 −13.1 −2.8 −1.3 −1.8 1.7 −1.2 −2.2 −1.0 −2.2 −4.1 −3.6 −3.0 −8.0 −8.2 −6.4 −8.7 −6.6 −6.3 −6.0 −4.6 −8.8 −14.9 −5.6 −10.3 −1.3 1.5 2.4 −1.0 0.5 −0.2 −6.0 −6.5 −3.3 −5.8 0.8 −4.9 −4.8 1.4 2.8 −1.6 −2.0 0.5 −3.3 −13.8 2.1 2.1 1.5 −1.1 −1.3 −1.5 −2.9 −3.7 −0.5 −2.9 1.5 −6.6 −6.1 −4.2 −3.3 −9.8 −11.5 2.6 −11.7 −6.8 −6.3 −15.9 5.3 −11.2 −11.0 −7.2 −0.8 −1.9 −1.2 −0.5 0.6 0.3 −0.6 −5.8 −6.8 −6.5 −10.9 1.7 −1.8 −1.0 −1.1 −5.8 −4.1 −2.7 1.0 1.4 −2.1 −5.9 −11.6 −2.4 −11.6 −0.7 −2.4 −1.6 0.2 −4.6 −4.4 −6.4 −6.6 −4.7 −9.1 −9.5 −10.7 −9.4 −7.2 −6.7 −5.2 −6.0 −10.3 −11.4 −9.2 −8.2 −2.0 −0.3 −0.9 −0.1 −1.5 −5.8 −5.3 −9.7 1.4 1.1 −1.7 −0.9 −5.5 −1.5 −3.2 −3.2 1.6 1.2 −0.5 −0.6 −2.2 −10.9 −11.9 −1.2 1.5 −2.9 −1.5 −3.6 −5.9 −6.6 −6.5 −9.7 −9.9 −9.6 −4.7 −5.3 −8.9 −11.7 −9.4 −5.4 −1.1 −3.7 0.3 0.0 −6.2 −6.5 −9.1 1.5 −1.4 −6.4 −2.2 1.5 −0.5 1.7 −14.0 1.3 0.9 −2.7 −1.6 −3.5 −6.0 −6.4 −3.8 −8.9 −10.8 −9.5 −7.1 −7.3 −13.2 −11.5 −16.3 −5.6 −0.6 −0.3 −6.7 −5.7 −10.5 1.3 −5.3 −2.1 −1.6 −0.8 −1.9 Tomdroid SkyMap: Move Zoom SkyMap: Find Mars OpenSudoku OIFileManager Nim FrozenBubblePlus DailyMoney: View Lists DailyMoney: Add Detail Clock: Timer Clock: Stopwatch Calendar Calculator AnkiDroid: Tutorial Deck AnkiDroid: New Deck Allatori DashO Proguard ZKM Allatori DashO Proguard ZKM Allatori DashO Proguard ZKM Allatori DashO ZKM Allatori DashO ZKM

Obfuscation Tool Usage Scenario

−15 −10 −5 5

Change in mean battery life (min)

slide-54
SLIDE 54

GIVING SOFTWARE ENGINEERS THE TOOLS THEY NEED TO BE SUCCESSFUL

SEEDS: A Software Engineer’s Energy Optimization Decision Support Framework

Irene Manotas, Lori Pollock and James Clause

University of Delaware

slide-55
SLIDE 55

SEEDS

THE SEEDS FRAMEWORK

  • 1. Automatically apply changes to optimize

applications’ energy usage

  • 2. Abstract away tedious system level concerns
  • 3. Support different software engineering decisions

Energy Optimized Application Application

slide-56
SLIDE 56

API IMPLEMENTATIONS

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

slide-57
SLIDE 57

API IMPLEMENTATIONS

Hundreds of possibilities for each choice

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

slide-58
SLIDE 58

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

slide-59
SLIDE 59

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

... . . . ... ... ... ... Hundreds of decisions points

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

Choose the most energy efficient implementation?

Collection x = new ??

LinkedHashSet TreeSet HashSet EnumSet CopyOnWriteArraySet ... ~ 40

JCF

UnifiedSet UnifiedMap SetAdapter MultiReaderFastList InmutableUnifiedMap ... ~ 40 FastSet FastBitSet LocalMap FastMap FastList ... ~ 10 ... CharArraySet ObjectArraySet ObjectAVLTreeSet OpenObjHashBigSet ObjectRBTreeSet ~ 700

...

slide-60
SLIDE 60

SEEDS FRAMEWORK COMPONENTS

Define Application- Specific Search Space

Application Code Potential Changes Optimization Parameters Context Information Energy Optimized Application Optimization Results

Search

Inputs Outputs

SEEDS_api supports the selection of Library implementations to optimize the energy usage of a Java applications.

slide-61
SLIDE 61

SEEDS FRAMEWORK COMPONENTS

Define Application- Specific Search Space

Application Code Potential Changes Optimization Parameters Context Information Energy Optimized Application Optimization Results

Search

Inputs Outputs

Select Solution

SEEDS_api supports the selection of Library implementations to optimize the energy usage of a Java applications.

slide-62
SLIDE 62

SEEDS FRAMEWORK COMPONENTS

Define Application- Specific Search Space

Application Code Potential Changes Optimization Parameters Context Information Energy Optimized Application Optimization Results

Search

Inputs Outputs

Transform Application Select Solution

SEEDS_api supports the selection of Library implementations to optimize the energy usage of a Java applications.

slide-63
SLIDE 63

SEEDS FRAMEWORK COMPONENTS

Define Application- Specific Search Space

Application Code Potential Changes Optimization Parameters Context Information Energy Optimized Application Optimization Results

Search

Inputs Outputs

Profile Energy Usage Transform Application Select Solution

SEEDS_api supports the selection of Library implementations to optimize the energy usage of a Java applications.

slide-64
SLIDE 64

SEEDS FRAMEWORK COMPONENTS

Define Application- Specific Search Space

Application Code Potential Changes Optimization Parameters Context Information Energy Optimized Application Optimization Results

Search

Inputs Outputs

Profile Energy Usage Transform Application Select Solution

SEEDS_api supports the selection of Library implementations to optimize the energy usage of a Java applications.

slide-65
SLIDE 65

EFFECTIVENESS OF SEEDS_API

Application % Improvement Barbecue 17 Jdepend 6 Apache-xml-security 5 JodaTime 9 Commons-lang 13 Commons-beanutils — Commons-cli 2

Extremely simplistic search strategy: try each alternative API at each location, individually

slide-66
SLIDE 66

GA-BASED SEEDS FRAMEWORK

Define Application- Specific Search Space

Application Code Potential Changes Optimization Parameters Context Information Energy Optimized Application Optimization Results

Search

Inputs Outputs

GA (jMetal)

slide-67
SLIDE 67

EFFECTIVENESS OF (JMETAL) SEEDS_API

Application % Improvement Barbecue 17 18 JodaTime 9 9 Commons-cli 2 3

  • 1. Single objective, generational GA (100 generations,

50 individuals)

  • 2. Integer array representation of individuals
  • 3. Default selection, mutation, and crossover
slide-68
SLIDE 68

OPEN CHALLENGES

slide-69
SLIDE 69

OPEN CHALLENGES

  • 1. Many GA algorithms and configuration options,

excessive execution times make exploration prohibitive.

slide-70
SLIDE 70

OPEN CHALLENGES

  • 1. Many GA algorithms and configuration options,

excessive execution times make exploration prohibitive.

  • 2. Rugged fitness landscape (epistasis)
slide-71
SLIDE 71

OPEN CHALLENGES

  • 1. Many GA algorithms and configuration options,

excessive execution times make exploration prohibitive.

  • 2. Rugged fitness landscape (epistasis)
  • 3. Lack of support for automatically applying changes
slide-72
SLIDE 72

OPEN CHALLENGES

  • 1. Many GA algorithms and configuration options,

excessive execution times make exploration prohibitive.

  • 2. Rugged fitness landscape (epistasis)
  • 3. Lack of support for automatically applying changes
  • 4. Fitness value difficult to calculate reliably