Compare commits

...

4 Commits

Author SHA1 Message Date
Lukas Krupcik
54213bdbef Merge branch 'it4i-barbora' 2025-03-10 12:37:24 +01:00
Lukas Krupcik
79e1066c58 Merge branch 'it4i-karolina' 2025-03-10 12:37:24 +01:00
Lukas Krupcik
9e1ea5d9bd new file: s/Scalasca/Scalasca-2.6.1-iimpi-2022a.eb
new file:   s/Score-P/Score-P-8.0-iimpi-2022a.eb
2025-03-10 12:36:42 +01:00
Lukas Krupcik
a400626e10 new file: c/CRYSTAL/CRYSTAL-23-intel-2021b-1.0.1-Pdistrib.eb
new file:   c/CRYSTAL/CRYSTAL-23-intel-2021b-1.0.1-PdistribOMP.eb
	new file:   c/cuDNN/cuDNN-9.5.0.50-CUDA-12.6.0.eb
	new file:   c/cuDNN/cuDNN-9.7.1.26-CUDA-12.8.0.eb
	new file:   d/DFTB+/DFTB+-24.1-foss-2023a-CUDA-12.1.1-PL.eb
	new file:   d/DFTB+/DFTB+-24.1-foss-2023a-PL_TB_MPI.eb
	new file:   d/DFTB+/DFTB+-24.1-foss-2023a-PL_TB_noMPI.eb
	modified:   d/DFTB+/DFTB+-24.1-foss-2023a-TB.eb
2025-03-10 12:36:32 +01:00
10 changed files with 505 additions and 2 deletions

@ -0,0 +1,45 @@
# IT4Innovations
# LK 2025
easyblock = 'MakeCp'
name = 'CRYSTAL'
version = '23'
versionsuffix = '-1.0.1-Pdistrib'
homepage = 'http://www.crystal.unito.it'
description = """The CRYSTAL package performs ab initio calculations of the ground state energy, energy
gradient, electronic wave function and properties of periodic systems. Hartree-Fock or Kohn-
Sham Hamiltonians (that adopt an Exchange-Correlation potential following the postulates of
Density-Functional Theory) can be used."""
toolchain = {'name': 'intel', 'version': '2020a'}
toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2'}
sources = [
'crystal23_v1_0_1_Linux-ifort21.4_Pdistrib.tar',
'utils23.tar',
'documentation23.tar'
]
checksums = [
'130ecac55434d476b9e24dc39b2cdf317bdd45d00631f616d95923ef82f86ac8',
'949d8e7f7c62e92e1e7c82e82a42f0fcd346d4336f175d369e1c8161abf1d2dd',
'4722ea50302a3908d95c4999ecb7ec466ceaeb7bd69688f81121b5752bc2a98c'
]
prebuildopts = "cd build && "
parallel = 1
files_to_copy = [
(['bin/Linux-ifort_i64/*/*'], 'bin'),
(['utils23/*'], 'utils23'),
(['*.pdf'], 'documentation'),
]
sanity_check_paths = {
'files': ['bin/crystal', 'bin/properties'],
'dirs': [],
}
moduleclass = 'chem'

@ -0,0 +1,45 @@
# IT4Innovations
# LK 2025
easyblock = 'MakeCp'
name = 'CRYSTAL'
version = '23'
versionsuffix = '-1.0.1-PdistribOMP'
homepage = 'http://www.crystal.unito.it'
description = """The CRYSTAL package performs ab initio calculations of the ground state energy, energy
gradient, electronic wave function and properties of periodic systems. Hartree-Fock or Kohn-
Sham Hamiltonians (that adopt an Exchange-Correlation potential following the postulates of
Density-Functional Theory) can be used."""
toolchain = {'name': 'intel', 'version': '2020a'}
toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2'}
sources = [
'crystal23_v1_0_1_Linux-ifort21.4_PdistribOMP.tar',
'utils23.tar',
'documentation23.tar'
]
checksums = [
'90d737792f530e4094b97f1caaa1eea944df882212211c5ebb38676e60af5df3',
'949d8e7f7c62e92e1e7c82e82a42f0fcd346d4336f175d369e1c8161abf1d2dd',
'4722ea50302a3908d95c4999ecb7ec466ceaeb7bd69688f81121b5752bc2a98c'
]
#prebuildopts = 'tar -xf utils23.tar &&'
prebuildopts = "cd build && "
parallel = 1
files_to_copy = [
(['bin/Linux-ifort_i64_omp/*/*'], 'bin'),
(['utils23/*'], 'utils23'),
(['*.pdf'], 'documentation'),
]
sanity_check_paths = {
'files': ['bin/crystalOMP', 'bin/properties'],
'dirs': [],
}
moduleclass = 'chem'

