Desenroscado de bucles

El Desenroscado de bucles (conocido en inglés como loop unrolling o Loop unwinding) es una técnica de optimización de bucles que intenta mejorar la velocidad de ejecución de un programa a costa de aumentar su tamaño binario (Situación de compromiso espacio-tiempo). Esta transformación puede hacerla manualmente el programador o un Compilador optimizador.

El objetivo del desenroscado de bucles es incrementar la velocidad del programa al reducir (o eliminar) instrucciones que controlan el bucle, como aritmética de punteros o la verificación de final de bucle en cada iteración;[1]​ reduciendo la penalización por ramificación además de “ocultar latencias, en particular, la espera de la lectura de datos de memoria”.[2]​ Para eliminar esta sobrecarga en la computación, los bucles pueden ser reescritos como una repetición de sentencias similares independientes.[3]

  1. Ullman, Jeffrey D.; Aho, Alfred V. (1977). Principios de diseño de compiladores. Reading, Mass: Addison-Wesley Pub. Co. pp. 471–2. ISBN 0-201-10073-8. 
  2. Petersen, W.P., Arbenz, P. (2004). Introducción a la computación paralela. Oxford University Press. p. 10. 
  3. Nicolau, Alexandru (1985). Loop Quantization: Desenroscar para la explotación del Paralelismo a bajo nivel. Dept. of Computer Science Technical Report. Ithaca, NY: Cornell University. OCLC 14638257. 

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne