new file: d/DFTB+/DFTB+-24.1-foss-2023a-CUDA-12.1.1.eb

new file:   e/ELPA/ELPA-2020.11.001-foss-2023a-CUDA-12.1.1.eb
	new file:   e/ELPA/ELPA-2022.05.001-foss-2023a-CUDA-12.1.1.eb
	new file:   e/ELPA/ELPA-2023.05.001-foss-2023a-CUDA-12.1.1.eb
	new file:   e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2020.11.001-foss-2023a-CUDA-12.1.1.eb
	new file:   e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2022.05.001-foss-2023a-CUDA-12.1.1.eb
	new file:   e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2023.05.001-foss-2023a-CUDA-12.1.1.eb
	new file:   s/ScalapackFx/ScalapackFx-1.2-foss-2023a.eb
This commit is contained in:
Pavel Holba 2024-12-02 09:05:11 +01:00
parent 02b0497463
commit c4dc97e560
8 changed files with 450 additions and 0 deletions

View File

@ -0,0 +1,92 @@
# IT4Innovations
# PH 2024
easyblock = 'CMakeMake'
name = 'DFTB+'
version = '24.1'
versionsuffix = '-CUDA-12.1.1'
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
]
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'),
]
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" '
installopts = 'INSTALLDIR="%(installdir)s"'
sanity_check_paths = {
'files': ['bin/' + x for x in ['dftb+', 'modes', 'waveplot']],
'dirs': []
}
moduleclass = 'phys'

View File

