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 energy used by ICT hardware can be attributed to software”
- [The Greenhouse Gas Protocol Report, 2013]
5. Green Software
Reducing energy consumption through software analysis and optimization
Problem:
How to analyze
How to interpret
How to improve
5
6. Green Software
Problems (extended to programmers):
How to analyze
How to interpret
How to improve
6
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]
7. Energy vs. Power
7
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. Spectrum-based Fault Localization (SFL)
10
Error vector
Oracle
Low
High
Energy
Energy
Energy
Energy
Problem: Energy cannot be defined as binary values
14. SPELL – initial results
14
Developers found the information to be very useful
Spent on average 43% less time
Produced more energy efficient programs (26% less energy on average)
In progress:
SPELL vs. Profilers (Looks promising!)
Find Open-source Software and notify developers of possible hotspots and see what they say
17. Conclusions
17
Find more info @ our page: http://greenlab.di.uminho.pt/
Language independent
Multi level analysis
Multi hardware component analysis
Points to hot spots in source code
21. Is faster greener?
21
Understanding energy behaviors of thread management constructs
- [OOPSLA’14]
Energy-aware software: Challenges, opportunities and strategies
- [Journal of Computational Science’13]
Haskell in green land: Analyzing the energy behavior of a purely
functional language - [SANER’16]
An experimental survey of energy management across the stack
- [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]
slower
Is faster greener?
24. What is jRAPL?
Framework for profiling Java programs running on RAPL
24
What is RAPL?
Running Average Power Limit
Designed by intel for i5/i7 architectures (SandyBridge, IvyBridge, Haswell, etc)
Monitors energy consumption info for Machine-Specific Registers (MSRs)
Allows very precise and fine-grain measurements through function calls
DRAM/GPU
CPU
Package
25. How do we use jRAPL?
25
Energy?
t0
t∞
a = getEnergy()
b = getEnergy()
b - a
http://kliu20.github.io/jRAPL/
31. 31 Example
𝜓 - Global Similarity
(37 x 0.34) x 1 x 75 = 943.5
Component c1 Test t1
(61 x 0.34) x 2 x 102 = 4230.96
Component c2Test t1
(0 x 0) x 0 x 0 = 0
Component c3 Test t1
(42 x 0.34) x 1 x 34 = 485.52
Component c3 Test t1
= 5659.98
32. 32 Example
𝜓 - Global Similarity
Component c1
min(943.5,5659.98)+...+min(1989,14310.6)
max(943.5,5659.98)+...+max(1989,14310.6)
= 0.2466
𝜓1 =
Come to a better realization of what we have been doing to the environment
Patterns, habits, structures algorithms
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
Number
Language
component
The most ideal way of validating
Control group
Control group
Control group
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.