Merge branch 'it4i-karolina'

This commit is contained in:
Lukas Krupcik 2025-03-10 12:37:24 +01:00
commit 79e1066c58
8 changed files with 380 additions and 2 deletions

View File

@ -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'

View File

@ -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'

View File

@ -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'

View File

@ -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'

View File

@ -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'

View File

@ -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'

View File

@ -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'

View File

@ -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'