Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
The Influence of the Java Collection
Framework on Overall Energy
Consumption
Rui Pereira*, Marco Couto*, Jácome Cunha§,
Jo...
Going Green
greenlab.di.uminho.pt
2
+ =
Global energy system is unsustainable
greenlab.di.uminho.pt
3
Green Computing
 Caught the attention of many companies allowing them to save:
greenlab.di.uminho.pt
4
“close to 50% of t...
Green Software
 Reducing energy consumption through software analysis and optimization
 Problem:
 How to analyze
 How ...
Green Software
 Problems (extend to programmers):
 How to analyze
 How to interpret
 How to improve
greenlab.di.uminho...
Can we save energy by refactoring Java
programs to use different data structure
implementations?
greenlab.di.uminho.pt
7
Research Questions
greenlab.di.uminho.pt
8
 (RQ1) Can we define an energy consumption quantification of Java data
structu...
Towards a Ranking of Java data structures
greenlab.di.uminho.pt
9
Design
 Simple scenario of:
 Storing
 Retrieving
 De...
greenlab.di.uminho.pt
10
 Java Collections Framework (JCF) library
ConcurrentSkipListSet ArrayList ConcurrentHashMap
Copy...
greenlab.di.uminho.pt
11
add add clear
addAll addAll containsKey
clear add(index) containsValue
contains addAll(index) ent...
greenlab.di.uminho.pt
12
 Defined population sizes (popsize) of
 25,000
 250,000
 1,000,000
 When a second data struc...
greenlab.di.uminho.pt
13
 Linux 3.13.0-74-generic OS
 8GB Ram
 Intel(R) Core(TM) i3-3240 CPU @ 3.40GHz
 Java Interpret...
greenlab.di.uminho.pt
14
 Warm-up
 Instantiated
 Populated w/ popsize
 Performed simple actions on the data structure
...
greenlab.di.uminho.pt
15
Towards a Ranking of Java data structures
Results (25k pop)
greenlab.di.uminho.pt
16
Towards a Ranking of Java data structures
greenlab.di.uminho.pt
17
Towards a Ranking of Java data structures
greenlab.di.uminho.pt
18
Towards a Ranking of Java data structures
Is faster, Greener?!
greenlab.di.uminho.pt
19
Is slower, Greener?!
Faster
Slower
Research Questions
greenlab.di.uminho.pt
20
 (RQ1) Can we define an energy consumption quantification of Java data
struct...
Optimizing Energy Consumption of Java Programs
greenlab.di.uminho.pt
21
Methodology
1. Compute which implementations/metho...
Optimizing Energy Consumption of Java Programs
greenlab.di.uminho.pt
22
Applying the methodology – Data acquisition
 Obta...
Optimizing Energy Consumption of Java Programs
greenlab.di.uminho.pt
23
Applying the methodology – Data acquisition
 Obta...
Optimizing Energy Consumption of Java Programs
greenlab.di.uminho.pt
24
Applying the methodology – Example
Optimizing Energy Consumption of Java Programs
greenlab.di.uminho.pt
25
Applying the methodology – Results
 Between 4.37%...
FW + Conclusion
greenlab.di.uminho.pt
26
 Presented detailed study of the energy consumption of Sets, Lists, and Maps
 Q...
greenlab.di.uminho.pt
27 Portuguese National Science Foundation (FCT)
 Starts July 2016
 Grants available for young res...
The Influence of the Java Collection
Framework on Overall Energy
Consumption
Rui Pereira*, Marco Couto*, Jácome Cunha§,
Jo...
Upcoming SlideShare
Loading in …5
×

The Influence of the Java Collection Framework on Overall Energy Consumption

177 views

Published on

Presentation @ GREENS'2016

Published in: Software
  • Be the first to comment

  • Be the first to like this

