SlideShare una empresa de Scribd logo
1 de 41
Let’s talk a bit about:
Green Software
greenlab.di.uminho.pt | ruipereira@di.uminho.pt
Rui Pereira
Going Green
2
+ =
Global energy system is unsustainable
3
Green Computing
4
 Caught the attention of many companies allowing them to save:
close to 50% of the energy costs of an organization can be attributed to the IT
departments
[PICMET, 2009]
up to 90% of excessive energy used by hardware can be attributed to
inefficient software
[The GHG Protocol Report, 2013]
Green Computing
5
 Everyday users also feel the impact
9 out of 10 users have low battery anxiety; long battery life
was the most desired feature in 2017
[The Wall Street Journal, 2018]
Green Software
 Reducing energy consumption through software analysis and optimization
 Problem:
 How to analyze
 How to interpret
 How to improve
6
Green Software
 Problems (extended to programmers):
 How to analyze
 How to interpret
 How to improve
7
What do programmers know about software energy consumption?
[IEEE Software’16]
An empirical study of practitioners’ perspectives on green software
engineering
[ICSE’16]
Mining questions about software energy consumption
[MSR’14]
Green Software
 Two main problems for energy efficient software development:
8
Energy efficiency: a new concern for application software
Developers
[Communications of the ACM’17]
Lack of knowledge Lack of tools
Energy vs. Power
9
 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
Is faster greener?
10
slower
Is faster greener?
Energy-aware software: Challenges, opportunities, and strategies
[Journal of Computational Science’13]
An experimental survey of energy management across the stack
[OOPSLA’14]
Understanding energy behaviors of thread management constructs
[OOPSLA’14]
Power and energy implications of the number of threads used
[PPMG’15]
Using the greenup, powerup, and speedup metrics to evaluate software
energy efficiency
[IGSC’15]
Haskell in green land: Analyzing the energy behavior of a purely functional
language
[SANER’16]
11
What is greener?
Energy Efficiency Across
Programming Languages
12
13
Understanding the energy efficiency of programming languages
14
Is a faster language always a more energy efficient one?
Which are the most energy efficient languages?
How much energy consumption is attributed to CPU?
What paradigms are most energy efficient?
How much energy does memory usage consume?
Comparing Programming Languages
15
C Java Haskell Fortran
= = =
* Formerly known as The Great Computer Language Shootout
16
Results
https://sites.google.com/view/energy-efficiency-languages
17
Normalized Results
Average
Joules ms
Compiled 120 5103
VM 576 20623
Interpreted 2365 87614
Average
Joules ms
Imperative 125 5585
OO 879 32975
Functional 1367 42740
“Scripting” 2320 88322
57J
4604J
2s
167s
18
Normalized Results
Average
Joules ms
Compiled 120 5103
VM 576 20623
Interpreted 2365 87614
Average
Joules ms
Imperative 125 5585
OO 879 32975
Functional 1367 42740
“Scripting” 2320 88322
19
Normalized Results
66Mb
1309Mb
Average
Joules ms Mb
Compiled 120 5103 125
VM 576 20623 285
Interpreted 2365 87614 426
Average
Joules ms Mb
Imperative 125 5585 116
OO 879 32975 249
Functional 1367 42740 251
“Scripting” 2320 88322 421
20
Energy vs. Time
21
Energy vs. Memory
 (Peak Memory) Spearman rank-order correlation p = 0.2091
+1 = perfect positive -1 = perfect negative0 = no relationship
0.3 = weak uphill
p = 0.2091
 (Continuous Memory) Spearman rank-order correlation p = 0.744
+1 = perfect positive -1 = perfect negative0 = no relationship
0.7 = strong uphill
p = 0.744
22
Energy vs. Time vs. Memory
23
Energy vs. Time vs. Memory (Pareto Optimization)
24
Energy Efficiency Across
Java Collections
25
Understanding the energy efficiency of Java collections
26
Which collections are the most energy inefficient?
Can we use our data to suggest energy efficient alternatives?
Can we quantify energy consumption of collections and their methods?
Java Collections Framework (JCF)
27
ConcurrentSkipListSet ArrayList ConcurrentHashMap
CopyOnWriteArraySet AttributeList ConcurrentSkipListMap
HashSet CopyOnWriteArrayList HashMap
LinkedHashSet LinkedList Hashtable
TreeSet RoleList IdentityHashMap
RoleUnresolvedList LinkedHashMap
Stack Properties
Vector SimpleBindings
TreeMap
UIDefaults
WeakHashMap
Sets Lists Maps Design – Data Structures
 Population sizes:
 25,000
 250,000
 1,000,000
