= Build !VisIt on JURECA On JURECA all system wide software packages are installed with the help of the [http://easybuild.readthedocs.org/en/latest/index.html EasyBuild] framework. Typically the Intel C (icc) anc C++ (icpc) compilers are used. The following !EasyBuild easyconfig file is used for !VisIt: {{{ #!python # 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: {{{ #!sh 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 - [mailto:h.zilken@fz.juelich.de], [mailto:j.goebbert@fz-juelich.de]