Resumen:
|
La presencia de Unidades de Proceso Gráfico (Graphics Processing Units, GPUs) en las instalaciones de Computación de Alto Rendimiento (High Performance Computing, HPC) es una opción cada vez más extendida por la mejora del ...[+]
La presencia de Unidades de Proceso Gráfico (Graphics Processing Units, GPUs) en las instalaciones de Computación de Alto Rendimiento (High Performance Computing, HPC) es una opción cada vez más extendida por la mejora del rendimiento que proporcionan a la hora de realizar ciertos cálculos intensivos de manera repetitiva. Entre los inconvenientes que supone incluir estas tarjetas aceleradoras se encuentran los económicos, debidos principalmente a la necesidad de que cada nodo del cluster incorpore una de estas tarjetas, y a un alto consumo energético que es independiente de si se encuentran actualmente en uso o no. Teniendo en cuenta además que dichas tarjetas nunca son utilizadas al 100% de manera continuada en ningún nodo del cluster, una solución que permita compartir entre los diferentes nodos del cluster los recursos instalados en uno de ellos (básicamente, una o varias GPUs) maximizar a su uso y reducir a los costes anteriormente mencionados. El middleware rCUDA desarrollado por el Departamento de Informática de Sistemas y Computadores de la Universidad Politécnica de Valencia, en colaboración con el grupo High Performance Computing and Architecture, del Departamento de Ingeniería y Ciencia de Computadores de la Universidad Jaume I de Castelló, persigue este objetivo, mediante la virtualización de las GPU existentes en alguno de los nodos remotos carentes de ellas. De esta forma incluso es innecesaria la modificación de las aplicaciones de cálculo que requieran servicios de cómputo por parte de GPUs, y pudiendo funcionar como si realmente los nodos que no tienen GPU dispusieran de dichas unidades instaladas localmente. Mientras que los beneficios en términos económicos que se pueden obtener mediante la virtualización de GPUs pueden ser fácilmente estimados en base a una menor proporción entre número total de GPUs y número total de nodos del clúster, es menos inmediato anticipar la penalización en términos de tiempos de ejecución que puede suponer esta capa añadida de software, debida a latencias o cuellos de botella introducidos por los otros componentes del sistema requeridos por rCUDA para funcionar, como son la pila de protocolos utilizados para el traslado de información entre nodos a través de la red o la propia tecnología a de red utilizada. Para recrear un escenario real de virtualización de GPUs y tratar de medir estos impactos, hemos recurrido a dos aplicaciones de cálculo intensivo utilizando GPUs y que son usadas en entornos reales de producción, con el fin de contrastar su rendimiento en distintas con duraciones de virtualización de GPUs contra la correspondiente instalación en la que estos programas funcionarían utilizando las GPUs de manera local (que es la forma tradicional en la que se usan las GPUs). Por un lado se busca someter al middleware rCUDA a una carga de trabajo próxima a la esperada en un entorno de trabajo real y, por otro, el obtener algunos indicios sobre la evolución del rendimiento conforme varía el tamaño de los cálculos a resolver.
[-]
|