Espacio-tiempo bucle de encajonamiento para códigos de programación dinámica
Autores: Bielecki, Wlodzimierz; Palkowski, Marek
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Espacio-tiempo bucle de encajonamiento para códigos de programación dinámica
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Bucle espacio-temporal de mosaico
Código en mosaico paralelo
Algoritmos de programación dinámica
Mosaicos de espacio
Cortes de tiempo
Localidad mejorada
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 35
Citaciones: Sin citaciones
Presentamos un nuevo enfoque de mosaico de bucles espacio-temporales y demostramos su aplicación para la generación de código en mosaico paralelo de mejor localidad para tres algoritmos de programación dinámica. La técnica prevé que, para cada declaración de anidamiento de bucles, se generen primero subespacios de modo que la intersección de ellos resulte en mosaicos de espacio. Los mosaicos de espacio pueden ser enumerados en orden lexicográfico o en paralelo utilizando la técnica de frente de onda. Luego, dentro de cada mosaico de espacio, se forman rebanadas de tiempo, que se enumeran en orden lexicográfico. Los mosaicos objetivo se representan con múltiples rebanadas de tiempo dentro de cada mosaico de espacio. Explicamos la idea básica del mosaico de bucles espacio-temporales y luego la ilustramos mediante un ejemplo. Luego, presentamos un algoritmo formal y demostramos su corrección. El algoritmo se implementa en el compilador TRACO disponible públicamente. Los resultados experimentales demuestran que los códigos paralelos generados mediante el enfoque presentado superan a los generados manualmente o mediante transformaciones afines. La principal ventaja del código generado mediante el enfoque presentado es su mejor localidad debido a la división de cada mosaico de espacio más grande en múltiples mosaicos más pequeños representados con rebanadas de tiempo.
Descripción
Presentamos un nuevo enfoque de mosaico de bucles espacio-temporales y demostramos su aplicación para la generación de código en mosaico paralelo de mejor localidad para tres algoritmos de programación dinámica. La técnica prevé que, para cada declaración de anidamiento de bucles, se generen primero subespacios de modo que la intersección de ellos resulte en mosaicos de espacio. Los mosaicos de espacio pueden ser enumerados en orden lexicográfico o en paralelo utilizando la técnica de frente de onda. Luego, dentro de cada mosaico de espacio, se forman rebanadas de tiempo, que se enumeran en orden lexicográfico. Los mosaicos objetivo se representan con múltiples rebanadas de tiempo dentro de cada mosaico de espacio. Explicamos la idea básica del mosaico de bucles espacio-temporales y luego la ilustramos mediante un ejemplo. Luego, presentamos un algoritmo formal y demostramos su corrección. El algoritmo se implementa en el compilador TRACO disponible públicamente. Los resultados experimentales demuestran que los códigos paralelos generados mediante el enfoque presentado superan a los generados manualmente o mediante transformaciones afines. La principal ventaja del código generado mediante el enfoque presentado es su mejor localidad debido a la división de cada mosaico de espacio más grande en múltiples mosaicos más pequeños representados con rebanadas de tiempo.