VirtualGL

VirtualGL is an open source toolkit that gives any Unix or Linux remote display software the ability to run OpenGL applications with full 3D hardware acceleration. Some remote display solutions cannot be used with OpenGL applications at all. Others force OpenGL applications to use a slow, software-only renderer, to the detriment of performance as well as compatibility. The traditional method of displaying OpenGL applications to a remote X server (indirect rendering) supports 3D hardware acceleration, but this approach causes all of the OpenGL commands and 3D data to be sent over the network to be rendered on the client machine. This is not a tenable proposition unless the data is relatively small and static, unless the network is very fast, and unless the OpenGL application is specifically tuned for a remote X-Windows environment. With VirtualGL, the OpenGL commands and 3D data are instead redirected to a 3D graphics accelerator (AKA ”graphics processing unit” or ”GPU”) in the application server, and only the rendered 3D images are sent to the client machine. VirtualGL thus ”virtualizes” 3D graphics hardware, allowing it to be co-located in the ”cold room” with compute and storage resources. VirtualGL also allows GPUs to be shared among multiple users, and it provides ”workstation-like” levels of performance on even the most modest of networks. This makes it possible for large, noisy, hot 3D workstations to be replaced with laptops or even thinner clients. More importantly, however, VirtualGL eliminates the workstation and the network as barriers to data size. Users can now visualize huge amounts of data in real time without needing to copy any of the data over the network or sit in front of the machine that is rendering the data.