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]
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?
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?
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/
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
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.
Developing comparable programs written in different languages is both complex and time consuming.
27 languages and 10 tasks
Top 5 keep their ranks. OCAML HASKELL RACKET PYTHON
Scriptings
OCAML HASKELL RACKET PYTHON
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.
Energy harvesting device
Wearable device
we use a multi-objective optimization algorithm to sort these languages, known as Pareto optimization
we use a multi-objective optimization algorithm to sort these languages, known as Pareto optimization