Task skipping

From HandWiki

Task skipping is an approximate computing technique that allows to skip code blocks according to a specific boolean condition to be checked at run-time.

This technique is usually applied on the most computational-intensive section of the code.

It relies on the fact that a tuple of values sequentially computed are going to be useful only if the whole tuple meet certain conditions. Knowing that a value of the tuple invalides or probably will invalidate the whole tuple, it is possible to avoid the computation of the rest of the tuple.

Code example

The example that follows provides the result of task skipping applied on this C-like source code

for (int i = 0; i < N; i++) {
    value_1 = compute_1(i);
    value_2 = compute_2(i);
}

Skipping a task

for (int i = 0; i < N; i++) {
    value_1 = compute_1(i);
    if (value_1 >= fixed_threshold) {
        value_2 = compute_2(i);
    }
}

See also