NGC | Catalog
CatalogContainersParaView IndeX

ParaView IndeX

Logo for ParaView IndeX
Description
ParaView is one of the most popular visualization software for analyzing HPC datasets. NVIDIA IndeX delivers real-time, interactive visualization of large volumetric datasets with the ParaView-IndeX container.
Publisher
NVIDIA
Latest Tag
5.7.0-egl-pvw
Modified
February 7, 2020
Compressed Size
548.17 MB
Multinode Support
No
Multi-Arch Support
No
5.7.0-egl-pvw (Latest) Security Scan Results
No results available.

Introduction

This container bundles ParaView Web and ParaView server with the NVIDIA IndeX plugin for the propose of showcasing the NVIDIA IndeX capabilities.

It can be used in tandem with an official ParaView 5.7.0 client or standalone as ParaView web. The following instructions will describe how to run ParaView Web and pvserver with Docker and Singularity.

The container starts ParaView Web by default.

Note: Only drivers that are compatible with CUDA 10.1 and above are supported.

ParaView Web Visualizer

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.

Running with docker

To start ParaView web in your environment, just run:

nvidia-docker run -p 8080:8080 nvcr.io/nvidia-hpcvis/paraview-index:5.7.0-egl-pvw

The console 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

Please refer to the Using the UI section below to continue.

Running with Singularity

First of all, please make sure you export your NGC credentials to Singularity:

export SINGULARITY_DOCKER_USERNAME='$oauthtoken'
export SINGULARITY_DOCKER_PASSWORD=

Then start the singularity container:

singularity run --nv docker://nvcr.io/nvidia-hpcvis/paraview-index:5.7.0-egl-pvw

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

Notes:

  • Mounting a data directory

The image expects to have the data directory bind mounted into /data. Here's how you can start the image with your own data directory:

singularity run --nv -B /demo/nvindex/data:/data paraview-index_5.7.0-egl-pvw.simg

Using the ParaView Web Visualizer UI

Once the container is started, navigate to http://HOSTNAME: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:

  • Create a Wavelet: click + sign, select wavelet.

  • Select scalar RTData: click on droplet dropdown menu, select RTData. (Make sure Solid color is not selected.)

  • Select representation: click on eye dropdown menu, select NVIDIA IndeX

After a few seconds you should see the volume.

ParaView Server

Launching the container in ParaView server mode is also supported. The client requirements are:

  • ParaView version 5.7.0
  • The IndeX plugin has to be loaded on the client as well (Tools > Manage Plugins ... > pvNVIDIAIndeX) before connecting to the server.

The only difference between running pvserver and ParaView Web is that the pvserver.sh wrapper script has to be called when starting the container.

Running with Docker

To start pvserver launch the container and call the pvserver script:

nvidia-docker run -p 11111:11111 nvcr.io/nvidia-hpcvis/paraview-index:5.7.0-egl-pvw /pvserver.sh

If launching was successfull you should see:

hostname: Running pvserver.
nvindex:   0.0   API    misc info : Loaded "/usr/local/paraview/lib/libdice.so"
nvindex:   0.0   API    misc info : DiCE 2019, build 317600.4377, 14 Aug 2019, linux-x86-64
nvindex:   0.0   PVPLN  main info : NVIDIA IndeX 2.1 (build 317600.4377, 14 Aug 2019, linux-x86-64-gcc4).
-----------------------------------------------------
  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://hostname:11111
Accepting connection(s): hostname:11111

Now you can connect with the ParaView client to this address.

Running with Singularity

Simply run:

singularity -s run --nv docker://nvcr.io/nvidia-hpcvis/paraview-index:5.7.0-egl-pvw

The expected output should be similar to the one quoted in the Docker section.

Connecting with ParaView client

Once pvserver is running, now you can connect to it. You can do that from the UI or from the command line:

paraview --server-url=cs://hostname:11111

ParaView should start succesfully. Now you can create a Wavelet and switch to the NVIDIA IndeX representation to check that everything is in order.

Loading your own data

The container expects the data to be located in the /data directory. That means you will have to bind mount a external data directory inside the container:

  • For docker add -v /external/data_dir:/data to the run command.
  • For Singularity add -B /external/data_dir:/data to the run command.

FAQ:

  • Q: I have the nvidia container toolkit installed, but nvidia-docker doesn't exist. What can I do? A: You have to use the new --gpus all (or your gpu selection) switch. More details here

  • 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. For Singularity nothing needs to be added/

  • Q: Singularity fails running the container image from the docker url. A: Directly using a docker container might not work with older versions of Singularity. In that case you have to take the extra step of manually converting to a .simg file:

    singularity build paraview-index_5.7.0-egl-pvw.simg docker://nvcr.io/nvidia-hpcvis/paraview-index:5.7.0-egl-pvw
    
  • Q: I get a crash when creating a wavelet in ParaView client while using the pvserver from the container. The logs contain Failed to create 'vtknvindex_representation'. A: This usually means that the IndeX plugin has not been loaded on the client side.

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

  • Q: I am having issues starting up singularity when using slurm. I am getting OPAL ERROR: Not initialized in file pmix3x_client.c at line 112. A: Add the --mpi=pmi2 parameter to srun or salloc.

  • 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.

Additional information

For additional information and multi node support please contact us.