Estudio de viabilidad de SYCL como modelo de programación unificado para sistemas heterogéneos basados en GPUs en bioinformática

Por un lado, la computación de alto rendimiento (HPC) requiere de modelos de programación que aprovechen el paralelismo masivo de arquitecturas heterogéneas modernas como las plataformas CPU-GPU. Sin embargo, modelos de programación como CUDA y OpenCL presentan limitaciones en portabilidad y product...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Costanzo, Manuel
Otros Autores: Rucci, Enzo
Formato: Tesis Tesis de doctorado
Lenguaje:Español
Publicado: 2024
Materias:
GPU
Acceso en línea:http://sedici.unlp.edu.ar/handle/10915/164928
https://doi.org/10.35537/10915/164928
Aporte de:
Descripción
Sumario:Por un lado, la computación de alto rendimiento (HPC) requiere de modelos de programación que aprovechen el paralelismo masivo de arquitecturas heterogéneas modernas como las plataformas CPU-GPU. Sin embargo, modelos de programación como CUDA y OpenCL presentan limitaciones en portabilidad y productividad. SYCL surge como alternativa prometedora al unificar la programación en C++ y abstraer las particularidades del hardware. Por otro lado, la bioinformática y la biología computacional representan dos campos que han estado explotando las GPUs durante más de dos décadas, y muchas de sus implementaciones se basan en CUDA, lo que impone limitaciones significativas en cuanto a la portabilidad en una amplia gama de arquitecturas heterogéneas. Es por lo que esta tesis doctoral propone evaluar la viabilidad de SYCL como modelo de programación paralelo unificado, portable y eficiente para sistemas heterogéneos con GPUs, específicamente en bioinformática. Considerando que el alineamiento de secuencias biológicas representa una operación fundamental con amplias aplicaciones en diversas áreas de la biología y la medicina, se seleccionó la suite SW\# como caso de estudio por su relevancia y por estar desarrollado en CUDA. Mediante la herramienta SYCLomatic se migró completamente el código de SW\# de CUDA a SYCL. Este proceso involucró la ejecución de la herramienta, modificación del código generado, corrección de errores, verificación funcional, optimizaciones y estandarización SYCL. Posteriormente, se realizaron múltiples experimentos en un amplio conjunto de GPUs y CPUs de diferentes tipos y fabricantes para evaluar la portabilidad de rendimiento del código migrado en contextos individuales, tanto de GPU como de CPU, multi-GPU y CPU+GPU, en un entorno híbrido. Los resultados de esta tesis muestran, en primer lugar, que la herramienta SYCLomatic resulta efectiva y útil para la migración automática, aunque no pueda considerarse una solución final. En segundo lugar, las pruebas realizadas revelan que SYCL presenta una eficiencia comparable a la de CUDA en las GPUs NVIDIA y ofrece una amplia portabilidad funcional con una aceptable portabilidad de rendimiento a GPUs y CPUs de otros fabricantes. En conclusión, SYCL se posiciona como una alternativa viable como modelo unificado de programación heterogénea, portable y eficiente, estableciendo un precedente importante para futuros desarrollos en el área.