Skip to main content
eScholarship
Open Access Publications from the University of California

Energy Efficient Computing Using Static-Dynamic Co-optimizations

  • Author(s): Gururaj, Karthik
  • Advisor(s): Cong, Jason
  • et al.
Abstract

Energy consumption is a primary concern of current day computing systems -- from handheld battery operated systems to

servers in data centers connected to wall power. Research in academia as well as industry has focused on a variety of

techniques for minimizing energy consumption while maintaining a good level of performance. The most effective

techniques combine the best of static (or offline) and dynamic (or online/runtime) optimizations to obtain the best

solution. Static optimizations can be more complex and can afford to take a global view of the application/computation

being executed on the system -- however, such optimizations have to be conservative in nature because they cannot

anticipate all the different scenarios that can appear at runtime. Dynamic optimizations have more information about

the application/computation for the given input -- however, since such optimizations have to have low overhead, they can

afford to have only a local view of the computation/ application and the complexity of the optimization has to be

relatively low. An additional direction that needs to be considered is to determine whether dynamic optimizations

should be implemented in software or hardware. In this thesis, I present a study of three aspects of energy efficient

computing that use a combination of static and dynamic optimizations to minimize energy consumption. The first aspect is

to consider variability in the execution time of applications during scheduling for dynamic voltage frequency scaling

(DVFS) capable systems to minimize energy consumption and yet maintain a desired level of performance. The main idea is

to construct a schedule table offline and perform a simple table look-up at runtime. The second aspect is to consider

application-level reliability for applications that can tolerate certain error in the outputs. I present the study of a

profile-guided offline compilation strategy to identify critical instructions and a monitoring technique in software to

handle corner cases at runtime. Finally, the third aspect of energy efficient computing I investigate is flexibility --

customizing the instruction sets of processors to improve energy efficiency. I study the benefits of compiler directed

optimizations for generating custom instructions which are executed within a modified processor pipeline and an

architecture mechanism for detecting corner cases and to roll-back to a safe state. Additionally, I investigate the

benefits of customizing the instruction set dynamically in hardware.

Main Content
Current View