Skip to content
Snippets Groups Projects
Commit 54bc7e9b authored by Jens Henrik Goebbert's avatar Jens Henrik Goebbert
Browse files

Merge branch '2023' into ParaViewPlugin-Nek5000

parents 8e38697a 270a1101
Branches
No related tags found
No related merge requests found
......@@ -9,7 +9,7 @@ flexible way for scientists to describe the data in their code that may
need to be written, read, or processed outside of the running
simulation."""
toolchain = {'name': 'gompi', 'version': '2022a'}
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': False}
github_account = 'ornladios'
......
easyblock = 'CMakeMake'
name = 'Catalyst'
version = '2.0.0-rc3'
homepage = "https://gitlab.kitware.com/paraview/catalyst/"
description = """
Catalyst is an API specification developed for simulations
(and other scientific data producers)
to analyze and visualize data in situ.
"""
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = [('https://gitlab.kitware.com/paraview/catalyst/-/archive/v%(version)s/')]
sources = [('catalyst-v%(version)s.tar.gz')]
checksums = ['8862bd0a4d0be2176b4272f9affda1ea4e5092087acbb99a2fe2621c33834e05']
builddependencies = [
('CMake', '3.23.1'),
('pkgconf', '1.8.0'),
]
dependencies = []
separate_build_dir = True
# --- general settings --- #
configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON '
configopts += '-DCATALYST_BUILD_TOOLS=ON '
configopts += '-DCATALYST_USE_MPI=ON '
# postinstallcmds = []
sanity_check_paths = {
'files': ['lib/libcatalyst.so'],
'dirs': ['include/', 'lib'],
}
moduleclass = 'vis'
easyblock = 'PythonPackage'
name = 'h5py'
version = '3.7.0'
homepage = 'https://www.h5py.org/'
description = """HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library,
version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous
amounts of data."""
toolchain = {'name': 'gpsmpi', 'version': '2022a'}
toolchainopts = {'usempi': True}
sources = [SOURCE_TAR_GZ]
checksums = ['3fcf37884383c5da64846ab510190720027dca0768def34dd8dcb659dbe5cbf3']
builddependencies = [('pkgconfig', '1.5.5', '-python')]
dependencies = [
('Python', '3.10.4'),
('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')),
('HDF5', '1.12.2'),
('mpi4py', '3.1.4'),
]
use_pip = True
sanity_pip_check = True
download_dep_fail = True
# h5py's setup.py will disable setup_requires if H5PY_SETUP_REQUIRES is set to 0
# without this environment variable, pip will fetch the minimum numpy version h5py supports during install,
# even though SciPy-bundle provides a newer version that satisfies h5py's install_requires dependency.
preinstallopts = 'HDF5_MPI=ON HDF5_DIR="$EBROOTHDF5" H5PY_SETUP_REQUIRES=0 '
moduleclass = 'data'
......@@ -9,7 +9,7 @@ OSPRay is an open source, scalable, and portable ray tracing engine for
high-performance, high-fidelity visualization on Intel® Architecture CPUs.
"""
toolchain = {'name': 'gpsmpi', 'version': '2022a'}
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/ospray/OSPRay/archive/']
......
easyblock = 'CMakeMake'
name = 'OSPRay'
version = '2.10.0'
homepage = 'http://www.ospray.org/'
description = """
OSPRay is an open source, scalable, and portable ray tracing engine for
high-performance, high-fidelity visualization on Intel® Architecture CPUs.
"""
toolchain = {'name': 'gpsmkl', 'version': '2022a'}
toolchainopts = {'pic': True}
source_urls = ['https://github.com/ospray/OSPRay/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['bd478284f48d2cb775fc41a2855a9d9f5ea16c861abda0f8dc94e02ea7189cb8']
builddependencies = [
('ispc', '1.18.1', '', SYSTEM),
('CMake', '3.23.1'),
('Doxygen', '1.9.4')
]
dependencies = [
('X11', '20220504'),
('OpenGL', '2022a'),
('freeglut', '3.4.0'),
('Qt5', '5.15.5'),
('tbb', '2021.5.0'),
('Embree', '3.13.5'),
('rkcommon', '1.10.0'),
('openvkl', '1.3.1'),
('OpenImageDenoise', '1.4.3', '', ('gcccoremkl', '11.3.0-2022.1.0')),
]
separate_build_dir = True
configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON '
configopts += '-DOSPRAY_INSTALL_DEPENDENCIES=OFF '
configopts += '-DCMAKE_BUILD_TYPE=Release '
configopts += '-DOSPRAY_BUILD_ISA=ALL '
configopts += '-Dembree_DIR=$EBROOTEMBREE/lib64/cmake/embree-3.13.5 '
configopts += '-DOSPRAY_ENABLE_APPS:BOOL=OFF '
configopts += '-DOSPRAY_MODULE_DENOISER:BOOL=ON '
configopts += '-DOSPRAY_MODULE_MPI:BOOL=True '
configopts += '-DOSPRAY_ENABLE_APPS:BOOL=OFF '
configopts += '-DOSPRAY_ENABLE_APPS_BENCHMARK:BOOL=OFF '
configopts += '-DOSPRAY_ENABLE_APPS_EXAMPLES:BOOL=OFF '
configopts += '-DOSPRAY_ENABLE_APPS_TUTORIALS:BOOL=OFF '
configopts += '-DOSPRAY_ENABLE_APPS_TESTING:BOOL=OFF '
sanity_check_paths = {
'dirs': ['include/ospray/',
'lib64/cmake/%(namelower)s-%(version)s', 'share/doc/OSPRay'],
'files': ['include/ospray/version.h',
'lib64/libospray.so',
'share/doc/OSPRay/README.md'],
}
modextrapaths = {'CMAKE_MODULE_PATH': ['lib64/cmake/ospray-%(version)s']}
moduleclass = 'vis'
easyblock = 'CMakeMake'
name = 'ParaView'
version = '5.11.0'
versionsuffix = '-EGL'
homepage = "http://www.paraview.org"
description = "Paraview is a scientific parallel visualizer."
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': True}
local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=Sources&downloadFile='
source_urls = [('http://www.paraview.org/paraview-downloads/%s' %
local_dwnlsfx_src)]
sources = [("ParaView-v%(version)s.tar.gz")]
patches = [
'cdireader_update_issue5715.patch',
'parflowreader_fix-nlohmann_merge6050.patch',
]
checksums = [
'68b1c6d15dd67ec442f964460c56212417e8af2a96763001f8548eb3cbc5ce87',
'064d6878409d9133ad56ce363503a000f7b4617d0c912fd81dd772994f6b5ac2', # cdireader patch
'eb8b6967782bb47e81df129b0d8e192bbf31f11f815d0f53d1c5b4e53da95fd6', # parflowreader patch
]
builddependencies = [
('CMake', '3.23.1'),
('git', '2.36.0', '-nodocs'),
('pkgconf', '1.8.0'),
]
dependencies = [
('Python', '3.10.4'),
('Boost', '1.79.0'),
('X11', '20220504'),
('bzip2', '1.0.8'),
('HDF5', '1.12.2'),
('ADIOS2', '2.8.3'),
('FFmpeg', '4.4.2'),
('Embree', '3.13.5'),
('OSPRay', '2.10.0'),
('libpng', '1.6.37'),
('expat', '2.4.8'),
('freetype', '2.12.1'),
('libjpeg-turbo', '2.1.3'),
('libxml2', '2.9.13'),
('LibTIFF', '4.3.0'),
('zlib', '1.2.12'),
('netCDF', '4.9.0'),
('netCDF-C++4', '4.3.1'),
('netCDF-Fortran', '4.6.0'),
('nlohmann_json', '3.10.5'), # for ParFlow plugin
('libcdi', '2.1.1', '', ('gcccoremkl', '11.3.0-2022.1.0')), # for CDI plugin
('mpi4py', '3.1.4'),
('double-conversion', '3.2.0'),
('Eigen', '3.4.0'),
('Qt5', '5.15.5'),
('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')),
('OpenGL', '2022a'),
('Catalyst', '2.0.0-rc3'),
('ParaViewData', '5.11.0'),
('VTKData', '9.2.5'),
]
separate_build_dir = True
# ensure we do not use a too advanced GL-version at config/build-time, which might not be available at run-time
preconfigopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && "
prebuildopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && "
########################################################################################
# check ParaView Superbuild options #
# https://gitlab.kitware.com/paraview/paraview-superbuild/tree/master #
# #
# check ParaView Spack options #
# https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/paraview/package.py
# #
# check ParaView Build documenation #
# https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md #
########################################################################################
local_buildsrc = '%(builddir)s/easybuild_obj'
local_installsrc = '%(installdir)s/debugsrc'
# --- general settings --- #
configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON '
configopts += '-DCMAKE_CXX_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_CXX_FLAGS" ' % (local_buildsrc, local_installsrc)
configopts += '-DCMAKE_C_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_C_FLAGS" ' % (local_buildsrc, local_installsrc)
configopts += '-DCMAKE_CXX_STANDARD=11 '
configopts += '-DPARAVIEW_BUILD_LEGACY_SILENT=ON '
# https://forum.openframeworks.cc/t/nvidia-drivers-pthreads-and-segfaults/2524
# configopts += '-DCMAKE_CXX_FLAGS="-lpthread $CMAKE_CXX_FLAGS" '
# configopts += '-DCMAKE_C_FLAGS="-lpthread $CMAKE_C_FLAGS" '
configopts += '-DPARAVIEW_BUILD_EDITION=CANONICAL '
configopts += '-DPARAVIEW_BUILD_WITH_KITS=OFF '
configopts += '-DPARAVIEW_USE_QT=OFF '
# --- tuning --- #
# better disable for now: https://discourse.paraview.org/t/array-dispatch-issues/10328
# configopts += '-DVTK_BUILD_SCALED_SOA_ARRAYS=OFF '
# configopts += '-DVTK_DISPATCH_SOA_ARRAYS=OFF '
# configopts += '-DVTK_DISPATCH_TYPED_ARRAYS=OFF '
# --- web --- #
configopts += '-DPARAVIEW_ENABLE_WEB=ON '
configopts += '-DPARAVIEW_USE_QTWEBENGINE=ON '
configopts += '-DVTK_MODULE_ENABLE_ParaView_PVWebPython=YES '
# --- python --- #
configopts += '-DPARAVIEW_USE_PYTHON=ON '
configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python "
configopts += '-DVTK_PYTHON_VERSION=3 '
configopts += '-DVTK_NO_PYTHON_THREADS=OFF '
# visibility depends on VTK_NO_PYTHON_THREADS=OFF
configopts += '-DVTK_PYTHON_FULL_THREADSAFE=OFF '
# If you pass VTK_PYTHON_FULL_THREADSAFE to true, then each and every call to python will be protected with GIL,
# ensuring that you can have eg. other python interpreter in your application and still use python wrapping in vtk.
# --- VTKm --- #
configopts += '-DPARAVIEW_USE_VTKM=ON '
configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=YES '
configopts += '-DVTKm_Vectorization=AVX2 '
# configopts += '-DVTKm_ENABLE_KOKKOS=OFF '
# configopts += '-DVTKm_ENABLE_TBB=OFF '
# configopts += '-DVTKm_ENABLE_CUDA=ON '
# configopts += '-DVTKm_ENABLE_LOGGING=ON '
# --- parallel (on-node) --- #
# https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/
configopts += '-DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP '
configopts += '-DVTK_MAX_THREADS=64 '
configopts += '-DVTKm_ENABLE_OPENMP=ON '
# --- parallel (distributed) --- #
configopts += '-DMPIEXEC_MAX_NUMPROCS=24 '
configopts += '-DPARAVIEW_USE_MPI=ON '
configopts += '-DVTKm_ENABLE_MPI=ON '
# --- IO --- #
configopts += '-DXDMF_BUILD_MPI=ON '
configopts += '-DPARAVIEW_ENABLE_XDMF3=ON '
configopts += '-DPARAVIEW_ENABLE_ADIOS2=OFF ' # error: adios2.h not found
# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON ' # req. ADIOS1
# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON ' # req. ADIOS1
configopts += '-DVTKm_ENABLE_HDF5_IO=ON '
# --- large data --- #
configopts += '-DVTK_USE_64BIT_IDS=ON '
# --- rendering --- #
# OpenGL (hardware)
# https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html
# If VTK_OPENGL_HAS_EGL or VTK_OPENGL_HAS_OSMESA is ON, the build supports headless rendering,
# otherwise VTK_USE_X must be ON and the build does not support headless,
# but can still support offscreen rendering.
# If VTK_USE_X is OFF, then either VTK_OPENGL_HAS_OSMESA or VTK_OPENGL_HAS_EGL must be ON.
# Then the build does not support onscreen rendering, but only headless rendering.
# If PARAVIEW_BUILD_QT_GUI is ON and VTK_USE_X is ON, while ParaView command line tools won't link against
# or use X calls, Qt will and hence an accessible X server is still needed to run the desktop client.
# If VTK_OPENGL_HAS_OSMESA is ON, and VTK_USE_X is ON,
# then all the OpenGL and OSMesa variables should point to the Mesa libraries.
# Likewise, if VTK_OPENGL_HAS_EGL is ON and VTK_USE_X is ON, then all the OpenGL and EGL variables
# should point to the system libraries providing both, typically the NVidia libraries.
configopts += '-DOpenGL_GL_PREFERENCE=GLVND '
configopts += '-DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS=OFF '
configopts += "-DOPENGL_INCLUDE_DIR=${EBROOTOPENGL}/include "
configopts += "-DOPENGL_GLX_INCLUDE_DIR=${EBROOTOPENGL}/include "
configopts += "-DOPENGL_EGL_INCLUDE_DIR=${EBROOTOPENGL}/include "
# configopts += "-DOPENGL_xmesa_INCLUDE_DIR=IGNORE "
configopts += "-DOPENGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 "
configopts += "-DOPENGL_gl_LIBRARY=${EBROOTOPENGL}/lib/libGL.so "
configopts += "-DOPENGL_glx_LIBRARY=${EBROOTOPENGL}/lib/libGLX.so.0 "
configopts += "-DOPENGL_glu_LIBRARY=${EBROOTOPENGL}/lib/libGLU.so "
configopts += "-DOPENGL_egl_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 "
# OpenGL over X
# configopts += '-DVTK_USE_X=ON ' # OFF:headless rendering
# already considered by Qt (https://gitlab.kitware.com/lorensen/vtk/commit/b29f6db3f746d84f830c81e4212e48db192e4dbb)
# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=OFF '
# configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
# EGL (off-screen rendering with OpenGL, but without the need for X)
# call pvserver with –egl-device-index=0 or 1 and –disable-xdisplay-test
configopts += '-DVTK_OPENGL_HAS_EGL=ON '
# http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF '
configopts += '-DVTK_USE_X=OFF '
configopts += '-DVTK_DEFAULT_EGL_DEVICE_INDEX=0 '
# configopts += '-DEGL_INCLUDE_DIR=${EBROOTOPENGL}/include/EGL/ ' # https://www.khronos.org/registry/EGL/
# configopts += '-DEGL_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 '
# configopts += '-DEGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 '
# configopts += '-DEGL_gldispatch_LIBRARY=${EBROOTOPENGL}/lib/libGLdispatch.so.0 ' # <path_to_libGLdispatch.so.0>
# OSMesa (software)
# With OSMesa the DISPLAY variable has no meaning and is not needed
# When ON, implies that ParaView can use OSMesa to support headless modes of operation.
# configopts += '-DVTK_OPENGL_HAS_OSMESA=ON ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
# configopts += '-DVTK_USE_X=OFF '
# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON '
# configopts += '-DOSMESA_INCLUDE_DIR=${EBROOTOPENGL}/include '
# configopts += '-DOSMESA_LIBRARY=${EBROOTOPENGL}/lib/libOSMesa.so '
# Raytracing
configopts += '-DPARAVIEW_ENABLE_RAYTRACING=ON '
configopts += '-DVTK_ENABLE_OSPRAY=ON '
configopts += '-DVTK_ENABLE_VISRTX=OFF '
configopts += "-Dospray_DIR=${EBROOTOSPRAY} "
configopts += "-Dembree_DIR=${EBROOTEMBREE}/lib64/cmake/embree-3.13.5 "
configopts += '-DVTKOSPRAY_ENABLE_DENOISER=ON '
# configopts += '-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX=YES '
# --- extra features --- #
configopts += '-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON '
configopts += "-DFFMPEG_ROOT=$EBROOTFFMPEG "
configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON '
configopts += '-DVTK_MODULE_ENABLE_VTK_IOFFMPEG=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_IOVideo=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_DICOMParser=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSMP=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSelection=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTopology=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTexture=YES '
# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersStatisticsGnu=YES '
# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersMatlab=YES '
# --- coupling --- #
configopts += '-DPARAVIEW_ENABLE_CATALYST=ON '
configopts += '-DVTK_MODULE_ENABLE_ParaView_InSitu=YES '
# configopts += '-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst=ON '
configopts += '-Dcatalyst_DIR=${EBROOTCATALYST}/lib64/cmake/catalyst-2.0/ '
# --- development & testing --- #
configopts += '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON '
configopts += '-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF '
configopts += '-DPARAVIEW_ENABLE_EXAMPLES=OFF '
configopts += '-DPARAVIEW_BUILD_TESTING=OFF '
configopts += '-DPARAVIEW_BUILD_VTK_TESTING=OFF '
# --- external data --- #
# https://cmake.org/cmake/help/latest/module/ExternalData.html
# https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md
# configopts += '-DCTEST_TEST_TIMEOUT=10800 ' # unknown setting
# download inactivity, 0 = no timeout
configopts += '-DExternalData_TIMEOUT_INACTIVITY=10 '
# download abs. time, 0 = no timeout
configopts += '-DExternalData_TIMEOUT_ABSOLUTE=60 '
# Exclude test data download from default 'all' target.
configopts += '-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=ON '
# Local directory holding ExternalData objects in the layout %(algo)/%(hash).
configopts += '-DPARAVIEW_DATA_STORE=${EBROOTPARAVIEWDATA}/.ExternalData '
configopts += '-DVTK_DATA_STORE=${EBROOTVTKDATA}/.ExternalData '
# Local directory holding the real data files of ExternalData.
configopts += '-DExternalData_BINARY_ROOT=${EBROOTPARAVIEWDATA} '
# we need to combine VTK and ParaView's External data files as there can only be one ExternalData_BINARY_ROOT
# --- XDMF options --- #
configopts += '-DXDMF_USE_BZIP2=ON '
configopts += '-DXDMF_USE_GZIP=ON '
# --- VTK external libraries --- #
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON '
# --- ParaView Extra-Reader --- #
configopts += '-DPARAVIEW_PLUGIN_ENABLE_CDIReader=ON '
configopts += '-DPARAVIEW_PLUGIN_ENABLE_ParFlow=ON '
configopts += '-DPARAVIEW_ENABLE_MOTIONFX=ON '
# configopts += '-DPARAVIEW_ENABLE_FIDES=ON ' # req. ADIOS2 as dependency
# configopts += '-DPARAVIEW_ENABLE_GDAL=ON ' # req. GDAL as dependency
# configopts += '-DPARAVIEW_ENABLE_LAS=ON ' # req. LAS as dependency
# configopts += '-DPARAVIEW_ENABLE_PDAL=ON ' # req. PDAL as dependency
# configopts += '-DPARAVIEW_ENABLE_OPENVDB=ON ' # req. OpenVDB as dependency
# https://gitlab.kitware.com/paraview/visitbridge/-/blob/master/databases/CMakeLists.txt
configopts += '-DPARAVIEW_ENABLE_VISITBRIDGE=ON '
configopts += '-DVTK_MODULE_ENABLE_ParaView_IOVisItBridge=YES '
# configopts += '-DVISIT_BUILD_READER_Boxlib3D=ON ' # req. external dependency
# configopts += '-DVISIT_BUILD_READER_Mili=ON ' # req. external dependency
# configopts += '-DVISIT_BUILD_READER_Silo=ON ' # req. external dependency
# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7503
# configopts += '-DVISIT_BUILD_READER_Nek5000=ON ' # MR still open
postinstallcmds = [
'python -m compileall %(installdir)s/lib64/python%(pyshortver)s/site-packages/',
# 'cp -a %s %s' % (local_buildsrc, local_installsrc), # copy source from build dir to install dir
# '', # move debug info to separate files:
# http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target
# '', # debugedit -i --base-dir=%(builddir)s/ParaView-v%(version)s --dest-dir= %(installdir)s/src <file.debug>
# # change path to source in debug info
]
modextravars = {
'PARAVIEW_VTK_DIR': '%(installdir)s/lib64/cmake/paraview-%(version_major_minor)/vtk',
# 'CUDA_VISIBLE_DEVICES': '0,1',
# OpenSWR fully supports OpenGL 3.0 and most of 3.3, but ParaView requires 3.3 -> clame to fully support 3.3
'MESA_GL_VERSION_OVERRIDE': '3.3',
'MESA_GLSL_VERSION_OVERRIDE': '330',
# OpenMP will choose an optimum number of threads by default, which is usually the number of cores
# 'OMP_NUM_THREADS': '28', # fix number of threads used by paraview filters and parallel sections in the code
# threads used by ospray - details https://github.com/ospray/ospray/blob/release-2.0.x/ospray/api/Device.cpp#L88
# unset => OSPRAY uses all hardware threads
# 'OSPRAY_THREADS': '14', # OSPRay < 2.0
# 'OSPRAY_NUM_THREADS': '14', # OSPRay >= 2.0
# When TBB is used for OSPRAY: tbb::task_scheduler_init::default_num_threads() is default if no OSPRAY_NUM_THREADS
# https://github.com/ospray/ospcommon/blob/master/ospcommon/tasking/detail/tasking_system_init.cpp#L47
# https://www.threadingbuildingblocks.org/docs/doxygen/a00150.html
# more ospray definitions: https://www.ospray.org/documentation.html#environment-variables
# max. threads used by OpenSWR (limited by number of hardware threads)
'KNOB_MAX_WORKER_THREADS': '65535',
# details in https://gitlab.version.fz-juelich.de/vis/vis-software/issues/14
# more knob defs: https://github.com/mesa3d/mesa/blob/master/src/gallium/docs/source/drivers/openswr/knobs.rst
'CATALYST_IMPLEMENTATION_NAME': 'paraview',
'CATALYST_IMPLEMENTATION_PATHS': '%(installdir)s/lib64/catalyst',
# details in https://catalyst-in-situ.readthedocs.io/en/latest/for_simulation_developers.html#catalyst-initialize
}
modextrapaths = {
'PYTHONPATH': [
'lib64/python%(pyshortver)s/site-packages',
'lib64/python%(pyshortver)s/site-packages/vtkmodules' # required by Trilinos Catalyst adapter
],
}
moduleclass = 'vis'
easyblock = 'CMakeMake'
name = 'ParaView'
version = '5.11.0'
homepage = "http://www.paraview.org"
description = "Paraview is a scientific parallel visualizer."
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': True}
local_dwnlsfx_src = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=Sources&downloadFile='
source_urls = [('http://www.paraview.org/paraview-downloads/%s' %
local_dwnlsfx_src)]
sources = [("ParaView-v%(version)s.tar.gz")]
patches = [
'cdireader_update_issue5715.patch',
'parflowreader_fix-nlohmann_merge6050.patch',
]
checksums = [
'68b1c6d15dd67ec442f964460c56212417e8af2a96763001f8548eb3cbc5ce87',
'064d6878409d9133ad56ce363503a000f7b4617d0c912fd81dd772994f6b5ac2', # cdireader patch
'eb8b6967782bb47e81df129b0d8e192bbf31f11f815d0f53d1c5b4e53da95fd6', # parflowreader patch
]
builddependencies = [
('CMake', '3.23.1'),
('git', '2.36.0', '-nodocs'),
('pkgconf', '1.8.0'),
]
dependencies = [
('Python', '3.10.4'),
('Boost', '1.79.0'),
('X11', '20220504'),
('bzip2', '1.0.8'),
('HDF5', '1.12.2'),
('ADIOS2', '2.8.3'),
('FFmpeg', '4.4.2'),
('Embree', '3.13.5'),
('OSPRay', '2.10.0'),
('libpng', '1.6.37'),
('expat', '2.4.8'),
('freetype', '2.12.1'),
('libjpeg-turbo', '2.1.3'),
('libxml2', '2.9.13'),
('LibTIFF', '4.3.0'),
('zlib', '1.2.12'),
('netCDF', '4.9.0'),
('netCDF-C++4', '4.3.1'),
('netCDF-Fortran', '4.6.0'),
('nlohmann_json', '3.10.5'), # for ParFlow plugin
('libcdi', '2.1.1', '', ('gcccoremkl', '11.3.0-2022.1.0')), # for CDI plugin
('mpi4py', '3.1.4'),
('double-conversion', '3.2.0'),
('Eigen', '3.4.0'),
('Qt5', '5.15.5'),
('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')),
('OpenGL', '2022a'),
('Catalyst', '2.0.0-rc3'),
('ParaViewData', '5.11.0'),
('VTKData', '9.2.5'),
]
separate_build_dir = True
# ensure we do not use a too advanced GL-version at config/build-time, which might not be available at run-time
preconfigopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && "
prebuildopts = "export __EGL_VENDOR_LIBRARY_FILENAMES=${EBROOTOPENGL}/share/glvnd/egl_vendor.d/50_mesa.json && "
########################################################################################
# check ParaView Superbuild options #
# https://gitlab.kitware.com/paraview/paraview-superbuild/tree/master #
# #
# check ParaView Spack options #
# https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/paraview/package.py
# #
# check ParaView Build documenation #
# https://gitlab.kitware.com/paraview/paraview/blob/master/Documentation/dev/build.md #
########################################################################################
local_buildsrc = '%(builddir)s/easybuild_obj'
local_installsrc = '%(installdir)s/debugsrc'
# --- general settings --- #
configopts = '-DCMAKE_VERBOSE_MAKEFILE=ON '
configopts += '-DCMAKE_CXX_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_CXX_FLAGS" ' % (local_buildsrc, local_installsrc)
configopts += '-DCMAKE_C_FLAGS="-fdebug-prefix-map=%s=%s $CMAKE_C_FLAGS" ' % (local_buildsrc, local_installsrc)
configopts += '-DCMAKE_CXX_STANDARD=11 '
configopts += '-DPARAVIEW_BUILD_LEGACY_SILENT=ON '
# https://forum.openframeworks.cc/t/nvidia-drivers-pthreads-and-segfaults/2524
# configopts += '-DCMAKE_CXX_FLAGS="-lpthread $CMAKE_CXX_FLAGS" '
# configopts += '-DCMAKE_C_FLAGS="-lpthread $CMAKE_C_FLAGS" '
configopts += '-DPARAVIEW_BUILD_EDITION=CANONICAL '
configopts += '-DPARAVIEW_BUILD_WITH_KITS=OFF '
configopts += '-DPARAVIEW_USE_QT=ON '
# --- tuning --- #
# better disable for now: https://discourse.paraview.org/t/array-dispatch-issues/10328
# configopts += '-DVTK_BUILD_SCALED_SOA_ARRAYS=OFF '
# configopts += '-DVTK_DISPATCH_SOA_ARRAYS=OFF '
# configopts += '-DVTK_DISPATCH_TYPED_ARRAYS=OFF '
# --- web --- #
configopts += '-DPARAVIEW_ENABLE_WEB=ON '
configopts += '-DPARAVIEW_USE_QTWEBENGINE=ON '
configopts += '-DVTK_MODULE_ENABLE_ParaView_PVWebPython=YES '
# --- python --- #
configopts += '-DPARAVIEW_USE_PYTHON=ON '
configopts += "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python "
configopts += '-DVTK_PYTHON_VERSION=3 '
configopts += '-DVTK_NO_PYTHON_THREADS=OFF '
# visibility depends on VTK_NO_PYTHON_THREADS=OFF
configopts += '-DVTK_PYTHON_FULL_THREADSAFE=OFF '
# If you pass VTK_PYTHON_FULL_THREADSAFE to true, then each and every call to python will be protected with GIL,
# ensuring that you can have eg. other python interpreter in your application and still use python wrapping in vtk.
# --- VTKm --- #
configopts += '-DPARAVIEW_USE_VTKM=ON '
configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters=YES '
configopts += '-DVTKm_Vectorization=AVX2 '
# configopts += '-DVTKm_ENABLE_KOKKOS=OFF '
# configopts += '-DVTKm_ENABLE_TBB=OFF '
# configopts += '-DVTKm_ENABLE_CUDA=ON '
# configopts += '-DVTKm_ENABLE_LOGGING=ON '
# --- parallel (on-node) --- #
# https://blog.kitware.com/simple-parallel-computing-with-vtksmptools-2/
configopts += '-DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP '
configopts += '-DVTK_MAX_THREADS=64 '
configopts += '-DVTKm_ENABLE_OPENMP=ON '
# --- parallel (distributed) --- #
configopts += '-DMPIEXEC_MAX_NUMPROCS=24 '
configopts += '-DPARAVIEW_USE_MPI=ON '
configopts += '-DVTKm_ENABLE_MPI=ON '
# --- IO --- #
configopts += '-DXDMF_BUILD_MPI=ON '
configopts += '-DPARAVIEW_ENABLE_XDMF3=ON '
configopts += '-DPARAVIEW_ENABLE_ADIOS2=OFF ' # error: adios2.h not found
# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON ' # req. ADIOS1
# configopts += '-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON ' # req. ADIOS1
configopts += '-DVTKm_ENABLE_HDF5_IO=ON '
# --- large data --- #
configopts += '-DVTK_USE_64BIT_IDS=ON '
# --- rendering --- #
# OpenGL (hardware)
# https://kitware.github.io/paraview-docs/latest/cxx/Offscreen.html
# If VTK_OPENGL_HAS_EGL or VTK_OPENGL_HAS_OSMESA is ON, the build supports headless rendering,
# otherwise VTK_USE_X must be ON and the build does not support headless,
# but can still support offscreen rendering.
# If VTK_USE_X is OFF, then either VTK_OPENGL_HAS_OSMESA or VTK_OPENGL_HAS_EGL must be ON.
# Then the build does not support onscreen rendering, but only headless rendering.
# If PARAVIEW_BUILD_QT_GUI is ON and VTK_USE_X is ON, while ParaView command line tools won't link against
# or use X calls, Qt will and hence an accessible X server is still needed to run the desktop client.
# If VTK_OPENGL_HAS_OSMESA is ON, and VTK_USE_X is ON,
# then all the OpenGL and OSMesa variables should point to the Mesa libraries.
# Likewise, if VTK_OPENGL_HAS_EGL is ON and VTK_USE_X is ON, then all the OpenGL and EGL variables
# should point to the system libraries providing both, typically the NVidia libraries.
configopts += '-DOpenGL_GL_PREFERENCE=GLVND '
configopts += '-DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS=OFF '
configopts += "-DOPENGL_INCLUDE_DIR=${EBROOTOPENGL}/include "
configopts += "-DOPENGL_GLX_INCLUDE_DIR=${EBROOTOPENGL}/include "
configopts += "-DOPENGL_EGL_INCLUDE_DIR=${EBROOTOPENGL}/include "
# configopts += "-DOPENGL_xmesa_INCLUDE_DIR=IGNORE "
configopts += "-DOPENGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 "
configopts += "-DOPENGL_gl_LIBRARY=${EBROOTOPENGL}/lib/libGL.so "
configopts += "-DOPENGL_glx_LIBRARY=${EBROOTOPENGL}/lib/libGLX.so.0 "
configopts += "-DOPENGL_glu_LIBRARY=${EBROOTOPENGL}/lib/libGLU.so "
configopts += "-DOPENGL_egl_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 "
# OpenGL over X
configopts += '-DVTK_USE_X=ON ' # OFF:headless rendering
# already considered by Qt (https://gitlab.kitware.com/lorensen/vtk/commit/b29f6db3f746d84f830c81e4212e48db192e4dbb)
configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=OFF '
# http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF '
# EGL (off-screen rendering with OpenGL, but without the need for X)
# call pvserver with –egl-device-index=0 or 1 and –disable-xdisplay-test
# configopts += '-DVTK_OPENGL_HAS_EGL=ON '
# configopts += '-DVTK_OPENGL_HAS_OSMESA=OFF ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
# configopts += '-DVTK_USE_X=OFF '
# configopts += '-DVTK_DEFAULT_EGL_DEVICE_INDEX=0 '
# #configopts += '-DEGL_INCLUDE_DIR=${EBROOTOPENGL}/include/EGL/ ' # https://www.khronos.org/registry/EGL/
# #configopts += '-DEGL_LIBRARY=${EBROOTOPENGL}/lib/libEGL.so.1 '
# #configopts += '-DEGL_opengl_LIBRARY=${EBROOTOPENGL}/lib/libOpenGL.so.0 '
# #configopts += '-DEGL_gldispatch_LIBRARY=${EBROOTOPENGL}/lib/libGLdispatch.so.0 ' # <path_to_libGLdispatch.so.0>
# OSMesa (software)
# With OSMesa the DISPLAY variable has no meaning and is not needed
# When ON, implies that ParaView can use OSMesa to support headless modes of operation.
# configopts += '-DVTK_OPENGL_HAS_OSMESA=ON ' # http://www.paraview.org/Wiki/ParaView_And_Mesa_3D
# configopts += '-DVTK_USE_X=OFF '
# configopts += '-DVTK_DEFAULT_RENDER_WINDOW_OFFSCREEN=ON '
# configopts += '-DOSMESA_INCLUDE_DIR=${EBROOTOPENGL}/include '
# configopts += '-DOSMESA_LIBRARY=${EBROOTOPENGL}/lib/libOSMesa.so '
# Raytracing
configopts += '-DPARAVIEW_ENABLE_RAYTRACING=ON '
configopts += '-DVTK_ENABLE_OSPRAY=ON '
configopts += '-DVTK_ENABLE_VISRTX=OFF '
configopts += "-Dospray_DIR=${EBROOTOSPRAY} "
configopts += "-Dembree_DIR=${EBROOTEMBREE}/lib64/cmake/embree-3.13.5 "
configopts += '-DVTKOSPRAY_ENABLE_DENOISER=ON '
# configopts += '-DPARAVIEW_PLUGIN_ENABLE_pvNVIDIAIndeX=YES '
# --- extra features --- #
configopts += '-DPARAVIEW_PLUGIN_ENABLE_GeographicalMap=ON '
configopts += "-DFFMPEG_ROOT=$EBROOTFFMPEG "
configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON '
configopts += '-DVTK_MODULE_ENABLE_VTK_IOFFMPEG=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_IOVideo=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_DICOMParser=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSMP=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersSelection=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTopology=YES '
configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersTexture=YES '
# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersStatisticsGnu=YES '
# configopts += '-DVTK_MODULE_ENABLE_VTK_FiltersMatlab=YES '
# --- coupling --- #
configopts += '-DPARAVIEW_ENABLE_CATALYST=ON '
configopts += '-DVTK_MODULE_ENABLE_ParaView_InSitu=YES '
# configopts += '-DVTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst=ON '
configopts += '-Dcatalyst_DIR=${EBROOTCATALYST}/lib64/cmake/catalyst-2.0/ '
# --- development & testing --- #
configopts += '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON '
configopts += '-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF '
configopts += '-DPARAVIEW_ENABLE_EXAMPLES=OFF '
configopts += '-DPARAVIEW_BUILD_TESTING=OFF '
configopts += '-DPARAVIEW_BUILD_VTK_TESTING=OFF '
# --- external data --- #
# https://cmake.org/cmake/help/latest/module/ExternalData.html
# https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md
# configopts += '-DCTEST_TEST_TIMEOUT=10800 ' # unknown setting
# download inactivity, 0 = no timeout
configopts += '-DExternalData_TIMEOUT_INACTIVITY=10 '
# download abs. time, 0 = no timeout
configopts += '-DExternalData_TIMEOUT_ABSOLUTE=60 '
# Exclude test data download from default 'all' target.
configopts += '-DPARAVIEW_DATA_EXCLUDE_FROM_ALL=ON '
# Local directory holding ExternalData objects in the layout %(algo)/%(hash).
configopts += '-DPARAVIEW_DATA_STORE=${EBROOTPARAVIEWDATA}/.ExternalData '
configopts += '-DVTK_DATA_STORE=${EBROOTVTKDATA}/.ExternalData '
# Local directory holding the real data files of ExternalData.
configopts += '-DExternalData_BINARY_ROOT=${EBROOTPARAVIEWDATA} '
# we need to combine VTK and ParaView's External data files as there can only be one ExternalData_BINARY_ROOT
# --- XDMF options --- #
configopts += '-DXDMF_USE_BZIP2=ON '
configopts += '-DXDMF_USE_GZIP=ON '
# --- VTK external libraries --- #
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON '
configopts += '-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON '
# --- ParaView Extra-Reader --- #
configopts += '-DPARAVIEW_PLUGIN_ENABLE_CDIReader=ON '
configopts += '-DPARAVIEW_PLUGIN_ENABLE_ParFlow=ON '
configopts += '-DPARAVIEW_ENABLE_MOTIONFX=ON '
# configopts += '-DPARAVIEW_ENABLE_FIDES=ON ' # req. ADIOS2 as dependency
# configopts += '-DPARAVIEW_ENABLE_GDAL=ON ' # req. GDAL as dependency
# configopts += '-DPARAVIEW_ENABLE_LAS=ON ' # req. LAS as dependency
# configopts += '-DPARAVIEW_ENABLE_PDAL=ON ' # req. PDAL as dependency
# configopts += '-DPARAVIEW_ENABLE_OPENVDB=ON ' # req. OpenVDB as dependency
# https://gitlab.kitware.com/paraview/visitbridge/-/blob/master/databases/CMakeLists.txt
configopts += '-DPARAVIEW_ENABLE_VISITBRIDGE=ON '
configopts += '-DVTK_MODULE_ENABLE_ParaView_IOVisItBridge=YES '
# configopts += '-DVISIT_BUILD_READER_Boxlib3D=ON ' # req. external dependency
# configopts += '-DVISIT_BUILD_READER_Mili=ON ' # req. external dependency
# configopts += '-DVISIT_BUILD_READER_Silo=ON ' # req. external dependency
# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7503
# configopts += '-DVISIT_BUILD_READER_Nek5000=ON ' # MR still open
postinstallcmds = [
'python -m compileall %(installdir)s/lib64/python%(pyshortver)s/site-packages/',
# 'cp -a %s %s' % (local_buildsrc, local_installsrc), # copy source from build dir to install dir
# '', # move debug info to separate files:
# http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target
# '', # debugedit -i --base-dir=%(builddir)s/ParaView-v%(version)s --dest-dir= %(installdir)s/src <file.debug>
# # change path to source in debug info
]
modextravars = {
'PARAVIEW_VTK_DIR': '%(installdir)s/lib64/cmake/paraview-%(version_major_minor)/vtk',
# 'CUDA_VISIBLE_DEVICES': '0,1',
# OpenSWR fully supports OpenGL 3.0 and most of 3.3, but ParaView requires 3.3 -> clame to fully support 3.3
'MESA_GL_VERSION_OVERRIDE': '3.3',
'MESA_GLSL_VERSION_OVERRIDE': '330',
# OpenMP will choose an optimum number of threads by default, which is usually the number of cores
# 'OMP_NUM_THREADS': '28', # fix number of threads used by paraview filters and parallel sections in the code
# threads used by ospray - details https://github.com/ospray/ospray/blob/release-2.0.x/ospray/api/Device.cpp#L88
# unset => OSPRAY uses all hardware threads
# 'OSPRAY_THREADS': '14', # OSPRay < 2.0
# 'OSPRAY_NUM_THREADS': '14', # OSPRay >= 2.0
# When TBB is used for OSPRAY: tbb::task_scheduler_init::default_num_threads() is default if no OSPRAY_NUM_THREADS
# https://github.com/ospray/ospcommon/blob/master/ospcommon/tasking/detail/tasking_system_init.cpp#L47
# https://www.threadingbuildingblocks.org/docs/doxygen/a00150.html
# more ospray definitions: https://www.ospray.org/documentation.html#environment-variables
# max. threads used by OpenSWR (limited by number of hardware threads)
'KNOB_MAX_WORKER_THREADS': '65535',
# details in https://gitlab.version.fz-juelich.de/vis/vis-software/issues/14
# more knob defs: https://github.com/mesa3d/mesa/blob/master/src/gallium/docs/source/drivers/openswr/knobs.rst
'CATALYST_IMPLEMENTATION_NAME': 'paraview',
'CATALYST_IMPLEMENTATION_PATHS': '%(installdir)s/lib64/catalyst',
# details in https://catalyst-in-situ.readthedocs.io/en/latest/for_simulation_developers.html#catalyst-initialize
}
modextrapaths = {
'PYTHONPATH': [
'lib64/python%(pyshortver)s/site-packages',
'lib64/python%(pyshortver)s/site-packages/vtkmodules' # required by Trilinos Catalyst adapter
],
}
moduleclass = 'vis'
easyblock = 'PythonBundle'
name = 'Qiskit'
version = '0.41.0'
homepage = 'https://qiskit.org'
description = """Qiskit is an open-source framework for working with noisy quantum computers
at the level of pulses, circuits, and algorithms."""
toolchain = {'name': 'gpsmkl', 'version': '2022a'}
toolchainopts = {'pic': True}
builddependencies = [
('binutils', '2.38'),
('CMake', '3.23.1'),
('Ninja', '1.10.2'),
('pkgconf', '1.8.0'),
('pybind11', '2.9.2'), # for aer
('Rust', '1.60.0'), # for retworkx
]
dependencies = [
('Python', '3.10.4'),
('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')),
('scikit-build', '0.15.0'), # for aer
('scikit-learn', '1.1.2', '', ('gcccoremkl', '11.3.0-2022.1.0')),
('CVXOPT', '1.3.0'),
('h5py', '3.7.0'),
('PySCF', '2.1.1'),
('SymEngine-python', '0.9.2', '', ('GCC', '11.3.0')),
('numba', '0.56.4', '-CUDA-11.7', ('gcccoremkl', '11.3.0-2022.1.0')),
('nlohmann_json', '3.10.5'), # for qiskit-aer
('spdlog', '1.11.0'),
('muparserx', '4.0.11'), # for qiskit-aer
('networkx', '2.8.4', '', ('gcccoremkl', '11.3.0-2022.1.0')),
]
local_common_opts = {
'req_py_majver': '3',
'req_py_minver': '0'
}
# qiskit-aer must not use CONAN to install dependencies
modextravars = {'DISABLE_CONAN': 'YES'}
exts_default_options = {
'source_urls': [PYPI_SOURCE],
'use_pip': True,
# DISABLED: because 'pip check' does not find pyscf (not installed with pip)
'sanity_pip_check': True,
'download_dep_fail': True,
'use_pip_for_deps': False,
}
exts_list = [
('dill', '0.3.5.1', {
'checksums': ['d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86'],
}),
('ntlm-auth', '1.5.0', {
'checksums': ['c9667d361dc09f6b3750283d503c689070ff7d89f2f6ff0d38088d5436ff8543'],
}),
('retworkx', '0.11.0', {
'checksums': ['a4c2a5ad3f8402493d41ad20ad91a03777ea214a3636c290272bbfaf36161161'],
}),
('stevedore', '4.1.1', {
'checksums': ['7f8aeb6e3f90f96832c301bff21a7eb5eefbe894c88c506483d355565d88cc1a'],
}),
('rustworkx', '0.12.1', {
'checksums': ['13a19a2f64dff086b3bffffb294c4630100ecbc13634b4995d9d36a481ae130e'],
}),
('websockets', '10.4', {
'checksums': ['eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3'],
}),
('websocket-client', '1.3.3', {
'checksums': ['d58c5f284d6a9bf8379dab423259fe8f85b70d5fa5d2916d5791a84594b122b1'],
'modulename': False,
}),
('requests_ntlm', '1.1.0', {
'checksums': ['9189c92e8c61ae91402a64b972c4802b2457ce6a799d658256ebf084d5c7eb71'],
}),
('fastdtw', '0.3.4', {
'checksums': ['2350fa6ec36bcad186eaf81f46eff35181baf04e324f522de8aeb43d0243f64f'],
}),
('inflection', '0.5.1', {
'checksums': ['1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417'],
}),
('beautifulsoup4', '4.11.1', {
'checksums': ['ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693'],
'modulename': 'bs4',
}),
('pytz', '2022.7.1', {
'checksums': ['01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0'],
}),
('multitasking', '0.0.11', {
'checksums': ['4d6bc3cc65f9b2dca72fb5a787850a88dae8f620c2b36ae9b55248e51bcd6026'],
}),
('frozendict', '2.3.4', {
'checksums': ['15b4b18346259392b0d27598f240e9390fafbff882137a9c48a1e0104fb17f78'],
}),
('Nasdaq_Data_Link', '1.0.4', {
'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
'checksums': ['214a620551da1c7521476839fb96f932234d4d78e7ba44310722709ca37b0691'],
'modulename': False,
}),
('docplex', '2.25.236', {
'checksums': ['256914b4c0113a4e1c78f32ea20c7d76dc8efe286fe890270e75cfad50fe510f'],
}),
('yfinance', '0.2.9', {
'checksums': ['449f9d54ff7868bdbb2d25b628a97d21fdd05e293a0f9975bba7aaa9984d08e6'],
}),
('qiskit-nature', '0.5.2', {
'modulename': 'qiskit_nature',
'checksums': ['1786e1e825c450ae0ae4971246b0ca717bc5285696c3d342313f5cb125ce4202'],
}),
('qiskit-optimization', '0.5.0', {
'modulename': 'qiskit_optimization',
'checksums': ['4804831e590a7159c2bd2be71750cde0c95a3b06e14a4843346e2ebcc7231e01'],
}),
('qiskit-finance', '0.3.4', {
'modulename': 'qiskit_finance',
'checksums': ['b22fc7e0f23837ee659d1dbe974f3d69ec0d291e51486a2ad81dcf17b4ad8a4f'],
}),
('qiskit-machine-learning', '0.5.0', {
'modulename': 'qiskit_machine_learning',
'checksums': ['c332e9d3ea658b2d24b401e5264b239f1093378952a70ba46c73a69a3ce7c727'],
}),
('qiskit-terra', '0.23.1', {
'modulename': 'qiskit.qobj',
'patches': ['qiskit-terra-0.18.3_fix-qiskit-version-env.patch'],
'checksums': [
{'qiskit-terra-0.23.1.tar.gz': '71dfb4510b2f1fdb7589b412e8304d928534fa2eece66a65b3f841baf5412afb'},
{'qiskit-terra-0.18.3_fix-qiskit-version-env.patch':
'1296cc650a7d4d2d908a6a5de6b4ce52106748464a54d47744a4648494f4c24e'},
],
}),
('qiskit-ignis', '0.7.1', {
'modulename': 'qiskit.ignis',
'checksums': ['71efb17933717c0b8161a291ebd4f8d4fe8d7dfd1fdc66fa23a0b6d14fd10cf3'],
}),
('qiskit-aer', '0.11.2', {
'modulename': 'qiskit.providers.aer',
'checksums': ['1bc1d3b46f7fc8976084a900cb9a2a80e8b25df6e59a88fd11136f24e1297fc1'],
}),
('qiskit-ibmq-provider', '0.20.0', {
'modulename': 'qiskit.providers.ibmq',
'checksums': ['758938ce13a09f53ada9f4852891d7ca7ba98fddab6b9850417bbcb0efc26c2e'],
}),
('qiskit', version, {
'checksums': ['fa613d0312061a654b9b69e21374bac2dc04bb6df872b52370975d6dd51d7d81'],
}),
]
moduleclass = 'quantum'
easyblock = 'CMakeMake'
name = 'VTK'
version = '9.2.5'
homepage = 'http://www.vtk.org'
description = """The Visualization Toolkit (VTK) is an open-source, freely available software system for
3D computer graphics, image processing and visualization. VTK consists of a C++ class library and several
interpreted interface layers including Tcl/Tk, Java, and Python. VTK supports a wide variety of visualization
algorithms including: scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques
such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation."""
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s']
sources = [
SOURCE_TAR_GZ,
'%(name)sData-%(version)s.tar.gz',
]
patches = [('vtk-version.egg-info', '.')]
checksums = [
'128d601baa980e98ee034207974b33fb38d2c98ab9cf4a5756efdb09ed6c0949', # VTK-9.2.5.tar.gz
'8a812f96346b3a38ff0fc3b1a1a372f3727a71ebf450c02d659a75dbe1113515', # VTKData-9.2.5.tar.gz
'787b82415ae7a4a1f815b4db0e25f7abc809a05fc85d7d219627f3a7e5d3867b', # vtk-version.egg-info
]
builddependencies = [
('CMake', '3.23.1'),
]
dependencies = [
('Python', '3.10.4'),
('HDF5', '1.12.2',),
('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')),
('mpi4py', '3.1.4'),
('libxc', '5.2.3'),
('netCDF', '4.9.0',),
('X11', '20220504'),
('OpenGL', '2022a'),
]
separate_build_dir = True
configopts = "-DCMAKE_INSTALL_LIBDIR=lib "
configopts += "-DVTK_USE_SYSTEM_MPI4PY=ON "
configopts += "-DVTK_USE_SYSTEM_LZMA=ON "
configopts += "-DVTK_USE_SYSTEM_HDF5=ON "
configopts += "-DVTK_USE_SYSTEM_NETCDF=ON "
configopts += "-DBUILD_SHARED_LIBS=ON "
configopts += "-DBUILD_TESTING=OFF "
configopts += "-DVTK_USE_MPI=ON "
configopts += "-DVTK_SMP_IMPLEMENTATION_TYPE=OPENMP "
configopts += "-DVTK_Group_MPI:BOOL=ON "
configopts += "-DVTK_Group_Web:BOOL=ON "
configopts += '-DOpenGL_GL_PREFERENCE=GLVND ' # "GLVND" or "LEGACY"
configopts += "-DOPENGL_EGL_INCLUDE_DIR=$EBROOTOPENGL/include "
configopts += "-DOPENGL_GLX_INCLUDE_DIR=$EBROOTOPENGL/include "
configopts += "-DOPENGL_INCLUDE_DIR=$EBROOTOPENGL/include "
configopts += "-DOPENGL_egl_LIBRARY=$EBROOTOPENGL/lib/libEGL.so.1 "
configopts += "-DOPENGL_glx_LIBRARY=$EBROOTOPENGL/lib/libGLX.so.0 "
configopts += "-DOPENGL_opengl_LIBRARY=$EBROOTOPENGL/lib/libOpenGL.so.0 "
configopts += "-DOPENGL_glu_LIBRARY=$EBROOTOPENGL/lib/libGLU.so "
configopts += "-DVTK_WRAP_PYTHON=ON "
configopts += "-DVTK_PYTHON_OPTIONAL_LINK=OFF "
configopts += "-DPYTHON_EXECUTABLE:PATH=$EBROOTPYTHON/bin/python%(pyshortver)s "
configopts += "-DPYTHON_INCLUDE_DIR:PATH=$EBROOTPYTHON/include/python%(pyshortver)s "
configopts += "-DPYTHON_LIBRARY:PATH=$EBROOTPYTHON/lib/libpython%%(pyshortver)s.%s " % SHLIB_EXT
configopts += "-DHDF5_INCLUDE_DIRS=$EBROOTHDF5/include "
configopts += "-DModule_vtkAcceleratorsVTKm:BOOL=ON "
# configopts += "-DModule_vtkDomainsMicroscopy:BOOL=OFF "
# configopts += "-DModule_vtkDomainsParallelChemistry:BOOL=OFF "
# configopts += "-DModule_vtkFiltersOpenTurns:BOOL=OFF "
# configopts += "-DModule_vtkFiltersParallelDIY2:BOOL=OFF "
# configopts += "-DModule_vtkFiltersParallelFlowPaths:BOOL=OFF "
configopts += "-DModule_vtkFiltersParallelGeometry:BOOL=ON "
configopts += "-DModule_vtkFiltersParallelMPI:BOOL=ON "
configopts += "-DModule_vtkFiltersParallelStatistics:BOOL=ON "
# configopts += "-DModule_vtkFiltersParallelVerdict:BOOL=OFF "
# configopts += "-DModule_vtkFiltersReebGraph:BOOL=OFF "
# configopts += "-DModule_vtkGUISupportQt:BOOL=OFF "
# configopts += "-DModule_vtkGUISupportQtOpenGL:BOOL=OFF "
# configopts += "-DModule_vtkGUISupportQtSQL:BOOL=OFF "
# configopts += "-DModule_vtkGUISupportQtWebkit:BOOL=OFF "
# configopts += "-DModule_vtkGeovisGDAL:BOOL=OFF "
# configopts += "-DModule_vtkIOADIOS:BOOL=OFF "
# configopts += "-DModule_vtkIOFFMPEG:BOOL=OFF "
# configopts += "-DModule_vtkIOGDAL:BOOL=OFF "
# configopts += "-DModule_vtkIOGeoJSON:BOOL=OFF "
# configopts += "-DModule_vtkIOLAS:BOOL=OFF "
# configopts += "-DModule_vtkIOMPIImage:BOOL=ON "
# configopts += "-DModule_vtkIOMPIParallel:BOOL=ON "
# configopts += "-DModule_vtkIOMotionFX:BOOL=OFF "
# configopts += "-DModule_vtkIOMySQL:BOOL=OFF "
# configopts += "-DModule_vtkIOODBC:BOOL=OFF "
# configopts += "-DModule_vtkIOPDAL:BOOL=OFF "
# configopts += "-DModule_vtkIOParallelExodus:BOOL=OFF "
# configopts += "-DModule_vtkIOParallelLSDyna:BOOL=OFF "
# configopts += "-DModule_vtkIOParallelNetCDF:BOOL=OFF "
# configopts += "-DModule_vtkIOParallelXdmf3:BOOL=OFF "
# configopts += "-DModule_vtkIOPostgreSQL:BOOL=OFF "
# configopts += "-DModule_vtkIOTRUCHAS:BOOL=OFF "
# configopts += "-DModule_vtkIOVPIC:BOOL=OFF "
# configopts += "-DModule_vtkIOXdmf2:BOOL=OFF "
# configopts += "-DModule_vtkIOXdmf3:BOOL=OFF "
# configopts += "-DModule_vtkImagingOpenGL2:BOOL=OFF "
# configopts += "-DModule_vtkInfovisBoost:BOOL=OFF "
# configopts += "-DModule_vtkInfovisBoostGraphAlg:BOOL=OFF
configopts += "-DModule_vtkParallelMPI:BOOL=ON "
configopts += "-DModule_vtkPython:BOOL=ON "
# configopts += "-DModule_vtkPythonInterpreter:BOOL=OFF "
# configopts += "-DModule_vtkRenderingExternal:BOOL=OFF "
# configopts += "-DModule_vtkRenderingFreeTypeFontConfig:BOOL=OFF "
# configopts += "-DModule_vtkRenderingLICOpenGL2:BOOL=OFF "
# configopts += "-DModule_vtkRenderingMatplotlib:BOOL=OFF "
# configopts += "-DModule_vtkRenderingOSPRay:BOOL=OFF "
# configopts += "-DModule_vtkRenderingOpenVR:BOOL=OFF "
# configopts += "-DModule_vtkRenderingOptiX:BOOL=OFF "
configopts += "-DModule_vtkRenderingParallel:BOOL=ON "
configopts += "-DModule_vtkRenderingParallelLIC:BOOL=ON "
# configopts += "-DModule_vtkRenderingQt:BOOL=OFF "
# configopts += "-DModule_vtkRenderingSceneGraph:BOOL=OFF "
# configopts += "-DModule_vtkRenderingTk:BOOL=OFF "
# configopts += "-DModule_vtkRenderingVolumeAMR:BOOL=OFF "
# configopts += "-DModule_vtkTclTk:BOOL=OFF "
# configopts += "-DModule_vtkTestingCore:BOOL=OFF "
# configopts += "-DModule_vtkTestingGenericBridge:BOOL=OFF "
# configopts += "-DModule_vtkTestingIOSQL:BOOL=OFF "
# configopts += "-DModule_vtkTestingRendering:BOOL=OFF "
# configopts += "-DModule_vtkUtilitiesBenchmarks:BOOL=OFF "
# configopts += "-DModule_vtkUtilitiesEncodeString:BOOL=OFF "
# configopts += "-DModule_vtkVPIC:BOOL=OFF "
configopts += "-DModule_vtkVTKm:BOOL=ON "
# configopts += "-DModule_vtkViewsGeovis:BOOL=OFF "
# configopts += "-DModule_vtkViewsQt:BOOL=OFF "
# configopts += "-DModule_vtkWebCore:BOOL=OFF "
# configopts += "-DModule_vtkWebGLExporter:BOOL=OFF "
# configopts += "-DModule_vtkWebPython:BOOL=OFF "
# configopts += "-DModule_vtkWrappingJava:BOOL=OFF "
# configopts += "-DModule_vtkWrappingPythonCore:BOOL=OFF "
# configopts += "-DModule_vtkWrappingTools:BOOL=OFF "
# configopts += "-DModule_vtkdiy2:BOOL=OFF "
# configopts += "-DModule_vtkkissfft:BOOL=OFF "
configopts += "-DModule_vtkmpi4py:BOOL=ON "
# configopts += "-DModule_vtkpegtl:BOOL=OFF "
# configopts += "-DModule_vtkxdmf2:BOOL=OFF "
# configopts += "-DModule_vtkxdmf3:BOOL=OFF "
# configopts += "-DModule_vtkzfp:BOOL=OFF "
preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && "
# Install a egg-info file so VTK is more python friendly, required for mayavi
local_egg_info_src = '%(builddir)s/VTK-%(version)s/vtk-version.egg-info'
local_egg_info_dest = '%(installdir)s/lib/python%(pyshortver)s/site-packages/vtk-%(version)s.egg-info'
postinstallcmds = [
'sed "s/#VTK_VERSION#/%%(version)s/" %s > %s' % (local_egg_info_src, local_egg_info_dest),
]
modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']}
local_vtk_exec = ['vtk%s-%%(version_major_minor)s' % x
for x in ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']]
local_vtk_exec += ['vtkpython']
local_vtk_libs = ['CommonCore', 'IONetCDF', 'ParallelCore', 'RenderingOpenGL2']
sanity_check_paths = {
'files': ['bin/%s' % x for x in local_vtk_exec] + ['include/vtk-%(version_major_minor)s/vtkMPI.h'] +
['lib/libvtk%s-%%(version_major_minor)s.%s' % (l, SHLIB_EXT) for l in local_vtk_libs],
'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'],
}
sanity_check_commands = [
"python -c 'import %(namelower)s'",
"python -c 'import pkg_resources; pkg_resources.get_distribution(\"vtk\")'",
# make sure that VTK Python libraries link to libpython (controlled via DVTK_PYTHON_OPTIONAL_LINK=OFF),
# see https://gitlab.kitware.com/vtk/vtk/-/issues/17881
"ldd $EBROOTVTK/lib/libvtkPythonContext2D-%%(version_major_minor)s.%s | grep /libpython" % SHLIB_EXT,
]
moduleclass = 'vis'
......@@ -11,7 +11,7 @@ description = """The Visualization Toolkit (VTK) is an open-source, freely avail
such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation."""
toolchain = {'name': 'gpsmpi', 'version': '2022a'}
toolchain = {'name': 'gpsmkl', 'version': '2022a'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s']
......@@ -32,11 +32,11 @@ builddependencies = [
dependencies = [
('Python', '3.10.4'),
('HDF5', '1.12.2', '-serial'),
('HDF5', '1.12.2',),
('SciPy-Stack', '2022a', '', ('gcccoremkl', '11.3.0-2022.1.0')),
('mpi4py', '3.1.4'),
('libxc', '5.2.3'),
('netCDF', '4.9.0', '-serial'),
('netCDF', '4.9.0',),
('X11', '20220504'),
('OpenGL', '2022a'),
]
......
......@@ -85,7 +85,7 @@ software:
base: True
- name: 'Catalyst'
owner: 'goebbert1'
base: True
mpi: True
- name: 'Cirq'
owner: 'goebbert1'
base: True
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment