Skip to content

Commit 838ae1a

Browse files
jfavrebcumming
andauthored
adding category for Visualization apps, and adding ParaView (#234)
Co-authored-by: Ben Cumming <[email protected]>
1 parent 83642a8 commit 838ae1a

File tree

3 files changed

+154
-0
lines changed

3 files changed

+154
-0
lines changed

docs/software/sciviz/index.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[](){#ref-software-scivis}
2+
# Scientific Visualization
3+
4+
CSCS provides and supports a selection of scientific visualization applications on the computing systems: we usually build community codes that are adopted by several users on our systems.
5+
6+
CSCS staff can also help users with performance tuning and ParaView Python code to optimise their workflow in production.
7+
8+
* [ParaView][ref-uenv-paraview]
9+
10+
## Other applications
11+
12+
CSCS provides [tools and environments][ref-building] for installing applications that are not on the list of supported applications.
13+
14+
!!! under-construction
15+
We are building guides for installing [popular applications][ref-software-installation-guides].

docs/software/sciviz/paraview.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
[](){#ref-uenv-paraview}
2+
# ParaView
3+
4+
[ParaView](https://www.paraview.org/) is an open-source, multi-platform scientific data analysis and visualization tool that enables analysis and visualization of extremely large datasets. ParaView is both a general purpose, end-user application with a distributed architecture that can be seamlessly leveraged by your desktop or other remote parallel computing resources and an extensible framework with a collection of tools and libraries for various applications including scripting (using Python), web visualization (through trame and ParaViewWeb), or in situ analysis (with Catalyst).
5+
6+
!!! note "uenvs"
7+
8+
[ParaView](https://www.paraview.org/) is provided on [ALPS][platforms-on-alps] via [uenv][ref-uenv].
9+
Please have a look at the [uenv documentation][ref-uenv] for more information about uenvs and how to use them.
10+
11+
12+
## Running ParaView in batch mode with Python scripts
13+
14+
The following sbatch script can be used as a template.
15+
16+
=== "GH200"
17+
18+
```bash
19+
#SBATCH -N 1
20+
#SBATCH --ntasks-per-node=4
21+
#SBATCH --cpus-per-task=72
22+
#SBATCH --gpus-per-task=1
23+
#SBATCH -A <account>
24+
#SBATCH --uenv=paraview/5.13.2:v2 --view=paraview
25+
#SBATCH --hint=nomultithread
26+
27+
export MPICH_GPU_SUPPORT_ENABLED=0
28+
29+
srun --cpus-per-task=72 --cpu_bind=sockets /user-environment/ParaView-5.13/gpu_wrapper.sh /user-environment/ParaView-5.13/bin/pvbatch ParaViewPythonScript.py
30+
```
31+
Current observation is that best performance is achieved using [one MPI rank per GPU][ref-slurm-gh200-single-rank-per-gpu]. How to run multiple ranks per GPU is described [here][ref-slurm-gh200-multi-rank-per-gpu].
32+
33+
=== "Eiger"
34+
35+
```bash
36+
#SBATCH -N 1
37+
#SBATCH --ntasks-per-node=128
38+
#SBATCH -A <account>
39+
#SBATCH --uenv=paraview/5.13.2:v2 --view=paraview
40+
#SBATCH --hint=nomultithread
41+
42+
srun --cpus-per-task=128 /user-environment/ParaView-5.13/bin/pvbatch ParaViewPythonScript.py
43+
```
44+
45+
46+
## Using ParaView in client-server mode
47+
48+
A ParaView server can connect to a remote ParaView client installed on your desktop. Make sure to use the same version on both sides. Your local ParaView GUI client needs to create a SLURM job with appropriate parameters. We recommend that you make a copy of the file `/user-environment/ParaView-5.13/rc-submit-pvserver.sh` to your $HOME, such that you can further fine-tune it.
49+
50+
You will need to add the corresponding XML code to your local ParaView installation, such that the Connect menu entry recognizes the ALPS cluster. The following code would be added to your **local** `$HOME/.config/ParaView/servers.pvsc` file
51+
52+
!!! Example "XML code to add to your local ParaView settings"
53+
```xml
54+
<Servers>
55+
<Server name="Reverse-Connect-Daint.Alps" configuration="" resource="csrc://:11111" timeout="-1">
56+
<CommandStartup>
57+
<Options>
58+
<Option name="MACHINE" label="remote cluster" save="true">
59+
<String default="daint"/>
60+
</Option>
61+
<Option name="SSH_USER" label="SSH Username" save="true">
62+
<String default="your-userid"/>
63+
</Option>
64+
<Option name="ACCOUNT" label="Account to be charged" save="true">
65+
<String default="your-projectid"/>
66+
</Option>
67+
<Option name="RESERVATION" label="reservation name" save="true">
68+
<Enumeration default="none">
69+
<Entry value="" label="none"/>
70+
</Enumeration>
71+
</Option>
72+
<Option name="SSH_CMD" label="SSH command" save="true">
73+
<File default="/usr/bin/ssh"/>
74+
</Option>
75+
<Option name="REMOTESCRIPT" label="The remote script which generates the SLURM job" save="true">
76+
<String default="/users/your-userid/rc-submit-pvserver.sh"/>
77+
</Option>
78+
<Option name="PVNodes" label="Number of cluster nodes" save="true">
79+
<Range type="int" min="1" max="128" step="1" default="1"/>
80+
</Option>
81+
<Option name="PVTasks" label="Number of pvserver per node" save="true">
82+
<Range type="int" min="1" max="4" step="1" default="4"/>
83+
</Option>
84+
<Option name="Queue" label="Queue" save="true">
85+
<Enumeration default="normal">
86+
<Entry value="normal" label="normal"/>
87+
<Entry value="debug" label="debug"/>
88+
</Enumeration>
89+
</Option>
90+
<Option name="MemxNode" label="MemxNode" save="true">
91+
<Enumeration default="standard">
92+
<Entry value="high" label="high"/>
93+
<Entry value="standard" label="standard"/>
94+
</Enumeration>
95+
</Option>
96+
<Option name="VERSION" label="VERSION ?" save="true">
97+
<Enumeration default="5.13.2:v2">
98+
<Entry value="5.13.2:v2" label="5.13.2:v2"/>
99+
</Enumeration>
100+
</Option>
101+
<Option name="PV_SERVER_PORT" label="pvserver port" save="true">
102+
<Range type="int" min="1024" max="65535" step="1" default="1100"/>
103+
</Option>
104+
<Option name="NUMMIN" label="job wall time" save="true">
105+
<String default="00:29:59"/>
106+
</Option>
107+
<Option name="SESSIONID" label="Session id" save="true">
108+
<String default="ParaViewServer"/>
109+
</Option>
110+
</Options>
111+
<Command exec="$SSH_CMD$" delay="5" process_wait="0">
112+
<Arguments>
113+
<Argument value="-A"/>
114+
<Argument value="-l"/>
115+
<Argument value="$SSH_USER$"/>
116+
<Argument value="-R"/>
117+
<Argument value="$PV_SERVER_PORT$:localhost:$PV_SERVER_PORT$"/>
118+
<Argument value="$MACHINE$"/>
119+
<Argument value="$REMOTESCRIPT$"/>
120+
<Argument value="$SESSIONID$"/>
121+
<Argument value="$NUMMIN$"/>
122+
<Argument value="$PVNodes$"/>
123+
<Argument value="$PVTasks$"/>
124+
<Argument value="$PV_SERVER_PORT$"/>
125+
<Argument value="$MACHINE$"/>
126+
<Argument value="$VERSION$"/>
127+
<Argument value="$Queue$"/>
128+
<Argument value="$MemxNode$"/>
129+
<Argument value="$ACCOUNT$"/>
130+
<Argument value="$RESERVATION$;"/>
131+
<Argument value="sleep"/>
132+
<Argument value="6000"/>
133+
</Arguments>
134+
</Command>
135+
</Servers>
136+
```

mkdocs.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ nav:
9696
- 'Resource and hooks': software/container-engine/resource-hook.md
9797
- 'EDF reference': software/container-engine/edf.md
9898
- 'Known issues': software/container-engine/known-issue.md
99+
- 'Scientific Visualization':
100+
- software/sciviz/index.md
101+
- 'ParaView': software/sciviz/paraview.md
99102
- 'Unsupported Software':
100103
- software/unsupported/index.md
101104
- 'Matlab': build-install/applications/matlab.md

0 commit comments

Comments
 (0)