Skip to content
Häfner edited this page Jul 15, 2024 · 19 revisions

PolyVR enables the deployment of applications on distributed visualisation environments. Such a system is a cluster of workstations connected over network. Each workstation can have one or more graphic card needed for all the displays of the virtual environment setup. Typical systems are CAVEs or tiled power walls.

To setup your cluster environment you will need:

  • OpenSG cluster server on each node, for each graphic card

    • Install OpenSG on each node
    • A suitable server can be found in the OpenSG examples or from PolyVR
      • src/cluster/VRServer # the application
      • src/cluster/start slave1 # start script, pass a name for multicast
  • Configure PolyVR, open the 'Setup' tab

    • Add a Network Node and slave
      • RMB > add > node
      • RMB > add > slave
    • Add a cluster window
      • RMB > add > window
      • Configure how many tiles the window has, Nx/Ny
      • for each entry (Nx*Ny), write the slave identifier, you can find it in the slave config.

Framelock (Linux)

This only works with Quaddro graphic cards and G-Sync

  • Configure all X server on each Node, the goal is to make them listen on port 6000

    • Execute xhost+ to allow the other nodes to access the X server
      • Make this persistent by adding it to nano ~/.xprofile
      • Make the file executable chmod +x ~/.xprofile
    • Config file /etc/gdm3/custom.conf
      • [security] DisallowTCP=false
    • There is an issue with recent X, it doesnt start listen on tcp automatically as it used to..
      • it might in this case be necessary to "hack" it, bypassing GDM
      • sudo nano /usr/bin/Xorg, just add -listen tcp to both commands
    • restart gdm sudo systemctl restart gdm, check with nmap or netstat
  • Tests for debugging:

    • nvidia-smi displays the graphic cards and driver version
    • netstat -an | grep 6000 check if there is something running on port 6000, should be the X Server deamon
    • nmap -p6000 127.0.0.1 check port 6000 related stuff
    • sudo iptables -A INPUT -p tcp --dport 6000 -j ACCEPT opens the port 6000 in the firewall
    • nvidia-settings -c :0 -q [gpu:0]/RefreshRate check the nvidia screens/displays
    • nvidia-settings -c :0 -q REMOTE_COMPUTER:0[gpu:0]/RefreshRate check if you can access a remote x server
    • ps ax | grep X shows the command the X Server was started with, check TCP related options!
  • Once the X server configured follow this guide to create a framelock script: https://download.nvidia.com/XFree86/Linux-x86_64/295.59/README/framelock.html

Clone this wiki locally