Design of scalable PGAS collectives for NUMA and manycore systems
Damián Alvarez · 2014
El numero de nucleos por procesador esta creciendo, convirtiendo a los sistemas multinucleo en omnipresentes. Esto implica lidiar con multiples niveles de memoria en sistemas NUMA, accesibles a traves de complejas jerarquias para procesar las crecientes cantidades de datos. La clave para un movimiento eficiente y escalable de datos es el uso de operaciones de comunicacion colectivas que minimizen el impacto de los cuellos de botella. Usar comunicaciones unilaterales se vuelve mas importante en estos sistemas, para evitar sincronizaciones entre pares de procesos en operaciones colectivas implementadas usando funciones punto a punto bilaterales. Esta tesis propone una serie de algoritmos que proporcionan buen rendimiento y escalabilidad en operaciones colectivas. Estos algoritmos usan arboles jerarquicos, solapamento de comunicaciones unilaterais, pipelining de mensajes y afinidad NUMA. Se ha desarrollado una implementacion para UPC, un lenguaje PGAS cuyo rendimiento tambien ha sido evaluado en esta tesis. Para comprobar el rendimiento de estos algoritmos una nueva herramienta de microbenchmarking fue disenada e implementada. La evaluacion de los algoritmos, realizada en 6 sistemas representativos, con 5 arquitecturas de procesador y 5 redes de interconexion diferentes, ha mostrado en general un buen rendimiento y escalabilidad, mejor que los algoritmos lideres en MPI en muchos casos, lo que confirma el potencial de los algoritmos desarrollados para arquitecturas multi- y manycore.