Information Technology
Identifying Computer Program Phase Changes through Program Working Set Analysis
WARF: P03019US
Inventors: James Smith, Ashutosh Dhodapkar
The Wisconsin Alumni Research Foundation (WARF) is seeking commercial partners interested in developing a method of identifying changes in computer program phases to optimize performance and power consumption.
Overview
As computer programs execute, they pass through different phases of operation that require more or less hardware resources. If the available hardware resources are insufficient for the needs of a particular program phase, performance suffers. On the other hand, if the available resources exceed what a certain program phase requires, then power is wasted. A computer’s performance and power consumption can be optimized by detecting program phase changes and invoking a response to those changes using a method of dynamic hardware reconfiguration.
The Invention
UW-Madison researchers have developed a method of identifying changes in program phases by analyzing changes in program working sets. Defined as those program regions being actively used at any one time, working sets are a manifestation of program phases. To detect changes in working sets, the method first generates a highly compressed representation of each working set, called the working set signature. Using a metric called the relative signature distance, the system then compares the signatures of consecutive working sets to detect changes. The method also estimates working set size by counting the number of bits in the working set’s signature.
Applications
- Optimizing computer performance and power consumption
Key Benefits
- Detects program phase changes, allowing optimization of computer performance and power consumption
- System detects changes in program phases independent of the specific hardware configuration, making it applicable to any microprocessor implementation.
- Can directly configure (i.e., without a trial-and-error process) certain hardware structures, such as caches or branch predictors, whose performance depends on working set size
- Significantly reduces the time spent in non-optimal hardware configurations by efficiently identifying recurring working sets from their signatures, storing their associated optimal configurations and setting the optimal configuration for each working set