Running ParaView as a distributed memory parallel application requires that ParaView be built from source. This document contains notes on the build and install process used to build version 3.14.1 on Geyser.

ParaView documentation:

CMake

ParaView unfortunately is built with cmake. For this build, version 2.8.8 or higher is required.

CMake Configuration

The following paraview  configuration options need to be changed from the default in the cmake session:

  • BUILD_SHARED_LIBS ON
  • PARAVIEW_USE_MPI ON
  • PARAVIEW_ENABLE_PYTHON ON
  • PARAVIEW_BUILD_PLUGIN_PointSpr OFF
  • PARAVIEW_INSTALL_DEVELOPMENT ON
CMake Caveats

Failure to heed any of the following will result in frustration and misery:

  • The first time you run cmake you need to point it to the paraview source directory. For ever after you need to point cmake to the build directory.
  • CMake will find stuff. If it's in your environment, cmake will find it and try to use it. It's best to pair down search paths, ld library paths, etc. before invoking cmake. In general, every time you invoke cmake in the paraview build directory your environment should be the same (same user, same environment variables).
  • There appears to be no way to examine a cmake generated configuration file to determine what options have been changed from the default: carefully record any changes you make

Library dependencies

The following libraries had to be separately built and installed prior to building paraview

  • mpich2-1.4.1p1 - I was not able to get paraview running with the IBM version of MPI
  • qt-4.6.1 - Qt is almost as unbearably difficult to build as ParaView. It should be configured with the following options:
    • -webkit -script -no-multimedia -no-qt3support -no-pch

Getting Started - the procedure

+ I didn't even try to build paraview with the intel compiler. So switch modules from intel to gnu. Also the the 'ncarenv' module caused problems (I don't remember what, but I had to disable it):

  • % module unload intel
  • % module unload ncarcompilers

+ Untar the paraview tar ball into a temporary location. Note: cmake does not get run from within the paraview source directory. You have to create a separate build directory:

  • % mkdir paraview-src
  • % cd paraview-src; tar xf path_to_tarball; cd ../
  • % mkdir paraview-build; cd paraview-build

+ Make sure the path to cmake2.8.8 and Qt4.6.1 are at the head of your execution search path. If at some point paraview build fails, or you come back on another day and try to remake paraview, you'll need to be sure you still have cmake and qt4.6.1 at the head of your path.

+ Change directories to the build dir and bootstrap cmake using the path to the source directory:

  • % cd paraview-build;
  • % ccmake ../paraview-src

Note: after you've run cmake for the first time for subsequent invocations to not point it to the paraview source directory. Cd to the build directory and use it's path:

  • cd paraview-build;
  • ccmake .

+ From the ccmake menu set the configuration options as described above. Note, some options are under the "advanced" menu which may be toggled with the "t" key.

+ After setting cmake options, hit the "c" key to configure. Deal with any warnings and keep reconfiguring with "c" until cmake is happy. Once cmake stops complaining, hit the "g" key to generate the configuration file.

+ Execute 'make' and cross your fingers!

Testing

Once (if) paraview successfully builds both the parallel server and the standalone client should be tested. Paraview doesn't build with rpath, so any 3rd party library dependencies (e.g. qt and mpich) will need to be added to LD_LIBRARY_PATH

paraview client

The standalone client will need to be run with virtualGL. Change directories to the build's bin directory, and invoke the paraview client:

  • % cd paraview-build/bin
  • % vglrun ./paraview

The GUI should appear. Ideally, a test data set should be loaded and rendered.

paraview parallel server

The paraview server (pvserver) can be tested by running it in parallel on geyser or caldera and attaching to the server via the paraview client running on your office system (or elsewhere). IF built with mpich, the server should be started with mpiexec:

  • % cd paraview-build/bin
  • % mpiexec -f host_file_path /complete/path/to/pvserver

Once pvserver is running, attach to it from a remote client

  • No labels