Watch this video tutorial
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:
/apps/chpc/compmech/ParaView-4.3.1-Linux-64bit/bin
apps/chpc/compmech/CFD/Paraview/bin
/apps/chpc/compmech/ParaView-5.2.0-Qt4-OpenGL2-MPI-Linux-64bit
/apps/chpc/compmech/ParaView-5.3.0_bininstall
/apps/chpc/compmech/ParaView-5.4.1-Qt5-OpenGL-MPI-Linux-64bit
/apps/chpc/compmech/ParaView-5.5.0-Qt5-MPI-Linux-64bit
/apps/chpc/compmech/ParaView-5.8.0-MPI-Linux-Python3.7-64bit
chpc/compmech/Paraview/5.8.1-osmesa
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.
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 |
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:
All these approaches need the module loaded in each shell from which the process will be started.
Load the module module load chpc/compmech/Paraview/5.4.1-VNC
, and type vglrun paraview
at the command prompt.
This method makes use of Mesa and avoids the use of the viz node and VNC:
qsub -I -X -l select=1:ncpus=24:mpiprocs=24 -q smp -P MECH1234 -l walltime=4:00:00
module load chpc/compmech/Paraview/5.4.1
mpiexec -np 24 pvserver --mpi --mesa-llvm --use-offscreen-rendering
. Although you will not launch any graphics from this terminal, the software needs the X-capability to be available.
ssh -f jblogs@lengau.chpc.ac.za -L 11111:cnode1234:11111 -N
OSmesa
module of Paraview, as well as an appropriate MPI module on the compute node before starting the Paraview server: module load chpc/compmech/Paraview/5.8.1-osmesa module load chpc/compmech/mpich/4.0/gcc-9.2.0-ssh mpiexec -np 24 pvserver --mpi --force--offscreen-rendering
module load chpc/compmech/Paraview/5.12.1-osmesa mpiexec -np 24 pvserver --force--offscreen-rendering
5.4.1-VNC
module in the one from which you will be launching the GUI, and the 5.4.1
module in the terminal where you will start the server.vglrun mpiexec -np 6 pvserver --mpi --use-offscreen-rendering
vglrun paraview
, then connect to the server (you have to set it up first in the connect menu). Then open your parallel data set. If your dataset is not inherently parallel, there is no point in using parallel visualisation. In OpenFOAM, leave your case decomposed, use the touch bananas.foam
trick and load up the case as decomposed. There appears to be a substantial performance advantage to decomposing (or re-decomposing) to the same number of processors as used for the Paraview data server.The data server does not need any GPU hardware, which makes it possible to run it on compute nodes. The process is as follows:
chpc/compmech/Paraview/5.4.1
module.mpiexec -np 24 pvserver --mpi --use-offscreen-rendering
. If you need more than one compute node, use a machinefile. If you are at the point where you need more than one compute node, you should already know how to do this.
chpc/compmech/Paraview/5.4.1-VNC
module. chpc/compmech/Paraview/5.4.1
module, and start up just the data server with the following command: mpiexec -np 24 pvdataserver --mpi
chpc/compmech/Paraview/5.4.1
module in the server terminal and chpc/compmech/Paraview/5.4.1-VNC
in the terminal from which you will be launching the GUI.vglrun mpiexec -np 6 pvrenderserver --mpi --use-offscreen-rendering
. Running the render server in parallel seems to provide a small improvement in performance.
vglrun paraview
.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:
qsub -I -X -l select=1:ncpus=24:mpiprocs=24 -q smp -P MECH1234 -l walltime=4:00:00
module load chpc/compmech/Paraview/5.4.1
.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:
module load chpc/compmech/Paraview/5.4.1 mpiexec -np 24 pvserver --mpi --use-offscreen-rendering --mesa-swr
module load chpc/compmech/Paraview/5.8.1-osmesa mpiexec -np 24 pvserver --mpi --force-offscreen-rendering
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.