Aplicación de GP-GPU Computing para la optimización de algoritmos científicos mediante el uso de profiling de hardware - Casas, Nicanor (2014)
En este artículo presentamos el proyecto de investigación sobre optimización de algoritmos científicos programados para para arquitecturas many-core. Estas arquitecturas proveen un gran potencial para los algoritmos que optimizaremos gracias a su alto nivel de paralelismo y simplicidad. En particular en este proyecto, se utilizará programación de procesamiento general para clusters de computadoras con placas gráficas (GPUs). En una primera etapa, continuamos la investigación realizada sobre algoritmos de simulación tipo N-Body para su optimización sobre arquitecturas GPU, esta vez mediante el uso de profilers de hardware. Buscamos determinar cuáles son los indicadores que indiquen un potencial para realizar optimizaciones mediante herramientas de profiling que provean información obtenida directamente del hardware utilizado. Luego, en una segunda etapa, ampliaremos dicha investigación para analizar algoritmos de multiplicación de enteros de tamaño arbitrario (Schönhage- Strassen) y de cálculo trayectorias de satélites (SGP4 y SDP4). Finalmente, utilizando dicha información de profiling tanto de las GPUs como las CPUs, buscamos elaborar una guía de optimizaciones basadas en profiling para algoritmos científicos –especialmente pensada para clusters de GPUs– que pueda ser consultada por científicos y programadores de otras áreas de la ciencia. En este artículo se presentan las tres etapas que componen este proyecto de investigación.