| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
howto:paraview [2020/03/04 12:03] ccrosby [Running Paraview] |
howto:paraview [2025/04/14 10:59] (current) ccrosby [Running Paraview] |
| ====== Running Paraview ====== | ====== Running Paraview ====== |
| | |
| | === Video tutorial - Parallel ParaView in client / server mode === |
| | Watch this [[https://youtu.be/xuvOtrX6j64|video tutorial]] |
| | |
| | === Alternative method - ParaView using GPUs in the cluster === |
| | {{ :howto:paraview_user_guide_version_1.2.pdf |}} |
| | |
| | ===== Introduction ===== |
| | [[https://paraview.org|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 [[howto:paraview#preferred_method_-_parallel_using_compute_nodes_and_remote_front_end|here]] |
| | |
| There are several Paraview installations: | There are several Paraview installations: |
| |
| - A standard binary distribution Paraview-5.4.1 in ''/apps/chpc/compmech/ParaView-5.4.1-Qt5-OpenGL-MPI-Linux-64bit'' | - A standard binary distribution Paraview-5.4.1 in ''/apps/chpc/compmech/ParaView-5.4.1-Qt5-OpenGL-MPI-Linux-64bit'' |
| - A standard binary distribution Paraview-5.5.0 in ''/apps/chpc/compmech/ParaView-5.5.0-Qt5-MPI-Linux-64bit'' | - A standard binary distribution Paraview-5.5.0 in ''/apps/chpc/compmech/ParaView-5.5.0-Qt5-MPI-Linux-64bit'' |
| - A standard binary distribution Paraview-5.6.0 in ''/apps/chpc/compmech/ParaView-5.6.0-MPI-Linux-64bit'', with the off-screen mesa version in ''/apps/chpc/compmech/ParaView-5.6.0-osmesa-MPI-Linux-64bit'' | - A standard binary distribution Paraview-5.8.1 in ''/apps/chpc/compmech/ParaView-5.8.0-MPI-Linux-Python3.7-64bit'' |
| - A standard binary distribution Paraview-5.7.0 in ''/apps/chpc/compmech/ParaView-5.7.0-MPI-Linux-Python3.7-64bit'' | - A custom-compiled server version of Paraview-5.8.1, accessible by way of the module ''chpc/compmech/Paraview/5.8.1-osmesa'' |
| - A standard binary distribution Paraview-5.8.0 in ''/apps/chpc/compmech/ParaView-5.8.0-MPI-Linux-Python3.7-64bit'' | - 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, 5.6.0, 5.7.0 and 5.8.0, 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 [[http://www.paraview.org|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 [[howto:remote_viz|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. | 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 [[http://www.paraview.org|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 [[howto:remote_viz|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 ===== | ===== Paraview client in a VNC session ===== |
| | 4.3.1 | chpc/compmech/Paraview/4.3.1 | llvmpipe or swr | paraview | | | 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 | | | 5.2.0 | chpc/compmech/Paraview/5.2.0 | llvmpipe or swr | paraview | |
| |
| |
| |
| |
| |
| |
| |
| ===== Parallel 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: | 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: |
| | - **Run with pvserver parallel on a compute node, and the front end somewhere else.** This is the preferred method when dealing with large datasets. |
| - Run on a viz node (chpcviz1 or chpclic1) in single processor mode | - Run on a viz node (chpcviz1 or chpclic1) in single processor mode |
| - Run in parallel on viz node | - Run in parallel on viz node |
| - Run with dataserver parallel on a compute node, and the front end and render server on a viz node | - Run with dataserver parallel on a compute node, and the front end and render server on a viz node |
| - Run with pvserver parallel on a compute node, and the front end somewhere else | |
| - Use X-forwarding to run Paraview on a compute node with Mesa, with or without a parallel data server | - 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. | All these approaches need the module loaded in each shell from which the process will be started. |
| |
| === Single processor mode === | ==== Single processor mode ==== |
| Load the module ''module load chpc/compmech/Paraview/5.4.1-VNC'', and type ''vglrun paraview'' at the command prompt. | Load the module ''module load chpc/compmech/Paraview/5.4.1-VNC'', and type ''vglrun paraview'' at the command prompt. |
| |
| === Parallel on the viz node === | |
| | ==== 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: |
| | * Log in to the cluster, and get an exclusive X-enabled PBS session on a compute node ''qsub -I -X -l select=1:ncpus=24:mpiprocs=24 -q smp -P MECH1234 -l walltime=4:00:00'' |
| | * In this terminal, load up the module ''module load chpc/compmech/Paraview/5.4.1'' |
| | * In this terminal, start up the paraview server with the command <code>mpiexec -np 24 pvserver --mpi --mesa-llvm --use-offscreen-rendering</code>. Although you will not launch any graphics from this terminal, the software needs the X-capability to be available. |
| | * On your workstation, build an ssh-tunnel through lengau.chpc.ac.za to port 11111 on your interactive compute node, let's call it cnode1234 for argument's sake. Forward this port to port 11111 on your workstation. The command in Linux is ''ssh -f jblogs@lengau.chpc.ac.za -L 11111:cnode1234:11111 -N'' |
| | * Launch Paraview (exactly the same version) on your workstation, which can be running any operating system that supports Paraview. It does not need to be Linux. |
| | * Use the "Connect" menu in Paraview to set up port 11111@localhost as a Paraview server. Connect to this server. |
| | * Load the data into Paraview in the usual fashion. |
| | * Data processing and rendering will happen on the compute node, display and interaction on your local workstation. |
| | * If you want to use Paraview-5.8.1 for this, load the ''OSmesa'' module of Paraview, as well as an appropriate MPI module on the compute node before starting the Paraview server: <code>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 </code> |
| | * For the latest version 5.12.1, the process is somewhat simpler. There is no need to load the mpich module and the --mpi command line option is not required:<code>module load chpc/compmech/Paraview/5.12.1-osmesa |
| | mpiexec -np 24 pvserver --force--offscreen-rendering </code> |
| | |
| | |
| | ==== Parallel on the viz node ==== |
| * Open two terminals. Load the ''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. | * Open two terminals. Load the ''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. |
| * In the server terminal, enter the command: <code>vglrun mpiexec -np 6 pvserver --mpi --use-offscreen-rendering </code> | * In the server terminal, enter the command: <code>vglrun mpiexec -np 6 pvserver --mpi --use-offscreen-rendering </code> |
| * Do monitor (with top or htop) the load on the servers, and avoid overloading them. In due course, a more formal queue for visualisation and better servers will be established. | * Do monitor (with top or htop) the load on the servers, and avoid overloading them. In due course, a more formal queue for visualisation and better servers will be established. |
| |
| === Parallel using compute nodes === | ==== 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: | The data server does not need any GPU hardware, which makes it possible to run it on compute nodes. The process is as follows: |
| * Get one or more compute nodes, either by means of an interactive PBS session, or a PBS batch job. | * Get one or more compute nodes, either by means of an interactive PBS session, or a PBS batch job. |
| * This method gives reasonably good performance, especially if there is a lot of back end data processing involved. | * This method gives reasonably good performance, especially if there is a lot of back end data processing involved. |
| |
| === Parallel using compute nodes and render server on the viz node === | ==== Parallel using compute nodes and render server on the viz node ==== |
| * Get a compute node as before, load the ''chpc/compmech/Paraview/5.4.1'' module, and start up just the data server with the following command: <code>mpiexec -np 24 pvdataserver --mpi</code> | * Get a compute node as before, load the ''chpc/compmech/Paraview/5.4.1'' module, and start up just the data server with the following command: <code>mpiexec -np 24 pvdataserver --mpi</code> |
| * On the viz node, open two terminals, load the ''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. | * On the viz node, open two terminals, load the ''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. |
| * Load the parallel data set. | * Load the parallel data set. |
| |
| === Parallel using compute nodes, and remote front end === | |
| This method makes use of Mesa and avoids the use of the viz node and VNC: | |
| * Log in to the cluster, and get an exclusive X-enabled PBS session on a compute node ''qsub -I -X -l select=1:ncpus=24:mpiprocs=24 -q smp -P MECH1234 -l walltime=4:00:00'' | |
| * In this terminal, load up the module ''module load chpc/compmech/Paraview/5.4.1'' | |
| * In this terminal, start up the paraview server with the command <code>mpiexec -np 24 pvserver --mpi --mesa-llvm --use-offscreen-rendering</code>. Although you will not launch any graphics from this terminal, the software needs the X-capability to be available. | |
| * On your workstation, build an ssh-tunnel through lengau.chpc.ac.za to port 11111 on cnode1234. Forward this port to port 11111 on your workstation. The command in Linux is ''ssh -f jblogs@lengau.chpc.ac.za -L 11111:cnode1234:11111 -N'' | |
| * Launch Paraview on your workstation, which can be running any operating system that supports Paraview. It does not need to be Linux. | |
| * Use the "Connect" menu in Paraview to set up port 11111@localhost as a Paraview server. Connect to this server. | |
| * Load the data into Paraview in the usual fashion. | |
| * Data processing and rendering will happen on the compute node, display and interaction on your local workstation. | |
| |
| |
| |
| === Use X-forwarding and Mesa to run Paraview entirely on a compute 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: | 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: |
| - Log into lengau | - Log into lengau |
| |
| 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: | 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: |
| - <code>module load chpc/compmech/Paraview/5.4.1. | - <code>module load chpc/compmech/Paraview/5.4.1 |
| mpiexec -np 24 pvserver --mpi --use-offscreen-rendering --mesa-swr</code> | mpiexec -np 24 pvserver --mpi --use-offscreen-rendering --mesa-swr</code> |
| | - 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: <code>module load chpc/compmech/Paraview/5.8.1-osmesa |
| | mpiexec -np 24 pvserver --mpi --force-offscreen-rendering </code> |
| - Start paraview on the X-forwarding enabled session, exactly as described above. | - Start paraview on the X-forwarding enabled session, exactly as described above. |
| - Once in Paraview, connect to the Paraview server running on port 11111 on the same node. | - Once in Paraview, connect to the Paraview server running on port 11111 on the same node. |