ParaView
ParaView (www.paraview.org) is a powerful, general-purpose scientific visualization application that offers multiple modes on individual workstations and parallel computer systems. The ParaView site and book provide full documentation. This page focuses on additional issues specific to the PSC and these parts of the ParaView set of applications:
- paraview, both a standalone serial application and a serial client
- pvserver, a serial or a parallel server
- pypython, a serial standalone application using Python
- pvbatch, a serial or parallel application that can be submitted to a batch queue; executes a Python script
For example, a user may run the serial client on his workstation connected to a parallel server on one of the PSC systems. This is particularly useful when a user is visualizing a large set of data stored at the PSC.
ParaView is installed on pople.
Versions and Modules
New "stable" versions of ParaView are released by the developer, Kitware, Inc., several times a year. Developmental versions, which can change hourly, can be downloaded between the stable releases. In some cases it is better to use a developmental version because it includes an important change.
At the PSC the developmental version is called "Edge" because it is the "bleeding edge" of ParaView.
The versions available on a given PSC system can be seen by using the command "modules avail". Look for names in the resulting list that start with "paraview". For example, the list may include
-
paraview/Edge/mpi
paraview/Edge/nompi
Modules with "nompi" or "mpi" in the name are designed to be run in serial or in parallel modes, respectively. The executables "paraview" and "pvpython" should always be run in serial mode while "pvserver" and "pvbatch" can be run in either mode.
When the command "module load" is used for a ParaView module a message will be printed showing the version of ParaView. This is particularly important when loading the Edge version; in that case, the message will give the time and day at which that version was downloaded.
When using "pvserver" on a PSC system it is best that the client be the same version of ParaView. Using different versions may work in some cases.
For example, lets say you wished to execute the Edge version of ParaView in batch mode using 4 processors. The script given to qsub should include lines like these:
source /usr/share/modules/init/csh source /etc/csh.cshrc.psc module load paraview/edge/mpi mpirun -np 4 pvbatch --use-offscreen-rendering mybatch.py
You may notice that after a ParaView module has been loaded, modules for Trolltech and Mesa have also been loaded. The Trolltech library provides the graphical user interface used by "paraview" while the Mesa library provides the low-level graphics commands.
ParaView on Pople
All of the above modes (paraview, pvserver, pypython and pvbatch) are available.
You should not run "paraview" on pople's front-end nodes except for a brief test; instead, use the interactive option of qsub to request one compute node.
The Altix OS on pople comes with libraries for Trolltech and Mesa. However, those are older versions and will not work correctly with ParaView. Let the ParaView modules, described above, load the appropriate modules for Trolltech and Mesa.
PSC Enhancements
From time to time the PSC will develop a reader, filter or other feature for ParaView, which will be documented here.
As noted above many versions of ParaView become available every year and sometimes a feature tested for one version of ParaView will not work correctly with another version.
Improved Outer Surface Display
After a set of data has been read it often is displayed so that only the outer surface is shown. This works correctly in most cases. However, if the input data is "structured" and includes node or cell "blanking", the ParaView routine that does this ignores the blanking. This has been reported as bug 7274.
For example, some ocean models use a structured grid that covers both ocean and land with the cells on land "blanked". The existing ParaView algorithm draws the land cells anyway making it difficult to see the shore areas.
The PSC fix adds a new section to the ParaView routine to perform the blanking. However, it does not support several other features that could be a problem in special cases. The fix ignores
- node and cell IDs
- requests to keep the original cell ids
- requests to generate triangle strips
- update extents
To use the PSC fix you must first prepare to build ParaView on your system from source. The ParaView web site describes how to do this.
Next, download the following two files
vtkDataSetSurfaceFilter.cxx
vtkDataSetSurfaceFilter.h
and use them to replace the
ones with the same names in the directory VTK/Graphics. The directory
VTK will be in the top-level source code directory that you
downloaded.
Finally, build (or rebuild) ParaView as described at their web site.
These files have been tested with the version of ParaView downloaded from their CVS site on June 25, 2008, at 4:42pm. This is a version after 3.2.1 but before the next stable release.