Compiling ParaView3 for Cray supercomputers
This wiki page is currently a work in progress.
Objectives and Overview
Our goal is to run pvbatch on Cray massively parallel processor systems. Pvbatch is ParaView's MPI-enabled batch application. It reads batch scripts written in python and distributes the work across many processors. Pvbatch will be built when you compile ParaView 3. Before you can compile ParaView 3 you must compile three support packages- CMake, OSMesa, Python. The entire process will take about three hours to complete and you should have at least one gigabyte of workspace.
These instructions are intended for Cray MPP systems running the Catamount operating system. Specifically, these instructions have been tested on the Bigben XT3 supercomputer at Pittsburgh Supercomputing Center.
Terminology
These terms are probably self explanatory, but just to clarify...
- front end node - the computer/shell you log into and work on.
- native operating system - the operating system that runs on the front end node (at PSC the OS is SuSE linux)
- native build - software that executes on the front end nodes
- compute node - the computers/processors running scientific computation
- catamount - the operating system that runs on the compute nodes
- catamount build - software that has been cross compiled to execute on the compute node
Build steps
You will log into a shell on a front end node. You will download the source code and then compile CMake, OSMesa, Python, and ParaView3. Some of these packages must be compiled twice- one native version and one cross compiled version. The steps compile steps are:
- Compile a CMake native build.
- Compile an OSMesa native build.
- Compile an OSMesa catamount build.
- Compile a Python native build.
- Compile a ParaView 3 native build.
- Compile a ParaView 3 catamount build.
Step 2 is optional if your front end system already has OSMesa installed. Step 4 is optional if your front end system already has Python installed.
Why are the native builds required?
When ParaView builds, it compiles and executes helper binaries to generate source code to be used in future build targets. When you cross compile, these helper binaries cannot execute, since they are non-native to the front end node you are working on. The solution is to build a native version first, then use the native helper binaries while cross compiling.
Compilers
The front end nodes have more than one compiler installed. We will use the PGI and GNU compilers. At Bigben, the PGI compiler is the default compiler when you log in. To switch compilers, use the command:
...
For more information see this page.
Directory structure
Setup your directories however you'd like. The example commands given in these instructions are specific to my directory structure, however, so here is how I set up my directories:
~/ install/ bin/ include/ lib/ install-catamount/ bin/ include/ lib/ projects/ cmake/ CMake/ build-native/ osmesa/ OSMesa-native/ OSMesa-catamount/ python/ python-for-cmake/ build-native/ build-catamount/ paraview/ ParaView3/ build-native/ build-catamount/