====== 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**. {{ ::vgltransport.png?600 |}} **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).** {{ ::hpcvisu.png?600 |}} **Seules les applications exploitant l'affichage 3D (OpenGL par exemple) sont supportées** ===== 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 **[[http://www.turbovnc.org/|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 : 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 !** ===== 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 {{ :turbovnc1.png |}} Vous pouvez modifier les paramètres d'affichage/connexion selon vos besoins. {{ ::tbvnc2.png |}} ---- Une fois connecté, une session graphique (GNOME) est initialisée {{ ::visu_0.png?800 |}} =====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 {{ ::visu_1.png?800 |}} ===== 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 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 ====== ~~QNA~~ ??? Comment changer la résolution de l'écran ? !!! 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 ??? Est-il possible de partager l'écran avec d'autres utilisateurs ? !!! Oui, en fournissant l'URL de votre session et votre mot de passe. ??? Ma session dure plus que 2H ! comment faire pour demander plus de temps ? !!! 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.** ??? Est-il possible de fermer momentanément ma session ? Oui, la session est un job SGE , il suffit déconnecter/reconnecter l'application ''vncviewer'' ??? Comment quitter (killer) ma session ? 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 '' ??? Comment afficher les paramètres de ''vncviewer'' ? !!! En appuyant sur la touche ''F8''