Running FAST on a remote server
FAST can run on a remote Linux server using SSH.
If you don't want to do any visualization, you don't have to do anything extra. FAST will detect that there is no display to render and thus disable visualization (i.e. OpenGL) in FAST. If you try to do anything that requires OpenGL (rendering etc.) FAST will crash.
If you want to run FAST with visualization on a remote server you need to use VirtualGL. Indirect rendering over SSH with X forwarding (ssh -X) will not work because FAST uses modern OpenGL (3+), which indirect GLX does not support (however some have reported that modern Mesa OpenGL does support this).
Setting up VirtualGL
Install VirtualGL on the client machine (If windows, see documentation here): sudo apt install virtualgl
Then, install VirtualGL on the server machine: sudo apt install virtualgl
If your server is headless, meaning it has no display connected, you need to setup an "empty" X display. If your server uses the NVIDIA driver, you can do this with the following command: sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024
This will create a new xorg.conf config file in the folder /etc/X11/.
Then run the virtualgl config on your server: vglserver_config
Finally restart X on your server, or just reboot: sudo systemctl restart gdm
If something goes wrong, remove the xorg.conf that was created (or replace it with the backup /etc/X11/xorg.conf.backup) and reboot.
Using FAST with VirtualGL
Instead of using the ssh command to connect to the server, connect with the following virtualgl command instead: vglconnect -s user@domain
If you are on secure local area network, you can drop the -s parameter which can increase performance. Then, when you want to run FAST, add vglrun to your command, e.g. to run the importImageFromFile example: vglrun /opt/fast/bin/importImageFromFile
The same for python:
# Interactive python: vglrun python # Running a python script file: vglrun python your_script.py
For more information on VirtualGL over SSH, see documentation here.