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.
- A.Chandrakasan, S. Sheng, and R. Brodersen. Low power cmos digital design. IEEE Journal of Solid State Circuits, 27:473--484, 1992.Google Scholar
Cross Ref
- 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 Scholar
Cross Ref
- W. Baek and T. Chilimbi. Green: a framework for supporting energy-conscious programming using controlled approximation. In PLDI, 2010. Google Scholar
Digital Library
- T. Bartenstein and Y. Liu. Green streams for data-intensive software. In ICSE, 2013. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Cohen, H. Steve Zhu, S. Emgin, and Y. Liu. Energy types. In OOPSLA, 2012. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Frigo, C. Leiserson, and K. Randall. The implementation of the cilk-5 multithreaded language. In PLDI, 1998. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Georges, D. Buytaert, and L. Eeckhout. Statistically rigorous java performance evaluation. In OOPSLA, 2007. Google Scholar
Digital Library
- Y. Guo, J. Zhao, V. Cavé, and V. Sarkar. Slaw: A scalable locality-aware adaptive work-stealing scheduler. In IPDPS, 2010. Google Scholar
Digital Library
- S. Hao, D. Li, W. Halfond, and R. Govindan. Estimating mobile application energy consumption using program analysis. In ICSE, 2013. Google Scholar
Digital Library
- M. Horowitz, T. Indermaur, and R. Gonzalez. Low-power digital design. In Low Power Electronics, 1994. IEEE Symposium, 1994.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- A. Iyer and D. Marculescu. Power efficiency of voltage scaling in multiple clock, multiple voltage cores. In ICCAD, 2002. Google Scholar
Digital Library
- T. Kalibera, M. Mole, R. Jones, and J. Vitek. A black-box approach to understanding concurrency in dacapo. In OOPSLA, 2012. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- V. Kumar, D. Frampton, S. Blackburn, D. Grove, and O. Tardieu. Work-stealing without the baggage. In OOPSLA, 2012. Google Scholar
Digital Library
- 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 Scholar
- Doug Lea. A java fork/join framework. In Java Grande, 2000. Google Scholar
Digital Library
- Y. Liu. Energy-efficient synchronization through program patterns. In GREENS, 2012. Google Scholar
Digital Library
- Y. Liu. Variant-frequency semantics for green futures. In PLACES'12, 2012.Google Scholar
- A. Merkel and F. Bellosa. Balancing power consumption in multiprocessor systems. In EuroSys, 2006. Google Scholar
Digital Library
- Oracle. Java hotspot garbage collection. http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140228.html, 2014. {Online; accessed 21-Mar-2014}.Google Scholar
- Oracle. Java language and virtual machine specifications. http://docs.oracle.com/javase/specs/, 2014. {Online; accessed 21-Mar-2014}.Google Scholar
- S. Park, W. Jiang, Y. Zhou, and S. Adve. Managing energy-performance tradeoffs for multithreaded applications on multiprocessor architectures. In SIGMETRICS, 2007. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- G. Pinto, F. Castor, and Y. Liu. Mining questions about software energy consumption. In MSR, 2014. Google Scholar
Digital Library
- K. Rangan, G. Wei, and D. Brooks. Thread motion: fine-grained power management for multi-core systems. In ISCA, 2009. Google Scholar
Digital Library
- H. Ribic and Y. Liu. Energy-efficient work-stealing language runtimes. In ASPLOS, 2014. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Trefethen and J. Thiyagalingam. Energy-aware software: Challenges, opportunities and strategies. Journal of Computational Science, 2013.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- W. Yuan and K. Nahrstedt. Energy-efficient soft real-time cpu scheduling for mobile multimedia systems. In SOSP, 2003. Google Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Understanding energy behaviors of thread management constructs
Recommendations
Understanding energy behaviors of thread management constructs
OOPSLA '14: Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & ApplicationsJava 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 ...
Efficient Java thread serialization
PPPJ '03: Proceedings of the 2nd international conference on Principles and practice of programming in JavaThe Java system supports the transmission of code via dynamic class loading, and the transmission or storage of data via object serialization. However, Java does not provide any mechanism for the transmission/storage of computation (i.e., thread ...
Automatic repair for multi-threaded programs with Deadlock/Livelock using maximum satisfiability
ISSTA 2014: Proceedings of the 2014 International Symposium on Software Testing and AnalysisDeadlock-freedom is a major challenge in developing multi-threaded programs, as a deadlock cannot be resolved until one restarts the program (mostly by using manual intervention). To avoid the risk of blocking, a program may use the trylock operations ...







Comments