Mining Energy-Aware Commits

Mining Energy-Aware Commits

D0270498e20bd573441f1f48f2e425cf?s=128

Gustavo Pinto

January 15, 2018
Tweet

Transcript

  1. Mining Energy-Aware Commits Gustavo Pinto Fernando Castor Irineu Moura Felipe

    Ebert {imlm2, ghlp, fe, castor}@cin.ufpe.br
  2. The Problem 2 • Energy efficiency is becoming a key

    design consideration. • A large body of work in hardware/architecture, operating systems, runtime systems. • However, little is known about the application level. • Little is known about what are the solutions that programmers actually use to mitigate this problem.
  3. The Problem • Energy efficiency is becoming a key design

    consideration. • A large body of work in hardware/architecture, operating systems, runtime systems. • However, little is known about the higher level of the software stack. • Little is known about what are the solutions that programmers actually use to mitigate this problem. 3
  4. 4 “GitHub is the largest code host on the planet

    with over 19.9 mi repositories.” https://github.com/features 4Mi+ Users 19Mi+ Repositories
  5. 5 19M Repos

  6. 6 19M Repos Query on

  7. 7 19M Repos Query on

  8. 8 19M Repos 2,189 Commits Query on

  9. 9 19M Repos Automatic Filter 1,005 Commits Query on

  10. 10 19M Repos Manual Filter Automatic Filter Query on

  11. 11 19M Repos Manual Filter Automatic Filter Commits dh7h3 md8ja

    j287h dij873 dj827h os837 82uan 28a08 2ja82 d0hk0 j29yd a7jf9 aio92 hnna2
  12. 12 19M Repos Manual Filter Automatic Filter Commits dh7h3 md8ja

    j287h dij873 dj827h os837 82uan 28a08 2ja82 d0hk0 j29yd a7jf9 aio92 hnna2
  13. 13 19M Repos Manual Filter Automatic Filter Commits dh7h3 md8ja

    j287h dij873 dj827h os837 82uan 28a08 2ja82 d0hk0 j29yd a7jf9 aio92 hnna2
  14. 14 19M Repos Manual Filter Automatic Filter Commits dh7h3 md8ja

    j287h dij873 dj827h os837 82uan 28a08 2ja82 d0hk0 j29yd a7jf9 aio92 hnna2 All commits were, at least, double-checked!
  15. 15 19M Repos Manual Filter Automatic Filter 371 Energy-Aware Commits

    Query on
  16. 371 Energy-Aware Commits 16 • From 03/12/2012 to 05/15/2014 •

    Performed into 317 OSS Projects • Performed by 265 OSS Developers
  17. Research Questions 17 • RQ1. What are the solutions that

    developers use to save energy in practice? • RQ2. What software quality attributes may be given precedence over energy consumption? • RQ3. How are energy-saving solutions distributed over the software stack? • RQ4. To what extent are software developers certain that their commits will save energy?
  18. RQ1: Solutions 18 • Frequency and voltage scaling (50 occurrences)

    • Use power efficient library/device (45 occurrences) • Disabling features or devices (42 occurrences) • Energy bug fix (26 occurrences) • Low power idling (22 occurrences) • Timing out (16 occurrences)
  19. RQ1: Solutions 19 • Frequency and voltage scaling (50 occurrences)

    • Use power efficient library/device (45 occurrences) • Disabling features or devices (42 occurrences) • Energy bug fix (26 occurrences) • Low power idling (22 occurrences) • Timing out (16 occurrences)
  20. RQ1: Solutions 20 • Use power efficient library/device (45 occurrences)

    • Disabling features or devices (42 occurrences) • Energy bug fix (26 occurrences) • Low power idling (22 occurrences) • Timing out (16 occurrences)
  21. RQ2: Quality Attributes 21 • Correctness (7 occurrences) • Responsiveness

    (6 occurrences) • Performance (3 occurrences) • No actual power saving (3 occurrences) • Miscellaneous (3 occurrences)
  22. 22 • Correctness (7 occurrences) • Responsiveness (6 occurrences) •

    Performance (3 occurrences) • No actual power saving (3 occurrences) • Miscellaneous (3 occurrences) RQ2: Quality Attributes
  23. 23 • Responsiveness (6 occurrences) • Responsiveness (6 occurrences) •

    Performance (3 occurrences) • No actual power saving (3 occurrences) • Miscellaneous (3 occurrences) RQ2: Quality Attributes
  24. RQ3: Software Stack 24

  25. 25 88 Commits Application includes embedded applications, desktop application, and

    mobile applications. RQ3: Software Stack
  26. 26 88 Commits Application includes embedded applications, desktop application, and

    mobile applications. 42 Embedded RQ3: Software Stack
  27. 27 88 Commits Application includes embedded applications, desktop application, and

    mobile applications. 42 Embedded 21 Arduino RQ3: Software Stack
  28. 28 50 Commits Libraries/Utilities include scripts and embedded libraries. RQ3:

    Software Stack
  29. 29 50 Commits Libraries/Utilities include scripts and embedded libraries. 41

    scripts RQ3: Software Stack
  30. 30 142 Commits Operating System includes Kernels, Embedded Kernels, Drivers

    and Firmwares RQ3: Software Stack
  31. 31 142 Commits Operating System includes Kernels, Embedded Kernels, Drivers

    and Firmwares 69 Kernels RQ3: Software Stack
  32. 32 142 Commits Operating System includes Kernels, Embedded Kernels, Drivers

    and Firmwares 69 — OS Kernel 54 — Drivers RQ3: Software Stack
  33. RQ4: Certain 33 “Hesitating” words • seem • might •

    doubt • could • hope • attempt • supposed • guess • likely
  34. RQ4: Certain 34 “Hesitating” words • seem • might •

    doubt • could • hope • attempt • supposed • guess • likely 18 hesitations!
  35. RQ4: Certain 35 18 Reverted Commits

  36. RQ4: Certain 36 18 Reverted Commits 8/18 reverts the power

    efficient work queue!
  37. RQ4: Certain 37 18 Reverted Commits 8/18 reverts the power

    efficient work queue! There is no silver bullet! Fred Brooks
  38. Conclusions 38 bit.ly/energy-aware-mining