Java Collections Framework (JCF)
28
 Design – Methods add add clear
addAll addAll containsKey
clear add(index) containsValue
contains addAll(index) entrySet
containsAll clear get
iterateAll contains iterateAll
iterator containsAll keySet
remove get put
removeAll indexOf putAll
retainAll iterator remove
toArray lastIndexOf values
listIterator
listIterator(index)
remove
removeAll
remove(index)
retainAll
set
sublist
toArray
Sets Lists Maps
Results (Lists - 25k population)
29
jStanley: Placing a Green Thumb on Java Collections
30
 Between 2% - 17% energy reduction
 Average of 6.7% energy reduction
https://greensoftwarelab.github.io/jStanley/
Mobile Energy Patterns
31
Energy efficiency of apps is important
32
 Analyzed 1,780+ Android and iOS open source applications
 Reviewed Git commits, issues, and PR for “energy”, “power”, or “battery” (6,000+)
 Manual analysis of the changes
 Catalog of 22 Energy Patterns
https://tqrg.github.io/energy-patterns/
Mobile Energy Patterns (3 of 22)
33
Where do I begin?
34
Quick changes
35
How do I measure energy?
36
 Qualcomm Trepn Profiler
 Monsoon ($$$)
 ODroid XU-3 ($)
 Intel Running Average Power Limiter (RAPL)
 ODroid XU-3 ($)
GreenHub Initiative
37
38
 Media coverage: Featured in more than 30+ websites
39
 28,000+ unique devices
 1,000M+ samples
40
 Explore the dataset: https://greenhub.di.ubi.pt/storage/dataset.zip
https://sites.google.com/view/energy-efficiency-languages
Mobile Energy Patterns
https://tqrg.github.io/energy-patterns

Más contenido relacionado

La actualidad más candente

Optimization of Resource Allocation Strategy Using Modified PSO in Cloud Envi...
Optimization of Resource Allocation Strategy Using Modified PSO in Cloud Envi...Optimization of Resource Allocation Strategy Using Modified PSO in Cloud Envi...
Optimization of Resource Allocation Strategy Using Modified PSO in Cloud Envi...IJCSIS Research Publications
 
Documento11propuesta
Documento11propuestaDocumento11propuesta
Documento11propuestaOscar Trenado
 
Strategies for energy efficient resource management of hybrid programming models
Strategies for energy efficient resource management of hybrid programming modelsStrategies for energy efficient resource management of hybrid programming models
Strategies for energy efficient resource management of hybrid programming modelsEcway Technologies
 
Ahmed Absi slides bigbwa
Ahmed Absi slides  bigbwaAhmed Absi slides  bigbwa
Ahmed Absi slides bigbwaAbsi Ahmed
 
MACHINE LEARNING ON MAPREDUCE FRAMEWORK
MACHINE LEARNING ON MAPREDUCE FRAMEWORKMACHINE LEARNING ON MAPREDUCE FRAMEWORK
MACHINE LEARNING ON MAPREDUCE FRAMEWORKAbhi Jit
 
Presented by Ahmed Abdulhakim Al-Absi - Scaling map reduce applications acro...
Presented by Ahmed Abdulhakim Al-Absi -  Scaling map reduce applications acro...Presented by Ahmed Abdulhakim Al-Absi -  Scaling map reduce applications acro...
Presented by Ahmed Abdulhakim Al-Absi - Scaling map reduce applications acro...Absi Ahmed
 
Demand-driven Gaussian window optimization for executing preferred population...
Demand-driven Gaussian window optimization for executing preferred population...Demand-driven Gaussian window optimization for executing preferred population...
Demand-driven Gaussian window optimization for executing preferred population...IJECEIAES
 
