Articulo de referencia

perforación de bucle

La perforación de bucles es una técnica de cálculo aproximado que permite omitir regularmente algunas iteraciones de un bucle. [ 1 ] [ 2 ] [ 3 ] Depende de un parámetro : la tas...

La perforación de bucles es una técnica de cálculo aproximado que permite omitir regularmente algunas iteraciones de un bucle. [ 1 ] [ 2 ] [ 3 ]

Depende de un parámetro : la tasa de perforación . La tasa de perforación puede interpretarse como el número de iteraciones que se omiten cada vez o el número de iteraciones que se realizan antes de omitir una.

Entre las variantes de perforación de bucles se incluyen aquellas que omiten iteraciones de forma determinista a intervalos regulares, aquellas que omiten iteraciones al principio o al final del bucle, y aquellas que omiten una muestra aleatoria de iteraciones. El compilador puede seleccionar la variante de perforación en tiempo de compilación o incluir instrumentación que permita al sistema en tiempo de ejecución ajustar de forma adaptativa la estrategia y la tasa de perforación para cumplir con el objetivo de precisión de extremo a extremo.

Las técnicas de perforación con bucle fueron desarrolladas por primera vez por el profesor del MIT Martin C. Rinard y los investigadores de su grupo, Henry Hoffmann, Sasa Misailovic y Stelios Sidiroglou.

Ejemplos de código

Los ejemplos que siguen proporcionan el resultado de la perforación de bucles aplicada a este código fuente similar a C.

para ( int i = 0 ; i < N ; i ++ ) { // hacer cosas }

Saltar n iteraciones cada vez

for ( int i = 0 ; i < N ; i ++ ) { // hacer cosas i = i + skip_factor ; }

Saltar una iteración después de n

entero contador = 0 ;for ( int i = 0 ; i < N ; i ++ ) { if ( count == skip_factor ) { count = 0 ; } else { // hacer cosas count ++ ; } }

Véase también

  1. Henry Hoffmann, Sasa Misailovic, Stelios Sidiroglou, Anant Agarwal, Martin Rinard "Uso de la perforación de código para mejorar el rendimiento, reducir el consumo de energía y responder a fallos" Informe técnico MIT CSAIL 2009-042, septiembre de 2009
  2. Sasa Misailovic, Stelios Sidiroglou, Henry Hoffmann, Martin C. Rinard "Perfilado de calidad de servicio" 32.ª Conferencia Internacional sobre Ingeniería de Software (ICSE 2010). Mayo de 2010.
  3. Steilos Sidiroglou, Sasa Misailovic, Henry Hoffmann y Martin Rinard. «Gestión de las compensaciones entre rendimiento y precisión mediante la perforación de bucles». ESEC/FSE. Septiembre de 2011.