Las arquitecturas many-core proveen un gran potencial, para la optimización de algoritmos científicos gracias a su alto nivel de paralelismo y simplicidad. En este caso particular se utilizará programación de procesamiento general para clusters de computadoras con placas GPU.
Primeramente el proyecto se enfoca en el análisis de matrices dispersas, dónde la mayor parte de los datos que contiene, no son relevantes al cálculo final deseado. Por lo tanto utilizando ciertas técnicas de representación en las matrices, se puede evitar realizar operaciones sobre datos a los cuales se les puede determinar su resultado a priori.
En la segunda etapa, se utilizan y analizan implementaciones de biblioteca que aprovechen diferentes sistemas de representación de estas matrices, Graphics Processing Unit buscando realizar las optimizaciones oportunas de ser posible, siendo necesario realizar pruebas en las dos tecnologías de GPU más reconocidas buscando identificar posibles deficiencias en la implementación de cada solución.
Finalmente mediante contadores de hardware se analizan en forma precisa, si las optimizaciones a realizar, y las ya realizadas, realmente producen una diferencia apreciable en los tiempos de ejecución y uso de recursos de las bibliotecas.
En este artículo se presentan las tres etapas que componen este proyecto de investigación.