ParaView @ KAUST#
To facilitate the use of ParaView at KAUST, we have developed an example repository (ParaView Vignettes) that explains and demonstrates how to run ParaView on your local machine, Ibex, and Shaheen. Please check out this repository for best practices and examples of how to connect to a remote computing resource to visualizate your data, or to generate scripts to make visualization easier and automatic.
ParaView_Vignettes#
This repository serves two primary purposes for High Performance Computing (HPC) visualization:
The Vignettes: A collection of self-contained examples demonstrating how to run ParaView scripts in batch mode on HPC resources.
Interactive Guide: Documentation on configuring local ParaView clients to connect to remote KAUST HPC clusters (Ibex and Shaheen III).
Table of Contents#
Part 1: Running the Vignettes (Batch Processing)
Part 2: Interactive ParaView (Client-Server Mode)
Part 3: HPC Resource Strategy (Performance Cheat Sheet)
Appendix (Example Details & Reference)
Part 1: Running the Vignettes#
Use this section if you want to run the provided example scripts (ex01, ex02, etc.) on a cluster. These examples are designed to run in Batch Mode (non-interactively).
Generic / Local Setup#
Use this for your local machine or non-KAUST clusters.
Clone the Repository:
git clone [https://github.com/jameskress/Visualization_Vignettes.git](https://github.com/jameskress/Visualization_Vignettes.git) cd Visualization_Vignettes/ParaView_Vignettes
Environment Setup:
# Load ParaView module (system dependent) module load paraview # Or source the provided environment script source ../MODULES.sh
Run an Example: Copy the template script inside an example folder (e.g.,
ex01/ex01_template_runScript.sbat), customize it for your scheduler, and submit it.
KAUST Ibex Setup#
Connect:
ssh <user>@glogin.ibex.kaust.edu.saClone:
cd /ibex/scratch/<username>/ git clone [https://github.com/jameskress/Visualization_Vignettes.git](https://github.com/jameskress/Visualization_Vignettes.git) cd Visualization_Vignettes/ParaView_Vignettes
Run:
module load paraview sbatch ex01/ex01_ibex_runScript.sbat
KAUST Shaheen III Setup#
Connect:
ssh <user>@shaheen.hpc.kaust.edu.saClone:
cd /scratch/<username>/ git clone [https://github.com/jameskress/Visualization_Vignettes.git](https://github.com/jameskress/Visualization_Vignettes.git) cd Visualization_Vignettes/ParaView_Vignettes
Configure & Run:
# You MUST edit the script to add your Project Account (e.g., k01) vim ex01/ex01_shaheen_runScript.sbat # Change: #SBATCH --account=k## sbatch ex01/ex01_shaheen_runScript.sbat
IMPORTANT: GPU Access & The “Video” Group If you intend to use the
ppnpartition (GPU nodes) on Shaheen III for hardware-accelerated rendering, you must be a member of thevideoUnix group.
How to check: Run the command
groupsin your terminal. If you seevideo, you have access.How to apply: Send an email to help@hpc.kaust.edu.sa requesting addition to the
videogroup for visualization purposes.
Part 2: Interactive ParaView#
Use this section if you want to use the ParaView GUI on your laptop to visualize data stored on the supercomputer (Client-Server mode).
Client Installation & Prerequisites#
Before connecting, you must prepare your local machine (laptop/desktop).
Install ParaView:
Download the client from ParaView.org.
Crucial: Your local client version MUST match the version on the HPC system (check
module avail paraviewon the cluster).
OS-Specific Requirements:
macOS Users: You MUST install XQuartz (X11). ParaView requires X11 to display the authentication window and handle the connection tunnel.
Windows Users: You need a terminal client to handle authentication.
CRITICAL PITFALL: The standard Windows Command Prompt or PowerShell often fails to correctly handle the reverse connection tunnel required by ParaView (due to issues with the native OpenSSH implementation).
SOLUTION: You MUST install and use PuTTY to ensure the connection works reliably.
Linux: No additional software is typically required.
Connection Setup#
Get Server Configs (
.pvsc):Ibex: Download ibex_server.pvsc
Shaheen: Download shaheen_server.pvsc
Load Configs:
Open ParaView →
File→Connect...Click
Load Servers→ Select the downloaded.pvscfile.
Connect:
Select the server (e.g.,
shaheen) from the list and clickConnect.
KAUST Connection Guide (GUI Options)#
When you click Connect, a dialog will appear asking for job settings. Use this guide to choose the right options.
For Shaheen III#
Option |
Setting |
Description |
|---|---|---|
Queue Name |
|
Recommended. Standard exclusive access node. Uses CPU rendering (Mesa). |
|
Good for small jobs or quick checks. |
|
|
GPU Node. Use only for heavy volume rendering. Requires |
|
Tasks Per Node |
|
For |
|
For |
|
|
For |
For Ibex#
Option |
Setting |
Description |
|---|---|---|
Node Group |
|
Recommended. Uses software rendering (Mesa). Good for 95% of tasks. |
|
Uses hardware rendering. Only for massive geometry or volume rendering. |
|
Tasks/Rank |
|
Keep this low. Setting this high splits the RAM too many times and causes crashes. |
Part 3: HPC Resource Strategy#
Use this cheat sheet to determine the resources you need for your job (Interactive or Batch).
1. Rendering Backend: Mesa vs. EGL#
Mesa (Software Rendering):
Use for: Isosurfaces, Slices, Clips, and general analysis.
Why: It is faster and more stable for geometry-heavy workflows on modern CPUs.
Target: Shaheen
workqor Ibexcpu.
EGL (Hardware/GPU Rendering):
Use for: Volume Rendering (Fog/Clouds/Fire) or massive triangle counts (>50M).
Target: Shaheen
ppnor Ibexgpu.Note: Shaheen
ppnrequiresvideogroup membership.
2. Shaheen Configuration Strategy#
Metric: Tasks = CPU Threads
Data Size |
Queue |
Nodes |
Tasks Setting |
|---|---|---|---|
< 16 GB |
|
1 |
16 |
16 GB - 350 GB |
|
1 |
192 |
> 350 GB |
|
2+ |
192 |
3. Ibex Configuration Strategy#
Metric: Tasks = MPI Ranks
Goal |
Queue |
Tasks Setting |
Note |
|---|---|---|---|
Standard Vis |
|
4 |
Balanced CPU/RAM usage. |
High RAM |
|
1 |
Gives 100% of node RAM to a single process. |
Appendix#
Repository Structure#
ex##_name/
├── ex##_name.py # Main ParaView Python script
├── ex##_template_runScript.sbat # Template batch script
├── README.md # Specific documentation
└── helper_scripts/ # Utilities
Example Details#
ex00_pvQuery: Loading data and querying mesh statistics/metadata.
ex01_pvScreenshot: Basic rendering pipeline and saving images.
ex02_pvAnimation: Camera path animation.
ex03_pvIsosurfaceAnimation: Animating filter parameters (Isovalues).
ex04_pvStreamlineAnimation: Flow visualization and particle tracing.
ex05_pvMultiTimeStepFile: Handling time-series datasets.
ex06_pvLargeData: Optimization for massive datasets (ghost cells, parallel rendering).
pvbatch vs. pvpython#
pvpython: Serial. Runs on one core. Use for testing on login nodes.pvbatch: Parallel. Runs with MPI. Always use this for these examples.