Deploying Paraview on Cluster

This post summarizes steps to deploy Paraview on a computing cluster using paraview-superbuild.

ParaView-Superbuild is a project to build ParaView and its dependencies.

To use it, we need:

  • A CXX11 compiler (can be installed using Spack).
  • CMake (can also installed using Spack).
  • MPI (instead of using system’s MPI, I used openmpi installed using Spack. It is unclear what are the side effects).

After setting up these dependencies, clone the project with submodules:

git clone --recursive https://gitlab.kitware.com/paraview/paraview-superbuild.git

Then, checkout a specific tag from the superbuild git repository:

git checkout v5.2.0 && git submodule update

Next, create a build directory OUTSIDE of the clone.

cd .. && mkdir -p superbuild-build && cd superbuild-build

Revoke CMake from within the build direcotory

cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/paraview \
      -DCMAKE_C_COMPILER=/path/to/c/compiler \
      -DCMAKE_CXX_COMPILER=/path/to/cxx/compiler \
      -DENABLE_mpi=ON -DUSE_SYSTEM_mpi=ON \
      -DENABLE_tbb=ON -DUSE_SYSTEM_tbb=OFF \
      -DSUPERBUILD_DEFAULT_INSTALL=paraview/DragNDrop \
      ../paraview-superbuild

A few notes on the arguments:

  • SUPERBUILD_DEFAULT_INSTALL=paraview/DragNDrop. This is required, otherwise superbuild will try to install dependencies into /usr/local/.
  • CMAKE_INSTALL_PREFIX is the install directory for paraview.
  • CMAKE_C_COMPILER and CMAKE_CXX_COMPILER are set to be the ones that support CXX11.
  • ENABLE_mpi=ON to enable MPI support. This is the whole point of deploying Paraview on a cluster.
  • DUSE_SYSTEM_mpi=ON to pick up system MPI.

Lastly,

make && make install

and chill.

Remark: Things can go wrong with polluted environment variables. In that case, add these lines to the top of ~/.bashrc (before setting up Spack):

unset LIBRARY_PATH
unset LD_LIBRARY_PATH
unset DYLD_LIBRARY_PATH
unset CPATH
unset TBB22_INSTALL_DIR

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax