Visualization: Difference between revisions

Jump to navigation Jump to search
Marked this version for translation
(→‎GPU-based client-server visualization on Cedar and Graham: Filled in GPU client-server visualization section.)
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-->


== GPU-based client-server visualization on Cedar and Graham ==
== GPU-based client-server visualization on Cedar and Graham == <!--T:60-->


<!--T:61-->
Cedar and Graham have a number of interactive GPU nodes that can be used for remote ParaView client-server visualization. To get started, install ParaView 5.4.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 GPU interactive job:
Cedar and Graham have a number of interactive GPU nodes that can be used for remote ParaView client-server visualization. To get started, install ParaView 5.4.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 GPU interactive job:


   salloc --time=1:00:0 --ntasks=1 --gres=gpu:1 --account=xwp-462-aa
   <!--T:62-->
salloc --time=1:00:0 --ntasks=1 --gres=gpu:1 --account=xwp-462-aa


<!--T:63-->
The job should automatically start on one of GPU interactive nodes. Once you get an interactive prompt (that is part of your job), load the ParaView GPU+EGL module, unset your display variable so that ParaView does not attempt to use the X11 rendering context, and start the ParaView server:
The job should automatically start on one of GPU interactive nodes. Once you get an interactive prompt (that is part of your job), load the ParaView GPU+EGL module, unset your display variable so that ParaView does not attempt to use the X11 rendering context, and start the ParaView server:


   module load paraview-offscreen-gpu/5.4.0
   <!--T:64-->
module load paraview-offscreen-gpu/5.4.0
   unset DISPLAY
   unset DISPLAY
   pvserver
   pvserver


<!--T:65-->
Wait for the server to be ready to accept client connection:
Wait for the server to be ready to accept client connection:


<!--T:66-->
Waiting for client...
Waiting for client...
Connection URL: cs://cdr347.int.cedar.computecanada.ca:11111
Connection URL: cs://cdr347.int.cedar.computecanada.ca:11111
Accepting connection(s): cdr347.int.cedar.computecanada.ca:11111
Accepting connection(s): cdr347.int.cedar.computecanada.ca:11111


<!--T:67-->
Take a note of the node (in this case cdr347) 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 cdr347) 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:cdr347:11111
   <!--T:68-->
ssh cedar.computecanada.ca -L 11111:cdr347:11111


<!--T:69-->
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".
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".


<!--T:70-->
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 GPU 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 GPU 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.


Line 59: Line 69:
You can also do interactive client-server ParaView rendering on cluster CPUs. For some types of rendering modern CPU-based libraries such as OSPRay and OpenSWR offer performance quite similar to GPU-based rendering. And, since ParaView server uses MPI for distributed-memory processing, for very large datasets one can do parallel rendering on a large number of CPU cores, either on a single node, or scattered across multiple nodes.
You can also do interactive client-server ParaView rendering on cluster CPUs. For some types of rendering modern CPU-based libraries such as OSPRay and OpenSWR offer performance quite similar to GPU-based rendering. And, since ParaView server uses MPI for distributed-memory processing, for very large datasets one can do parallel rendering on a large number of CPU cores, either on a single node, or scattered across multiple nodes.


<!--T:71-->
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:
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:


rsnt_translations
58,180

edits

Navigation menu