Programación Paralela y computación de alto rendimiento (charla sobre vectorización, paralelización automática y OpenMP)
Resumen
Los sistemas multiprocesadores se han popularizado mucho
últimamente, pero aprovechar su potencial no es tarea fácil. En
general, el software desarrollado para estos sistemas tiene que
hacer uso explícito de las capacidades del hardware.
En esta presentación, voy a describir la arquitectura de
optimización usada en el GNU Compiler Collection (GCC) que ofrece
diversos modelos de paralelismo y optimización para aprovechar
arquitecturas concurrentes, principalmente vectorización y
OpenMP.
Vectorización es una facilidad automática del compilador que
aprovecha las unidades multimedia de CPUs modernas descargando la
ejecución de algunos loops internos en co-procesadores separados.
OpenMP es una especificación estandar de directivas de compilador
para C, C++ y Fortran. Provee nuevas instrucciones para
especificar paralelismo, sincronización y memoria compartida en
forma explícita.
Finalmente, la presentación va a incluir otras opciones del
compilador y herramientas asociadas que suelen ser útiles para
aprovechar al máximo las optimizaciones posibles con GCC.
Vea las publicaciones relacionadas a la charla haciendo click aquí.