Programación paralela sobre arquitecturas heterogéneas (2016)
A medida que avanzan las investigaciones y la tecnología se generan cada vez volúmenes más grandes de información y esto ocasiona un aumento drástico en los tiempos necesario para procesarla, es por eso que la comunidad científica está en la búsqueda de alternativas para suplir las necesidades de obtener resultados en el menor tiempo posible y optimizando los recurso, una de las posibles alternativas consiste en usar las nuevas arquitecturas heterogéneas que incluyen una interacción CPU-GPU para procesamiento paralelo, es aquí en donde reside la importancia de esta investigación la cual pretende utilizar programación paralela por medio de unidades de procesamiento gráfico (GPU) para la aceleración de algoritmos de cómputo científico, cada uno de los problemas tratados se implementaran de forma paralela en GPU y de forma secuencial en CPU con el fin de contrastar tiempos de simulación y así mostrar bajo qué condiciones y qué arquitectura obtendrán las mejores aceleraciones. A lo largo de todo el documento se explicará detalladamente las estrategias de computación paralela sobre arquitecturas heterogéneas utilizando en mayor proporción dispositivos de procesamiento gráfico (GPU), tomando como base el lenguaje C y las librerías CUDA y OpenCL para la gestión de la misma, con el fin de que el problema se adapte de la mejor forma al dispositivo utilizado. Dentro de los resultado obtenidos se observan aceleraciones de hasta 213X para el sistema de Lorenz y convertidor Buck, en el caso de la ecuación de Laplace en 2 dimensiones se puedo lograr aceleraciones de hasta 9;7X, en el caso de la ecuación de Laplace en 3 dimensiones se puedo lograr aceleraciones de hasta 8;6X y en el caso del análisis estadístico de SNP se obtuvo aceleración de 26;9X de forma paralela en CPU y de 8;2X de forma paralela en GPU.