Next: Learning
Up: Polus Framework
Previous: Generation of Knowledge base
The rule of thumb specifications are simple declarative statements. They fundermentally serve two purposes:
- They specify the relationship between actions, resources, workload characteristics, and behavior dimensions. For example, prefetching requires memory.
- They specify ``hints'' for the possible values associated with the relationships. For example, prefetching is dependent on the sequential/random ratio. A higher value of this ratio is more favorable. This hint helps the learning algorithm to perform linear classification within the behavior space (i.e., if invoking prefetching did not improve throughput when the sequential/random ratio =
, then the hint allows the learning algorithm to interpolate that for all values less than or equal to
, invoking prefetching may not be beneficial).
The template for the rule-of-thumb specifications has similar categories as those of the action objects:
<action name = PREFETCH>
<behavior_implications>
<implication dimension = throughput
impact = up>
</behavior_implications>
<preconditions>
<precond dimension = sequential/random
ratio value = high>
<precond dimension = read/write ratio
value = high>
<precond dimension = memory value = *>
</preconditions>
<base invocation>
<function name = change_prefetch_size>
<parameter type = float>
</base invocation>
</action>
2004-02-14