Comment puis-je exécuter une application OpenGL installée sur une machine Linux à partir de ma machine Windows?
Question
Dans l’esprit d’aide, c’est un problème que j’avais et que j’avais résolu. Je vais donc répondre à la question ici.
Problème
j'ai:
Une application à installer sur Redhat ou SuSE Enterprise.
La configuration système requise est énorme et requiert OpenGL.
Il fait partie d'une suite d'outils devant fonctionner ensemble sur une seule machine.
Cette application est utilisée pour une tâche de longue haleine en termes d'heures de travail.
Je ne veux pas rester assis dans la salle des serveurs à travailler sur cette application.
Alors, la question s'est posée ... comment puis-je exécuter cette application à partir d'une machine Windows distante?
Je vais exposer ma solution. N'hésitez pas à commenter les alternatives. Cette solution devrait également fonctionner pour des environnements plus simples. Mon cas est un peu extrême.
La solution
Solution
J'ai installé deux logiciels:
XMing-mesa La partie mesa est importante.
Configuration PuTTY
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
Lancement
Lancez Xming pour lancer un processus et placer une icône dans la barre d'état système. Lancez putty, en pointant sur votre machine Linux, avec la configuration ci-dessus. Exécuter le programme
Si tout va bien, succès!
Autres conseils
Si vous souhaitez que le rendu OpenGL soit effectué sur votre ordinateur local, utilisez un serveur Windows X, comme Xming, ce qui est une bonne solution. Toutefois, si vous souhaitez que le rendu soit effectué à distance avec uniquement des images envoyées à la machine locale, vous souhaitez un système VNC spécialisé capable de gérer le rendu OpenGL à distance, comme VirtualGL .
Vous pouvez également utiliser VNC (comme un bureau à distance multiplateforme) X est plus efficace car il n’envoie que des commandes de dessin plutôt que des pixels, mais si vous utilisez opengl, il est probable que la plupart des données sont toujours une image rendue.
Un autre gros avantage de VNC est que vous pouvez démarrer le programme localement sur le serveur, puis vous y connecter avec VNC, interrompre la connexion, vous reconnecter à partir d’une autre machine, etc. sans déranger le programme principal en cours.
Pour OpenGL, exécuter un serveur X est certainement une meilleure solution. Assurez-vous simplement que l'application est développée pour être mise en réseau. Il ne faut PAS utiliser le mode immédiat pour le rendu et les textures doivent être RAREMENT transférées.
Pourquoi le serveur X est-il une meilleure solution dans ce cas (par opposition à VNC)? Parce que vous obtenez une accélération sur le poste de travail, alors que la solution VNC n’est généralement même pas accélérée sur le système central. Donc, tant que les données sont mises en mémoire tampon sur le serveur X (avec des tableaux de sommets, des objets de tampon de sommets, des objets de texture, etc.), vous devriez obtenir une vitesse bien supérieure à celle de VNC, en particulier avec des scènes complexes, car VNC doit les analyser, les transférer et les décoder. pixels.