@ -0,0 +1,37 @@
name = 'cuDNN'
version = '9.5.0.50'
versionsuffix = '-CUDA-%(cudaver)s'
homepage = 'https://developer.nvidia.com/cudnn'
description = """The NVIDIA CUDA Deep Neural Network library (cuDNN) is
a GPU-accelerated library of primitives for deep neural networks."""
toolchain = SYSTEM
# note: cuDNN is tied to specific to CUDA versions,
# see also https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions
local_short_ver = '.'.join(version.split('.')[:3])
local_cuda_major = '12'
source_urls = [
'https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-%(cudnnarch)s/'
]
sources = ['%%(namelower)s-linux-%%(cudnnarch)s-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major]
checksums = [{
'%%(namelower)s-linux-sbsa-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major:
'494b640a69feb40ce806a726aa63a1de6b2ec459acbe6a116ef6fe3e6b27877d',
'%%(namelower)s-linux-x86_64-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major:
'86e4e4f4c09b31d3850b402d94ea52741a2f94c2f717ddc8899a14aca96e032d',
}]
dependencies = [('CUDA', '12.6.0')]
sanity_check_paths = {
'files': [
'include/cudnn.h', 'lib64/libcudnn_adv_static.a', 'lib64/libcudnn_cnn_static.a',
'lib64/libcudnn_engines_precompiled_static.a', 'lib64/libcudnn_engines_runtime_compiled_static.a',
'lib64/libcudnn_graph_static.a', 'lib64/libcudnn_heuristic_static.a', 'lib64/libcudnn_ops_static.a',
],
'dirs': ['include', 'lib64'],
}
moduleclass = 'numlib'

@ -0,0 +1,40 @@
# IT4Innovations
# LK 2025
name = 'cuDNN'
version = '9.7.1.26'
versionsuffix = '-CUDA-%(cudaver)s'
homepage = 'https://developer.nvidia.com/cudnn'
description = """The NVIDIA CUDA Deep Neural Network library (cuDNN) is
a GPU-accelerated library of primitives for deep neural networks."""
toolchain = SYSTEM
# note: cuDNN is tied to specific to CUDA versions,
# see also https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions
local_short_ver = '.'.join(version.split('.')[:3])
local_cuda_major = '12'
source_urls = [
'https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-%(cudnnarch)s/'
]
sources = ['%%(namelower)s-linux-%%(cudnnarch)s-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major]
checksums = [{
'%%(namelower)s-linux-sbsa-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major:
'109a5e5c6bcdf4396e6f63f3f862ed2dcf16ee93ee034dc704a1b11bdf00c0b1',
'%%(namelower)s-linux-x86_64-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major:
'109a5e5c6bcdf4396e6f63f3f862ed2dcf16ee93ee034dc704a1b11bdf00c0b1',
}]
dependencies = [('CUDA', '12.8.0')]
sanity_check_paths = {
'files': [
'include/cudnn.h', 'lib64/libcudnn_adv_static.a', 'lib64/libcudnn_cnn_static.a',
'lib64/libcudnn_engines_precompiled_static.a', 'lib64/libcudnn_engines_runtime_compiled_static.a',
'lib64/libcudnn_graph_static.a', 'lib64/libcudnn_heuristic_static.a', 'lib64/libcudnn_ops_static.a',
],
'dirs': ['include', 'lib64'],
}
moduleclass = 'numlib'

@ -0,0 +1,97 @@
# IT4Innovations
# PH 2025
easyblock = 'CMakeMake'
name = 'DFTB+'
version = '24.1'
versionsuffix = '-CUDA-12.1.1-PL'
homepage = 'https://www.dftb-plus.info'
description = """DFTB+ is a fast and efficient versatile quantum mechanical simulation package.
It is based on the Density Functional Tight Binding (DFTB) method, containing
almost all of the useful extensions which have been developed for the DFTB
framework so far. Using DFTB+ you can carry out quantum mechanical simulations
like with ab-initio density functional theory based packages, but in an
approximate way gaining typically around two order of magnitude in speed."""
toolchain = {'name': 'foss', 'version': '2023a'}
local_external_dir = '%%(builddir)s/dftbplus-%%(version)s/external/%s/origin/'
local_external_extract = 'mkdir -p %s && tar -C %s' % (local_external_dir, local_external_dir)
local_external_extract += ' --strip-components=1 -xzf %%s'
sources = [
{
'source_urls': ['https://github.com/dftbplus/dftbplus/archive'],
'download_filename': '%(version)s.tar.gz',
'filename': SOURCE_TAR_GZ,
},
{
'source_urls': ['https://github.com/dftbplus/testparams/archive'],
'download_filename': 'd0ea16df2b56d14c7c3dc9329a8d3bac9fea50a0.tar.gz',
'filename': 'slakos-data-%(version)s.tar.gz',
'extract_cmd': local_external_extract % ('slakos', 'slakos'),
},
]
checksums = [
'776d83779666e06bf2930c3b1665cdb8e7409b8003e33e0178fbae8b47f5e0b1', # DFTB+ 24.1
'9b64193368a13ae7c238399da8be2b3730a0f3273f9bf6c8054b2ff57d748823', # slakos-data
# '78a0494c2ff9216d6a9199ba07d632b18b809e0198f43905c044b5748bde488d' # slakos-data
]
builddependencies = [
('CMake', '3.26.3'),
]
dependencies = [
('dftd3-lib', '0.9.2'),
('tblite', '0.3.0'),
# ('arpack-ng', '3.9.0'), # designed for non-MPI, single-node computations
('magma', '2.7.2', '-CUDA-12.1.1'),
#('ELPA', '2022.05.001','-CUDA-12.1.1'),
('ELSI', '2.11.0', '-PEXSI-ELPA-2023.05.001-foss-2023a-CUDA-12.1.1'),
#('ScaLAPACK', '2.2.0', '-fb') # ScaLAPACK-2.2.0-gompi-2023a-fb.eb
('ScalapackFx', '1.2'),
('PLUMED', '2.9.0'),
]
configopts = ' -DWITH_DFTD3=1 -DCOMPILE_DFTD3=0 -DDFTD3_INCS="-I$EBROOTDFTD3MINLIB/include"'
configopts += ' -DDFTD3_LIBS="-L$EBROOTDFTD3MINLIB/lib -ldftd3"'
configopts += ' -DWITH_TBLITE=1 '
#configopts += ' -DWITH_ARPACK=1 -DARPACK_LIBS="-L$EBROOTARPACKMINNG/lib -larpack" -DARPACK_NEEDS_LAPACK=1'
configopts += ' -DWITH_ARPACK=0'
# Enable GPU support
configopts += ' -DWITH_GPU=1 '
configopts += ' -DMAGMA_INCS="-I$EBROOTMAGMA/include" -DMAGMA_LIBS="-L$EBROOTMAGMA/lib -lmagma"'
# Enable ELPA
configopts += ' -DWITH_ELPA=1 '
configopts += ' -DELPA_INCS="-I$EBROOTELPA/include" -DELPA_LIBS="-L$EBROOTELPA/lib -lelpa"'
# Enable ELSI
configopts += ' -DWITH_ELSI=1 '
configopts += ' -DELSI_INCS="-I$EBROOTELSI/include" -DELSI_LIBS="-L$EBROOTELSI/lib -lelsi"'
# Building with ELSI requires MPI-parallel build enabled
configopts += ' -DWITH_MPI=1 '
# Enable ScaLAPACK
configopts += ' -DWITH_SCALAPACK=1 '
#configopts += ' -DSCALAPACK_LIBS="-L$EBROOTSCALAPACK/lib -lscalapack" '
configopts += '-DSCALAPACK_LIBRARY="-L$EBROOTSCALAPACK/lib -lscalapack" '
#configopts += ' -DSCALAPACK_INCS="-I$EBROOTSCALAPACK/include" '
# Enable Plumed
configopts += ' -DWITH_PLUMED=ON=1 '
installopts = 'INSTALLDIR="%(installdir)s"'
sanity_check_paths = {
'files': ['bin/' + x for x in ['dftb+', 'modes', 'waveplot']],
'dirs': []
}
moduleclass = 'phys'

@ -0,0 +1,55 @@
# IT4Innovations
# PH 2025
easyblock = 'CMakeMake'
name = 'DFTB+'
version = '24.1'
versionsuffix = '-PL_TB_MPI'
homepage = 'https://www.dftb-plus.info'
description = """DFTB+ is a fast and efficient versatile quantum mechanical simulation package.
It is based on the Density Functional Tight Binding (DFTB) method, containing
almost all of the useful extensions which have been developed for the DFTB
framework so far. Using DFTB+ you can carry out quantum mechanical simulations
like with ab-initio density functional theory based packages, but in an
approximate way gaining typically around two order of magnitude in speed."""
toolchain = {'name': 'foss', 'version': '2023a'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'usempi': True, 'openmp': True, 'pic': True, 'lowopt': True, 'optarch': 'march=core-avx2'}
else:
toolchainopts = {'usempi': True, 'openmp': True, 'pic': True}
# https://github.com/dftbplus/dftbplus/releases/download/24.1/dftbplus-24.1.tar.xz
source_urls = ['https://github.com/dftbplus/dftbplus/releases/download/%(version)s']
sources = ['dftbplus-%(version)s.tar.xz']
checksums = [
{'dftbplus-24.1.tar.xz': '3bc405d1ab834b6b145ca671fb44565ec50a6f576e9e18e7a1ae2c613a311321'},
]
builddependencies = [
('CMake', '3.26.3'),
('pkgconf', '1.9.5'),
]
dependencies = [
('tblite', '0.3.0'),
('PLUMED', '2.9.0'),
]
configopts = "-DWITH_MPI=ON -DWITH_PLUMED=ON -DWITH_TBLITE=ON "
configopts += '-DSCALAPACK_LIBRARY="$LIBSCALAPACK" '
sanity_check_paths = {
'files': ['bin/dftb+'],
'dirs': ['lib']
}
moduleclass = 'phys'

@ -0,0 +1,48 @@
# IT4Innovations
# PH 2025
easyblock = 'CMakeMake'
name = 'DFTB+'
version = '24.1'
versionsuffix = '-PL_TB_noMPI'
homepage = 'https://www.dftb-plus.info'
description = """DFTB+ is a fast and efficient versatile quantum mechanical simulation package.
It is based on the Density Functional Tight Binding (DFTB) method, containing
almost all of the useful extensions which have been developed for the DFTB
framework so far. Using DFTB+ you can carry out quantum mechanical simulations
like with ab-initio density functional theory based packages, but in an
approximate way gaining typically around two order of magnitude in speed."""
toolchain = {'name': 'foss', 'version': '2023a'}
# https://github.com/dftbplus/dftbplus/releases/download/24.1/dftbplus-24.1.tar.xz
source_urls = ['https://github.com/dftbplus/dftbplus/releases/download/%(version)s']
sources = ['dftbplus-%(version)s.tar.xz']
checksums = [
{'dftbplus-24.1.tar.xz': '3bc405d1ab834b6b145ca671fb44565ec50a6f576e9e18e7a1ae2c613a311321'},
]
builddependencies = [
('CMake', '3.26.3'),
('pkgconf', '1.9.5'),
]
dependencies = [
('tblite', '0.3.0'),
('PLUMED', '2.9.0'),
]
configopts = "-DWITH_PLUMED=ON -DWITH_TBLITE=ON "
sanity_check_paths = {
'files': ['bin/dftb+'],
'dirs': ['lib']
}
moduleclass = 'phys'

@ -45,6 +45,11 @@ sources = [
'extract_cmd': _external_extract % ('gbsa', 'gbsa'),
},
]
#patches = [
# 'new_d4_model.patch'
#]
checksums = [
{'dftbplus-24.1.tar.xz': '3bc405d1ab834b6b145ca671fb44565ec50a6f576e9e18e7a1ae2c613a311321'},
{'slakos-data-24.1.tar.gz': '78a0494c2ff9216d6a9199ba07d632b18b809e0198f43905c044b5748bde488d'},
@ -61,9 +66,10 @@ dependencies = [
('Python', '3.11.3'),
('tblite', '0.3.0'),
('SciPy-bundle', '2023.07'),
('dftd4', '3.7.0'),
# ('dftd4', '3.7.0'),
('ELSI', '2.11.0', '-PEXSI'),
('libmbd', '0.12.6'),
('PLUMED', '2.9.0'),
]
# Prefer dependencies from EB than bundled sources
@ -71,7 +77,12 @@ configopts = '-DHYBRID_CONFIG_METHODS="Find;Submodule;Fetch" '
configopts += '-DWITH_MPI=1 -DWITH_OMP=1 -DWITH_SDFTD3=1 -DWITH_ELSI=1 -DWITH_MBD=1 -DWITH_UNIT_TESTS=1 '
configopts += '-DBUILD_SHARED_LIBS=1 -DWITH_API=1 -DWITH_PYTHON=0 ' # Python bindings installed as extension
configopts += '-DSCALAPACK_LIBRARY="$LIBSCALAPACK" '
configopts += ' -DWITH_TBLITE=1 '
configopts += '-DWITH_TBLITE=1 -DWITH_PLUMED=1 '
#configopts += '-DDFTBPLUS_DFTD4_PATH=$EBROOTDFTD4'
#configopts += '-DWITH_DFTD4=1 -DDFTBPLUS_DFTD4_PATH=$EBROOTDFTD4'
#configopts += '-DLIB_DFTD4="$EBROOTDFTD4/lib/libdftd4.so"'
#buildopts = 'FCFLAGS="-I$EBROOTDFTD4/include/dftd4/GNU-12.3.0"'
runtest = 'test'

@ -0,0 +1,64 @@
# IT4Innovations 2025
# PH
##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
# Copyright:: Copyright 2013-2024 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr <b.mohr@fz-juelich.de>
# Markus Geimer <m.geimer@fz-juelich.de>
# Robert Mijakovic <robert.mijakovic@lxp.lu>
# Jan Andre Reuter <j.reuter@fz-juelich.de>
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
easyblock = 'EB_Score_minus_P'
name = 'Scalasca'
version = '2.6.1'
homepage = 'https://www.scalasca.org/'
description = """
Scalasca is a software tool that supports the performance optimization of
parallel programs by measuring and analyzing their runtime behavior. The
analysis identifies potential performance bottlenecks -- in particular
those concerning communication and synchronization -- and offers guidance
in exploring their causes.
"""
toolchain = {'name': 'iimpi', 'version': '2022a'}
source_urls = ['https://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist']
sources = [SOURCELOWER_TAR_GZ]
patches = [
'Scalasca-2.6.1_nowarn_omp_pragmas.patch',
]
checksums = [
'a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7',
# scalasca-2.6.1.tar.gz
'6f1df13cd8683e4867b8e4b321c5f89e94430d1281f29f8eb084762a050f9e90',
# Scalasca-2.6.1_nowarn_omp_pragmas.patch
]
builddependencies = [
('CubeWriter', '4.8'),
]
dependencies = [
('CubeGUI', '4.8'),
('CubeLib', '4.8'),
('OTF2', '3.0.2'),
('Score-P', '8.0'),
]
sanity_check_paths = {
'files': ['bin/scalasca', 'lib/libpearl.replay.a'],
'dirs': [],
}
# Ensure that local metric documentation is found by CubeGUI
modextrapaths = {'CUBE_DOCPATH': 'share/doc/scalasca/patterns'}
moduleclass = 'perf'

@ -0,0 +1,61 @@
# IT4Innovations 2025
# PH
##
# Copyright:: Copyright 2013-2020 Juelich Supercomputing Centre, Germany
# Copyright 2020 TU Dresden, Germany
# Authors::
# * Bernd Mohr <b.mohr@fz-juelich.de>
# * Markus Geimer <m.geimer@fz-juelich.de>
# * Alexander Grund <alexander.grund@tu-dresden.de>
# * Robert Mijakovic <robert.mijakovic@lxp.lu>
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##
name = 'Score-P'
version = '8.0'
homepage = 'https://www.score-p.org'
description = """
The Score-P measurement infrastructure is a highly scalable and easy-to-use
tool suite for profiling, event tracing, and online analysis of HPC
applications.
"""
toolchain = {'name': 'iimpi', 'version': '2022a'}
source_urls = ['https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/tags/scorep-%(version)s']
sources = ['scorep-%(version)s.tar.gz']
checksums = ['4c0f34f20999f92ebe6ca1ff706d0846b8ce6cd537ffbedb49dfaef0faa66311']
dependencies = [
('CubeLib', '4.8'),
('CubeWriter', '4.8'),
('libunwind', '1.6.2'),
('OPARI2', '2.0.7'),
('OTF2', '3.0.2'),
# Hardware counter support (optional):
('PAPI', '7.0.0'),
# PDT source-to-source instrumentation support (optional):
('PDT', '3.25.1'),
]
configopts = '--enable-shared'
local_adapters = [
'compiler_event', 'compiler_mgmt', 'mpi_event', 'mpi_mgmt', 'opari2_mgmt', 'user_event', 'user_mgmt'
]
sanity_check_paths = {
'files':
['bin/scorep', 'include/scorep/SCOREP_User.h'] +
['lib/libscorep_adapter_%s.%s' % (a, e) for a in local_adapters for e in ('a', SHLIB_EXT)],
'dirs': [],
}
sanity_check_commands = ['scorep-config --help']
# Ensure that local metric documentation is found by CubeGUI
modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'}
moduleclass = 'perf'