Table of Contents

Running Paraview

Video tutorial - Parallel ParaView in client / server mode

Watch this video tutorial

Alternative method - ParaView using GPUs in the cluster

paraview_user_guide_version_1.2.pdf

Introduction

Paraview is an extremely capable open-source programme for visualising simulation results. It supports a wide variety of file formats and is used in many different scientific and engineering disciplines. The code is designed to make effective use of parallel processing in order to process extremely large datasets. There are many recent versions installed on Lengau and they can be used in a multitude of different ways. The recommended method involves running a Paraview server in parallel on one or more compute nodes and using the Paraview graphics client on your own workstation to connect to that server by way of an ssh tunnel. The method is described here

There are several Paraview installations:

  1. A standard binary distribution Paraview-4.3.1 in /apps/chpc/compmech/ParaView-4.3.1-Linux-64bit/bin
  2. A custom compiled Paraview-5.0.1 in apps/chpc/compmech/CFD/Paraview/bin
  3. A standard binary distribution Paraview-5.2.0 in /apps/chpc/compmech/ParaView-5.2.0-Qt4-OpenGL2-MPI-Linux-64bit
  4. A standard binary distribution Paraview-5.3.0 in /apps/chpc/compmech/ParaView-5.3.0_bininstall
  5. A standard binary distribution Paraview-5.4.1 in /apps/chpc/compmech/ParaView-5.4.1-Qt5-OpenGL-MPI-Linux-64bit
  6. A standard binary distribution Paraview-5.5.0 in /apps/chpc/compmech/ParaView-5.5.0-Qt5-MPI-Linux-64bit
  7. A standard binary distribution Paraview-5.8.1 in /apps/chpc/compmech/ParaView-5.8.0-MPI-Linux-Python3.7-64bit
  8. A custom-compiled server version of Paraview-5.8.1, accessible by way of the module chpc/compmech/Paraview/5.8.1-osmesa
  9. A standard binary server version of ParaView-5.12.1, accessible by way of the module chpc/compmech/Paraview/5.12.1-osmesa

These are also available as modules, please use module avail. There are two modules for each of Paraview-5.3.0, 5.4.1, 5.5.0, and 5.8.1, the second one being appended with -VNC. Use this for running Paraview with the Nvidia graphics card on a viz node. Please refer to the Paraview web site for instructions on using Paraview. For interactive graphics on a virtual desktop, an OpenGL-enabled environment will be required, therefore refer to the page on Remote Visualization for instructions on setting up a connection to the visualization node, and running Paraview with the VirtualGL wrapper. Paraview is an extremely versatile post-processor, and can be used as the primary visualization tool for a very wide range of applications and file formats, including OpenFOAM, MFix, SU2 and many others.

Paraview client in a VNC session

For many small to moderate visualization tasks, the user may wish to run the Paraview client directly on the cluster, in a VNC session. This can be done easily on one of the visualization nodes chpcviz1 or chpclic1. However, due to high levels of use on these nodes, or a demanding data set, the user may prefer to use a VNC session on a compute node. This process is documented and straightforward. However, this relies on persuading the Paraview client to work properly with the Mesa software rendering libraries. and this procedure fails with the later Paraview versions. The problem is an incompatibility between Mesa, VNC and the Qt-5 library. Older versions that rely on Qt-4 work extremely well on a compute node. The following versions have been tested.

Version Paraview Module GALLIUM_DRIVER Command line
4.3.1 chpc/compmech/Paraview/4.3.1 llvmpipe or swr paraview
5.2.0 chpc/compmech/Paraview/5.2.0 llvmpipe or swr paraview

Parallel Paraview

Paraview really comes into its own when it can make use of parallel processing (hence Paraview rather than Serialview, presumably). Limited testing has been done with the standard binary distributions of Paraview-5.3.0, 5.4.1 and 5.5.0. There are modules for these, module load chpc/compmech/Paraview/5.3.0 etc. will set up the appropriate environment. There are several ways in which Paraview can be used:

  1. Run with pvserver parallel on a compute node, and the front end somewhere else. This is the preferred method when dealing with large datasets.
  2. Run on a viz node (chpcviz1 or chpclic1) in single processor mode
  3. Run in parallel on viz node
  4. Run with dataserver parallel on a compute node, and the front end and render server on a viz node
  5. Use X-forwarding to run Paraview on a compute node with Mesa, with or without a parallel data server

All these approaches need the module loaded in each shell from which the process will be started.

Single processor mode

Load the module module load chpc/compmech/Paraview/5.4.1-VNC, and type vglrun paraview at the command prompt.

Preferred method - Parallel using compute nodes, and remote front end

This method makes use of Mesa and avoids the use of the viz node and VNC:

Parallel on the viz node

Parallel using compute nodes

The data server does not need any GPU hardware, which makes it possible to run it on compute nodes. The process is as follows:

Parallel using compute nodes and render server on the viz node

Use X-forwarding and Mesa to run Paraview entirely on a compute node

Paraview-5.3 and 5.4 are distributed with the Mesa software rendering libraries. Mesa can make very good use of the parallel and SIMD capabilities of the compute nodes, which means that 3D OpenGL graphics rendering without a dedicated GPU is surprisingly viable. The constraint on this method is the poor performance of X-forwarding, therefore this method is only viable if you have a high bandwidth connection to the cluster. If you want to run serial Paraview on a compute node, take the following steps:

  1. Log into lengau
  2. Get an X-enabled interactive PBS session, with a command like qsub -I -X -l select=1:ncpus=24:mpiprocs=24 -q smp -P MECH1234 -l walltime=4:00:00
  3. In this session, load the appropriate module: module load chpc/compmech/Paraview/5.4.1.
  4. In this session, you can launch Paraview with the command
    paraview --mesa-swr

    . It should work as normal, except for poor performance.

If you want to run parallel Paraview on a compute node, use exactly the same process, but in the initial interactive PBS session, start the Paraview server:

  1. module load chpc/compmech/Paraview/5.4.1
    mpiexec -np 24 pvserver --mpi --use-offscreen-rendering --mesa-swr
  2. If you are using a more recent version such as 5.8.1 (which has a custom-compiled “osmesa” version, accessible through a module“, use slightly different syntax:
    module load chpc/compmech/Paraview/5.8.1-osmesa
    mpiexec -np 24 pvserver --mpi --force-offscreen-rendering 
  3. Start paraview on the X-forwarding enabled session, exactly as described above.
  4. Once in Paraview, connect to the Paraview server running on port 11111 on the same node.
  5. You may need to trade off the number of MPI processes against the number of processes available for the Mesa software rendering.
  6. You can also run the Paraview server on an entirely separate compute node. This way you can have a node (or multiple nodes) dedicated to data serving, and another to render serving and display.

Any user asking for help when using the username jblogs, project name MECH1234 or the node cnode1234 will be banned from further cluster use and issued with a shovel for starting a new career.