NGC | Catalog
Welcome Guest

ParaView

For pull tags and more information, please view on a desktop device.
Logo for ParaView

Description

ParaView is one of the most popular visualization software for analyzing HPC datasets.

Publisher

NVIDIA

Latest Tag

egl-py3-5.9.0

Modified

July 1, 2022

Compressed Size

1.33 GB

Multinode Support

No

Multi-Arch Support

No

egl-py3-5.9.0 (Latest) Scan Results

Linux / amd64

Introduction

This ParaView container is enabled with the NVIDIA IndeX plugin and the OptiX ray-tracing backend.

It can be used in tandem with an official ParaView 5.9.0 client or standalone as ParaView Web. The following instructions will describe how to run ParaView Server and ParaView Web and how to use the IndeX plugin and the OptiX path tracing backend. At the end, there will be a FAQ section.

The container is built with EGL.

Pre-requisites

  • In the server environment, the NVIDIA driver must be compatible with CUDA 10.2 or above.

Using Docker

Credentials

First, please make sure that you have the right credentials set up to pull the containers. When using NGC you can run docker login nvcr.io and provide $oauthtoken as username and your api key as password.

Please note that pulling from different repositories ("AWS Marketplace" for example) will require different credentials.

Running ParaView Server

This is the simplest way to start the ParaView Server on one node with GPUs enabled:

docker run --gpus all -p 11111:11111 \
    nvcr.io/nvidia-hpcvis/paraview:egl-py3-5.9.0 ./bin/pvserver

The output should be:

By loading the 'pvNVIDIAIndeX' plugin you have accepted the EULA shipped with it.
If that is not acceptable, please restart the application without loading 
the 'pvNVIDIAIndeX' plugin.
-----------------------------------------------------
Waiting for client...
Connection URL: cs://HOST:11111
Accepting connection(s): HOST:11111

Now you can connect with ParaView client either directly from the UI or by starting via the command line:

./bin/paraview --server-url=cs://HOST:11111

Running ParaView Web

This is the simplest way to start ParaView Web on one node with GPUs enabled:

docker run --gpus all -p 8080:8080 -v /host_data_dir:/data \
    nvcr.io/nvidia-hpcvis/paraview:egl-py3-5.9.0 \
        ./bin/pvpython share/paraview-5.9/web/visualizer/server/pvw-visualizer.py \
        --content share/paraview-5.9/web/visualizer/www/ \
        --port 8080 \
        --data /data

ParaView Web will start with the data directry mounted onto /data.

The output should be:

By loading the 'pvNVIDIAIndeX' plugin you have accepted the EULA shipped with it.
If that is not acceptable, please restart the application without loading 
the 'pvNVIDIAIndeX' plugin.
-----------------------------------------------------
wslink: Starting factory

Now you can connect to the host where the container is running directly with your web browser on port http://HOST:8080.

ParaView Server

ParaView is designed to work well in client/server mode. In this way, users can have the full advantage of using a shared remote high-performance rendering cluster through the client application.

Connecting from the Client

Start the client by specifying the url direcly from the command line:

./bin/paraview --server-url=cs://HOST:11111

Or using the UI:

  1. Open the server connection dialog: "File" > "Connect"
  2. Select "Add Server" to configure a connection for you ParaView server
  3. Click "Connect"

The Pipeline Browser window should now show the address of the server that you connected to.

Please note that only the client and server have to be of the same version (5.9.0) for the connection to work.

Using the NVIDIA IndeX plugin

The plugin needs to be loaded first:

  1. Select "Tools" > "Manage Plugins", and under "Local Plugins", highlight the pvNVIDIAIndeX plugin.
  2. Select "Load Selected" to load the IndeX plugin locally (you may also want to check "Auto Load" in the pvNVIDIAIndeX drop down options to skip this step in the future). Please make sure that the plugin is loaded both locally and remotely.

Now NVIDIA IndeX can be run on some synthetic data:

  1. Select "Sources" > "Data Objects" > "Wavelet", then go to the Properties window and hit "Apply".
  2. Change the TODO from "Outline" to "RTData".
  3. In the Properties window, scroll to Display and select "NVIDIA IndeX" from the Representation drop down menu.

You should see a volume rendered wavelet source. Try editing the transfer function via "Properties" > "Coloring" > "Edit".

Using the OptiX Pathtracing Backend

Here's how to enable the NVIDIA OptiX pathtracing backend and test it with some synthetic data.

  1. In the Properties window (lower-left by default, enabled in the View menu if it is missing), "View" section > "Ray Traced Rendering subsection" > check "Enable Ray Tracing".
  2. In the "Ray Traced Rendering" subsection > "Backend" drop down menu > select "OptiX pathtracer"
  3. Go to the "Sources" menu > "Data Objects" > "Wavelet", then "Properties" > "Apply" Right click the Wavelet source, and select "Add Filter" > "Common" > "Contour", then "Properties" > "Apply"

You should see a ray traced Wavelet source with proper illumination and shadows. Try enabling/disabling ray tracing a few times for comparison.

ParaView Web

The Visualizer Web application provides a ParaView-like, experience inside the Web browser. The ParaViewWeb library contains all the components needed to build the UI and the data access (I/O) routines to communicate to the ParaView server using WebSocket connectivity. Visualizer is simply connecting all the components together in a meaningful way.

The big advantage of ParaView Web is that it allows users to use ParaView without installing the client.

Using the NVIDIA IndeX plugin

Once the container is started, navigate to http://HOST:8080, where hostname is the machine where the container image is running. To check that IndeX works, here are the steps to render a generated volume with Index:

  1. Create a Wavelet: click + sign, select wavelet.
  2. Select scalar(p1)RTData: click on droplet dropdown menu, select (p1)RTData. (Make sure Solid color is not selected.)
  3. Select representation: click on eye dropdown menu, select NVIDIA IndeX

After NVIDIA IndeX initializes you should see the volume.

FAQ:

  • Q: Can I use Infiniband? A: Yes Mellanox Infiniband interfaces are supported. For docker, you will have to add --device=/dev/infiniband --cap-add=IPC_LOCK --net=host when running the container.

  • Q: The ParaView web container shuts down after 5 minutes of inactivity. A: This behaviour comes from pvpython.

  • Q: How can I use my own license for the ParaView IndeX plugin? A: You can do that by configuring the vendor and secret keys via the environment variables NVINDEX_VENDOR_KEY and NVINDEX_SECRET_KEY.

  • Q: When creating a Wavelet, ParaView crashes with the following error:

    vtkSIProxy.cxx:422    ERR| vtkSISourceProxy (0x2296bb70): Failed to create 'vtknvindex_representation'. This typically means that ParaView does not know about the request class to create an instance of if. Ensure that it has been correctly wrapped using the client-server wrappers and the wrapping has been initialized. Note class names are case-sensitive. Check for typos. Aborting for debugging purposes.
    

    A: This is an indication that the NVIDIA IndeX plugin has been loaded remotely but not locally. Please load it on both sides, as mentioned in the pre-requisites section.

Additional information

For additional information on NVIDIA IndeX and multi node support please contact us.