• Like
  • Save
Presentacion
Upcoming SlideShare
Loading in...5
×
 

Presentacion

on

  • 323 views

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

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

Statistics

Views

Total Views
323
Views on SlideShare
323
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Presentacion Presentacion Presentation Transcript

    • Clúster para visualizalización remota de Aplicaciones 3D basado en Software Libre
      Armando Fabián Arostegui Oleas
    • 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
    • La investigación se dividió en dos partes:
      Realizar procesamiento gráfico en paralelo
      Manejar remotamente aplicaciones 3D
    • Para realizar procesamiento gráfico en paralelo utilizamos Chromium
      Para manejar remotamente aplicaciones 3D utilizamos VirtualGL y TurboVNC
    • Chromium
      Chromium es un sistema para renderización interactiva en clusters de estaciones de trabajo
      Permite que el procesamiento gráfico tome ventaja de los commodityclusters haciendo accesible el rendimiento gráfico para aplicaciones paralelas
    • Se basa en OpenGL que es el estándar de la industria
      La interfaz de programación OpenGL de Chromium incluye todo el estándar OpenGL desde la versión 1.5
      Provee una interfaz de programación OpenGL paralela
    • Una forma muy importante en la que Chromium se diferencia de OpenGL es que Chromium soporta paralelismo
      Chromium esencialmente reemplaza el OpenGL de un sistema
      La mayoría de programas OpenGL pueden ser utilizados con Chromium sin realizar modificaciones
    • ¿Cómo funciona?
      Chromium es instanciado a través de un sistema denominado Mothership
      La Mothership configura y administra los procesos de Chromium reconfigurando dinámicamente los componentes del sistema
    • Intercepta los comandos OpenGL generados por la aplicación
      Reemplaza dinámicamente las librerías OpenGL nativas del sistema con una librería impostora propia
    • 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
      A través del Tile-Sort SPU convierte el stream entrante en un conjunto de streams paralelos que están espacialmente delimitados
    • El frame buffer es subdividido en secciones rectangulares que son renderizadas en paralelo por los miembros del clúster
    • Las secciones renderizadas son enviadas a un nodo en el que se reensamblan
    • VirtualGL
      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
    • 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
    • TurboVNC
      TurboVNC es una versión optimizada de VNC
      Ha sido adaptado para proporcionar rendimiento interactivo para video en pantalla completa y cargas de trabajo 3D
      Realiza renderización X11 del lado del servidor, solo envía imágenes al cliente
    • Usando VirtualGL con Chromium
      Utilizamos la configuración Sort-FirstRendering (Descomposición Imagen-Espacio) con Readback
    • 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
    • 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
    • Usando VirtualGL y TurboVNC
      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
    • 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
      VirtualGL envía imágenes 3D renderizadas al X proxy
    • Usamos VirtualGL con el X Proxy TurboVNC en el mismo servidor
      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
    • Conclusiones
      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
    • El funcionamiento de VirtualGL es óptimo ya que al combinarlo con Chromium duplica la velocidad de renderización obtenida solo con Chromium
      El uso de herramientas de software libre es muy conveniente ya que en la mayoría de casos se evitan costos de licenciamiento
    • 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
    • Recomendaciones
      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
    • 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
    • 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