diff --git a/l/libxc/libxc-5.1.2-intel-2022a.eb b/l/libxc/libxc-5.1.2-intel-2022a.eb new file mode 100644 index 00000000..6e7120f8 --- /dev/null +++ b/l/libxc/libxc-5.1.2-intel-2022a.eb @@ -0,0 +1,48 @@ +# IT4Innovations +# lk 2023 + +easyblock = 'CMakeMake' + +name = 'libxc' +version = '5.1.2' + +homepage = 'https://www.tddft.org/programs/libxc' +description = """Libxc is a library of exchange-correlation functionals for density-functional theory. + The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals.""" + +toolchain = {'name': 'intel', 'version': '2022a'} + +source_urls = ['https://www.tddft.org/programs/libxc/down.php?file=%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['180d52b5552921d1fac8a10869dd30708c0fb41dc202a3bbee0e36f43872718a'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('Perl', '5.34.1'), +] + +separate_build_dir = True + +local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_FORTRAN03=ON -DENABLE_XHOST=OFF" + +# perform iterative build to get both static and shared libraries +configopts = [ + local_common_configopts + ' -DBUILD_SHARED_LIBS=OFF', + local_common_configopts + ' -DBUILD_SHARED_LIBS=ON', +] + +parallel = 1 + +# make sure that built libraries (libxc*.so*) in build directory are picked when running tests +# this is required when RPATH linking is used +pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && " + +#runtest = 'test' + +sanity_check_paths = { + 'files': ['bin/xc-info'] + + ['lib/libxc%s.%s' % (x, y) for x in ['', 'f03', 'f90'] for y in ['a', SHLIB_EXT]], + 'dirs': ['include', 'lib/pkgconfig', 'share/cmake/Libxc'], +} + +moduleclass = 'chem' diff --git a/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb b/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb index 96391480..503d61aa 100644 --- a/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb +++ b/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb @@ -1,5 +1,5 @@ -# IT4Innovations 2023 -# JK +# IT4Innovations +# LK 2023 name = 'OpenMPI' version = '4.1.4' @@ -105,7 +105,4 @@ else: 'OMPI_MCA_oob_tcp_if_include': '10.0.0.0/8', } - - - moduleclass = 'mpi' diff --git a/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb.1 b/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb.1 new file mode 100644 index 00000000..34c4551c --- /dev/null +++ b/o/OpenMPI/OpenMPI-4.1.4-NVHPC-22.7-CUDA-11.7.0.eb.1 @@ -0,0 +1,65 @@ +name = 'OpenMPI' +version = '4.1.4' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'NVHPC', 'version': '22.7-CUDA-11.7.0'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_BZ2] +patches = [ + 'OpenMPI-4.1.1_build-with-internal-cuda-header.patch', + 'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch', +] +checksums = [ + '92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d', # openmpi-4.1.4.tar.bz2 + # OpenMPI-4.1.1_build-with-internal-cuda-header.patch + '63eac52736bdf7644c480362440a7f1f0ae7c7cae47b7565f5635c41793f8c83', + # OpenMPI-4.1.1_opal-datatype-cuda-performance.patch + 'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e', +] + +builddependencies = [ + ('pkgconf', '1.8.0'), + ('Perl', '5.34.1'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('hwloc', '2.7.1'), + ('libevent', '2.1.12'), + ('UCX', '1.12.1'), + ('UCX-CUDA', '1.12.1', '-CUDA-%(cudaver)s'), + ('libfabric', '1.15.1'), + ('PMIx', '4.1.2'), + ('UCC', '1.0.0'), + ('UCC-CUDA', '1.0.0', '-CUDA-%(cudaver)s'), +] + +# Update configure to include changes from the "internal-cuda" patch +# by running a subset of autogen.pl sufficient to achieve this +# without doing the full, long-running regeneration. +preconfigopts = ' && '.join([ + 'cd config', + 'autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh', + 'cd ..', + 'autoconf', + 'autoheader', + 'aclocal', + 'automake', + '' +]) + +# CUDA related patches and custom configure option can be removed if CUDA support isn't wanted. +configopts = '--with-cuda=internal ' +configopts += ' CC=pgcc CXX=pgc++ FC=pgfortran' + +# disable MPI1 compatibility for now, see what breaks... +# configopts += '--enable-mpi1-compatibility ' + +# to enable SLURM integration (site-specific) +# configopts += '--with-slurm --with-pmi=/usr/include/slurm --with-pmi-libdir=/usr' + +moduleclass = 'mpi' diff --git a/q/QuantumESPRESSO/QuantumESPRESSO-7.1-intel-2022a-thermo_pw-GPU.eb b/q/QuantumESPRESSO/QuantumESPRESSO-7.1-intel-2022a-thermo_pw-GPU.eb new file mode 100644 index 00000000..7a21b74b --- /dev/null +++ b/q/QuantumESPRESSO/QuantumESPRESSO-7.1-intel-2022a-thermo_pw-GPU.eb @@ -0,0 +1,67 @@ +# IT4Innovations +# # LK 2023 + +name = 'QuantumESPRESSO' +version = '7.1' +versionsuffix = '-thermo_pw-GPU' + +homepage = 'https://www.quantum-espresso.org' +description = """Quantum ESPRESSO is an integrated suite of computer codes +for electronic-structure calculations and materials modeling at the nanoscale. +It is based on density-functional theory, plane waves, and pseudopotentials +(both norm-conserving and ultrasoft). +""" + +toolchain = {'name': 'intel', 'version': '2022a'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'openmp': True, 'optarch': 'march=core-avx2', 'opt': 'O3'} +else: + toolchainopts = {'usempi': True, 'openmp': True, 'opt': 'O3'} + +source_urls = [ + 'https://gitlab.com/QEF/q-e/-/archive/qe-%(version)s', +] +sources = [ + { + 'filename': 'q-e-qe-%(version)s.tar.gz', + 'extract_cmd': 'mkdir -p %(builddir)s/qe-%(version)s && tar xzvf %s --strip-components=1 -C $_', + }, + { + 'filename': 'qe-gipaw-%(version)s.tar.gz', + 'source_urls': ['https://github.com/dceresoli/qe-gipaw/releases/download/%(version)s/'] + }, + {'filename': 'wannier90-3.1.0.tar.gz', 'download_filename': 'v3.1.0.tar.gz', + 'source_urls': ['https://github.com/wannier-developers/wannier90/archive/'] + }, + { + 'filename': 'thermo_pw.1.7.1.tar.gz', + 'source_urls': ['https://github.com/dalcorso/thermo_pw/releases/download/1.7.1/'], + 'extract_cmd': 'cd %(builddir)s/qe-%(version)s && tar xzvf %s && cd thermo_pw && make join_qe', + }, +] +checksums = [ + 'd56dea096635808843bd5a9be2dee3d1f60407c01dbeeda03f8256a3bcfc4eb6', # q-e-qe-7.1.tar.gz + '0eee3f613d249ff14e8b891493fe68a3567188575ec7397a8fbe3a97cbf6cb69', # qe-gipaw-7.1.tar.gz + '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz + 'a4fe924ac9306db4608156942af9334679b3c402c70ba82e3f024ce5677d3af0', # thermo_pw.1.7.1.tar.gz +] + +builddependencies = [('M4', '1.4.19')] + +dependencies = [ + ('HDF5', '1.12.2'), + ('ELPA', '2021.11.001'), + ('libxc', '5.2.3'), + ('CUDA', '12.0.0', '', True) +] + +# The third party packages should be installed separately and added as +# dependencies. The exception is w90, which is force built, and gipaw +# which depends on qe source +buildopts = 'all gwl xspectra couple epw gipaw w90 thermo_pw' + +# parallel build tends to fail +parallel = 1 + +moduleclass = 'chem' diff --git a/q/QuantumESPRESSO/QuantumESPRESSO-7.1-intel-2022a-thermo_pw.eb b/q/QuantumESPRESSO/QuantumESPRESSO-7.1-intel-2022a-thermo_pw.eb new file mode 100644 index 00000000..d783ac90 --- /dev/null +++ b/q/QuantumESPRESSO/QuantumESPRESSO-7.1-intel-2022a-thermo_pw.eb @@ -0,0 +1,66 @@ +# IT4Innovations +# # LK 2023 + +name = 'QuantumESPRESSO' +version = '7.1' +versionsuffix = '-thermo_pw' + +homepage = 'https://www.quantum-espresso.org' +description = """Quantum ESPRESSO is an integrated suite of computer codes +for electronic-structure calculations and materials modeling at the nanoscale. +It is based on density-functional theory, plane waves, and pseudopotentials +(both norm-conserving and ultrasoft). +""" + +toolchain = {'name': 'intel', 'version': '2022a'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'openmp': True, 'optarch': 'march=core-avx2', 'opt': 'O3'} +else: + toolchainopts = {'usempi': True, 'openmp': True, 'opt': 'O3'} + +source_urls = [ + 'https://gitlab.com/QEF/q-e/-/archive/qe-%(version)s', +] +sources = [ + { + 'filename': 'q-e-qe-%(version)s.tar.gz', + 'extract_cmd': 'mkdir -p %(builddir)s/qe-%(version)s && tar xzvf %s --strip-components=1 -C $_', + }, + { + 'filename': 'qe-gipaw-%(version)s.tar.gz', + 'source_urls': ['https://github.com/dceresoli/qe-gipaw/releases/download/%(version)s/'] + }, + {'filename': 'wannier90-3.1.0.tar.gz', 'download_filename': 'v3.1.0.tar.gz', + 'source_urls': ['https://github.com/wannier-developers/wannier90/archive/'] + }, + { + 'filename': 'thermo_pw.1.7.1.tar.gz', + 'source_urls': ['https://github.com/dalcorso/thermo_pw/releases/download/1.7.1/'], + 'extract_cmd': 'cd %(builddir)s/qe-%(version)s && tar xzvf %s && cd thermo_pw && make join_qe', + }, +] +checksums = [ + 'd56dea096635808843bd5a9be2dee3d1f60407c01dbeeda03f8256a3bcfc4eb6', # q-e-qe-7.1.tar.gz + '0eee3f613d249ff14e8b891493fe68a3567188575ec7397a8fbe3a97cbf6cb69', # qe-gipaw-7.1.tar.gz + '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz + 'a4fe924ac9306db4608156942af9334679b3c402c70ba82e3f024ce5677d3af0', # thermo_pw.1.7.1.tar.gz +] + +builddependencies = [('M4', '1.4.19')] + +dependencies = [ + ('HDF5', '1.12.2'), + ('ELPA', '2021.11.001'), + ('libxc', '5.2.3'), +] + +# The third party packages should be installed separately and added as +# dependencies. The exception is w90, which is force built, and gipaw +# which depends on qe source +buildopts = 'all gwl xspectra couple epw gipaw w90 thermo_pw' + +# parallel build tends to fail +parallel = 1 + +moduleclass = 'chem' diff --git a/w/WIEN2k/WIEN2k-23.2-intel-2022a.eb b/w/WIEN2k/WIEN2k-23.2-intel-2022a.eb index e03a664f..dff5c7a6 100644 --- a/w/WIEN2k/WIEN2k-23.2-intel-2022a.eb +++ b/w/WIEN2k/WIEN2k-23.2-intel-2022a.eb @@ -1,5 +1,5 @@ -# IT4Innovations 2023 -# JK +# IT4Innovations +# LK 2023 name = 'WIEN2k' version = '23.2' @@ -11,15 +11,21 @@ using density functional theory (DFT). It is based on the full-potential (linear WIEN2k is an all-electron scheme including relativistic effects and has many features.""" toolchain = {'name': 'intel', 'version': '2022a'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2', 'pic': True} +else: + toolchainopts = {'usempi': True, 'pic': True} sources = ['%(name)s_%(version)s.tar'] patches = [ 'WIEN2k-21.1_fix_libxc_for_lapw0_mpi.patch', -# '%(name)s-%(version)s_fix_system_stderr_redirection.patch', +# 'WIEN2k-21.1_fix_system_stderr_redirection.patch', ] checksums = [ {'WIEN2k_23.2.tar': '8ae0dda4b6d960c37f359b3d4198dd3953058efe2eae94083e91ddd619392cce'}, {'WIEN2k-21.1_fix_libxc_for_lapw0_mpi.patch': '1cc480a4824d9185ad5918dfc68c47bcb7826114626c8133d573be901bbdca84'}, + {'WIEN2k-21.1_fix_system_stderr_redirection.patch': 'cdba467b0b6f2b310c2e1e2a3e6cabe75f8fd15ee0f7c14f8ef80c7e48073bdd'}, ] dependencies = [ @@ -54,18 +60,4 @@ fix_perl_shebang_for = [ 'bashtime2csh.pl_lapw', ] -tests = [ - # test case 1: NaCl - ('NaCl', '-b', '-i 3', [r'^:DIS.*0.1', r'^:ENE.*-1248.14']), - # test case 2: TiO2 - ('TiO2', - '-b -numk 1000 -rkmax 7.5', - '-in1ef -cc 0.00001 -fc 0.5 -i 100', - [ - r'^:ENE.*-4018.07', - r'^:FGL001.*\s+[0.]+\s+[0.]+\s+[0.]+\s+total forces', - r'^:FGL002.*15.*total forces', - ]), -] - moduleclass = 'chem'