I have a processing server(only onboard graphics and no heads) that is networked to several workstation servers(servers with dedicated graphics cards/2 heads). There is a suite of of opengl applications that I am unable to change and are processing intensive. I want to be able to move them around the different workstation servers without having to reload those applications. So far I've been unable to do this and I'm looking for suggestions as to if this is possible.

Running the applications on the processing server works fine if I export the display to a workstation server but then I am unable to move those displays to another server without restarting the applications.

I've tried x11vnc and that works fine but only if it is attached to a currently running X session. This would allow the applications to move amongst workstations but one workstation is constantly dedicated to running the applications which is undesirable.

I've tried x11vnc with xfvb but I'm unable to connect it to a graphics card so I'm missing the NV-GLX extension needed by the applications.

I've also tried turbovnc with virtualgl but these applications don't seem to work right with virtualgl. Also this would require me to run the applications on the workstation server which isn't desirable.

To my mind the ideal solution is to have the processing server be able to run the applications but move the exported DISPLAY but this doesn't seem to be possible. I've looked at xmove and xpra but they seem to use something similar to VNC and I'm worried I would run into NV-GLX extension problems again.

Thank you for any help that can be provided.

有帮助吗?

解决方案

No, it is not possible as you've described.

Right now you have a processing server doing the CPU-intensive stuff and the workstation servers doing the GPU intensive rendering. They're tightly coupled over the X11 display connection. Both Xlib and OpenGL were designed on the assumption that the graphics card / screen weren't going to change underneath them, which is why you can't move to another workstation without restarting.

VNC attached to an existing X session works because it isn't doing any rendering at all. It's just reading pixels out of an existing window and copying them elsewhere.

With xfvb you are asking an OpenGL application to run on a not very good software renderer and it is refusing to do so. (Even if you could get it to work, the performance would suck.)

I would stick a decent graphics card and a monitor onto the processing server and run the OpenGL applications entirely on that server/display. Use x11vnc from the workstations to see the results.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top