Multi-core processors are becoming widely deployed in computer systems. While improving the performance of applications with multi-core technology, multi-core CPUs consume more power than a single-core one. We propose a power saving technique for multi-core systems based on the observation of critical sections in multi-threaded applications. First, since only one thread on a core can enter into a critical section for a shared resource, other threads on other cores that would access the same resource would run into busy waiting state. Hence the frequency of those idle cores could be minimized to reduce energy wastages without degrading overall applicationsi¦ performance. Secondly, the accurate engage/disengage timing of a critical section could be detected by matching particular byte code patterns before a thread actually enters into a critical section. Thus the frequency of busy waiting cores could be tuned in advance. Based on these findings, the power-saving technique of critical sections is proposed and implemented. With the experiments of five multi-threaded Java benchmarks, the proposed power-saving technique leads to good energy savings (11 to 15 percent) with lower values of Energy Delay Product as compared to the other power-saving techniques.
['Fuh-Gwo Chen', 'Kuo-Yi Chen', 'Jr-Shian Chen', 'Chi-Chen Shui']
Smart Energy Management of Multi-threaded Java Applications on Multi-core Processors