Penn State Logo
 Pitt Logo
 UVa Logo
Projects
REEact: A Robust Execution Environment for Fragile Multicore Systems PDF Print E-mail

With the emergence of chip multiprocessors (CMPs), comes the promise of integrating enormous computing power in a single chip, thereby enabling parallel computing in all types of platforms including handheld computers and desktop machines. The design, implementation and more importantly, the way that future data/compute-intensive applications execute, will be impacted by CMPs. While hardware design choices for CMPs are extremely important, providing proper software support for applications is critical to harness the true power of these architectures.

An inherent characteristic of CMPs that presents a significant obstacle is runtime variation: reliability, energy/thermal behavior and process variation will vary across identically designed components of a CMP, producing a negative impact on application power consumption and performance. Runtime variation has been identified as one of the key problems that could block further scaling of circuits if not properly addressed. Using the hardware, compiler or operating system (OS) to manage the variations are three possible approaches. With hardware techniques, the worst case or even the average case variance will not produce the performance and power consumption required; it also cannot readily exploit application-specific knowledge. The overhead of handling fine grain heterogeneity and the huge number of potential configurations of the CMP components would create too much overhead to use a compiler. The OS approach would involve modifying many modules, including device drivers, the scheduler and resource managers, to adapt application execution to heterogeneity originating from runtime variations. Also, OS policies should be general (considering target workloads) and normally do not modify the application code itself, a task that is vital to adapt application execution at runtime to variations.

We advocate an approach that combines the hardware, compiler and OS. We are developing an advanced execution system, called a Robust Execution Environment (REEact), that will dynamically adapt an application’s execution to the runtime resource landscape originating from runtime variations. REEact will be a type of execution environment that mediates, controls and adapts the application’s execution. It will employ a combination of techniques in adapting both the hardware resources and the application software code to overcome the impact of runtime variations. At the hardware level, it will adapt the resources, such as setting the speed/voltage of a node on the CMP. At the software level, REEact will dynamically optimize code, taking into account performance and power consumption due to runtime variations. It will elicit the help of the OS in determining what resources to use in running the application. REEact will inform the OS about information it dynamically discovers about latency, power, and application behavior. REEact will be built as multi-layer hierarchical runtime system that interacts with the parallel application, the underlying CMP architecture and the OS to ensure that the maximum performance/minimum power consumption is achieved, given the current operational status of the hardware.


                                                                  NSF Logo

Supported by the National Science Foundation under grants CNS–0720789, CNS–0720645, CCF–0811687, CCF–0811689, CCF–0811352, CNS–0720483 and CNS–0551560.

Last Updated on Thursday, 13 August 2009 17:09