Remote visualization FAQ

Job control

What is the maximum duration of a reservation?

See here for the different limits on combinations of number of nodes and walltime requested.

How can I see information on my reservation(s)?

Use the command rvs_show (in /sara/sw/remotevis/scripts). It will list the current remote visualization reservations, including information on start and end time, number of nodes, which nodes, etc. You will also see reservations made by other users, which can be useful to judge when reserved cluster nodes will become available again.

paulm@v40-1:~$ rvs_show 

Remote visualisation service jobs/reservations

Job ID    Owner    Start time         End time           Nodes  Int?  Walltime  CPU time   Mem(max)  VMem(max)  Node(s)
-------------------------------------------------------------------------------------------------------------------------------
36610     tijs     Mon 14 Oct 15:24   Wed 16 Oct 19:24   1      no    49:20:28  00:06:43    149.2MB      1.5GB  v41-3
36633     paulm    Wed 16 Oct 14:37   Wed 16 Oct 23:37   1      no    02:07:09  00:00:37    323.7MB     45.5GB  v42-7

Note: CPU time, Mem(max) and VMem(max) are cumulative over all the nodes in a job

How can I see my disk quotum?

Use quota -s on the login node.

What are the different kind of batch system commands I need to know?

Command Description
/sara/sw/remotevis/script/rvs_show Overview of remote visualization reservations
/sara/sw/remotevis/script/rvs_vnc Request a VNC session
/sara/sw/remotevis/script/rvs_paraview Request a parallel ParaView session
qsub [-I] [-lwalltime=<hh>:<mm>:<ss>] [-lnodes=<num>] <script> Submit a job. -I for an interactive job
qdel <number> Remove job number <number>
pbsmon -l Overview of the status of cluster nodes and jobs assigned to them

See here for documentation on the Torque batch software used. This link actually takes you to the Lisa cluster documentation, so some of it might not be relevant to the ELvis cluster.

VNC

The desktop resolution is quite low in the VNC session, can I change it?

Yes, use the -r <w>x<h> option with rvs_vnc. Another option is to set the environment variable RVS_VNC_RESOLUTION in your shell's startup script, again to <w>x<h>, so you don't have to use -r each time.

Can I add desktop icons to start my visualization application without having to use module load ..., vglrun ..., etc every time?

Yes, with the LXDE desktop environment that we provide in VNC sessions there's an option to create desktop icons. For the software modules available on the ELvis cluster we provide a number of XXX.desktop files that you can use for this, these are located in /sara/sw/remotevis/desktop. By symlinking/copying one of more files in that directory to your ~/Desktop the relevant icon(s) should appear on your desktop.

You can also use these files to create menu items in LXDE's menu (available in the bottom-left part of the panel). For this, symlink/copy the relevant file in/to ~/.local/share/applications and run lxpanelctl restart in a terminal (the latter is needed to update the menu). Note that all applications will be located under the Graphics submenu.

Adding custom icons/menu entries is quite easy, the XXX.desktop files we provide should give an idea of how to do that.

There seem to be a lot of VNC viewers out there, which ones do you recommend?

TurboVNC and TigerVNC are good choices. Of these two, TigerVNC has a nicer GUI and appears to have slightly better performance. In principal any viewer supporting the VNC protocol can be used, but the two mentioned are well maintained and provide good performance. TightVNC will also work, but sometimes seems to have noticeable lower performance (especially on Windows).

Note that "Screen Sharing" on MacOS is not usable as a VNC viewer, at least, not in our tests. Use the TurboVNC viewer package instead.

There should be no interoperability problems with any of these viewers as the underlying VNC protocol is platform-agnostic. We successfully tested simultaneous viewing of a single VNC session from three different systems (TurboVNC 0.6 on a 32-bit Linux system, TigerVNC 1.0.1 on a Windows system, TightVNC 1.3.9 on a 64-bit Linux laptop).

The VNC server used on the RVS nodes is actually TurboVNC.

How do I change my VNC password?

Log onto elvis.surfsara.nl using regular SSH and run /opt/TurboVNC/bin/vncpasswd

Please always use a VNC password that is different from your SURFsara CUA password

After switching between my VNC viewer and some other application on my local machine the VNC viewer seems to get confused about the keys I press

Some VNC viewers (and versions) have problems when you're using Alt-TAB to switch to and from the viewer application. This is probably because the Alt keypress event is captured by the VNC viewer, but the subsequent TAB keypress will take away keyboard focus and so the viewer application never receives a release event for the Alt key, thinking it is still pressed when you switch back to it.