Garbage collection auto tuning for java map reduce on multi-cores
Garbage collection auto tuning for java map reduce on multi-coresGarbage collection auto tuning for java map reduce on multi-cores
Garbage collection auto tuning for java map reduce on multi-coresPradeeban Kathiravelu, Ph.D.
 
GMC: Greening MapReduce Clusters Considering both Computation Energy and Cool...
GMC: Greening MapReduce Clusters Considering both Computation Energy and Cool...GMC: Greening MapReduce Clusters Considering both Computation Energy and Cool...
GMC: Greening MapReduce Clusters Considering both Computation Energy and Cool...Tarik Reza Toha
 
Optimization for-power-sy-8631549
Optimization for-power-sy-8631549Optimization for-power-sy-8631549
Optimization for-power-sy-8631549Kannan Kathiravan
 

La actualidad más candente (14)

Optimization of Resource Allocation Strategy Using Modified PSO in Cloud Envi...
Optimization of Resource Allocation Strategy Using Modified PSO in Cloud Envi...Optimization of Resource Allocation Strategy Using Modified PSO in Cloud Envi...
Optimization of Resource Allocation Strategy Using Modified PSO in Cloud Envi...
 
Documento11propuesta
Documento11propuestaDocumento11propuesta
Documento11propuesta
 
Strategies for energy efficient resource management of hybrid programming models
Strategies for energy efficient resource management of hybrid programming modelsStrategies for energy efficient resource management of hybrid programming models
Strategies for energy efficient resource management of hybrid programming models
 
PhD Pre-Thesis
PhD Pre-ThesisPhD Pre-Thesis
PhD Pre-Thesis
 
Ahmed Absi slides bigbwa
Ahmed Absi slides  bigbwaAhmed Absi slides  bigbwa
Ahmed Absi slides bigbwa
 
MACHINE LEARNING ON MAPREDUCE FRAMEWORK
MACHINE LEARNING ON MAPREDUCE FRAMEWORKMACHINE LEARNING ON MAPREDUCE FRAMEWORK
MACHINE LEARNING ON MAPREDUCE FRAMEWORK
 
Optimization in power system
Optimization in power systemOptimization in power system
Optimization in power system
 
Ijciet 10 01_162
Ijciet 10 01_162Ijciet 10 01_162
Ijciet 10 01_162
 
Presented by Ahmed Abdulhakim Al-Absi - Scaling map reduce applications acro...
Presented by Ahmed Abdulhakim Al-Absi -  Scaling map reduce applications acro...Presented by Ahmed Abdulhakim Al-Absi -  Scaling map reduce applications acro...
Presented by Ahmed Abdulhakim Al-Absi - Scaling map reduce applications acro...
 
Demand-driven Gaussian window optimization for executing preferred population...
Demand-driven Gaussian window optimization for executing preferred population...Demand-driven Gaussian window optimization for executing preferred population...
Demand-driven Gaussian window optimization for executing preferred population...
 
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
Analysis of Dynamic Latched Comparator with Reduced Delay and Energy for High...
 
Garbage collection auto tuning for java map reduce on multi-cores
Garbage collection auto tuning for java map reduce on multi-coresGarbage collection auto tuning for java map reduce on multi-cores
Garbage collection auto tuning for java map reduce on multi-cores
 
GMC: Greening MapReduce Clusters Considering both Computation Energy and Cool...
GMC: Greening MapReduce Clusters Considering both Computation Energy and Cool...GMC: Greening MapReduce Clusters Considering both Computation Energy and Cool...
GMC: Greening MapReduce Clusters Considering both Computation Energy and Cool...
 
Optimization for-power-sy-8631549
Optimization for-power-sy-8631549Optimization for-power-sy-8631549
Optimization for-power-sy-8631549
 

Similar a Let's Talk a Bit About: Green Software

Green Computing as an Engineering Discipline
Green Computing as an Engineering DisciplineGreen Computing as an Engineering Discipline
Green Computing as an Engineering DisciplineGreenLabAtDI
 
The Influence of the Java Collection Framework on Overall Energy Consumption
The Influence of the Java Collection Framework on Overall Energy ConsumptionThe Influence of the Java Collection Framework on Overall Energy Consumption
The Influence of the Java Collection Framework on Overall Energy ConsumptionGreenLabAtDI
 
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...jsvetter
 
Programming Modes and Performance of Raspberry-Pi Clusters
Programming Modes and Performance of Raspberry-Pi ClustersProgramming Modes and Performance of Raspberry-Pi Clusters
Programming Modes and Performance of Raspberry-Pi ClustersAM Publications
 
Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...
Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...
Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...Editor IJCATR
 
A Survey of Machine Learning Methods Applied to Computer ...
A Survey of Machine Learning Methods Applied to Computer ...A Survey of Machine Learning Methods Applied to Computer ...
A Survey of Machine Learning Methods Applied to Computer ...butest
 
Green indexes used in CAST to measure the energy consumption in code
Green indexes used in CAST to measure the energy consumption in codeGreen indexes used in CAST to measure the energy consumption in code
Green indexes used in CAST to measure the energy consumption in codeCAST
 
Reengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approachReengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approachIJECEIAES
 
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
OpenACC and Open Hackathons Monthly Highlights May  2023.pdfOpenACC and Open Hackathons Monthly Highlights May  2023.pdf
OpenACC and Open Hackathons Monthly Highlights May 2023.pdfOpenACC
 
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...ijesajournal
 
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...ijesajournal
 
A novel methodology for task distribution
A novel methodology for task distributionA novel methodology for task distribution
A novel methodology for task distributionijesajournal
 
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...ijesajournal
 
Harnessing deep learning algorithms to predict software refactoring
Harnessing deep learning algorithms to predict software refactoringHarnessing deep learning algorithms to predict software refactoring
Harnessing deep learning algorithms to predict software refactoringTELKOMNIKA JOURNAL
 
Sparkr sigmod
Sparkr sigmodSparkr sigmod
Sparkr sigmodwaqasm86
 
Top Viewed Articles from Academia in 2019- International Journal of Distribu...
 Top Viewed Articles from Academia in 2019- International Journal of Distribu... Top Viewed Articles from Academia in 2019- International Journal of Distribu...
Top Viewed Articles from Academia in 2019- International Journal of Distribu...ijdpsjournal
 
AI Sustainability Mascots 23-f.pptx
AI Sustainability Mascots 23-f.pptxAI Sustainability Mascots 23-f.pptx
AI Sustainability Mascots 23-f.pptxTamar Eilam
 
OpenACC Monthly Highlights Summer 2019
OpenACC Monthly Highlights Summer 2019OpenACC Monthly Highlights Summer 2019
OpenACC Monthly Highlights Summer 2019OpenACC
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingDr Sukhpal Singh Gill
 

Similar a Let's Talk a Bit About: Green Software (20)

Green Computing as an Engineering Discipline
Green Computing as an Engineering DisciplineGreen Computing as an Engineering Discipline
Green Computing as an Engineering Discipline
 
The Influence of the Java Collection Framework on Overall Energy Consumption
The Influence of the Java Collection Framework on Overall Energy ConsumptionThe Influence of the Java Collection Framework on Overall Energy Consumption
The Influence of the Java Collection Framework on Overall Energy Consumption
 
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
 
Programming Modes and Performance of Raspberry-Pi Clusters
Programming Modes and Performance of Raspberry-Pi ClustersProgramming Modes and Performance of Raspberry-Pi Clusters
Programming Modes and Performance of Raspberry-Pi Clusters
 
Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...
Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...
Providing a multi-objective scheduling tasks by Using PSO algorithm for cost ...
 
A Survey of Machine Learning Methods Applied to Computer ...
A Survey of Machine Learning Methods Applied to Computer ...A Survey of Machine Learning Methods Applied to Computer ...
A Survey of Machine Learning Methods Applied to Computer ...
 
Green indexes used in CAST to measure the energy consumption in code
Green indexes used in CAST to measure the energy consumption in codeGreen indexes used in CAST to measure the energy consumption in code
Green indexes used in CAST to measure the energy consumption in code
 
ijeat.pdf
ijeat.pdfijeat.pdf
ijeat.pdf
 
Reengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approachReengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approach
 
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
OpenACC and Open Hackathons Monthly Highlights May  2023.pdfOpenACC and Open Hackathons Monthly Highlights May  2023.pdf
OpenACC and Open Hackathons Monthly Highlights May 2023.pdf
 
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
 
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
 
A novel methodology for task distribution
A novel methodology for task distributionA novel methodology for task distribution
A novel methodology for task distribution
 
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
A NOVEL METHODOLOGY FOR TASK DISTRIBUTION IN HETEROGENEOUS RECONFIGURABLE COM...
 
Harnessing deep learning algorithms to predict software refactoring
Harnessing deep learning algorithms to predict software refactoringHarnessing deep learning algorithms to predict software refactoring
Harnessing deep learning algorithms to predict software refactoring
 
Sparkr sigmod
Sparkr sigmodSparkr sigmod
Sparkr sigmod
 
Top Viewed Articles from Academia in 2019- International Journal of Distribu...
 Top Viewed Articles from Academia in 2019- International Journal of Distribu... Top Viewed Articles from Academia in 2019- International Journal of Distribu...
Top Viewed Articles from Academia in 2019- International Journal of Distribu...
 
AI Sustainability Mascots 23-f.pptx
AI Sustainability Mascots 23-f.pptxAI Sustainability Mascots 23-f.pptx
AI Sustainability Mascots 23-f.pptx
 
OpenACC Monthly Highlights Summer 2019
OpenACC Monthly Highlights Summer 2019OpenACC Monthly Highlights Summer 2019
OpenACC Monthly Highlights Summer 2019
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud Computing
 

Más de GreenLabAtDI

Products go Green: Worst-Case Energy Consumption in Software Product Lines
Products go Green: Worst-Case Energy Consumption in Software Product LinesProducts go Green: Worst-Case Energy Consumption in Software Product Lines
Products go Green: Worst-Case Energy Consumption in Software Product LinesGreenLabAtDI
 
Static Energy Prediction in Software: A Worst-Case Scenario Approach
Static Energy Prediction in Software: A Worst-Case Scenario ApproachStatic Energy Prediction in Software: A Worst-Case Scenario Approach
Static Energy Prediction in Software: A Worst-Case Scenario ApproachGreenLabAtDI
 
Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional L...
Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional L...Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional L...
Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional L...GreenLabAtDI
 
Green Software Lab
Green Software LabGreen Software Lab
Green Software LabGreenLabAtDI
 
GreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenDroid: A Tool for Analysing Power Consumption in the Android EcosystemGreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenDroid: A Tool for Analysing Power Consumption in the Android EcosystemGreenLabAtDI
 
Marco Couto's Msc Thesis Presentation
Marco Couto's Msc Thesis PresentationMarco Couto's Msc Thesis Presentation
Marco Couto's Msc Thesis PresentationGreenLabAtDI
 
Rui Pereira's PhD Pre-Thesis
Rui Pereira's PhD Pre-ThesisRui Pereira's PhD Pre-Thesis
Rui Pereira's PhD Pre-ThesisGreenLabAtDI
 
Detecting Anomalous Energy Consumption in Android Applications
Detecting Anomalous Energy Consumption in Android ApplicationsDetecting Anomalous Energy Consumption in Android Applications
Detecting Anomalous Energy Consumption in Android ApplicationsGreenLabAtDI
 
PresentationMeasuring and Visualizing Energy Consumption within Software Code
PresentationMeasuring and Visualizing Energy Consumption within Software CodePresentationMeasuring and Visualizing Energy Consumption within Software Code
PresentationMeasuring and Visualizing Energy Consumption within Software CodeGreenLabAtDI
 

Más de GreenLabAtDI (9)

Products go Green: Worst-Case Energy Consumption in Software Product Lines
Products go Green: Worst-Case Energy Consumption in Software Product LinesProducts go Green: Worst-Case Energy Consumption in Software Product Lines
Products go Green: Worst-Case Energy Consumption in Software Product Lines
 
Static Energy Prediction in Software: A Worst-Case Scenario Approach
Static Energy Prediction in Software: A Worst-Case Scenario ApproachStatic Energy Prediction in Software: A Worst-Case Scenario Approach
Static Energy Prediction in Software: A Worst-Case Scenario Approach
 
Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional L...
Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional L...Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional L...
Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional L...
 
