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.
Thu 23 OctDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00 | |||
10:30 22mTalk | Continuously Measuring Critical Section Pressure with the Free-Lunch Profiler OOPSLA Florian David LIP6-UPMC/INRIA, Gaël Thomas LIP6-UPMC/INRIA, Julia Lawall LIP6, Gilles Muller LIP6-INRIA/UPMC Link to publication | ||
10:52 22mTalk | Chisel: Reliability-Aware Optimization of Approximate Computational Kernels OOPSLA Link to publication | ||
11:15 22mTalk | An Experimental Survey of Energy Management Across the Stack OOPSLA Link to publication | ||
11:37 22mTalk | Understanding Energy Behaviors of Thread Management Constructs OOPSLA Gustavo Pinto Federal University of Pernambuco, Fernando Castor UFPE, Yu David Liu State University of New York (SUNY) Binghamton Link to publication |