Presentacion

292 views

Published on

Clúster para visualización remota de aplicaciones 3D basado en software libre

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
292
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Presentacion

  1. 1. Clúster para visualizalización remota de Aplicaciones 3D basado en Software Libre<br />Armando Fabián Arostegui Oleas<br />
  2. 2. El propósito de la investigación fue encontrar una solución basada en software libre que permita visualizar remotamente aplicaciones 3D desde cualquier computadora<br />
  3. 3. La investigación se dividió en dos partes:<br />Realizar procesamiento gráfico en paralelo<br />Manejar remotamente aplicaciones 3D<br />
  4. 4. Para realizar procesamiento gráfico en paralelo utilizamos Chromium<br />Para manejar remotamente aplicaciones 3D utilizamos VirtualGL y TurboVNC<br />
  5. 5. Chromium<br />Chromium es un sistema para renderización interactiva en clusters de estaciones de trabajo<br />Permite que el procesamiento gráfico tome ventaja de los commodityclusters haciendo accesible el rendimiento gráfico para aplicaciones paralelas<br />
  6. 6. Se basa en OpenGL que es el estándar de la industria<br />La interfaz de programación OpenGL de Chromium incluye todo el estándar OpenGL desde la versión 1.5<br />Provee una interfaz de programación OpenGL paralela<br />
  7. 7. Una forma muy importante en la que Chromium se diferencia de OpenGL es que Chromium soporta paralelismo<br />Chromium esencialmente reemplaza el OpenGL de un sistema<br />La mayoría de programas OpenGL pueden ser utilizados con Chromium sin realizar modificaciones<br />
  8. 8. ¿Cómo funciona?<br />Chromium es instanciado a través de un sistema denominado Mothership<br />La Mothership configura y administra los procesos de Chromium reconfigurando dinámicamente los componentes del sistema<br />
  9. 9. Intercepta los comandos OpenGL generados por la aplicación<br />Reemplaza dinámicamente las librerías OpenGL nativas del sistema con una librería impostora propia<br />
  10. 10. Toma el control de toda la renderización solicitada por la aplicación, transformando los comandos gráficos OpenGL en un stream de comandos gráficos ordenados parcialmente<br />A través del Tile-Sort SPU convierte el stream entrante en un conjunto de streams paralelos que están espacialmente delimitados<br />
  11. 11. El frame buffer es subdividido en secciones rectangulares que son renderizadas en paralelo por los miembros del clúster<br />
  12. 12. Las secciones renderizadas son enviadas a un nodo en el que se reensamblan<br />
  13. 13. VirtualGL<br />VirtualGL es un paquete de código abierto que da a cualquier programa de visualización remota de Unix o Linux la habilidad de ejecutar aplicaciones OpenGL con completa aceleración 3D por hardware<br />
  14. 14. VirtualGL emplea una técnica llamada “splitrendering” para forzar que los comandos OpenGL y los datos 3D sean redirigidos de la aplicación a un acelerador gráfico 3D en el servidor de aplicación, y solo las imágenes 3D renderizadas son enviadas a la máquina cliente<br />
  15. 15. TurboVNC<br />TurboVNC es una versión optimizada de VNC<br />Ha sido adaptado para proporcionar rendimiento interactivo para video en pantalla completa y cargas de trabajo 3D<br />Realiza renderización X11 del lado del servidor, solo envía imágenes al cliente<br />
  16. 16. Usando VirtualGL con Chromium<br />Utilizamos la configuración Sort-FirstRendering (Descomposición Imagen-Espacio) con Readback<br />
  17. 17.
  18. 18. La actividad OpenGL y GLX es interceptada por el ChromiumAppFaker (CrAppFaker) para que el renderizado 3D pueda ser dividido entre los nodos de renderización. Una vez que cada nodo ha renderizado su sección de la imagen final, las secciones de la imagen son pasados de vuelta a un proceso Chromium Server (CrServer) que se está ejecutando en el Nodo 0<br />
  19. 19. VirtualGL obliga al CrServer a dibujar en un Pbuffer, y VGL entonces se encarga de transmitir los píxeles desde el Pbuffer al servidor X del servidor de aplicación de la forma más eficiente posible<br />
  20. 20. Usando VirtualGL y TurboVNC<br />Un X proxy como TurboVNC actúa como un servidor X virtual, recibiendo comandos X11 desde la aplicación (y desde VirtualGL), renderizando los comandos X11 en imágenes, comprimiendo las imágenes resultantes, y enviando las imágenes comprimidas por la red a un cliente o clientes<br />
  21. 21. Los X proxy como TurboVNC son no orientados a conexión, lo que significa que el cliente puede desconectarse y reconectarse desde cualquier máquina en la red, y la aplicación 3D se mantendrá en ejecución en el servidor<br />VirtualGL envía imágenes 3D renderizadas al X proxy<br />
  22. 22. Usamos VirtualGL con el X Proxy TurboVNC en el mismo servidor<br />Esto permite a VirtualGL enviar sus imágenes 3D renderizadas al X proxy a través de la memoria compartida en lugar de enviarlas por la red<br />
  23. 23.
  24. 24.
  25. 25. Conclusiones<br />El factor que limita la gran capacidad de Chromium de dividir la carga de trabajo de renderización es la velocidad de los enlaces de comunicación entre los nodos de renderización y el nodo de aplicación<br />
  26. 26. El funcionamiento de VirtualGL es óptimo ya que al combinarlo con Chromium duplica la velocidad de renderización obtenida solo con Chromium<br />El uso de herramientas de software libre es muy conveniente ya que en la mayoría de casos se evitan costos de licenciamiento<br />
  27. 27. La desventaja de utilizar estas herramientas radica en la falta de soporte técnico y el tiempo de investigación requerido para lograr el funcionamiento deseado<br />
  28. 28. Recomendaciones<br />Cambiar la infraestructura de red con tarjetas de red, cables y un switch de fibra óptica, con lo cual se superaría la limitación de la velocidad de los enlaces de comunicación entre los nodos de renderización y el nodo de aplicación, de esta forma se aprovecharía eficientemente la capacidad de Chromium<br />
  29. 29. Cambiar las tarjetas aceleradoras 3D de 512MB de los nodos de renderización por tarjetas aceleradoras 3D de 1GB para aumentar la capacidad de renderización y disminuir el tiempo que se requiere para realizarlo<br />
  30. 30. Investigar acerca de algún sistema operativo de dispositivos móviles como teléfonos inteligentes o PDAs (Personal Digital Assistant) que soporte el cliente de TurboVNC, ya que de esta forma se podría manejar remotamente aplicaciones 3D desde este tipo de dispositivos<br />

×