Green Software Lab
Green Software LabGreen Software Lab
Green Software Lab
 
GreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenDroid: A Tool for Analysing Power Consumption in the Android EcosystemGreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
GreenDroid: A Tool for Analysing Power Consumption in the Android Ecosystem
 
Marco Couto's Msc Thesis Presentation
Marco Couto's Msc Thesis PresentationMarco Couto's Msc Thesis Presentation
Marco Couto's Msc Thesis Presentation
 
Rui Pereira's PhD Pre-Thesis
Rui Pereira's PhD Pre-ThesisRui Pereira's PhD Pre-Thesis
Rui Pereira's PhD Pre-Thesis
 
Detecting Anomalous Energy Consumption in Android Applications
Detecting Anomalous Energy Consumption in Android ApplicationsDetecting Anomalous Energy Consumption in Android Applications
Detecting Anomalous Energy Consumption in Android Applications
 
PresentationMeasuring and Visualizing Energy Consumption within Software Code
PresentationMeasuring and Visualizing Energy Consumption within Software CodePresentationMeasuring and Visualizing Energy Consumption within Software Code
PresentationMeasuring and Visualizing Energy Consumption within Software Code
 

Último

SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 

Último (20)

SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 

Let's Talk a Bit About: Green Software

  • 1. Let’s talk a bit about: Green Software greenlab.di.uminho.pt | ruipereira@di.uminho.pt Rui Pereira
  • 3. Global energy system is unsustainable 3
  • 4. Green Computing 4  Caught the attention of many companies allowing them to save: close to 50% of the energy costs of an organization can be attributed to the IT departments [PICMET, 2009] up to 90% of excessive energy used by hardware can be attributed to inefficient software [The GHG Protocol Report, 2013]
  • 5. Green Computing 5  Everyday users also feel the impact 9 out of 10 users have low battery anxiety; long battery life was the most desired feature in 2017 [The Wall Street Journal, 2018]
  • 6. Green Software  Reducing energy consumption through software analysis and optimization  Problem:  How to analyze  How to interpret  How to improve 6
  • 7. Green Software  Problems (extended to programmers):  How to analyze  How to interpret  How to improve 7 What do programmers know about software energy consumption? [IEEE Software’16] An empirical study of practitioners’ perspectives on green software engineering [ICSE’16] Mining questions about software energy consumption [MSR’14]
  • 8. Green Software  Two main problems for energy efficient software development: 8 Energy efficiency: a new concern for application software Developers [Communications of the ACM’17] Lack of knowledge Lack of tools
  • 9. Energy vs. Power 9  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
  • 10. Is faster greener? 10 slower Is faster greener? Energy-aware software: Challenges, opportunities, and strategies [Journal of Computational Science’13] An experimental survey of energy management across the stack [OOPSLA’14] Understanding energy behaviors of thread management constructs [OOPSLA’14] Power and energy implications of the number of threads used [PPMG’15] Using the greenup, powerup, and speedup metrics to evaluate software energy efficiency [IGSC’15] Haskell in green land: Analyzing the energy behavior of a purely functional language [SANER’16]
  • 13. 13
  • 14. Understanding the energy efficiency of programming languages 14 Is a faster language always a more energy efficient one? Which are the most energy efficient languages? How much energy consumption is attributed to CPU? What paradigms are most energy efficient? How much energy does memory usage consume?
  • 15. Comparing Programming Languages 15 C Java Haskell Fortran = = = * Formerly known as The Great Computer Language Shootout
  • 17. 17 Normalized Results Average Joules ms Compiled 120 5103 VM 576 20623 Interpreted 2365 87614 Average Joules ms Imperative 125 5585 OO 879 32975 Functional 1367 42740 “Scripting” 2320 88322 57J 4604J 2s 167s
  • 18. 18 Normalized Results Average Joules ms Compiled 120 5103 VM 576 20623 Interpreted 2365 87614 Average Joules ms Imperative 125 5585 OO 879 32975 Functional 1367 42740 “Scripting” 2320 88322
  • 19. 19 Normalized Results 66Mb 1309Mb Average Joules ms Mb Compiled 120 5103 125 VM 576 20623 285 Interpreted 2365 87614 426 Average Joules ms Mb Imperative 125 5585 116 OO 879 32975 249 Functional 1367 42740 251 “Scripting” 2320 88322 421
  • 21. 21 Energy vs. Memory  (Peak Memory) Spearman rank-order correlation p = 0.2091 +1 = perfect positive -1 = perfect negative0 = no relationship 0.3 = weak uphill p = 0.2091  (Continuous Memory) Spearman rank-order correlation p = 0.744 +1 = perfect positive -1 = perfect negative0 = no relationship 0.7 = strong uphill p = 0.744
  • 22. 22 Energy vs. Time vs. Memory
  • 23. 23 Energy vs. Time vs. Memory (Pareto Optimization)
  • 24. 24
  • 26. Understanding the energy efficiency of Java collections 26 Which collections are the most energy inefficient? Can we use our data to suggest energy efficient alternatives? Can we quantify energy consumption of collections and their methods?
  • 27. Java Collections Framework (JCF) 27 ConcurrentSkipListSet ArrayList ConcurrentHashMap CopyOnWriteArraySet AttributeList ConcurrentSkipListMap HashSet CopyOnWriteArrayList HashMap LinkedHashSet LinkedList Hashtable TreeSet RoleList IdentityHashMap RoleUnresolvedList LinkedHashMap Stack Properties Vector SimpleBindings TreeMap UIDefaults WeakHashMap Sets Lists Maps Design – Data Structures  Population sizes:  25,000  250,000  1,000,000
  • 28. Java Collections Framework (JCF) 28  Design – Methods add add clear addAll addAll containsKey clear add(index) containsValue contains addAll(index) entrySet containsAll clear get iterateAll contains iterateAll iterator containsAll keySet remove get put removeAll indexOf putAll retainAll iterator remove toArray lastIndexOf values listIterator listIterator(index) remove removeAll remove(index) retainAll set sublist toArray Sets Lists Maps
  • 29. Results (Lists - 25k population) 29
  • 30. jStanley: Placing a Green Thumb on Java Collections 30  Between 2% - 17% energy reduction  Average of 6.7% energy reduction https://greensoftwarelab.github.io/jStanley/
  • 32. Energy efficiency of apps is important 32  Analyzed 1,780+ Android and iOS open source applications  Reviewed Git commits, issues, and PR for “energy”, “power”, or “battery” (6,000+)  Manual analysis of the changes  Catalog of 22 Energy Patterns https://tqrg.github.io/energy-patterns/
  • 33. Mobile Energy Patterns (3 of 22) 33
  • 34. Where do I begin? 34
  • 36. How do I measure energy? 36  Qualcomm Trepn Profiler  Monsoon ($$$)  ODroid XU-3 ($)  Intel Running Average Power Limiter (RAPL)  ODroid XU-3 ($)
  • 38. 38  Media coverage: Featured in more than 30+ websites
  • 39. 39  28,000+ unique devices  1,000M+ samples
  • 40. 40  Explore the dataset: https://greenhub.di.ubi.pt/storage/dataset.zip

Notas del editor

  1. Patterns, habits, structures algorithms
  2. Aware of the energy consumption problem, many times seeking help in resolving this, misconceptions within the programming community as to what causes highenergy consumption, how to solve them a heavy lack of support and knowledge for energy-aware development
  3. Most comment perception to the EC problem = performance issue (reduction in time = reduction in energy) I would suggest this as a good starting point if someone were to ask me how to optimize, as do others. But the opposite has been also observed, where an increase in time brought about a decrease in energy.
  4. Developing comparable programs written in different languages is both complex and time consuming. 27 languages and 10 tasks
  5. Top 5 keep their ranks. OCAML HASKELL RACKET PYTHON Scriptings
  6. OCAML HASKELL RACKET PYTHON
  7. optimizing for energy is not necessarily the same as optimizing for performance. Pascal is 10% more energy efficient than Chapel, yet Chapel is 55% faster.
  8. Energy harvesting device Wearable device we use a multi-objective optimization algorithm to sort these languages, known as Pareto optimization
  9. we use a multi-objective optimization algorithm to sort these languages, known as Pareto optimization