HOME

TheInfoList



OR:

Loop perforation is an
approximate computing Approximate computing is an emerging paradigm for energy-efficient and/or high-performance design. It includes a plethora of computation techniques that return a possibly inaccurate result rather than a guaranteed accurate result, and that can be u ...
technique that allows to regularly skip some iterations of a loop.Steilos Sidiroglou, Sasa Misailovic, Henry Hoffmann, and Martin Rinard
"Managing Performance vs. Accuracy Trade-offs With Loop Perforation."
ESEC/FSE. September, 2011
It relies on one
parameter A parameter (), generally, is any characteristic that can help in defining or classifying a particular system (meaning an event, project, object, situation, etc.). That is, a parameter is an element of a system that is useful, or critical, when ...
: the ''perforation rate''. The perforation rate can be interpreted as the number of iteration to skip each time or the number of iterations to perform before skipping one. Variants of loop perforation include those that skip iterations deterministically at regular intervals, those that skip iterations at the beginning or the end of the loop, and those that skip a random sample of iterations. The compiler may select the perforation variant at the compile-time, or include instrumentation that allows the runtime system to adaptively adjust the perforation strategy and perforation rate to satisfy the end-to-end accuracy goal.


Code examples

The examples that follows provide the result of loop perforation applied on this C-like source code for (int i = 0; i < N; i++)


Skip ''n'' iterations each time

for (int i = 0; i < N; i++)


Skip one iteration after ''n''

int count = 0; for (int i = 0; i < N; i++)


See also

*
Approximate computing Approximate computing is an emerging paradigm for energy-efficient and/or high-performance design. It includes a plethora of computation techniques that return a possibly inaccurate result rather than a guaranteed accurate result, and that can be u ...
*
Task skipping 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. ...
*
Memoization In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again. Memoization ...
Software optimization {{computing-stub