Visualisation à distance HPC

Le mésocentre dispose d'une solution de visualisation à distance exploitant la puissance des cartes graphique Nvidia Tesla K20 et le protocole VirtualGL.

HOW TO?

  • Normal X-forwarding sends all X rendering instructions and the client does all the rendering on a CPU.
  • VirtualGL overrides this protocol and renders 3D graphics at the host’s GPU and then send only the rendered 2D images to the client (the scheme is much more complicated).

Seules les applications exploitant l'affichage 3D (OpenGL par exemple) sont supportées

Une file d'attente spécifique a été mise en place sur le cluster Lumière pour permettre l'exécution de programmes ayant besoin de rendu graphique 3d gourmand en ressources, éventuellement combiné à du calcul CUDA.

La machine contient :

  • Deux cartes Tesla K20m
  • 8 coeurs
  • 32G de mémoire.
  • Uniquement les applications utilisant OpenGL sont supportées
  • Deux sessions utilisateurs sont autorisées à la fois.
  • Limite de la session est de 2H (par défaut)
  • L'utilisateur peut partager sa session avec d'autres utilisateurs (voir FAQ)
  • Les connexions entre le poste client/mésocentre ne sont pas cryptées

Voici la liste des étapes à suivre dans l'ordre.

Pour pouvoir utiliser une session graphique sur le cluster lumière, il est nécessaire d'installer sur votre machine le logiciel TurboVNC

Sur le mésocentre, depuis l'un des nœuds de connexion de lumière, il est possible de demande une nouvelle session graphique à l'aide de la commande suivante (Se placer dans WORK d'abord) :

$ 3dsession

  • A la première connexion, un mot de passe vous sera demandé, il est différent de votre mot de passe mésocentre
  • Tous les paramètre indiqués à cette commande seront transmis à SGE : il est ainsi possible de réserver un GPU de la manière suivante :
$ 3dsession 

Il est également possible de passer des arguments pour le serveur VNC à l'aide de la variable d'environnement VNC_OPTIONS

Cette commande met la nouvelle session graphique en file d'attente SGE, en attendant que les ressources demandées soient disponibles. Il est possible de vérifier l'état de la session à l'aide de la commande qstat :

$ qstat
[user1@mesologin2 WORK]$ qstat
job-ID  prior   name          user         state submit/start at     queue                          slots ja-task-ID 
--------------------------------------------------------------------------------------------------------------------
 999999 0.00000 visu_session  user1        qw    09/03/2015 13:48:42                                    1   

Une fois la session en exécution (le job passe en état r), l'adresse de connexion à la session est affichée dans la sortie standard du job SGE. Les informations se trouvent dans le fichier correspondant au job SGE, par exemple :

visu_session.o999999
Waiting 5 seconds for visualization server to start...

=========================================================================
From your local computer you can connect to your 3D session              
With a VNCviewer using the following adress:                             
                                                                         
         mesovisu.univ-fcomte.fr:1                             
                                                                         
If no error were displayed, the visualization server is now started.  
=========================================================================

L'adresse VNC pour cette session est mesovisu.univ-fcomte.fr:1

Les adresses indiquées changent pour chaque session graphique : il est important de bien se reporter à celle indiquée au moment de l'exécution !

La connexion se fait depuis votre machine, il est nécessaire d'installer TurboVNC sur votre poste de travail.

Linux

La commande indiquée peut alors être utilisée dans un terminal, sous Linux, pour se connecter à la session mesovisu.univ-fcomte.fr:1

Par exemple, en ligne de commande :

$ /opt/TurboVNC/bin/vncviewer mesovisu.univ-fcomte.fr:1

Windows et Mac OS X

Sur des systèmes Windows ou Mac, il est préférable de lancer le logiciel manuellement, puis d'utiliser l'adresse de connexion au moment où celle-ci est demandée :

$ mesovisu.univ-fcomte.fr:1

Vous pouvez modifier les paramètres d'affichage/connexion selon vos besoins.


Une fois connecté, une session graphique (GNOME) est initialisée

Pour pouvoir utiliser l'accélération OpenGL du système, il est nécessaire de préfixer la commande de lancement du programme par vglrun :

$ vglrun <nom du programme>

Il est possible à tout moment de quitter la session allant dans le menu system user (menu haut à droit) puis quitter la session. Ou tout simplement arrêter le job SGE correspendant à votre session

qdel <idJob>

Quitter la session aura pour effet d'arrêter le job, et donc de tuer les programmes en cours d'exécution. Pour éviter cela, il suffit de fermer le client VNC lui-même uniquement, de manière à pouvoir se reconnecter ultérieurement à la session graphique.

FAQ

Avant de lancer 3dession, il faut passer le paramètre au serveur via la variable d'environnement VNC_OPTIONS

Par exemple pour une résolution de 1680x1050 :

$ export VNC_OPTIONS="-geometry 1680x1050"
$ 3dsession

Oui, en fournissant l'URL de votre session et votre mot de passe.

Vous pouvez demander plus de temps (par exemple 4h) avec la commande :

$ 3dsession -l h_rt=4:00:00

Attention : le temps maxi est de 72h.

Oui, la session est un job SGE , il suffit déconnecter/reconnecter l'application vncviewer

Deux solutions :

  1. Dans la session graphique, cliquer sur System User puis quitter
  2. Sur la machine de login mésocentre, arrêter le job correspondant avec la commande qdel <numeroJob>