wiki:VisIt/build_Juqueen

Building VisIt on JUQUEEN

In addition to the normal build_visit script, a special build script for JUQUEEN, called build_visit_BGQ, ist needed. To build VisIt one has to execute this script. build_visit_BGQ in turn calls the build_visit script with a special set of parameters to generate a static version of the libsim and other components which are necessary for a static linking to your simulation code.

VisIt versions tested for BlueGene/G:

  • 2.9.2 (build successfull)
  • 2.10.0 (build FAILS, if HDF5 included: bugreport)
  • 2.10.1 (build successfull)

1) download scripts

Before one can execute the build_visit_BGQ (and thereby build_visit) script, a couple of helper-scripts are also needed. These helper-scripts are contained in the svn_bin/bv_support folder of the visit source-tree. The two original build scripts and the bv_support folder can be downloaded as follows (for VisIt version 2.10.1):

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

2) patch scripts

As of Version 2.9.2 the original build_visit_BQG and build_visit scripts where not able to compile VisIt on the JUQUEEN installation at JSC correctly.
We have made changes to the scripts, e.g. build_visit_BGQ was not able to handle multiple compiler arguments and the build_visit script generated a wrong host-configuration file.
For VisIt 2.9.2 and 2.10.1 we fix these issues and now have corrected versions of the script build_visit_BGQ which should be used on the JUQUEEN at JSC:

patch build_visit_BGQ

compare build_visit_BGQ with the following one and apply changes
(changes have been reported as bugreport)

patch build_visit helper function

In bv_support/helper_funcs.sh you will find a section with the following code
(if you have downloaded the build_visit including all functions of bv_support it is in build_visit directly)

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

Here the paths for MPI are set. You probably have to change them. Make sure they point to the correct directories.
For the current (15.10.2015) setup on JUQUEEN mpi.h can only be found if the paths include "${BLUEGENEQ}/spi/include".

patch LaunchService.C (FIXED in 2.10.1)

LaunchService.C as to check for command line argument "-socket-bridge-host" and use the hostname provided instead of calling gethostname(). This is essential to make VisIt run on the JUQUEEN. But this file cannot be patched right away, as you have to wait for the build_script to download and extract the VisIt sources before. Best is to run the complete build procedure and than patch LaunchService.C and rerun the build procedure again (it will skip a lot of steps).

LaunchService.C is located in

  • builds_static/src/common/comm/
  • builds_static_BGQ/src/common/comm/

Here you find the patched file LaunchService.C for VisIt 2.9.2.
Check the difference and adopt it to your version of VisIt (bugreport).

patch visitfortransimV2interface.c (FIXED in 2.10.1)

Replace line 427 in function visitgetenv() (bugreport).

sz = (len < *lenv) ? (sz - 1) : (*lenv - 1);

with

sz = (len < *lenv) ? (len) : (sz - 1);

3) add extras

If you want visit to build additional I/O packages, e.g. boost, netcdf, hdf5, ..., needed by several VisIt-readers (databases), you have to edit line 39 in the build_visit_BGQ script, e.g.

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

If you omit this line, visit tries to find system wide installations of the packages. But be aware that, in this case, several databases maybe cannot be build if the corresponding packages are not found.

4) compile VisIt

The build_visit_BGQ script may be invoked e.g. with the following arguments:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

if you do not want to change settings make in build_visit_BGQ, or

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

If you want to instrument VisIt with Score-P/Scalasca load the following modules

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

and set the following compiler in build_visit_BGQ:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

and comment the following lines in builds_static_BGQ/src/CMakeLists.txt after it is downloaded and extracted:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

The build sequence is as follows:

  • first, the compute-node version of VisIt is build in the directory builds_static_BGQ,
  • than the login-node version is build in the directory builds_static

In the build process the following third party packages are installed in the directory thirdparty_static:

  • mesa
  • zlib, szip
  • cmake
  • python (including python image library (PIL), pyparsing, seedme-python)
  • vtk
  • icet
  • I/O-Libs: boost, hdf5, netcdf, silo

5) install VisIt

After the build process has successfully finished, VisIt is installed in the directory linux-ppc64-BGQ.

The static libs required for code running on the compute nodes should now be collected in $LIBSIM_INST by the build_visit_BGQ script.
This way all static VisIt libs your BGQ application needs for linking are in one common directory ($LIBSIM_INST).

If build_visit_BGQ has not copied the additional libs, do it manually:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found
install VisIt at <INSTALL_DIR_PATH>

VisIt for BlueGene/Q is now installed in linux-ppc64-BGQ - just copy it to the destination path:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found
  • eg. cp -a linux-ppc64-BGQ/* /home/VisIt/

But LibsimV2 is compiled as a static library on JUQUEEN and has dependencies to multiple other libraries.
Hence, linking libsimV2 to a simulation results in a long link line. more...
We also need the static libs of VTK,IceT and MESA for BlueGene/Q:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

Now the install path should look like this. Everything above the <VERSION> directory is version independent and backwards compatible. Hence, you can replace it with every new version copied to the <INSTALL_DIR_PATH>.

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found
install VisIt on JUQUEEN

On JUQUEEN VisIt is installed in two separate directories.
One is for VisIt compiled for the login node and located at /usr/local/visit
and one is for VisIt libs compiled for the compute node and located at /bgsys/local/visit.

Login Node:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

Compute Node:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

Create new Module Files:

Error: Failed to load processor ShellExample
No macro or processor named 'ShellExample' found

5) additional infos

launch process

Make sure you understand the launch procedure of VisIt by its python scripts:

  • bin/visit -> bin/frontendlauncher
  • bin/fontendlauncher
    • makes sure Python settings are made
    • load frontendlauncher.py using VisIt's python interpreter
  • bin/frontendlauncher.py
    • determine the VisIt version to run
    • create Launcher object from python-file 'internallauncher' (eg. 2.10.1/bin/internallauncher)
      or python file 'customlauncher' (if available)
  • <VERSION>/bin/internallauncher
    • run python-file internallauncher with launcher object

more


any feedback welcomed - h.zilken@…, j.goebbert@…

Last modified 8 years ago Last modified on 06/15/16 23:05:42

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.