@ -0,0 +1,38 @@
# IT4Innovations
# PH 2024
name = 'ELPA'
version = '2020.11.001'
versionsuffix = '-CUDA-12.1.1'
homepage = 'https://elpa.mpcdf.mpg.de/'
description = """Eigenvalue SoLvers for Petaflop-Applications."""
toolchain = {'name': 'foss', 'version': '2023a'}
toolchainopts = {'openmp': True, 'usempi': True}
source_urls = ['https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/%(version)s/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['15591f142eeaa98ab3201d27ca9ac328e21beabf0803b011a04183fcaf6efdde']
builddependencies = [
('Autotools', '20220317'),
# remove_xcompiler script requires 'python' command,
('Python', '3.11.3'),
('Perl', '5.36.1'),
]
dependencies = [
('CUDA', '12.1.1', '', SYSTEM),
]
cuda_compute_capabilities = ['8.0']
configopts = '--enable-nvidia-gpu '
# When building in parallel, the file test_setup_mpi.mod is sometimes
# used before it is built, leading to an error. This must be a bug in
# the makefile affecting parallel builds.
maxparallel = 1
moduleclass = 'math'

View File

@ -0,0 +1,51 @@
# IT4Innovations
# PH 2024
name = 'ELPA'
version = '2022.05.001'
versionsuffix = '-CUDA-12.1.1'
homepage = 'https://elpa.mpcdf.mpg.de/'
description = """Eigenvalue SoLvers for Petaflop-Applications."""
toolchain = {'name': 'foss', 'version': '2023a'}
toolchainopts = {'openmp': True, 'usempi': True}
source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_%(version)s/']
sources = ['elpa-new_release_%(version)s.tar.gz']
patches = ['%(name)s-%(version)s_fix_hardcoded_perl_path.patch']
checksums = [
{'elpa-new_release_2022.05.001.tar.gz': '96ff14abe53cc3652ba290a0e309d238147fbbfe054d783efee9890f5f23802d'},
{'ELPA-2022.05.001_fix_hardcoded_perl_path.patch':
'1666a133393b3947a80069ae170a51f4d574956f384c01b7018e4b551726a3a2'},
]
builddependencies = [
('Autotools', '20220317'),
# remove_xcompiler script requires 'python' command,
('Python', '3.11.3'),
('Perl', '5.36.1'),
]
dependencies = [
('CUDA', '12.1.1', '', SYSTEM),
]
cuda_compute_capabilities = ['8.0']
preconfigopts = './autogen.sh && '
preconfigopts += 'export LDFLAGS="-lm $LDFLAGS" && '
preconfigopts += 'autoreconf && '
# If the build is running in a batch job, make sure Intel libmpi does
# not try to use Slurm to run the MPI_THREAD test code that ELPA's
# configure is running without "mpirun".
preconfigopts += 'unset SLURM_JOBID && unset SLURM_NODELIST && unset I_MPI_PMI_LIBRARY && '
configopts = '--enable-nvidia-gpu '
# When building in parallel, the file test_setup_mpi.mod is sometimes
# used before it is built, leading to an error. This must be a bug in
# the makefile affecting parallel builds.
maxparallel = 1
moduleclass = 'math'

View File

@ -0,0 +1,53 @@
# IT4Innovations
# PH 2024
name = 'ELPA'
version = '2023.05.001'
versionsuffix = '-CUDA-12.1.1'
homepage = 'https://elpa.mpcdf.mpg.de/'
description = """Eigenvalue SoLvers for Petaflop-Applications."""
toolchain = {'name': 'foss', 'version': '2023a'}
toolchainopts = {'openmp': True, 'usempi': True}
source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_%(version)s/']
sources = ['elpa-new_release_%(version)s.tar.gz']
patches = [
'%(name)s-%(version)s_fix_hardcoded_perl_path.patch',
'%(name)s-%(version)s_fix_AVX512_support.patch',
]
checksums = [
{'%(namelower)s-new_release_%(version)s.tar.gz':
'7e07ca287ab07c0a73d97df71d5a5431c847b8e4d5c759aae99e12672e6decf3'},
{'%(name)s-%(version)s_fix_hardcoded_perl_path.patch':
'0548105065777a2ed07dde306636251c4f96e555a801647564de37d1ddd7b0b5'},
{'%(name)s-%(version)s_fix_AVX512_support.patch':
'ecf08b64fe1da432a218040fa45d4ecfbb3269d58cb018b12da5a2d854bf96be'},
]
builddependencies = [
('Autotools', '20220317'),
# remove_xcompiler script requires 'python' command,
('Python', '3.11.3'),
('Perl', '5.36.1'),
]
dependencies = [
('CUDA', '12.1.1', '', SYSTEM),
]
cuda_compute_capabilities = ['8.0']
preconfigopts = './autogen.sh && '
preconfigopts += 'export LDFLAGS="-lm $LDFLAGS" && '
preconfigopts += 'autoreconf && '
configopts = '--enable-nvidia-gpu '
configopts += '--with-nvidia-gpu-support-only '
# When building in parallel, the file test_setup_mpi.mod is sometimes
# used before it is built, leading to an error. This must be a bug in
# the makefile affecting parallel builds.
maxparallel = 1
moduleclass = 'math'

View File

@ -0,0 +1,50 @@
# IT4Innovations
# PH 2024
name = 'ELSI'
version = '2.11.0'
versionsuffix = '-PEXSI-ELPA-2020.11.001-foss-2023a-CUDA-12.1.1'
homepage = 'https://wordpress.elsi-interchange.org/'
description = """ELSI provides and enhances scalable, open-source software library solutions for
electronic structure calculations in materials science, condensed matter physics, chemistry, and many other fields.
ELSI focuses on methods that solve or circumvent eigenvalue problems in electronic structure theory.
The ELSI infrastructure should also be useful for other challenging eigenvalue problems.
"""
toolchain = {'name': 'foss', 'version': '2023a'}
toolchainopts = {'usempi': True, 'pic': True, 'cstd': 'c++11', 'extra_fflags': '-fallow-argument-mismatch'}
source_urls = ['https://gitlab.com/elsi_project/elsi_interface/-/archive/v2.11.0/']
sources = ['elsi_interface-v%(version)s.tar.gz']
patches = [
'ELSI-2.11.0_bison_3.8_compat.patch',
]
checksums = [
{'elsi_interface-v2.11.0.tar.gz': '2e6929827ed9c99a32381ed9da40482e862c28608d59d4f27db7dcbcaed1520d'},
{'ELSI-2.11.0_bison_3.8_compat.patch': 'a1284f5c0f442129610aa0fb463cc2b54450e3511a2fd6c871fadc21a16e9504'},
]
builddependencies = [
('flex', '2.6.4'),
('Bison', '3.8.2'),
('CMake', '3.26.3'),
]
dependencies = [
('ELPA', '2020.11.001','-CUDA-12.1.1'),
('NTPoly', '3.1.0'),
]
abs_path_compilers = True
build_internal_pexsi = True
configopts = '-DENABLE_BSEPACK=ON '
# Tests use 4 MPI ranks, they require a minimum of 4 cores
# Map each MPI process to a single CPU core to avoid tests fails
pretestopts = "export OMPI_MCA_rmaps_base_mapping_policy=slot:PE=1 && "
runtest = True
moduleclass = 'math'

View File

@ -0,0 +1,50 @@
# IT4Innovations
# PH 2024
name = 'ELSI'
version = '2.11.0'
versionsuffix = '-PEXSI-ELPA-2022.05.001-foss-2023a-CUDA-12.1.1'
homepage = 'https://wordpress.elsi-interchange.org/'
description = """ELSI provides and enhances scalable, open-source software library solutions for
electronic structure calculations in materials science, condensed matter physics, chemistry, and many other fields.
ELSI focuses on methods that solve or circumvent eigenvalue problems in electronic structure theory.
The ELSI infrastructure should also be useful for other challenging eigenvalue problems.
"""
toolchain = {'name': 'foss', 'version': '2023a'}
toolchainopts = {'usempi': True, 'pic': True, 'cstd': 'c++11', 'extra_fflags': '-fallow-argument-mismatch'}
source_urls = ['https://gitlab.com/elsi_project/elsi_interface/-/archive/v2.11.0/']
sources = ['elsi_interface-v%(version)s.tar.gz']
patches = [
'ELSI-2.11.0_bison_3.8_compat.patch',
]
checksums = [
{'elsi_interface-v2.11.0.tar.gz': '2e6929827ed9c99a32381ed9da40482e862c28608d59d4f27db7dcbcaed1520d'},
{'ELSI-2.11.0_bison_3.8_compat.patch': 'a1284f5c0f442129610aa0fb463cc2b54450e3511a2fd6c871fadc21a16e9504'},
]
builddependencies = [
('flex', '2.6.4'),
('Bison', '3.8.2'),
('CMake', '3.26.3'),
]
dependencies = [
('ELPA', '2022.05.001','-CUDA-12.1.1'),
('NTPoly', '3.1.0'),
]
abs_path_compilers = True
build_internal_pexsi = True
configopts = '-DENABLE_BSEPACK=ON '
# Tests use 4 MPI ranks, they require a minimum of 4 cores
# Map each MPI process to a single CPU core to avoid tests fails
pretestopts = "export OMPI_MCA_rmaps_base_mapping_policy=slot:PE=1 && "
runtest = True
moduleclass = 'math'

View File

@ -0,0 +1,52 @@
# IT4Innovations
# PH 2024
name = 'ELSI'
version = '2.11.0'
versionsuffix = '-PEXSI-ELPA-2023.05.001-foss-2023a-CUDA-12.1.1'
homepage = 'https://wordpress.elsi-interchange.org/'
description = """ELSI provides and enhances scalable, open-source software library solutions for
electronic structure calculations in materials science, condensed matter physics, chemistry, and many other fields.
ELSI focuses on methods that solve or circumvent eigenvalue problems in electronic structure theory.
The ELSI infrastructure should also be useful for other challenging eigenvalue problems.
"""
toolchain = {'name': 'foss', 'version': '2023a'}
toolchainopts = {'usempi': True, 'pic': True, 'cstd': 'c++11', 'extra_fflags': '-fallow-argument-mismatch'}
source_urls = ['https://gitlab.com/elsi_project/elsi_interface/-/archive/v2.11.0/']
sources = ['elsi_interface-v%(version)s.tar.gz']
patches = [
'ELSI-2.11.0_bison_3.8_compat.patch',
]
checksums = [
{'elsi_interface-v2.11.0.tar.gz': '2e6929827ed9c99a32381ed9da40482e862c28608d59d4f27db7dcbcaed1520d'},
{'ELSI-2.11.0_bison_3.8_compat.patch': 'a1284f5c0f442129610aa0fb463cc2b54450e3511a2fd6c871fadc21a16e9504'},
]
builddependencies = [
('flex', '2.6.4'),
('Bison', '3.8.2'),
('CMake', '3.26.3'),
]
dependencies = [
('ELPA', '2023.05.001','-CUDA-12.1.1'),
('NTPoly', '3.1.0'),
]
abs_path_compilers = True
build_internal_pexsi = True
configopts = '-DENABLE_BSEPACK=ON '
configopts += '-DUSE_GPU_CUDA=ON '
configopts += '-DCMAKE_CUDA_COMPILER=nvcc -DCMAKE_CUDA_FLAGS="-arch=sm_80"'
# Tests use 4 MPI ranks, they require a minimum of 4 cores
# Map each MPI process to a single CPU core to avoid tests fails
pretestopts = "export OMPI_MCA_rmaps_base_mapping_policy=slot:PE=1 && "
runtest = True
moduleclass = 'math'

View File

@ -0,0 +1,64 @@
# IT4Innovations
# PH 2024
easyblock = 'CMakeMake'
name = 'ScalapackFx'
version = '1.2'
homepage = 'https://github.com/dftbplus/ScalapackFx'
description = "Modern Fortran Interface for ScaLAPACK, providing convenient wrappers for diagonalization-related routines."
toolchain = {'name': 'foss', 'version': '2023a'}
# https://github.com/dftbplus/scalapackfx/archive/refs/tags/1.2.tar.gz
source_urls = ['https://github.com/dftbplus/scalapackfx/archive/refs/tags/']
sources = [f'{version}.tar.gz']
checksums = ['277fd170cfe6b6c67242a2c179494ec48d0daae94eac26f8361ca30aafe71b98']
builddependencies = [
('CMake', '3.26.3'),
('fypp', '3.2')
]
dependencies = [
('ScaLAPACK', '2.2.0', '-fb'),
('FlexiBLAS', '3.3.1'),
]
configopts = '-DSCALAPACK_LIBRARY="-L$EBROOTSCALAPACK/lib -lscalapack" '
configopts += '-DLAPACK_LIBRARY="-L$EBROOTFLEXIBLAS/lib -lflexiblas" '
sanity_check_paths = {
'files': [
'lib/libscalapackfx.a',
'%(builddir)s/easybuild_obj/test/test_cpg2l',
'%(builddir)s/easybuild_obj/test/test_desc',
'%(builddir)s/easybuild_obj/test/test_det',
'%(builddir)s/easybuild_obj/test/test_diag',
'%(builddir)s/easybuild_obj/test/test_gemr2d',
'%(builddir)s/easybuild_obj/test/test_linecomm',
'%(builddir)s/easybuild_obj/test/test_psyr_pher',
'%(builddir)s/easybuild_obj/test/test_subgrids',
'%(builddir)s/easybuild_obj/test/test_svd',
'%(builddir)s/easybuild_obj/test/test_tran',
],
'dirs': ['include', 'lib']
}
sanity_check_commands = [
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_cpg2l',
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_desc',
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_det',
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_diag',
#'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_gemr2d',
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_linecomm',
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_psyr_pher',
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_subgrids',
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_svd',
'cd %(builddir)s/scalapackfx-1.2/test && mpirun -n 2 ../../easybuild_obj/test/test_tran',
]
moduleclass = 'math'