When you find that the Alt-key seems to be "stuck" in your VNC viewer simply press and release Alt. This usually fixes it.

Isn't it possible that somebody other than me snoops on my VNC session?

Somebody, in theory, could connect to the VNC server you started on a render node. But:

  1. They need to have their IP address whitelisted, as any connection to the RVS cluster is filtered
  2. They need to know your VNC password (and you have picked a strong enough passphrase that can't be guessed, right?)

All in all, the risks should be minimal.

Note, however, that data sent over VNC is not encrypted in any way, in particular key strokes: a password you enter within a VNC session is sniffable in the VNC network traffic. If you are worried about this you can tunnel the VNC connection through an SSH connection, using the -L option with OpenSSH or TurboVNC's -via option.

Is it possible to share my VNC session with others so that we can discuss the visualization output while not being in the same place?

Yes, this is possible. By default the VNC server allows sharing a VNC session. Note that each user that you want to share a VNC session with has to:

  1. Have his/her IP address from which they connect whitelisted
  2. Know your VNC password. By using vncpasswd you can easily change your VNC password into a temporary one used for sharing a session. There is also an option to set a view-only password, see below. Please always use a VNC password that is different from your SURFsara CUA password
  3. Users that want to connect to a shared VNC session will need to enable sharing in their viewer application. In TigerVNC there is a checkbox "Shared (don't disconnect other viewers)" under Options -> Misc, or you can pass -shared on the command-line (this switch is also supported by TurboVNC).

Related to the above is that VNC allows you to set a view-only password. This allows other users to only view your VNC session, while it won't allow them to control the remote keyboard or mouse. /opt/TurboVNC/bin/vncpasswd allows you to set this password. Users meant to only observe what you're doing then need to log in with the view-only password.

Something strange is going on with my VNC session, is there a VNC server log file I can check?

Yes, check the files in the .vnc directory in your home directory. E.g., for a VNC server running on s37n9:1 check s37n9.int.elvis.surfsara.nl:1.log.

Paraview

What's the best way to run Paraview on the ELvis cluster?

It depends on a number of things w.r.t. your use case:

If you're not interested in using Paraview's parallel rendering capability you can simply reserve a single ELvis node, start a VNC session and run the Paraview client (GUI), "paraview". This is the simplest usage, where you're just running a visualization application on an RVS node and interact with it remotely using VNC.

If you do want to use Paraview to render parallel on multiple nodes then there are two options:

  1. Run the Paraview server on multiple ELvis nodes and run the Paraview client on your local desktop.
  2. Run the Paraview server on multiple ELvis nodes, run the Paraview client (paraview) in a VNC session on a separate ELvis node and run a VNC viewer on your local desktop.

Option 1 has the advantage that the ELvis nodes are fully used for visualization/rendering, but you need to have the Paraview client (GUI) installed on your local machine, in a version that matches the binaries on the ELvis nodes. Option 2 has the disadvantage of using a single ELvis node for just running the Paraview client, but you only need a VNC viewer on your local machine, not a complete Paraview installation.

See here for instructions for option 1. For option 2 the steps are similar, except that you need to run the Paraview client in a VNC session.

Visit

What's the best way to run Visit on the ELvis cluster?

If you're not interested in using Visit's parallel rendering capability you can simply reserve a single ELvis node, start a VNC session and run the Visit client (GUI). This is the simplest usage, where you're just running a visualization application on an RVS node and interact with it remotely using VNC.

If you do want to use Visit to render parallel on multiple nodes then you have to configure a host profile, in addition to starting the Visit Client as described above. See here for a detailed description

VirtualGL

Is there a way to get statistics on rendering performance?

More or less. You can use the +pr option when starting your OpenGL application with vglrun, e.g. vglrun +pr paraview. This will periodically produce statistics in the terminal window on

  • Readback - the speed with which the rendered output is read-back from the video card
  • Blit - the speed at which the captured images are integrated in the VNC session
  • Total - the total speed for the above steps, including overhead

The actual image compression (before network transmission to the VNC client) is performed by the VNC server. There's currently no easy way to get statistics on the compression performance.

Is there more documentation on VirtualGL?

Yes, see http://www.virtualgl.org/About/Introduction and http://www.virtualgl.org/About/Background

Is it possible to use VirtualGL's Image Transport method?

Not at the moment. We only provide remote rendering using VNC, but VGL Image Transport might be added in the future.