- Main
Energy Efficient Computing Using Static-Dynamic Co-optimizations
- Gururaj, Karthik
- Advisor(s): Cong, Jason
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
Enter the password to open this PDF file:
-
-
-
-
-
-
-
-
-
-
-
-
-
-