Changes between Version 9 and Version 10 of vnc3d


Ignore:
Timestamp:
02/19/16 12:02:26 (8 years ago)
Author:
Jens Henrik Goebbert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • vnc3d

    v9 v10  
    22[[PageOutline]]
    33
    4 The availability of remote visualization, either implemented within visualization applications themselves, or through server software, eliminates the need for off-site file transfers and allows HPC users to run a broad range of visualization tools in-place on the supercomputer where the data resides.
     4Remote visualization, either implemented within visualization applications themselves or through server software, eliminates the need for off-site file transfers and allows HPC users to run a broad range of visualization tools in-place on the supercomputer where the data resides and more compute resources are available.
    55
    6 \\
    7 === Remote Visualization - Technical Details
    8 {{{#!table style="border:none; text-align:left; margin:0px"
    9    {{{#!th align=left,style="border: none"
    10 [[Image(https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/X11transport.png/600px-X11transport.png, 200px, align=left, margin=10, link=wiki:remote3d)]]
    11    }}}
    12    {{{#!th align=left,style="border: none"
    13 The availability of remote visualization, either implemented within visualization applications themselves, or through server software, eliminates the need for off-site file transfers and allows HPC users to run a broad range of visualization tools in-place on the supercomputer where the data resides.
    14 \\
    15 \\
    16 [wiki:remote3d more...]
    17    }}}
    18 }}}
     6A graphical login using Virtual Network Computing (VNC) simplifies the access to remote visualization.
     7A broad variety of Linux applications with graphical user interface and/or need for OpenGL can be used directly on the supercomputers via VNC. VNC provides a complete graphical and remote desktop by transmitting the keyboard and mouse events from your computer to the remote machine, relaying the graphical screen updates back in the other direction.
    198
     9VNC is
     10* platform-independent (VNC viewers are available for almost any operating system)
     11* application-independent (no need for remote visualization support inside the application)
     12* multiple clients may connect to a VNC server at the same time sharing the same session (support, presentation, group discussions)
    2013
    21 == Remote rendering using VNC
    22 Remote rendering is also possible using the Virtual Network Computing (VNC, e.g. [http://www.tigervnc.org TigerVNC] or [http://www.turbovnc.org/ TurboVNC]) package. VNC follows a very general approach, where a remote desktop on one node of the remote cluster is opened. On the users workstation only a lightwise VNC client (viewer) has to be installed. The image of the remote desktop is send from the cluster to the viewer on the fly. The user can work with this desktop in the usual way, just by interacting with keyboard and mouse. This is a very convenient way to work on a remote machine, not only for data visualisation. Whenever an OpenGL capable visualisation software, like !VisIt, is started on the remote node, OpenGL commands must be redirected to the GPU of this node with the help of [http://www.virtualgl.org/ VirtualGL] (command: vglrun). This way the hardware accelerated rendering capabilities of a cluster node can be exploit for remote rendering into a VNC window. A general overview about this topic is given [wiki:remote3d here].\\
     14VNC software used at the JSC:
     15* [http://www.turbovnc.org TurboVNC]
     16* ([http://www.tigervnc.org TigerVNC])
     17
     18== ... using VNC
     19VNC follows a very general approach, where a remote graphical desktop on one node of the remote cluster is started. On the user's workstation only a lightweight VNC viewer has to be installed. The graphical screen of the remote desktop is send as an image from the cluster to the viewer on the fly.
     20
     21The user can work with this remote graphical desktop in the usual way, just by interacting with keyboard and mouse. This is a very convenient way to work on a remote machine, not only for data visualization.
     22
     23==== hardware accelerated rendering (OpenGL)
     24Whenever an OpenGL capable visualization software, like !VisIt, is started on the remote cluster node, OpenGL commands can be redirected to the GPU of this node with the help of [http://www.virtualgl.org VirtualGL] (using the command 'vglrun'). This way the hardware accelerated rendering capabilities of a cluster node (if available) can be exploit for remote rendering. (attention: __without__ VirtualGL software, rendering using the CPU instead of the GPU must be used (if available), which is much slower).
     25
    2326[[Image(Trac_Setup_VNC.png, 640px)]]\\
    2427
    2528The following steps are necessary to start a VNC session for remote rendering with !VisIt on JURECA.
    26 Please notice that the VNC server is only availble on vis nodes!
     29Please notice that the VNC server is only available on vis-nodes!
    2730
    28 === 1. Create a VNC password and a startup script on JURECA
     31=== Prerequisite: Create a VNC password and a startup script on JURECA
    2932This step is a prerequisite for using VNC and has only to be done '''once'''.
    30 The aim of this step is to create a VNC password and a very small (one line) VNC startup script to start the [http://www.xfce.org/?lang=en Xfce] desktop environment. As all VNC related commands are ony available on a vis node, one has to allocate a vis node first and then start an interactive shell and execute the necessary commands there. It works as follows:\\
    3133
    32 {{{ #!sh
     34The aim of this step is to create a VNC password and a very small (one line) VNC startup script to start the [http://www.xfce.org/?lang=en Xfce] desktop environment. As all VNC related commands are only available on a vis-node, one has to allocate a vis-node first and then start an interactive shell and execute the necessary commands there. It works as follows:\\
     35
     36{{{ #!ShellExample
     37# start job: allocate visualization node
    3338salloc -N 1 -p vis --gres=gpu:2
     39
     40# start task: an interactive bash on the visualization node
    3441srun --cpu_bind=none -n 1 --pty /bin/bash -i
    35 mkdir .vnc # if not already exist
    36 cd .vnc
     42
     43# create .vnc directory in HOME
     44mkdir ~/.vnc
     45cd ~/.vnc
     46
     47# create VNC password for later authentication when connecting VNC viewer with VNC server
    3748vncpasswd # now type in your vnc password
    38 echo "exec startxfce4" > xstartup
    39 exit # exit task
    40 exit # exit job
     49
     50# create/overwrite xstartup-script
     51echo "exec startxfce4" > ~/.vnc/xstartup
     52
     53# stop task and job
     54exit
     55exit
    4156}}}
    42 === 2. Login to JURECA and start the VNC server on a vis node
    43 Open an ssh shell on a login node of JURECA the usual way.
     57
     58=== 1. Start VNC server on a vis node
     59Open an ssh shell on a login node of JURECA the usual way.\\
     60
    4461To allocate a vis node with 512 GByte main memory for one hour, use:
    4562{{{ #!ShellExample
     
    4764srun -n 1 --cpu_bind=none --gres=gpu:0 vncserver -fg -geometry 1920x1080
    4865}}}
     66
    4967Alternatively you may want to allocate a vis node with 1024 GByte main memory by:
    5068{{{ #!ShellExample
     
    5270srun -n 1 --cpu_bind=none --gres=gpu:0 vncserver -fg -geometry 1920x1080
    5371}}}
    54 The default wallclock time is 1 hour, the maximum is 24 hours.\\
     72The default wallclock time is 1 hour, the maximum is 24 hours.
    5573
    5674In case the VNC server could successfully be started, you will get an output like:
    5775{{{ #!ShellExample
    58 New 'jrc1391:1 (zilken)' desktop is jrc1391:1
    59 
    60 Starting applications specified in /homeb/zam/zilken/.vnc/xstartup
    61 Log file is /homeb/zam/zilken/.vnc/jrc1391:1.log
     76> New 'jrc1391:1 (<USER>)' desktop is jrc1391:1
     77>
     78> Starting applications specified in ${HOME}/.vnc/xstartup
     79> Log file is ${HOME}/.vnc/jrc1391:1.log
    6280}}}
    6381
    64 As you have to setup an ssh tunnel (with the correct network port) to the allocated node in step 3, two important informations have to be taken from this output:
     82As you have to setup an ssh tunnel (with the correct network port) to the allocated node in step 2, \\
     83two important informations have to be taken from this output:
    65841. The allocated node is '''jrc1391'''
    66851. The number of the VNC display is ''':1'''
    6786
    68 It is very important to know that the network port of the VNC server depends on this display number. The actual port number is 5900+display_number, therefore port '''5901''' must be tunneled in this case.
     87It is very important to know that the network port of the VNC server depends on this display number. \\
     88The actual port number is 5900+<VNC display>, therefore port '''5901''' must be tunneled in this case.
    6989
    70 === 3. Open an ssh tunnel
    71 Now you have to open an ssh tunnel from your workstation to this node.
    72 The steps to be done depend strongly on your operating system and your setup.\\
     90=== 2. Tunnel VNC traffic to workstation
     91Now you have to open an ssh tunnel from your workstation to this node. \\
     92The steps to be done depend strongly on your operating system and your setup.
     93
    7394'''Linux:'''\\
    7495If your operating system is Linux, just use:
     
    7697ssh -4 -N -L 5901:jrc1391:5901 jureca.fz-juelich.de
    7798}}}
     99
    78100'''Windows:'''\\
    79101In case your operating system is Windows, the setup of the tunnel depends on your ssh client.
    80102Here a short overview on how-to setup a tunnel with [http://www.putty.org/ PuTTY] is given.
    81103It is assumed that PuTTY is already configured in a way that a general ssh connection to JURECA is possible,  that means that host name, username and the private ssh key are correctly set.
    82 To establish the ssh tunnel, enter the "SSH-->tunnels" tab in the PuTTY configuration window. You have to enter the source port (in this case 5901) and the destination (in this case jrc1391:5901) and than press add:\\
    83 [[Image(putty2.jpg)]]\\
     104To establish the ssh tunnel, enter the "SSH-->tunnels" tab in the PuTTY configuration window. You have to enter the source port (in this case 5901) and the destination (in this case jrc1391:5901) and than press add:
     105
     106[[Image(putty2.jpg)]]
     107
    84108After pressing add, the tunnel should appear in the list of forwarded ports and you can establish the tunnel by pressing the open button:\\
     109
    85110[[Image(putty3.jpg)]]\\
    86111
     
    93118After typing in your vnc password, you will have access to the remote desktop.
    94119
    95 
     120=== Remote Visualization - Technical Details
     121{{{#!table style="border:none; text-align:left; margin:0px"
     122   {{{#!th align=left,style="border: none"
     123[[Image(https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/X11transport.png/600px-X11transport.png, 200px, align=left, margin=10, link=wiki:remote3d)]]
     124   }}}
     125   {{{#!th align=left,style="border: none"
     126The availability of remote visualization, either implemented within visualization applications themselves, or through server software, eliminates the need for off-site file transfers and allows HPC users to run a broad range of visualization tools in-place on the supercomputer where the data resides.
     127   }}}
     128}}}
    96129
    97130----