Rendering and remote visualization server

 

In addition to the main visualization hardware, the ACCES CoViz facility includes a rendering and remote visualization server, accessrv2. This server contains four graphic cards (Nvidia GeForce GTX Titan) for high-performance GPU ray-tracing and OpenGL rasterization.

The accessrv2 server is located in the MA B0 453 datacenter, and is accessed remotely. Accounts can be requested by contacting mark.sawley [at] epfl {dot} ch, providing a brief description of the needs for remote rendering / visualization.

The main supported software packages are ParaView for remote visualization and Blender cycles for GPU rendering. Other software may be available on request.

A. General guidelines

After the account has been created, the user can simply log in via ssh

ssh user@accessrv2

A list of available software can be displayed by entering

module avail 

and the desired module is loaded with 

module load paraview

NOTE: Not all software with a graphical interface will run correctly using ssh (see below for Blender).

The server has currently no job scheduler so any command is launched directly from the interactive shell. For longer jobs, the command

screen

can be used to detach running processes from the shell. Users are kindly asked to keep track of jobs launched in such a way. 

Since no job queuing nor fair-share allocation systems have been implemented so far, it is the responsibility of the users to employ the resources in a reasonable manner. Users that deliberately clutter all the ressources will be excluded from future access. To know the CPU load simply run

top

while to determine which GPU are currently in use, type the command

nvidia-smi

Users are therefore requested to employ, if possible, GPUs that are NOT currently used by other users.

The server is NOT intended for pure computational jobs. Upon request, and if usage permits, users will however be allowed to employ the hardware for short development and benchmarking runs.

B. Remote pvserver

A possible use of this server is remote visualization view ParaView via pvserver or pvrenderserver. In the first case the data is stored on the server while in the second it is accessed via a remote pvdataserver, running for example on a machine where the data is located. In both cases the procedure for running the (rendering) server is 

module load paraview mpich

export DISPLAY=:0.X

mpirun -n Y pvserver

or with pvrenderserver, and where X and Y must be replaced by the desired id of the GPU and number of MPI processes, respectively. Server(s) and clients versions have to match. Note that if other users are already using a pvserver on the machine, a different port needs to be specified. Additional information can be found here.

Another possible use of these resources is off-line / batch rendering of large datasets, for example for parameter studies or animation rendering. Information regarding batch processing in paraview is available here.

C. Running Blender on the render server

Rendering of Blender scenes will be significantly faster using GPU resources. However, it is not possible to use the graphical interface of Blender via ssh. The following error message is received:

  Error! Blender requires OpenGL 2.1 to run. Try updating your drivers.

C.1 Batch rendering using Blender without graphical interface

An alternative to ssh is batch rendering without a graphical interface.

Batch rendering of Blender scenes with the cycles ray-tracer can be achieved with the following commands:

module load blender

blender -b myblend.blend -o out.png -P /opt/blender/cuda_device_X.py -f 1

where X can be replaced by 0, 1, 2, 3 or all, depending on the GPU to be used.

C.2 Remote rendering using Blender with graphical interface

Another alternative, if the Blender graphical interface is necessary, is VirtualGL (http://www.virtualgl.org).

The following steps are required:

  1. Install VirtualGL on your local computer (i.e. where you will visualize the Blender interface).
  2. Connect to accessrv2 using vgl:  vglconnect username@accessrv2.epfl.ch
  3. Test graphics connection from accessrv2 using vgl:  vglrun xeyes
  4. Load Blender module on accessrv2:  module load blender
  5. Run Blender on accessrv2 using vgl:  vglrun blender

You should now see the blender graphical interface on your local machine.

 

Any feedback, suggestion or constructive criticism is most welcome.