skip to main content
research-article

Understanding energy behaviors of thread management constructs

Published:15 October 2014Publication History
Skip Abstract Section

Abstract

Java programmers are faced with numerous choices in managing concurrent execution on multicore platforms. These choices often have different trade-offs (e.g., performance, scalability, and correctness guarantees). This paper analyzes an additional dimension, energy consumption. It presents an empirical study aiming to illuminate the relationship between the choices and settings of thread management constructs and energy consumption. We consider three important thread management constructs in concurrent programming: explicit thread creation, fixed-size thread pooling, and work stealing. We further shed light on the energy/performance trade-off of three ``tuning knobs'' of these constructs: the number of threads, the task division strategy, and the characteristics of processed data. Through an extensive experimental space exploration over real-world Java programs, we produce a list of findings about the energy behaviors of concurrent programs, which are not always obvious. The study serves as a first step toward improving energy efficiency of concurrent programs on parallel architectures.

References

  1. A.Chandrakasan, S. Sheng, and R. Brodersen. Low power cmos digital design. IEEE Journal of Solid State Circuits, 27:473--484, 1992.Google ScholarGoogle ScholarCross RefCross Ref
  2. J. Asafu-Adjaye. The relationship between energy consumption, energy prices and economic growth: time series evidence from asian developing countries. Energy Economics, 22(6):615 -- 625, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  3. W. Baek and T. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In PLDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. Bartenstein and Y. Liu. Green streams for data-intensive software. In ICSE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Blackburn, R. Garner, C. Hoffmann, A. Khang, K. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The dacapo benchmarks: java benchmarking development and analysis. In OOPSLA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Cohen, H. Steve Zhu, S. Emgin, and Y. Liu. Energy types. In OOPSLA, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. K. Farkas, J. Flinn, G. Back, D. Grunwald, and J. Anderson. Quantifying the energy consumption of a pocket computer and a java virtual machine. In SIGMETRICS, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Frigo, C. Leiserson, and K. Randall. The implementation of the cilk-5 multithreaded language. In PLDI, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. A. Gautham, K. Korgaonkar, P. Slpsk, S. Balachandran, and K. Veezhinathan. The implications of shared data synchronization techniques on multi-core energy efficiency. In HotPower, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Ge, X. Feng, W. Feng, and K.W. Cameron. Cpu miser: A performance-directed, run-time system for power-aware clusters. In ICPP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Georges, D. Buytaert, and L. Eeckhout. Statistically rigorous java performance evaluation. In OOPSLA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Y. Guo, J. Zhao, V. Cavé, and V. Sarkar. Slaw: A scalable locality-aware adaptive work-stealing scheduler. In IPDPS, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Hao, D. Li, W. Halfond, and R. Govindan. Estimating mobile application energy consumption using program analysis. In ICSE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Horowitz, T. Indermaur, and R. Gonzalez. Low-power digital design. In Low Power Electronics, 1994. IEEE Symposium, 1994.Google ScholarGoogle ScholarCross RefCross Ref
  15. C. Isci, A. Buyuktosunoglu, C. Cher, P. Bose, and M. Martonosi. An analysis of efficient multi-core global power management policies: Maximizing performance for a given power budget. In MICRO, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Iyer and D. Marculescu. Power efficiency of voltage scaling in multiple clock, multiple voltage cores. In ICCAD, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. T. Kalibera, M. Mole, R. Jones, and J. Vitek. A black-box approach to understanding concurrency in dacapo. In OOPSLA, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Kansal, T. Saponas, A. Brush, K. McKinley, T. Mytkowicz, and R. Ziola. The latency, accuracy, and battery (lab) abstraction: programmer productivity and energy efficiency for continuous mobile context sensing. In OOPSLA, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Kumar, K. Farkas, N. Jouppi, P. Ranganathan, and D. Tullsen. Single-isa heterogeneous multi-core architectures: The potential for processor power reduction. In MICRO 36, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. V. Kumar, D. Frampton, S. Blackburn, D. Grove, and O. Tardieu. Work-stealing without the baggage. In OOPSLA, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. JamesH. Laros III, Kevin Pedretti, SuzanneM. Kelly, Wei Shu, Kurt Ferreira, John Vandyke, and Courtenay Vaughan. Energy delay product. In Energy-Efficient High Performance Computing, SpringerBriefs in Computer Science, pages 51--55. Springer London, 2013.Google ScholarGoogle Scholar
  22. Doug Lea. A java fork/join framework. In Java Grande, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Y. Liu. Energy-efficient synchronization through program patterns. In GREENS, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Y. Liu. Variant-frequency semantics for green futures. In PLACES'12, 2012.Google ScholarGoogle Scholar
  25. A. Merkel and F. Bellosa. Balancing power consumption in multiprocessor systems. In EuroSys, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Oracle. Java hotspot garbage collection. http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140228.html, 2014. {Online; accessed 21-Mar-2014}.Google ScholarGoogle Scholar
  27. Oracle. Java language and virtual machine specifications. http://docs.oracle.com/javase/specs/, 2014. {Online; accessed 21-Mar-2014}.Google ScholarGoogle Scholar
  28. S. Park, W. Jiang, Y. Zhou, and S. Adve. Managing energy-performance tradeoffs for multithreaded applications on multiprocessor architectures. In SIGMETRICS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. G. Pinto and F. Castor. On the implications of language constructs for concurrent execution in the energy efficiency of multicore applications. In SPLASH, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. G. Pinto, F. Castor, and Y. Liu. Understanding energy behaviors of thread management constructs -- remaining data. http://bit.ly/oopsla-techreport. Accessed: 2014-08--22.Google ScholarGoogle Scholar
  31. G. Pinto, F. Castor, and Y. Liu. Mining questions about software energy consumption. In MSR, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. K. Rangan, G. Wei, and D. Brooks. Thread motion: fine-grained power management for multi-core systems. In ISCA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. H. Ribic and Y. Liu. Energy-efficient work-stealing language runtimes. In ASPLOS, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Sampson, W. Dietl, E. Fortuna, D. Gnanapragasam, L. Ceze, and D. Grossman. Enerj: Approximate data types for safe and general low-power computation. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. A. Solernou, J. Thiyagalingam, M. Duta, and AnneE. T. The effect of topology-aware process and thread placement on performance and energy. In Supercomputing, Lecture Notes in Computer Science, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  36. Jacob Sorber, Alexander Kostadinov, Matthew Garber, Matthew Brennan, Mark D. Corner, and Emery D. Berger. Eon: a language and runtime system for perpetual systems. In SenSys'07, pages 161--174, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. V. Tiwari, S. Malik, and A. Wolfe. Power analysis of embedded software: A first step towards software power minimization. IEEE Transactions on VLSI Systems, 2:437--445, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. W. Torres, G. Pinto, B. Fernandes, J. Oliveira, F. Ximenes, and F. Castor. Are java programmers transitioning to multicore?: a large scale study of java floss. In TMC, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. A. Trefethen and J. Thiyagalingam. Energy-aware software: Challenges, opportunities and strategies. Journal of Computational Science, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  40. N. Vijaykrishnan, M. Kandemir, S. Kim, S. Tomar, A. Sivasubramaniam, and M. J. Irwin. Energy behavior of java applications from the memory perspective. In JavaTM Virtual Machine Research and Technology Symposium, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. W. Yuan and K. Nahrstedt. Energy-efficient soft real-time cpu scheduling for mobile multimedia systems. In SOSP, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Y. Zhang, G. Huang, X. Liu, W. Zhang, H. Mei, and S. Yang. Refactoring android java code for on-demand computation offloading. In OOPSLA, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Understanding energy behaviors of thread management constructs

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 49, Issue 10
          OOPSLA '14
          October 2014
          907 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2714064
          • Editor:
          • Andy Gill
          Issue’s Table of Contents
          • cover image ACM Conferences
            OOPSLA '14: Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications
            October 2014
            946 pages
            ISBN:9781450325851
            DOI:10.1145/2660193

          Copyright © 2014 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 15 October 2014

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!