In the spirit of being helpful, this is a problem I had and solved, so I will answer the question here.
本着帮助的精神,这是我遇到的问题并解决了,所以我将在这里回答这个问题。
Problem
I have:
An application that has to be installed on on Redhat or SuSE enterprise.
必须在Redhat或SuSE企业上安装的应用程序。
It has huge system requirements and requires OpenGL.
它有很大的系统要求,需要OpenGL。
It is part of a suite of tools that need to operate together on one machine.
它是需要在一台机器上一起操作的一套工具的一部分。
This application is used for a time intensive task in terms of man hours.
此应用程序用于人工时间的时间密集型任务。
I don't want to sit in the server room working on this application.
我不想坐在服务器室里工作这个应用程序。
So, the question came up... how do I run this application from a remote windows machine?
所以,问题出现了...如何从远程Windows机器运行此应用程序?
I'll outline my solution. Feel free to comment on alternatives. This solution should work for simpler environments as well. My case is somewhat extreme.
我将概述我的解决方案。随意评论替代品。此解决方案也适用于更简单的环境。我的情况有点极端。
4 个解决方案
#1
8
Solution
I installed two pieces of software:
我安装了两个软件:
XMing-mesa The mesa part is important.
XMing-mesa台面部分非常重要。
PuTTY configuration
Connection->Seconds Between Keepalives: 30
Connection->Enable TCP Keepalives: Yes
Connection->SSH->X11->Enable X11 forwarding: Yes
Connection->SSH->X11->X display location: localhost:0:0
Lauching
Run Xming which will put simply start a process and put an icon in your system tray. Launch putty, pointing to your linux box, with the above configuration. Run program
运行Xming,只需启动一个进程并在系统托盘中放置一个图标。使用上面的配置启动putty,指向你的linux盒子。运行程序
Hopefully, Success!
#2
6
If you want the OpenGL rendering to be performed on your local machine, using a Windows X server, like Xming is a good solution. However, if you want rendering to be done on the remote end with just images sent to the local machine, you want a specialized VNC system that can handle remote OpenGL rendering, like VirtualGL.
如果您希望在本地计算机上执行OpenGL渲染,则使用Windows X服务器(如Xming)是一个很好的解决方案。但是,如果您希望在远程端完成渲染,只需将图像发送到本地计算机,您需要一个可以处理远程OpenGL渲染的专用VNC系统,如VirtualGL。
#3
2
You could also use VNC ( like cross platform remote desktop ) X is more efficent since it only sends draw commands rather than pixels, but if you are using opengl it is likely that most of the data is a rendered image anyway.
您也可以使用VNC(如跨平台远程桌面)X更有效,因为它只发送绘图命令而不是像素,但如果您使用的是opengl,那么大部分数据可能都是渲染图像。
Another big advantage of VNC is that you can start the program locally on the server and then connect to it with VNC, drop the connection, reconnect from another machine etc without disturbing the main running program.
VNC的另一大优势是您可以在服务器上本地启动程序,然后使用VNC连接它,断开连接,从另一台机器重新连接等,而不会干扰主运行程序。
#4
0
For OpenGL, running an X server is definitely a better solution. Just make sure the application is developed to be networked. It should NOT use immediate mode for rendering and textures should be RARELY transferred.
对于OpenGL,运行X服务器绝对是一个更好的解决方案。只需确保应用程序开发为联网。它不应该使用立即模式进行渲染,并且应该对RARELY传输纹理。
Why is X server a better solution in this case (as opposed to VNC)? Because you get acceleration on workstation, while VNC'ed solution is usually not even accelerated on the mainframe. So as long as data is buffered on the X server (using vertex arrays, vertex buffer objects, texture objects, etc) you should get much higher speed than using VNC, especially with complex scenes since VNC has to analyze, transfer and decode them as pixels.
为什么X服务器在这种情况下是一个更好的解决方案(而不是VNC)?因为你在工作站上获得加速,而VNC的解决方案通常甚至在大型机上都没有加速。因此,只要数据在X服务器上缓冲(使用顶点数组,顶点缓冲区对象,纹理对象等),您应该比使用VNC获得更高的速度,尤其是对于复杂场景,因为VNC必须分析,传输和解码它们像素。
#1
8
Solution
I installed two pieces of software:
我安装了两个软件:
XMing-mesa The mesa part is important.
XMing-mesa台面部分非常重要。
PuTTY configuration
Connection->Seconds Between Keepalives: 30
Connection->Enable TCP Keepalives: Yes
Connection->SSH->X11->Enable X11 forwarding: Yes
Connection->SSH->X11->X display location: localhost:0:0
Lauching
Run Xming which will put simply start a process and put an icon in your system tray. Launch putty, pointing to your linux box, with the above configuration. Run program
运行Xming,只需启动一个进程并在系统托盘中放置一个图标。使用上面的配置启动putty,指向你的linux盒子。运行程序
Hopefully, Success!
#2
6
If you want the OpenGL rendering to be performed on your local machine, using a Windows X server, like Xming is a good solution. However, if you want rendering to be done on the remote end with just images sent to the local machine, you want a specialized VNC system that can handle remote OpenGL rendering, like VirtualGL.
如果您希望在本地计算机上执行OpenGL渲染,则使用Windows X服务器(如Xming)是一个很好的解决方案。但是,如果您希望在远程端完成渲染,只需将图像发送到本地计算机,您需要一个可以处理远程OpenGL渲染的专用VNC系统,如VirtualGL。
#3
2
You could also use VNC ( like cross platform remote desktop ) X is more efficent since it only sends draw commands rather than pixels, but if you are using opengl it is likely that most of the data is a rendered image anyway.
您也可以使用VNC(如跨平台远程桌面)X更有效,因为它只发送绘图命令而不是像素,但如果您使用的是opengl,那么大部分数据可能都是渲染图像。
Another big advantage of VNC is that you can start the program locally on the server and then connect to it with VNC, drop the connection, reconnect from another machine etc without disturbing the main running program.
VNC的另一大优势是您可以在服务器上本地启动程序,然后使用VNC连接它,断开连接,从另一台机器重新连接等,而不会干扰主运行程序。
#4
0
For OpenGL, running an X server is definitely a better solution. Just make sure the application is developed to be networked. It should NOT use immediate mode for rendering and textures should be RARELY transferred.
对于OpenGL,运行X服务器绝对是一个更好的解决方案。只需确保应用程序开发为联网。它不应该使用立即模式进行渲染,并且应该对RARELY传输纹理。
Why is X server a better solution in this case (as opposed to VNC)? Because you get acceleration on workstation, while VNC'ed solution is usually not even accelerated on the mainframe. So as long as data is buffered on the X server (using vertex arrays, vertex buffer objects, texture objects, etc) you should get much higher speed than using VNC, especially with complex scenes since VNC has to analyze, transfer and decode them as pixels.
为什么X服务器在这种情况下是一个更好的解决方案(而不是VNC)?因为你在工作站上获得加速,而VNC的解决方案通常甚至在大型机上都没有加速。因此,只要数据在X服务器上缓冲(使用顶点数组,顶点缓冲区对象,纹理对象等),您应该比使用VNC获得更高的速度,尤其是对于复杂场景,因为VNC必须分析,传输和解码它们像素。