Código en mosaico paralelo para calcular ecuaciones generales de recurrencia lineal
Autores: Bielecki, Wodzimierz; Baszynski, Piotr
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Código en mosaico paralelo para calcular ecuaciones generales de recurrencia lineal
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería Eléctrica y Electrónica
Palabras clave
Generar código paralelo en mosaico
GLRE
Datos multidimensionales
Dependencias
Restricciones de partición de tiempo
Código paralelo en mosaico 2D
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 38
Citaciones: Sin citaciones
En este artículo, presentamos una técnica que nos permite generar código en mosaico paralelo para calcular ecuaciones de recursión lineal general (GLRE). Ese código trata con datos multidimensionales y es intensivo en cálculos. Demostramos que las dependencias de datos disponibles en un código original que calcula GLREs no nos permiten generar ningún código paralelo porque solo hay una solución para las restricciones de partición de tiempo construidas para ese programa. Mostramos cómo transformar el código original en otro que expone dependencias de manera que haya dos soluciones lineales distintas a las restricciones de partición de tiempo derivadas de estas dependencias. Esto nos permite generar código en mosaico 2D paralelo que calcula GLREs. La técnica de frente de onda se utiliza para lograr el paralelismo, y el código generado cumple con el estándar OpenMP C/C++. Los experimentos que realizamos con el código en mosaico 2D paralelo resultante muestran que este código es mucho más eficiente que el código serial original que calcula GLREs. La mejora del rendimiento del código se logra permitiendo el paralelismo y una mejor localidad del código objetivo.
Descripción
En este artículo, presentamos una técnica que nos permite generar código en mosaico paralelo para calcular ecuaciones de recursión lineal general (GLRE). Ese código trata con datos multidimensionales y es intensivo en cálculos. Demostramos que las dependencias de datos disponibles en un código original que calcula GLREs no nos permiten generar ningún código paralelo porque solo hay una solución para las restricciones de partición de tiempo construidas para ese programa. Mostramos cómo transformar el código original en otro que expone dependencias de manera que haya dos soluciones lineales distintas a las restricciones de partición de tiempo derivadas de estas dependencias. Esto nos permite generar código en mosaico 2D paralelo que calcula GLREs. La técnica de frente de onda se utiliza para lograr el paralelismo, y el código generado cumple con el estándar OpenMP C/C++. Los experimentos que realizamos con el código en mosaico 2D paralelo resultante muestran que este código es mucho más eficiente que el código serial original que calcula GLREs. La mejora del rendimiento del código se logra permitiendo el paralelismo y una mejor localidad del código objetivo.