The Influence of the Java Collection Framework on Overall Energy Consumption

  1. 1. The Influence of the Java Collection Framework on Overall Energy Consumption Rui Pereira*, Marco Couto*, Jácome Cunha§, João Paulo Fernandes‡, and João Saraiva* greenlab.di.uminho.pt * HASLab/INESC Tec, Universidade do Minho § NOVA LINCS, Universidade Nova de Lisboa ‡ RELEASE, Universidade da Beira Interior {ruipereira, mcouto, jas}@di.uminho.pt, jacome@fct.unl.pt, jpf@di.ubi.pt
  2. 2. Going Green greenlab.di.uminho.pt 2 + =
  3. 3. Global energy system is unsustainable greenlab.di.uminho.pt 3
  4. 4. Green Computing  Caught the attention of many companies allowing them to save: greenlab.di.uminho.pt 4 “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. 5. Green Software  Reducing energy consumption through software analysis and optimization  Problem:  How to analyze  How to interpret  How to improve greenlab.di.uminho.pt 5
  6. 6. Green Software  Problems (extend to programmers):  How to analyze  How to interpret  How to improve greenlab.di.uminho.pt 6 Mining questions about software energy consumption - [MSR’14] Integrated energy-directed test suite optimization - [ISTA’14]
  7. 7. Can we save energy by refactoring Java programs to use different data structure implementations? greenlab.di.uminho.pt 7
  8. 8. Research Questions greenlab.di.uminho.pt 8  (RQ1) Can we define an energy consumption quantification of Java data structures and their methods?  (RQ2) Can we use such quantification to decrease the energy consumption of software systems?
  9. 9. Towards a Ranking of Java data structures greenlab.di.uminho.pt 9 Design  Simple scenario of:  Storing  Retrieving  Deleting  String values
  10. 10. greenlab.di.uminho.pt 10  Java Collections Framework (JCF) library 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 Towards a Ranking of Java data structures Design – Data Structures
  11. 11. greenlab.di.uminho.pt 11 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 Continues… Sets Lists Maps Towards a Ranking of Java data structures Design - Methods
  12. 12. greenlab.di.uminho.pt 12  Defined population sizes (popsize) of  25,000  250,000  1,000,000  When a second data structure is needed (i.e. addAll)  SecondaryCol = 10% of popsize  Half existing & half new (shuffled) Towards a Ranking of Java data structures Design - Benchmark
  13. 13. greenlab.di.uminho.pt 13  Linux 3.13.0-74-generic OS  8GB Ram  Intel(R) Core(TM) i3-3240 CPU @ 3.40GHz  Java Interpreter/Compiler versions 1.8.0_66  RAPL/jRAPL Towards a Ranking of Java data structures Execution - Specifications
  14. 14. greenlab.di.uminho.pt 14  Warm-up  Instantiated  Populated w/ popsize  Performed simple actions on the data structure  Each test x20  Extracted time/Joules consumed  Removed lowest/highest 20%  336 different test (Collection.method) configurations  6720 executions for each popsize  20,000+ different executions Towards a Ranking of Java data structures Execution – For every test
  15. 15. greenlab.di.uminho.pt 15 Towards a Ranking of Java data structures Results (25k pop)
  16. 16. greenlab.di.uminho.pt 16 Towards a Ranking of Java data structures
  17. 17. greenlab.di.uminho.pt 17 Towards a Ranking of Java data structures
  18. 18. greenlab.di.uminho.pt 18 Towards a Ranking of Java data structures
  19. 19. Is faster, Greener?! greenlab.di.uminho.pt 19 Is slower, Greener?! Faster Slower
  20. 20. Research Questions greenlab.di.uminho.pt 20  (RQ1) Can we define an energy consumption quantification of Java data structures and their methods?  (RQ2) Can we use such quantification to decrease the energy consumption of software systems?
  21. 21. Optimizing Energy Consumption of Java Programs greenlab.di.uminho.pt 21 Methodology 1. Compute which implementations/methods are used in the programs 2. Look up the appropriate energy tables for the used implementations/methods 3. Choose the most energy efficient alternative
  22. 22. Optimizing Energy Consumption of Java Programs greenlab.di.uminho.pt 22 Applying the methodology – Data acquisition  Obtained Java projects of a Journalism support platform  First year OO course  Collaborators, Journalists, Readers, Editors  Write chronicles and reports  Give likes and comments  Etc.  Average of  36 classes  104 methods  2000 lines of code
  23. 23. Optimizing Energy Consumption of Java Programs greenlab.di.uminho.pt 23 Applying the methodology – Data acquisition  Obtained 7 test cases to simulate usage  Size varied vetween 2000-10000 for each test case/each entity  Chosen popsize – 25,000 (smallest)  Applied methodology on 5 projects  Detected usage of any JCF implementation  Detected which methods were used for each implementation  Chose the most efficient implementation for each project  Measured the changes before and after
  24. 24. Optimizing Energy Consumption of Java Programs greenlab.di.uminho.pt 24 Applying the methodology – Example
  25. 25. Optimizing Energy Consumption of Java Programs greenlab.di.uminho.pt 25 Applying the methodology – Results  Between 4.37% - 11.05%  Average of 6.2%
  26. 26. FW + Conclusion greenlab.di.uminho.pt 26  Presented detailed study of the energy consumption of Sets, Lists, and Maps  Quantification of the energy spent by each method (RQ1 Answer)  Introduced a very simple methodology to optimize Java programs (RQ2 Answer)  Consider other object types (int, objects, etc.)  Implement an automatic refactoring plugin  Found @ our page: http://greenlab.di.uminho.pt/
  27. 27. greenlab.di.uminho.pt 27 Portuguese National Science Foundation (FCT)  Starts July 2016  Grants available for young researchers  MSc  PhD  Postdoc  Universities:  University of Minho (Braga)  University of Beira Interior (Covilhã)  University of Porto (Porto)  New University of Lisbon (Lisbon)
  28. 28. The Influence of the Java Collection Framework on Overall Energy Consumption Rui Pereira*, Marco Couto*, Jácome Cunha§, João Paulo Fernandes‡, and João Saraiva* greenlab.di.uminho.pt * HASLab/INESC Tec, Universidade do Minho § NOVA LINCS, Universidade Nova de Lisboa ‡ RELEASE, Universidade da Beira Interior {ruipereira, mcouto, jas}@di.uminho.pt, jacome@fct.unl.pt, jpf@di.ubi.pt

×