El BSC desarrolla código para el NVIDIA CUDA toolkit para acelerar la computación hasta cuatro veces

05 Julio 2018

El código desarrollado es más rápido, más preciso y requiere menos memoria para la resolución de sistemas tridiagonales

Esta investigación está financiada por el Human Brain Project y el centro de excelencia BSC/UPC de GPU

Investigadores del Barcelona Supercomputing Center-Centro Nacional de Supercomputación (BSC) han desarrollado el código llamado cuThomasBatch que es tres veces (en precisión simple) y cuatro veces (en precisión doble) más rápido que su equivalente cuSPARSE routine (gtsvStridedbatch) en la resolución de un alto número de sistemas tridiagonales. Este código ha sido integrado en la biblioteca cuSPARSE, como parte de la nueva rutina gtsvInterleavedBatch. cuSPARSE permite a los desarrolladores acceder a recursos computacionales de unidades de procesamiento gráfico (GPU por sus siglas en inglés) de NVIDIA y está implementado haciendo uso del lenguaje NVIDIA® CUDA®, para operaciones de álgebra lineal dispersa. cuSPARSE, como parte de CUDA SDK, es una herramienta de software muy popular y ampliamente conocida en la comunidad de la computación de altas prestaciones (HPC por sus siglas en inglés).

Este código es capaz de resolver un gran número de sistemas tridiagonales, que son necesarios en numerosas simulaciones científicas, como la dinámica de fluidos computacional (CFD por sus siglas en ingles), modelaje oceánico, o la simulación del cerebro humano, para mencionar algunas. Las implementaciones minimizan los requerimientos (de memoria y de número de hilos), consiguiendo una alta escalabilidad en GPUs de NVIDIA.

“Estamos satisfechos al ver que cuThomasBatch es más rápido cuando se computa con un número alto de sistemas tridiagonales, es más preciso y necesita menos memoria” afirma Pedro Valero, investigador del grupo de modelos de programación del BSC y colaborador del equipo de aceleradores y comunicaciones para HPC.

El estudio es un resultado de la publicación científica titulada “NVIDIA GPUs scalability to solve multiple batch tridiagonal system implementation of cuThomasBatch” de la cual el primer autor es Pedro Valero, seguido de otros investigadores del BSC como Iván Martínez-Pérez, Raül Sirvent, Xavier Martorell y Antonio J. Peña. Estos resultados se presentaron con un póster en la última GPU Technology Conference 2018 y fueron financiados gracias al proyecto europeo Human Brain Project y el centro de excelencia BSC/UPC de GPU.

BSC/UPC, pioneros en la computación GPU

El Barcelona Supercomputing Center (BSC) en asociación con la Universitat Politecnica de Catalunya (UPC) se nombró Centro de Excelencia de GPU de NVIDIA en 2011.

El centro desarrolla entornos de programación multi-GPU y aplicaciones compatibles con esta tecnología promocionando una gestión de los recursos unificada. Además. Está desarrollando códigos para la futura era de computadores exascale con aceleradores GPU mediante el modelo de programación StarSs, y su implementación en OmpSs integrada con CUDA y OpenACC.

Entre otras actividades, el centro de excelencia de GPU BSC/UPC patrocina la novena edición de la escuela de verano PUMPS+AI (del inglés Programming and Tuning Massively Parallel Systems + Artificial Intelligence). Este curso tiene como objetivo enriquecer las habilidades de los investigadores, estudiantes de doctorado o de màstes y profesores, con técnicas avanzadas y experiencia práctica en desarrollar aplicaciones para procesadores multi-núcleo con recursos masivos de computación paralela como los aceleradores de GPU.