wiki:VisIt/build_Jureca

Build VisIt on JURECA

On JURECA all system wide software packages are installed with the help of the EasyBuild framework. Typically the Intel C (icc) anc C++ (icpc) compilers are used. The following EasyBuild easyconfig file is used for VisIt:

# Built with EasyBuild version 2.5.0 on 2015-12-22_12-14-46
easyblock = 'Binary'

name = 'VisIt'
version = '2.10.0'

homepage = 'https://wci.llnl.gov/simulation/computer-codes/visit/'
description = """VisIt is an Open Source, interactive, scalable, visualization, animation and analysis tool."""

toolchain = {'name': 'intel-para', 'version': '2015.07'}

# http://portal.nersc.gov/project/visit/releases/2.10.0/build_visit2_10_0
source_urls = ['http://portal.nersc.gov/project/visit/releases/%(version)s/']
script = 'build_%(namelower)s%(version_major)s_%(version_minor)s_0'
sources = [script]

install_cmd = "chmod +x %s && " %script
# libXt and libX11 derive from the Qt dependency
install_cmd += "CMAKE_INCLUDE_PATH=$EBROOTLIBXT/include:$EBROOTLIBX11/include "
install_cmd += "CMAKE_LIBRARY_PATH=$EBROOTLIBXT/lib:$EBROOTLIBX11/lib "
install_cmd += "./%s " %script
install_cmd += "--console --parallel --required --h5part --hdf5 --netcdf --silo --no-pyside "
# Python version inferred from libxml2
install_cmd += "--system-python --system-cmake --system-qt --cc $CC --cxx $CXX "

# Need to use maxparallel to keep number of threads under control
maxparallel = '12'

install_cmd += "--prefix '%(installdir)s' --makeflags '-j" + maxparallel + "'"


pythonversion = '2.7.10'
dependencies = [
    ('Qt', '4.8.7'),
    ('libxml2', '2.9.2', '-Python-%s' % pythonversion),
    ('Python', pythonversion)
]

builddependencies = [
    ('makedepend', '1.0.5'),
    ('CMake', '3.3.2'),
]

postinstallcmds = ['cp %(builddir)s/*_log %(installdir)s/%(version)s']

sanity_check_paths = {
    'files': ['bin/%s' % x for x in ['frontendlauncher', 'frontendlauncher.py']],
    'dirs': ['%(version)s'],
}


# Add the python modules
modextrapaths = {'PYTHONPATH': ['%(version)s/linux-x86_64/lib/site-packages/']}
modextravars = {
   'VISIT_ROOT': '$root'
}

moduleclass = 'vis'

To compile your own version of VisIt you likely may not use EasBuild directly, but the necessary installation steps and options can be derived from the above easyconfig file. Roughly the following has to be done:

  • load modules: CMake, makedepend, Qt, libxml2, Python
  • set the CMAKE_INCLUDE_PATH and the CMAKE_LIBRARY_PATH accordingly
  • invoke the build_visit2_10_0 script with the options given above

All in all a build script for building VisIt 2.10.0 on JURECA could look like this:

module --force purge
module load Stages/Devel
module load intel-para
module load makedepend
module load CMake/3.3.2
module load Qt/4.8.7
module load libxml2/2.9.2-Python-2.7.10
module load Python/2.7.10

export CMAKE_INCLUDE_PATH=$EBROOTLIBXT/include:$EBROOTLIBX11/include
export CMAKE_LIBRARY_PATH=$EBROOTLIBXT/lib:$EBROOTLIBX11/lib
export CC=icc
export CXX=icpc

./build_visit2_10_0 \
--console \
--parallel \
--required \
--h5part \
--hdf5 \
--netcdf \
--silo \
--no-pyside \
--system-python \
--system-cmake \
--system-qt \
--cc $CC \
--cxx $CXX \
--prefix /your/visit/installation/path

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

Last modified 8 years ago Last modified on 02/07/16 02:06:10
Note: See TracWiki for help on using the wiki.