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 Compiler Operating System Hardware cpu, disk, etc.
REDUCING ENERGY USAGE Software Engineer Source Code Energy Reducing Transformations Compiler Batch operations Operating System Hardware Dynamic Voltage Frequency Scaling cpu, disk, etc.
REDUCING ENERGY USAGE Get software engineers Software Engineer involved! Source Code Energy Reducing Transformations Compiler Batch operations Operating System Hardware Dynamic Voltage Frequency Scaling cpu, disk, etc.
HOW DO SOFTWARE ENGINEERINGS THINK ABOUT ENERGY DURING DEVELOPMENT? An Empirical Study of Practitioners’ Perspectives on Green Software Engineering Irene Manotas * , Chris0an Bird † , Rui Zhang ß , David Shepherd Ω , Ciera Jaspan ∂ , Caitlin Sadowski ∂ , Lori Pollock * , and James Clause * * University of Delaware, † Microsoft Research, ß IBM Research-Almaden, Ω ABB Corporate Research, ∂ Google, Inc.
METHODOLOGY Conduct Interviews Code & Analyze Interviews Interview Selective Interview 14 Guide Transcripts Codes 18 Participants 3 Coders Topical Concordance Create Distribute 454 247 3860 Data 36 Question 1500 Respondents Respondents Survey Invitations Create/Distribute Surveys
METHODOLOGY Conduct Interviews Code & Analyze Interviews Interview Selective Interview 14 Guide Transcripts Codes 18 Participants 3 Coders Topical Concordance Create Distribute 454 247 3860 Data 36 Question 1500 Respondents Respondents Survey Invitations Create/Distribute Surveys
METHODOLOGY Conduct Interviews Code & Analyze Interviews Interview Selective Interview 14 Guide Transcripts Codes 18 Participants 3 Coders Topical Concordance Create Distribute 454 247 3860 Data 36 Question 1500 Respondents Respondents Survey Invitations Create/Distribute Surveys
METHODOLOGY Conduct Interviews Code & Analyze Interviews Interview Selective Interview 14 Guide Transcripts Codes 18 Participants 3 Coders Topical Concordance Create Distribute 454 247 3860 Data 36 Question 1500 Respondents Respondents Survey Invitations Create/Distribute Surveys
METHODOLOGY Conduct Interviews Code & Analyze Interviews Interview Selective Interview 14 Guide Transcripts Codes 18 Participants 3 Coders Topical Concordance Create Distribute 454 247 3860 Data 36 Question 1500 Respondents Respondents Survey Invitations Create/Distribute Surveys
WHERE IS ENERGY USAGE A CONCERN?
WHERE IS ENERGY USAGE A CONCERN? My applications have requirements about energy usage. My applications have requirements about energy usage. (S1) All 62% 15% 24% Mobile 38% 20% 43% Traditional 60% 16% 24% Embedded 64% 11% 26% Data Center 73% 13% 14% Response Never Rarely Sometimes Often Almost Always
WHERE IS ENERGY USAGE A CONCERN? My applications have requirements about energy usage. My applications have requirements about energy usage. (S1) All 62% 15% 24% Mobile 38% 20% 43% Traditional 60% 16% 24% Embedded 64% 11% 26% Data Center 73% 13% 14% Response Never Rarely Sometimes Often Almost Always
WHERE IS ENERGY USAGE A CONCERN? My applications have requirements about energy usage. My applications have requirements about energy usage. (S1) All 62% 15% 24% Mobile 38% 20% 43% Traditional 60% 16% 24% Embedded 64% 11% 26% Data Center 73% 13% 14% Response Never Rarely Sometimes Often Almost Always
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES?
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? Prac;;oners care
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? I'm willing to sacrifice performance, usability, etc. for 20% 47% 33% reduced energy usage. (S2) Response Never Rarely Sometimes Often Almost Always Prac;;oners care
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? Prac;;oners care
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? Prac;;oners care, but they lack informa;on
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? I have accurate intuitions about the 19% 51% 30% 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.” Prac;;oners care , but they lack informa;on
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? Prac;;oners care, but they lack informa;on
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? Prac;;oners care, but they lack informa;on and tool support
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? I could learn how to improve energy usage by: Using tools 10% 21% 69% Talking to other developers 1% 13% 86% Looking at other code 13% 21% 66% Reading documentation 9% 21% 70% Response Strongly Disagree Disagree Undecided Agree Strongly Agree Prac;;oners care , but they lack informa;on and tool support
WHAT ARE EXPERIENCED PRACTITIONERS’ PERSPECTIVES? Prac;;oners care, but they lack informa;on and tool support
GIVING SOFTWARE ENGINEERS THE INFORMATION THEY NEED TO BE SUCCESSFUL How Do Code Obfuscations Impact Energy Consumption? Cagri Sahin, Philip Tornquist, Ryan McKenna, Zachary Pearson, and James Clause University of Delaware
INCREASING PIRACY RATES Number of Pirates Past → Future
INCREASING PIRACY RATES Number of Pirates Past → Future
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%
CODE OBFUSCATION Semantics-preserving transformations that make code more difficult for humans (pirates) to understand.
CODE OBFUSCATION Semantics-preserving transformations that make code more difficult for humans (pirates) to understand. Pirates Developers
CODE OBFUSCATION Semantics-preserving transformations that make code more difficult for humans (pirates) to understand. Pirates Developers Users
CODE OBFUSCATION Semantics-preserving transformations that make code more difficult for humans (pirates) to understand. Pirates Developers Users
CODE OBFUSCATION Semantics-preserving transformations that make code more difficult for humans (pirates) to understand. Pirates Developers Users
CODE OBFUSCATION Semantics-preserving transformations that make code more difficult for humans (pirates) to understand. Pirates Developers Users
CODE OBFUSCATION Semantics-preserving transformations that make code more difficult for humans (pirates) to understand. Pirates Developers Users Developers must balance protecting their applications and preserving battery power, but they lack the necessary information.
EMPIRICAL STUDY 11 Applications 15 Usage Scenarios Obfuscated 198 Subjects Data 8850 Power Post Application and Energy Usage Data Collection Profiles (3.2 GB) Processing Creation 11 Applications 4 Obfuscators 5 Configurations
EMPIRICAL STUDY 11 Applications 15 Usage Scenarios Obfuscated 198 Subjects Data 8850 Power Post Application and Energy Usage Data Collection Profiles (3.2 GB) Processing Creation 11 Applications 4 Obfuscators 5 Configurations Obfuscated Application Creation • Apply obfuscations to each application
EMPIRICAL STUDY 11 Applications 15 Usage Scenarios Obfuscated 198 Subjects Data 8850 Power Post Application and Energy Usage Data Collection Profiles (3.2 GB) Processing Creation 11 Applications 4 Obfuscators 5 Configurations Obfuscated Application Creation Data Collection • Apply obfuscations to • Replay each usage each application scenario • 30 repetitions for each obfuscated application and original application • 177+ hours of continuous execution time (over one week)
EMPIRICAL STUDY 11 Applications 15 Usage Scenarios Obfuscated 198 Subjects Data 8850 Power Post Application and Energy Usage Data Collection Profiles (3.2 GB) Processing Creation 11 Applications 4 Obfuscators 5 Configurations Obfuscated Application Creation Data Collection Post Processing • Apply obfuscations to • Replay each usage • Discard samples before each application scenario and after the execution • 30 repetitions for each • Convert power profiles obfuscated application to energy usage data and original application • 177+ hours of continuous execution time (over one week)
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
ARE THE IMPACTS NOTICEABLE?
ARE THE IMPACTS NOTICEABLE? 1. Calculate the percentage of battery charge consumed by a scenario. 1000 E % charge = 2100 mA h × 3600 × 100 3 . 8 V ×
Recommend
More recommend