Comment puis-je exécuter une application OpenGL installée sur une machine Linux à partir de ma machine Windows?

StackOverflow https://stackoverflow.com/questions/106201

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.

Était-ce utile?

La solution

Solution

J'ai installé deux logiciels:

PuTTY

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top