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.
- 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).
Introduction
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.
Caractéristiques
- 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.
1. Préparation de la machine locale
Pour pouvoir utiliser une session graphique sur le cluster lumière, il est nécessaire d'installer sur votre machine le logiciel TurboVNC
2. Lancement d'une session graphique
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
3. Connexion
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
Une fois connecté, une session graphique (GNOME) est initialisée
4. Lancer un programme utilisant l'accélération 3D
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>
5. Quitter la session
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>
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 :
- Dans la session graphique, cliquer sur System User puis
quitter
- Sur la machine de login mésocentre, arrêter le job correspondant avec la commande
qdel <numeroJob>
En appuyant sur la touche F8