Loop perforation (traducibile letteralmente come perforazione del ciclo) è una tecnica di calcolo approssimato che consente di saltare regolarmente iterazioni di un ciclo.[1]
Questa tecnica necessita di un parametro: il fattore di salto, detto comunemente detto skip factor. Lo skip factor può essere interpretato come il numero di iterazioni saltate ogni volta o come il numero di iterazioni da eseguire prima di saltarne una.
Gli esempi seguenti mostrano il risultato di una loop perforation applicata su questo codice sorgente in stile C.
for ( int i = 0; i < N; i++ ) {
// corpo del ciclo
}
for ( int i = 0; i < N; i++ ) {
// corpo del ciclo
i = i + skip_factor;
}
int count = 0;
for ( int i = 0; i < N; i++ ) {
if (count == skip_factor) {
count = 0;
} else {
// corpo del ciclo
count++;
}
}