Aceleración hardware
La aceleración hardware de códigos de computación de alto rendimiento (HPC) se ha convertido en una práctica habitual en centros de datos e instalaciones de supercomputación, donde los procesadores gráficos (GPU) y el hardware reconfigurable (FPGA) pueden permitir incrementos muy significativos de rendimiento. Sin embargo, su impacto real en el rendimiento depende en gran medida de cada aplicación concreta y de las posibilidades que ofrece para paralelizar en estos dispositivos.
Las arquitecturas regulares de las GPU y de las FPGA configuradas con muchos núcleos idénticos se adaptan bien a cálculos sobre conjuntos de datos estructurados (p. ej., matrices multidimensionales) donde los patrones de acceso son predecibles, y el desarrollo de software paralelo para estas aplicaciones está bien soportado mediante lenguajes como CUDA (GPU) u OpenCL (GPU y FPGA).
Sin embargo, cuando se procesan conjuntos de datos no estructurados (p. ej., grafos), la naturaleza irregular de los cálculos y de los patrones de acceso a memoria plantea serias dificultades que, en algunos casos, se abordan mejor con diseños FPGA personalizados. En estos casos, el desarrollo de herramientas y lenguajes específicos de dominio es objeto de investigación en curso. En particular, el LSI tiene una larga experiencia en el desarrollo de métodos y herramientas de diseño FPGA para la simulación de códigos de dinámica de fluidos computacional (CFD) sobre mallas no estructuradas utilizadas por la industria aeronáutica.
![]()
Actualmente, la investigación del LSI en aceleración basada en GPU y FPGA también explora los posibles beneficios al ejecutar códigos científicos que procesan imágenes espectrales obtenidas de radiotelescopios. Esta investigación se lleva a cabo dentro de la serie de proyectos AMIGA (AMIGA-5, AMIGA-6, AMIGA-7).