Bureaucrats, cc_docs_admin, cc_staff, rsnt_translations
2,848
edits
(→Client-server visualization on Cedar and Graham: fixed a typo) Tags: Mobile edit Mobile web edit |
(Marked this version for translation) |
||
Line 28: | Line 28: | ||
= Visualization on new Compute Canada systems = <!--T:6--> | = Visualization on new Compute Canada systems = <!--T:6--> | ||
== Client-server visualization on Cedar and Graham == | == Client-server visualization on Cedar and Graham == <!--T:43--> | ||
<!--T:44--> | |||
Currently, we are working to bring GPU rendering to [[Cedar]] (SFU) and [[Graham]] (Waterloo). In the meantime, you can do client-server ParaView rendering on cluster CPUs. To get started, install ParaView 5.3.x (where "x" could be anything) on your laptop as you need the same version as on the cluster. Log in to Cedar or Graham and start a serial non-GPU interactive job: | Currently, we are working to bring GPU rendering to [[Cedar]] (SFU) and [[Graham]] (Waterloo). In the meantime, you can do client-server ParaView rendering on cluster CPUs. To get started, install ParaView 5.3.x (where "x" could be anything) on your laptop as you need the same version as on the cluster. Log in to Cedar or Graham and start a serial non-GPU interactive job: | ||
salloc --time=1:00:0 --ntasks=1 --account=xwp-462-aa | <!--T:45--> | ||
salloc --time=1:00:0 --ntasks=1 --account=xwp-462-aa | |||
<!--T:46--> | |||
The job should automatically start on one of CPU interactive nodes. Once you get an interactive prompt (that is part of your job), load the offscreen ParaView module and start the server: | The job should automatically start on one of CPU interactive nodes. Once you get an interactive prompt (that is part of your job), load the offscreen ParaView module and start the server: | ||
module load paraview-offscreen/5.3.0 | <!--T:47--> | ||
module load paraview-offscreen/5.3.0 | |||
pvserver --mesa-swr-avx2 | pvserver --mesa-swr-avx2 | ||
<!--T:48--> | |||
The flag "--mesa-swr-avx2" is important for much faster software rendering with OpenSWR library. Wait for the server to be ready to accept client connection: | The flag "--mesa-swr-avx2" is important for much faster software rendering with OpenSWR library. Wait for the server to be ready to accept client connection: | ||
<!--T:49--> | |||
Connection URL: cs://cdr774.int.cedar.computecanada.ca:11111 | Connection URL: cs://cdr774.int.cedar.computecanada.ca:11111 | ||
Accepting connection(s): cdr774.int.cedar.computecanada.ca:11111 | Accepting connection(s): cdr774.int.cedar.computecanada.ca:11111 | ||
<!--T:50--> | |||
Take a note of the node (in this case cdr774) and the port (usually 11111) and then in another terminal on your laptop (on Mac/Linux; in Windows use a terminal emulator) link the port 11111 on your laptop and the same port on the compute node (make sure to use the correct compute node): | Take a note of the node (in this case cdr774) and the port (usually 11111) and then in another terminal on your laptop (on Mac/Linux; in Windows use a terminal emulator) link the port 11111 on your laptop and the same port on the compute node (make sure to use the correct compute node): | ||
ssh cedar.computecanada.ca -L 11111:cdr774:11111 | <!--T:51--> | ||
ssh cedar.computecanada.ca -L 11111:cdr774:11111 | |||
<!--T:52--> | |||
Start ParaView on your laptop, go to File -> Connect (or click on the green Connect button in the toolbar) and then click Add Server. You'll need to point ParaView to your local port 11111, so you can do something like name = cedar, server type = Client/Server, host = localhost, port = 11111, then click Configure, then select Manual and click Save. Once the remote is added to the configuration, simply select the server from the list and click Connect. The first terminal window that was saying "Accepting connection ..." will now say "Client connected" and possibly "SWR detected AVX2" (or it may confirm AVX2 support when you start rendering). | Start ParaView on your laptop, go to File -> Connect (or click on the green Connect button in the toolbar) and then click Add Server. You'll need to point ParaView to your local port 11111, so you can do something like name = cedar, server type = Client/Server, host = localhost, port = 11111, then click Configure, then select Manual and click Save. Once the remote is added to the configuration, simply select the server from the list and click Connect. The first terminal window that was saying "Accepting connection ..." will now say "Client connected" and possibly "SWR detected AVX2" (or it may confirm AVX2 support when you start rendering). | ||
<!--T:53--> | |||
Then open a file in ParaView (it'll point you to the remote filesystem) and visualize it as usual. An important setting in ParaView's preferences is Render View -> Remote/Parallel Rendering Options -> Remote Render Threshold. If you set it to default (20MB) or similar, small rendering will be done on your laptop's GPU, the rotation with a mouse will be fast, but anything modestly intensive (under 20MB) will be shipped to your laptop and -- depending on your connection -- visualization might be slow. If you set it to 0MB, all rendering will be remote including rotation, so you'll be really using the cluster's CPU for everything, good for large data processing but not so good for interactivity. You'll need to play with this setting to see what works best for you. | Then open a file in ParaView (it'll point you to the remote filesystem) and visualize it as usual. An important setting in ParaView's preferences is Render View -> Remote/Parallel Rendering Options -> Remote Render Threshold. If you set it to default (20MB) or similar, small rendering will be done on your laptop's GPU, the rotation with a mouse will be fast, but anything modestly intensive (under 20MB) will be shipped to your laptop and -- depending on your connection -- visualization might be slow. If you set it to 0MB, all rendering will be remote including rotation, so you'll be really using the cluster's CPU for everything, good for large data processing but not so good for interactivity. You'll need to play with this setting to see what works best for you. | ||
<!--T:54--> | |||
If you want to do parallel rendering on multiple CPUs, start a parallel job (don't forget to specify the correct maximum walltime limit): | If you want to do parallel rendering on multiple CPUs, start a parallel job (don't forget to specify the correct maximum walltime limit): | ||
salloc --time=0:30:0 --ntasks=8 --account=xwp-462-aa | <!--T:55--> | ||
salloc --time=0:30:0 --ntasks=8 --account=xwp-462-aa | |||
<!--T:56--> | |||
and then start ParaView server with "srun": | and then start ParaView server with "srun": | ||
module load paraview-offscreen/5.3.0 | <!--T:57--> | ||
module load paraview-offscreen/5.3.0 | |||
srun pvserver --mesa | srun pvserver --mesa | ||
<!--T:58--> | |||
The flag "--mesa-swr-avx2" does not seem to have any effect when in parallel so we replaced it with the more generic "--mesa" to (hopefully) enable automatic detection of the best software rendering option. | The flag "--mesa-swr-avx2" does not seem to have any effect when in parallel so we replaced it with the more generic "--mesa" to (hopefully) enable automatic detection of the best software rendering option. | ||
<!--T:59--> | |||
To check that you are doing parallel rendering, you can pass your visualization through the Process Id Scalars filter and then colour it by "process id". | To check that you are doing parallel rendering, you can pass your visualization through the Process Id Scalars filter and then colour it by "process id". | ||