diff --git a/d/DFTB+/DFTB+-24.1-foss-2023a-CUDA-12.1.1.eb b/d/DFTB+/DFTB+-24.1-foss-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000..2c908aff --- /dev/null +++ b/d/DFTB+/DFTB+-24.1-foss-2023a-CUDA-12.1.1.eb @@ -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' diff --git a/e/ELPA/ELPA-2020.11.001-foss-2023a-CUDA-12.1.1.eb b/e/ELPA/ELPA-2020.11.001-foss-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000..17546fcd --- /dev/null +++ b/e/ELPA/ELPA-2020.11.001-foss-2023a-CUDA-12.1.1.eb @@ -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' diff --git a/e/ELPA/ELPA-2022.05.001-foss-2023a-CUDA-12.1.1.eb b/e/ELPA/ELPA-2022.05.001-foss-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000..5c333c4c --- /dev/null +++ b/e/ELPA/ELPA-2022.05.001-foss-2023a-CUDA-12.1.1.eb @@ -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' diff --git a/e/ELPA/ELPA-2023.05.001-foss-2023a-CUDA-12.1.1.eb b/e/ELPA/ELPA-2023.05.001-foss-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000..86181622 --- /dev/null +++ b/e/ELPA/ELPA-2023.05.001-foss-2023a-CUDA-12.1.1.eb @@ -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' diff --git a/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2020.11.001-foss-2023a-CUDA-12.1.1.eb b/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2020.11.001-foss-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000..8bcf8f6b --- /dev/null +++ b/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2020.11.001-foss-2023a-CUDA-12.1.1.eb @@ -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' diff --git a/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2022.05.001-foss-2023a-CUDA-12.1.1.eb b/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2022.05.001-foss-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000..6ccbdf9f --- /dev/null +++ b/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2022.05.001-foss-2023a-CUDA-12.1.1.eb @@ -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' diff --git a/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2023.05.001-foss-2023a-CUDA-12.1.1.eb b/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2023.05.001-foss-2023a-CUDA-12.1.1.eb new file mode 100644 index 00000000..c42bf0ec --- /dev/null +++ b/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI-ELPA-2023.05.001-foss-2023a-CUDA-12.1.1.eb @@ -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' diff --git a/s/ScalapackFx/ScalapackFx-1.2-foss-2023a.eb b/s/ScalapackFx/ScalapackFx-1.2-foss-2023a.eb new file mode 100644 index 00000000..c6019872 --- /dev/null +++ b/s/ScalapackFx/ScalapackFx-1.2-foss-2023a.eb @@ -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' \ No newline at end of file