rCUDA , acrónimo de Remote CUDA , es un marco de software intermedio para la virtualización remota de GPU . Totalmente compatible con la interfaz de programación de aplicaciones ( API ) de CUDA , permite asignar una o más GPU compatibles con CUDA a una sola aplicación. Cada GPU puede formar parte de un clúster o ejecutarse dentro de una máquina virtual . Este enfoque busca mejorar el rendimiento en clústeres de GPU que no alcanzan su plena capacidad. La virtualización de GPU reduce la cantidad de GPU necesarias en un clúster, lo que se traduce en una configuración de menor costo: menor consumo de energía, adquisición y mantenimiento.
La arquitectura de aceleración distribuida recomendada es un clúster de computación de alto rendimiento con GPU conectadas solo a algunos de los nodos del clúster. Cuando un nodo sin una GPU local ejecuta una aplicación que necesita recursos de GPU, la ejecución remota del kernel se admite mediante transferencias de datos y código entre la memoria del sistema local y la memoria de la GPU remota. rCUDA está diseñado para admitir esta arquitectura cliente-servidor . Por un lado, los clientes emplean una biblioteca de adaptadores para la API de tiempo de ejecución de CUDA de alto nivel, y por otro lado, hay un servicio de escucha de red que recibe solicitudes en un puerto TCP . Varios nodos que ejecutan diferentes aplicaciones aceleradas por GPU pueden utilizar simultáneamente todo el conjunto de aceleradores instalados en el clúster. El cliente reenvía la solicitud a uno de los servidores, que accede a la GPU instalada en ese equipo y ejecuta la solicitud en ella. La multiplexación temporal de la GPU, o en otras palabras, su compartición , se logra mediante la creación de diferentes procesos de servidor para cada solicitud de ejecución remota de la GPU. [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ]
rCUDA v20.07
El middleware rCUDA permite el uso simultáneo de dispositivos compatibles con CUDA de forma remota.
rCUDA emplea la red InfiniBand o la API de sockets para la comunicación entre clientes y servidores. rCUDA puede ser útil en tres entornos diferentes:
- Clústeres. Para reducir el número de GPU instaladas en clústeres de alto rendimiento. Esto conlleva ahorros de energía, así como otros ahorros relacionados, como costes de adquisición, mantenimiento, espacio, refrigeración, etc.
- Ámbito académico. En las redes de distribución, ofrecer acceso simultáneo a un número limitado de GPU de alto rendimiento a muchos estudiantes.
- Máquinas virtuales. Para habilitar el acceso a las funcionalidades de CUDA en la máquina física.
La versión actual de rCUDA (v20.07) es compatible con CUDA versión 9.0, excluyendo la interoperabilidad gráfica. rCUDA v20.07 está diseñado para el sistema operativo Linux (para arquitecturas de 64 bits) tanto en el lado del cliente como en el del servidor.
Las aplicaciones CUDA no necesitan ningún cambio en su código fuente para poder ejecutarse con rCUDA.
Referencias
- ↑ J. Prades; F. Silla (diciembre de 2019). "Migración de trabajos de GPU: el caso de rCUDA". Transactions on Parallel and Distributed Systems, vol. 30, n.º 12.
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace ) - ↑ J. Prades; C. Reaño; F. Silla (marzo de 2019). "Sobre el efecto del uso de rCUDA para proporcionar aceleración CUDA a máquinas virtuales Xen". Cluster Computing, vol. 22, n.º 1.
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace ) - ↑ F. Silla; S. Iserte; C. Reaño; J. Prades (julio de 2017). "Sobre los beneficios del mecanismo de virtualización remota de GPU: el caso de rCUDA". Concurrency and Computation: Practice and Experience, vol. 29, n.º 13.
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace ) - ↑ J. Prades; B. Varghese; C. Reaño; F. Silla (octubre de 2017). "GPU virtuales multiusuario para optimizar el rendimiento de una aplicación de riesgo financiero". Journal of Parallel and Distributed Computing, vol. 108. arXiv : 1606.04473 .
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace ) - ↑ F. Pérez; C. Reaño; F. Silla (6-9 de junio de 2016). "Provisión de aceleración CUDA a máquinas virtuales KVM en clústeres InfiniBand con rCUDA". 16.ª Conferencia Internacional IFIP sobre Aplicaciones Distribuidas y Sistemas Interoperables (DAIS 2016), Heraklion, Creta, Grecia.
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace ) - ↑ S. Iserte; J. Prades; C. Reaño; F. Silla (16-19 de mayo de 2016). "Aumento del rendimiento de los centros de datos mediante la combinación de virtualización remota de GPU con Slurm". 16.º Simposio Internacional IEEE/ACM sobre Computación en Clúster, Nube y Grid (CCGRID 2016), Cartagena, Colombia.
{{cite journal}}: La cita de la revista requiere|journal=( ayuda ) CS1 mantenimiento: ubicación ( enlace )
Enlaces externos
- Sitio web oficial de Nvidia CUDA
- marcos de software
- GPGPU
- Bibliotecas informáticas
- Middleware
- Software del sistema
- Plataformas en la nube
- computación en la nube
- Arquitectura de computación distribuida
- computación distribuida
- Computación paralela