Una plataforma flexible y de propósito general para la computación heterogénea
Autores: Garcia-Hernandez, Jose Juan; Morales-Sandoval, Miguel; Elizondo-Rodríguez, Erick
Idioma: Inglés
Editor: MDPI
Año: 2023
Acceso abierto
Artículo científico
2023
Una plataforma flexible y de propósito general para la computación heterogénea
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Sistemas
Palabras clave
Era de big data
Ciencia de datos
Computación heterogénea
Aceleración de algoritmos
Algoritmos con alta demanda computacional
OpenCL
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 21
Citaciones: Sin citaciones
En la era del big data, procesar grandes cantidades de datos impone varios desafíos, principalmente en términos de rendimiento. Las operaciones complejas en ciencia de datos, como el aprendizaje profundo, simulaciones a gran escala y aplicaciones de visualización, pueden consumir una cantidad significativa de tiempo de computación. La computación heterogénea es una alternativa atractiva para la aceleración de algoritmos, utilizando no solo un tipo, sino varios dispositivos informáticos diferentes (CPU, GPU o FPGA) simultáneamente. Acelerar un algoritmo para un dispositivo específico bajo un marco específico, es decir, CUDA/GPU, proporciona una solución con el rendimiento más alto posible a costa de una pérdida en generalidad y requiere un programador experimentado. Por el contrario, la computación heterogénea permite ocultar los detalles relativos al uso simultáneo de diferentes tecnologías para acelerar la computación. Sin embargo, la implementación efectiva de la computación heterogénea todavía requiere dominar el flujo de diseño subyacente. Con el objetivo de llenar esta brecha, en este artículo presentamos una plataforma de computación heterogénea (HCP). En cuanto a sus principales características, esta plataforma permite a los no expertos en computación heterogénea implementar, ejecutar y evaluar algoritmos de alta demanda computacional siguiendo un flujo de diseño semiautomático. Dada la implementación de un algoritmo en C con requisitos de formato mínimos, la plataforma genera automáticamente el código paralelo utilizando un analizador de código, que se adapta para dirigirse a un conjunto de dispositivos informáticos disponibles. Por lo tanto, aunque no se requiere un programador experimentado en computación heterogénea, el proceso puede ejecutarse en los dispositivos informáticos disponibles en la plataforma, ya que no es una solución ad hoc para un dispositivo informático específico. El HCP propuesto se basa en la especificación OpenCL para la interoperabilidad y generalidad. La plataforma se validó y evaluó en términos de generalidad y eficiencia a través de un conjunto de experimentos utilizando los algoritmos del conjunto Polybench/C (versión 3.2) como entrada. Se utilizaron diferentes configuraciones para la plataforma, considerando solo CPUs, solo GPUs y una combinación de ambos. Los resultados revelaron que el HCP propuesto pudo lograr aceleraciones de hasta 270 veces para clases específicas de algoritmos, es decir, algoritmos amigables para la paralelización, mientras que su uso requería casi ninguna experiencia en OpenCL o computación heterogénea por parte del programador/usuario final.
Descripción
En la era del big data, procesar grandes cantidades de datos impone varios desafíos, principalmente en términos de rendimiento. Las operaciones complejas en ciencia de datos, como el aprendizaje profundo, simulaciones a gran escala y aplicaciones de visualización, pueden consumir una cantidad significativa de tiempo de computación. La computación heterogénea es una alternativa atractiva para la aceleración de algoritmos, utilizando no solo un tipo, sino varios dispositivos informáticos diferentes (CPU, GPU o FPGA) simultáneamente. Acelerar un algoritmo para un dispositivo específico bajo un marco específico, es decir, CUDA/GPU, proporciona una solución con el rendimiento más alto posible a costa de una pérdida en generalidad y requiere un programador experimentado. Por el contrario, la computación heterogénea permite ocultar los detalles relativos al uso simultáneo de diferentes tecnologías para acelerar la computación. Sin embargo, la implementación efectiva de la computación heterogénea todavía requiere dominar el flujo de diseño subyacente. Con el objetivo de llenar esta brecha, en este artículo presentamos una plataforma de computación heterogénea (HCP). En cuanto a sus principales características, esta plataforma permite a los no expertos en computación heterogénea implementar, ejecutar y evaluar algoritmos de alta demanda computacional siguiendo un flujo de diseño semiautomático. Dada la implementación de un algoritmo en C con requisitos de formato mínimos, la plataforma genera automáticamente el código paralelo utilizando un analizador de código, que se adapta para dirigirse a un conjunto de dispositivos informáticos disponibles. Por lo tanto, aunque no se requiere un programador experimentado en computación heterogénea, el proceso puede ejecutarse en los dispositivos informáticos disponibles en la plataforma, ya que no es una solución ad hoc para un dispositivo informático específico. El HCP propuesto se basa en la especificación OpenCL para la interoperabilidad y generalidad. La plataforma se validó y evaluó en términos de generalidad y eficiencia a través de un conjunto de experimentos utilizando los algoritmos del conjunto Polybench/C (versión 3.2) como entrada. Se utilizaron diferentes configuraciones para la plataforma, considerando solo CPUs, solo GPUs y una combinación de ambos. Los resultados revelaron que el HCP propuesto pudo lograr aceleraciones de hasta 270 veces para clases específicas de algoritmos, es decir, algoritmos amigables para la paralelización, mientras que su uso requería casi ninguna experiencia en OpenCL o computación heterogénea por parte del programador/usuario final.