From a49b71afca9d9803d923edfd95550a5cd8332725 Mon Sep 17 00:00:00 2001 From: Lukas Krupcik Date: Wed, 5 Jan 2022 09:50:03 +0100 Subject: [PATCH] new file: a/AOCC/AOCC-3.2.0-GCCcore-11.2.0.eb new file: c/CP2K/CP2K-8.2-foss-2020b.eb new file: c/CP2K/CP2K-8.2-intel-2020b.eb modified: d/DFTB+/DFTB+-21.1-intel-2020b-Python-3.8.6-karolina.eb new file: g/GROMACS/GROMACS-2021.4-fosscuda-2020b-PLUMED-2.7.3.eb modified: g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.2.eb new file: g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.3.eb new file: i/intel-compilers/intel-compilers-2021.4.0.eb new file: l/Libint/Libint-2.6.0-GCC-10.2.0-lmax-6-cp2k.eb new file: l/libxc/libxc-5.1.3-GCC-10.2.0.eb modified: n/NVHPC/NVHPC-21.11.eb new file: o/Octopus/Octopus-11.3-intel-2020b-mpi.eb new file: o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1-v2.eb new file: o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1.eb new file: p/PETSc/PETSc-3.16.2-intel-2020b.eb new file: p/PLUMED/PLUMED-2.7.3-fosscuda-2020b.eb new file: p/phonopy/phonopy-2.12.0-conda.eb new file: u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb new file: u/UCX/UCX-1.11.2-NVHPC-21.11-CUDA-11.4.1.eb new file: v/VASP/VASP-5.4.4-intel-2020a-mkl=sequential-karolina.eb --- a/AOCC/AOCC-3.2.0-GCCcore-11.2.0.eb | 27 +++++++ c/CP2K/CP2K-8.2-foss-2020b.eb | 39 ++++++++++ c/CP2K/CP2K-8.2-intel-2020b.eb | 39 ++++++++++ ...-21.1-intel-2020b-Python-3.8.6-karolina.eb | 4 +- ...MACS-2021.4-fosscuda-2020b-PLUMED-2.7.3.eb | 72 +++++++++++++++++++ ...GROMACS-2021.4-intel-2020b-PLUMED-2.7.2.eb | 2 +- ...GROMACS-2021.4-intel-2020b-PLUMED-2.7.3.eb | 34 +++++++++ i/intel-compilers/intel-compilers-2021.4.0.eb | 37 ++++++++++ .../Libint-2.6.0-GCC-10.2.0-lmax-6-cp2k.eb | 52 ++++++++++++++ l/libxc/libxc-5.1.3-GCC-10.2.0.eb | 45 ++++++++++++ n/NVHPC/NVHPC-21.11.eb | 12 ++-- o/Octopus/Octopus-11.3-intel-2020b-mpi.eb | 61 ++++++++++++++++ ...penMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1-v2.eb | 43 +++++++++++ .../OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1.eb | 43 +++++++++++ p/PETSc/PETSc-3.16.2-intel-2020b.eb | 55 ++++++++++++++ p/PLUMED/PLUMED-2.7.3-fosscuda-2020b.eb | 59 +++++++++++++++ p/phonopy/phonopy-2.12.0-conda.eb | 26 +++++++ u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb | 57 +++++++++++++++ u/UCX/UCX-1.11.2-NVHPC-21.11-CUDA-11.4.1.eb | 50 +++++++++++++ ...4.4-intel-2020a-mkl=sequential-karolina.eb | 71 ++++++++++++++++++ 20 files changed, 819 insertions(+), 9 deletions(-) create mode 100644 a/AOCC/AOCC-3.2.0-GCCcore-11.2.0.eb create mode 100644 c/CP2K/CP2K-8.2-foss-2020b.eb create mode 100644 c/CP2K/CP2K-8.2-intel-2020b.eb create mode 100644 g/GROMACS/GROMACS-2021.4-fosscuda-2020b-PLUMED-2.7.3.eb create mode 100644 g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.3.eb create mode 100644 i/intel-compilers/intel-compilers-2021.4.0.eb create mode 100644 l/Libint/Libint-2.6.0-GCC-10.2.0-lmax-6-cp2k.eb create mode 100644 l/libxc/libxc-5.1.3-GCC-10.2.0.eb create mode 100644 o/Octopus/Octopus-11.3-intel-2020b-mpi.eb create mode 100644 o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1-v2.eb create mode 100644 o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1.eb create mode 100644 p/PETSc/PETSc-3.16.2-intel-2020b.eb create mode 100644 p/PLUMED/PLUMED-2.7.3-fosscuda-2020b.eb create mode 100644 p/phonopy/phonopy-2.12.0-conda.eb create mode 100644 u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb create mode 100644 u/UCX/UCX-1.11.2-NVHPC-21.11-CUDA-11.4.1.eb create mode 100644 v/VASP/VASP-5.4.4-intel-2020a-mkl=sequential-karolina.eb diff --git a/a/AOCC/AOCC-3.2.0-GCCcore-11.2.0.eb b/a/AOCC/AOCC-3.2.0-GCCcore-11.2.0.eb new file mode 100644 index 00000000..15484602 --- /dev/null +++ b/a/AOCC/AOCC-3.2.0-GCCcore-11.2.0.eb @@ -0,0 +1,27 @@ +# IT4Innovations +# LK 2022 + +name = 'AOCC' +version = '3.2.0' + +homepage = 'https://developer.amd.com/amd-aocc/' +description = "AMD Optimized C/C++ & Fortran compilers (AOCC) based on LLVM 12.0" + +# Clang also depends on libstdc++ during runtime, but this dependency is +# already specified as the toolchain. +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['http://developer.amd.com/wordpress/media/files/'] +sources = ['aocc-compiler-%(version)s.tar'] +checksums = ['8493525b3df77f48ee16f3395a68ad4c42e18233a44b4d9282b25dbb95b113ec'] + +clangversion = '13.0.0' + +dependencies = [ + ('binutils', '2.37'), + ('ncurses', '6.2'), + ('zlib', '1.2.11'), + ('libxml2', '2.9.10'), +] + +moduleclass = 'compiler' diff --git a/c/CP2K/CP2K-8.2-foss-2020b.eb b/c/CP2K/CP2K-8.2-foss-2020b.eb new file mode 100644 index 00000000..c8301515 --- /dev/null +++ b/c/CP2K/CP2K-8.2-foss-2020b.eb @@ -0,0 +1,39 @@ +# IT4Innovations +# LK 2021 + +name = 'CP2K' +version = '8.2' + +homepage = 'https://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'pic': True, 'openmp': True} + +source_urls = ['https://github.com/cp2k/cp2k/releases/download/v%(version)s.0/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['53e1de7f708e127a6b3824ad3659068f'] + +dependencies = [ + ('Libint', '2.6.0', '-lmax-6-cp2k'), + ('libxc', '5.1.3'), + ('libxsmm', '1.16.1'), + ('FFTW', '3.3.8'), + ('PLUMED', '2.6.2'), +] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.7.1'), +] + +type = 'psmp' + +# regression test reports handful of failures, +# we're assuming those are OK to ignore... +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/c/CP2K/CP2K-8.2-intel-2020b.eb b/c/CP2K/CP2K-8.2-intel-2020b.eb new file mode 100644 index 00000000..67fe4479 --- /dev/null +++ b/c/CP2K/CP2K-8.2-intel-2020b.eb @@ -0,0 +1,39 @@ +# IT4Innovations +# LK 2021 + +name = 'CP2K' +version = '8.2' + +homepage = 'https://www.cp2k.org/' +description = """CP2K is a freely available (GPL) program, written in Fortran 95, to perform atomistic and molecular + simulations of solid state, liquid, molecular and biological systems. It provides a general framework for different + methods such as e.g. density functional theory (DFT) using a mixed Gaussian and plane waves approach (GPW), and + classical pair and many-body potentials. """ + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'pic': True, 'openmp': True} + +source_urls = ['https://github.com/cp2k/cp2k/releases/download/v%(version)s.0/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['53e1de7f708e127a6b3824ad3659068f'] + +dependencies = [ + ('Libint', '2.6.0', '-lmax-6-cp2k'), + ('libxc', '5.1.3', '', ('GCC', '10.2.0')), + ('libxsmm', '1.16.1'), + ('FFTW', '3.3.8'), + ('PLUMED', '2.6.2'), +] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.7.1'), +] + +type = 'psmp' + +# regression test reports handful of failures, +# we're assuming those are OK to ignore... +ignore_regtest_fails = True + +moduleclass = 'chem' diff --git a/d/DFTB+/DFTB+-21.1-intel-2020b-Python-3.8.6-karolina.eb b/d/DFTB+/DFTB+-21.1-intel-2020b-Python-3.8.6-karolina.eb index ca3c546a..e619bf9d 100644 --- a/d/DFTB+/DFTB+-21.1-intel-2020b-Python-3.8.6-karolina.eb +++ b/d/DFTB+/DFTB+-21.1-intel-2020b-Python-3.8.6-karolina.eb @@ -20,9 +20,9 @@ toolchain = {'name': 'intel', 'version': '2020b'} #toolchainopts = {'lowopt': True, 'optarch': False} # original import os if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: - toolchainopts = {'usempi': False, 'optarch': 'march=core-avx2'} + toolchainopts = {'lowopt': True, 'optarch': 'march=core-avx2'} else: - toolchainopts = {'usempi': False} + toolchainopts = {'lowopt': True, 'optarch': False} local_external_dir = '%%(builddir)s/dftbplus-%%(version)s/external/%s/origin/' diff --git a/g/GROMACS/GROMACS-2021.4-fosscuda-2020b-PLUMED-2.7.3.eb b/g/GROMACS/GROMACS-2021.4-fosscuda-2020b-PLUMED-2.7.3.eb new file mode 100644 index 00000000..007929c8 --- /dev/null +++ b/g/GROMACS/GROMACS-2021.4-fosscuda-2020b-PLUMED-2.7.3.eb @@ -0,0 +1,72 @@ +# IT4Innovations +# LK 2021 + +name = 'GROMACS' +version = '2021.4' +local_plum_ver = '2.7.3' +versionsuffix = '-PLUMED-%s' % local_plum_ver + +homepage = 'https://www.gromacs.org' +description = """ +GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the +Newtonian equations of motion for systems with hundreds to millions of +particles. + +This is a GPU enabled build, containing both MPI and threadMPI builds. + +It also contains the gmxapi extension for the single precision MPI build. +""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'openmp': True, 'usempi': True, 'optarch': 'march=core-avx2', 'pic': True} +else: + toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'https://ftp.gromacs.org/pub/gromacs/', + 'ftp://ftp.gromacs.org/pub/gromacs/', +] +sources = [SOURCELOWER_TAR_GZ] + +patches = [ + 'GROMACS-2019_fix_omp_num_threads_and_google_test_death_style_in_tests.patch', + 'GROMACS-2019_increase_test_timeout_for_GPU.patch', + 'GROMACS-2021_fix_gmxapi_gmx_allowed_cmd_name.patch', + 'GROMACS-2020.5_fix_threads_gpu_Gmxapitests.patch', +] + +builddependencies = [ + ('CMake', '3.18.4'), + ('scikit-build', '0.11.1'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('networkx', '2.5'), + ('PLUMED', local_plum_ver), +] + +exts_defaultclass = 'PythonPackage' + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'download_dep_fail': True, + 'sanity_pip_check': True, +} + +exts_list = [ + ('gmxapi', '0.2.0', { + 'preinstallopts': "export GMXTOOLCHAINDIR=%(installdir)s/share/cmake/gromacs_mpi && ", + 'checksums': ['3954bf123da12fc60bcfaeed8263f5e2d3e16e5136c2bb5c8207b20fa7406788'], + }), +] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', +} + +moduleclass = 'bio' diff --git a/g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.2.eb b/g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.2.eb index 0a75705d..e6ba6325 100644 --- a/g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.2.eb +++ b/g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.2.eb @@ -3,7 +3,7 @@ name = 'GROMACS' version = '2021.4' -local_plum_ver = '2.7.3' +local_plum_ver = '2.7.2' versionsuffix = '-PLUMED-%s' % local_plum_ver homepage = 'http://www.gromacs.org' diff --git a/g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.3.eb b/g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.3.eb new file mode 100644 index 00000000..0a75705d --- /dev/null +++ b/g/GROMACS/GROMACS-2021.4-intel-2020b-PLUMED-2.7.3.eb @@ -0,0 +1,34 @@ +# IT4Innovations 2020 +# LK + +name = 'GROMACS' +version = '2021.4' +local_plum_ver = '2.7.3' +versionsuffix = '-PLUMED-%s' % local_plum_ver + +homepage = 'http://www.gromacs.org' +description = """ +GROMACS is a versatile package to perform molecular dynamics, + i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles. + +This is a GPU enabled build, containing both MPI and threadMPI binaries. +""" + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = [ + 'https://ftp.gromacs.org/pub/gromacs/', + 'ftp://ftp.gromacs.org/pub/gromacs/', +] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CMake', '3.18.4'), +] + +dependencies = [ + ('PLUMED', local_plum_ver, '-Python-3.8.6'), +] + +moduleclass = 'bio' diff --git a/i/intel-compilers/intel-compilers-2021.4.0.eb b/i/intel-compilers/intel-compilers-2021.4.0.eb new file mode 100644 index 00000000..84dee3ea --- /dev/null +++ b/i/intel-compilers/intel-compilers-2021.4.0.eb @@ -0,0 +1,37 @@ +# IT4Innovations +# LK 2022 + +name = 'intel-compilers' +version = '2021.4.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html' +description = "Intel C, C++ & Fortran compilers (classic and oneAPI)" + +toolchain = SYSTEM + +# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html +sources = [ + { + 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18209/'], + 'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.3201_offline.sh', + }, + { + 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18210/'], + 'filename': 'l_fortran-compiler_p_%(version)s.3224_offline.sh', + }, +] +checksums = [ + # l_dpcpp-cpp-compiler_p_2021.4.0.3201_offline.sh + '9206bff1c2fdeb1ca0d5f79def90dcf3e6c7d5711b9b5adecd96a2ba06503828', + 'de2fcf40e296c2e882e1ddf2c45bb8d25aecfbeff2f75fcd7494068d621eb7e0', # l_fortran-compiler_p_2021.4.0.3224_offline.sh +] + +local_gccver = '11.2.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.37', '', ('GCCcore', local_gccver)), +] + +license_file = '/apps/licenses/intel/license.lic' + +moduleclass = 'compiler' diff --git a/l/Libint/Libint-2.6.0-GCC-10.2.0-lmax-6-cp2k.eb b/l/Libint/Libint-2.6.0-GCC-10.2.0-lmax-6-cp2k.eb new file mode 100644 index 00000000..664404a1 --- /dev/null +++ b/l/Libint/Libint-2.6.0-GCC-10.2.0-lmax-6-cp2k.eb @@ -0,0 +1,52 @@ +# IT4Innovations +# LK 2021 + +name = 'Libint' +version = '2.6.0' +local_lmax = 6 +# custom configuration, to be used as dependency for CP2K +versionsuffix = '-lmax-%s-cp2k' % local_lmax + +homepage = 'https://github.com/evaleev/libint' +description = """Libint library is used to evaluate the traditional (electron repulsion) and certain novel two-body + matrix elements (integrals) over Cartesian Gaussian functions used in modern atomic and molecular theory.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} +toolchainopts = {'pic': True, 'cstd': 'c++11'} + +source_urls = ['https://github.com/evaleev/libint/archive'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'Libint-%(version)s_fix-LIBINT2-MAX-AM-default1.patch', + 'Libint-2.6.0_remove-test-eri.patch', +] +checksums = [ + '4ae47e8f0b5632c3d2a956469a7920896708e9f0e396ec10071b8181e4c8d9fa', # v2.6.0.tar.gz + # Libint-2.6.0_fix-LIBINT2-MAX-AM-default1.patch + 'e5445c89639d113be7726c2bc1164d2f6ea75e76abbb1c94acd55c508693d5ab', + # Libint-2.6.0_remove-test-eri.patch + 'e47868901250078adeb35b80ab866ba8063ad9756881d1b557cb925334df653b', +] + +builddependencies = [ + ('Autotools', '20200321'), + ('GMP', '6.2.0'), + ('Boost', '1.74.0'), + ('Eigen', '3.3.8'), + ('Python', '3.8.6'), +] + +# configure options as required by CP2K, +# see Jenkinsfile in https://github.com/cp2k/libint-cp2k +local_eri_max_am = '%s,%s' % (local_lmax, local_lmax - 1) +local_eri23_max_am = '%s,%s' % (local_lmax + 2, local_lmax + 1) + +libint_compiler_configopts = '--enable-eri=1 --enable-eri2=1 --enable-eri3=1 --with-max-am=%s ' % local_lmax +libint_compiler_configopts += '--with-eri-max-am=%s ' % local_eri_max_am +libint_compiler_configopts += '--with-eri2-max-am=%s ' % local_eri23_max_am +libint_compiler_configopts += '--with-eri3-max-am=%s ' % local_eri23_max_am +libint_compiler_configopts += '--enable-generic-code --disable-unrolling' + +with_fortran = True + +moduleclass = 'chem' diff --git a/l/libxc/libxc-5.1.3-GCC-10.2.0.eb b/l/libxc/libxc-5.1.3-GCC-10.2.0.eb new file mode 100644 index 00000000..8aa007ac --- /dev/null +++ b/l/libxc/libxc-5.1.3-GCC-10.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'CMakeMake' + +name = 'libxc' +version = '5.1.3' + +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': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://www.tddft.org/programs/libxc/down.php?file=%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['0350defdd6c1b165e4cf19995f590eee6e0b9db95a6b221d28cecec40f4e85cd'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('Perl', '5.32.0'), +] + +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/n/NVHPC/NVHPC-21.11.eb b/n/NVHPC/NVHPC-21.11.eb index d38097c3..4ec5dfd9 100644 --- a/n/NVHPC/NVHPC-21.11.eb +++ b/n/NVHPC/NVHPC-21.11.eb @@ -15,13 +15,13 @@ source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/'] local_tarball_tmpl = 'nvhpc_2021_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz' sources = [local_tarball_tmpl % '%(arch)s'] -#local_gccver = '10.2.0' -#dependencies = [ -# ('GCCcore', local_gccver), -# ('binutils', '2.35', '', ('GCCcore', local_gccver)), +local_gccver = '10.2.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.35', '', ('GCCcore', local_gccver)), # This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails -# ('numactl', '2.0.13', '', ('GCCcore', local_gccver)) -#] + ('numactl', '2.0.13', '', ('GCCcore', local_gccver)) +] # specify default CUDA version that should be used by NVHPC # should match one of the CUDA versions that are included with this NVHPC version diff --git a/o/Octopus/Octopus-11.3-intel-2020b-mpi.eb b/o/Octopus/Octopus-11.3-intel-2020b-mpi.eb new file mode 100644 index 00000000..64db6325 --- /dev/null +++ b/o/Octopus/Octopus-11.3-intel-2020b-mpi.eb @@ -0,0 +1,61 @@ +# IT4Innovations 2021 +# JK + +easyblock = 'ConfigureMake' + +name = 'Octopus' +version = '11.3' +versionsuffix = '-mpi' + +homepage = 'http://www.tddft.org/programs/octopus/wiki/index.php/Main_Page' +description = """Octopus is a scientific program aimed at the ab initio virtual experimentation +on a hopefully ever-increasing range of system types. Electrons are described quantum-mechanically +within density-functional theory (DFT), in its time-dependent form (TDDFT) when doing simulations +in time. Nuclei are described classically as point particles. +Electron-nucleus interaction is described within the pseudopotential approximation.""" + +toolchain = {'name': 'intel', 'version': '2020b'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'opt': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'usempi': True, 'opt': True} + +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + prebuildopts = "echo %(builddir)s && while read i; do echo $i; sed 's|-xHost|-march=core-avx2|g' -i $i; done < <(grep xHost %(builddir)s -R | cut -d ':' -f 1 | sort -u) && " + +sources = [SOURCELOWER_TAR_GZ] +source_urls = ['http://octopus-code.org/down.php?file=%(version)s/'] + +builddependencies = [ + ('Bison', '3.7.1'), + ('Perl', '5.32.0'), +] + +dependencies = [ + ('libxc', '4.3.4'), + ('netCDF', '4.7.4'), + ('netCDF-Fortran', '4.5.3'), + ('FFTW', '3.3.8'), +# ('PFFT', '1.0.8-alpha'), +# ('ETSF_IO', '1.0.4'), + ('GSL', '2.6'), +] + +configopts = 'FC="mpiifort" FCFLAGS="-O2 -march=core-avx2" --disable-openmp --enable-mpi --enable-newuoa --disable-python --disable-gdlib ' +configopts += '--with-libxc-prefix=$EBROOTLIBXC --with-gsl-prefix=$EBROOTGSL ' +configopts += '--with-blas="-L$BLAS_LIB_DIR $LIBBLAS" ' +configopts += '--with-blacs="$MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a" ' +configopts += '--with-scalapack="$MKLROOT/lib/intel64/libmkl_scalapack_lp64.a" ' +configopts += '--with-netcdf-prefix=$EBROOTNETCDFMINFORTRAN ' +#configopts += '--with-etsf-io-prefix=$EBROOTETSF_IO ' +#configopts += '--with-pfft-prefix=$EBROOTPFFT --with-mpifftw-prefix=$EBROOTFFTW ' + +#runtest = 'MPIEXEC=`which mpirun` check' + +#sanity_check_paths = { +# 'files': ["bin/octopus_mpi"], +# 'dirs': [] +#} + +moduleclass = 'chem' diff --git a/o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1-v2.eb b/o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1-v2.eb new file mode 100644 index 00000000..5f733f6f --- /dev/null +++ b/o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1-v2.eb @@ -0,0 +1,43 @@ +# IT4Innovations 2021 +# LK + +name = 'OpenMPI' +version = '4.0.6' +versionsuffix = '-CUDA-11.4.1-v2' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'NVHPC', 'version': '21.11'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('UCX', '1.11.2', '-GCC-10.2.0-CUDA-11.4.1', True), + ('CUDAcore', '11.4.1', '', True), +] + +preconfigopts = 'export CC="pgcc -noswitcherror" && export CXX="pgc++ -noswitcherror" && export FC="pgfortran -noswitcherror" && ' + +configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpirun-prefix-by-default ' +configopts += '--with-tm=/opt/pbs ' # Enable PBS +configopts += '--enable-mpi-cxx ' # Enable building the C++ MPI bindings +configopts += '--with-ucx=$EBROOTUCX ' +configopts += '--with-cuda=$EBROOTCUDACORE ' + +moduleclass = 'mpi' + +#setenv("OMPI_MCA_btl_openib_if_include", "mlx5_0") +#setenv("export OMPI_MCA_btl_openib_allow_ib", "1") +#setenv("OMPI_MCA_pml", "^ucx") +#setenv("OMPI_MCA_orte_base_help_aggregate", "0") +import os +if os.environ.get("CLUSTERNAME") in ["BARBORA"]: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx5_0', + 'OMPI_MCA_btl_openib_allow_ib': '1', + 'OMPI_MCA_orte_base_help_aggregate': '0', + 'OMPI_MCA_pml': '^ucx', + } diff --git a/o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1.eb b/o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1.eb new file mode 100644 index 00000000..a9354ea3 --- /dev/null +++ b/o/OpenMPI/OpenMPI-4.0.6-NVHPC-21.11-CUDA-11.4.1.eb @@ -0,0 +1,43 @@ +# IT4Innovations 2021 +# LK + +name = 'OpenMPI' +version = '4.0.6' +versionsuffix = '-CUDA-11.4.1' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'NVHPC', 'version': '21.11'} + +source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads'] +sources = [SOURCELOWER_TAR_GZ] + +dependencies = [ + ('UCX', '1.11.2', versionsuffix), + ('CUDAcore', '11.4.1', '', True), +] + +preconfigopts = 'export CC="pgcc -noswitcherror" && export CXX="pgc++ -noswitcherror" && export FC="pgfortran -noswitcherror" && ' + +configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs ' +configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support +configopts += '--enable-mpirun-prefix-by-default ' +configopts += '--with-tm=/opt/pbs ' # Enable PBS +configopts += '--enable-mpi-cxx ' # Enable building the C++ MPI bindings +configopts += '--with-ucx=$EBROOTUCX ' +configopts += '--with-cuda=$EBROOTCUDACORE ' + +moduleclass = 'mpi' + +#setenv("OMPI_MCA_btl_openib_if_include", "mlx5_0") +#setenv("export OMPI_MCA_btl_openib_allow_ib", "1") +#setenv("OMPI_MCA_pml", "^ucx") +#setenv("OMPI_MCA_orte_base_help_aggregate", "0") +import os +if os.environ.get("CLUSTERNAME") in ["BARBORA"]: + modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx5_0', + 'OMPI_MCA_btl_openib_allow_ib': '1', + 'OMPI_MCA_orte_base_help_aggregate': '0', + 'OMPI_MCA_pml': '^ucx', + } diff --git a/p/PETSc/PETSc-3.16.2-intel-2020b.eb b/p/PETSc/PETSc-3.16.2-intel-2020b.eb new file mode 100644 index 00000000..ae43d5a1 --- /dev/null +++ b/p/PETSc/PETSc-3.16.2-intel-2020b.eb @@ -0,0 +1,55 @@ +# IT4Innovations +# LK + +name = 'PETSc' +version = '3.16.2' + +homepage = 'https://www.mcs.anl.gov/petsc' +description = """PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the + scalable (parallel) solution of scientific applications modeled by partial differential equations.""" + +toolchain = {'name': 'intel', 'version': '2020b'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'openmp': True, 'usempi': True, 'optarch': 'march=core-avx2', 'pic': True} +else: + toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = [ + 'https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/', + 'ftp://ftp.mcs.anl.gov/pub/petsc/release-snapshots/', +] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + 'PETSc_ranlib-fix.patch', +] +checksums = [ + '6151e438463c63ac0a2f9a7aae75e100', # petsc-3.16.2.tar.gz + '64cf9d5008d5e92117e65bdec5316d991b6a6b8c8ecf7ea46eb790a498266297', # PETSc_ranlib-fix.patch +] + +builddependencies = [('CMake', '3.18.4')] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('Boost', '1.74.0'), +# ('METIS', '5.1.0'), +# ('SCOTCH', '6.1.0'), +# ('MUMPS', '5.3.5', '-metis'), +# ('SuiteSparse', '5.8.1', '-METIS-5.1.0'), +# ('Hypre', '2.20.0'), +] + +# enabling --with-mpi4py seems to be totally broken, leads to make errors like: +# No rule to make target 'mpi4py-build' +configopts = '--LIBS="$LIBS -lrt" --with-mpi4py=0 --with-fortran=1 --download-scalapack ' +configopts += '--download-parmetis --download-metis --download-mumps=yes --download-hypre' + +shared_libs = 1 + +# only required when building PETSc in a SLURM job environment +# configopts += '--with-batch=1 --known-mpi-shared-libraries=1 --known-64-bit-blas-indices=0 ' +# prebuildopts = "srun ./conftest-arch-linux2-c-opt && ./reconfigure-arch-linux2-c-opt.py && " + +moduleclass = 'numlib' diff --git a/p/PLUMED/PLUMED-2.7.3-fosscuda-2020b.eb b/p/PLUMED/PLUMED-2.7.3-fosscuda-2020b.eb new file mode 100644 index 00000000..9e33956c --- /dev/null +++ b/p/PLUMED/PLUMED-2.7.3-fosscuda-2020b.eb @@ -0,0 +1,59 @@ +# IT4Innovations +# LK 2021 + +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.7.3' + +homepage = 'https://www.plumed.org' +description = """PLUMED is an open source library for free energy calculations in molecular systems which + works together with some of the most popular molecular dynamics engines. Free energy calculations can be + performed as a function of many order parameters with a particular focus on biological problems, using + state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD. + The software, written in C++, can be easily interfaced with both fortran and C/C++ codes. +""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +toolchainopts = {'usempi': 'True'} + +source_urls = ['https://github.com/plumed/plumed2/releases/download/v%(version)s/'] +sources = [SOURCE_TGZ] +checksums = ['02899545d9d83a1391b80a202f243fde'] + +dependencies = [ + ('zlib', '1.2.11'), + ('GSL', '2.6'), + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('Boost', '1.74.0'), +] + +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +configopts = '--exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --enable-python ' +configopts += '--enable-boost_graph --enable-boost_serialization ' +configopts += '--enable-asmjit ' +prebuildopts = 'source sourceme.sh && ' + +# make sure that ld.gold linker is used +# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564" +# (problem with intel build but maintain consistency between easyconfigs) +buildopts = 'LD_RO="ld.gold -r -o"' + +# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed +preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" ' + +sanity_check_paths = { + 'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["python -c 'import plumed'"] + +modextrapaths = { + 'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT, + 'PLUMED_ROOT': 'lib/plumed', + 'PYTHONPATH': 'lib/plumed/python', +} + +moduleclass = 'chem' diff --git a/p/phonopy/phonopy-2.12.0-conda.eb b/p/phonopy/phonopy-2.12.0-conda.eb new file mode 100644 index 00000000..68311537 --- /dev/null +++ b/p/phonopy/phonopy-2.12.0-conda.eb @@ -0,0 +1,26 @@ +# IT4Innovations 2021 + +easyblock = "Conda" + +name = 'phonopy' +version = '2.12.0' +versionsuffix = '-conda' + +homepage = 'http://phonopy.sourceforge.net/phono3py/index.html' +description = """This software calculates phonon-phonon interaction related properties""" + +toolchain = SYSTEM + +dependencies = [ + ('Anaconda3', '2021.05'), +] + +requirements = "%(namelower)s numpy scipy h5py pyyaml matplotlib-base spglib" +channels = ['conda-forge'] + +sanity_check_paths = { + 'files': ['bin/phonopy'], + 'dirs': ['bin', 'lib'] +} + +moduleclass = 'phys' diff --git a/u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb b/u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb new file mode 100644 index 00000000..3beb2523 --- /dev/null +++ b/u/UCX/UCX-1.11.2-GCCcore-11.2.0.eb @@ -0,0 +1,57 @@ +# IT4Innovations +# LK 2022 + +easyblock = 'ConfigureMake' + +name = 'UCX' +version = '1.11.2' + +homepage = 'https://www.openucx.org/' +description = """Unified Communication X +An open-source production grade communication framework for data centric +and high-performance applications +""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] +sources = ['%(namelower)s-%(version)s.tar.gz'] +patches = [ + 'UCX-1.10.0-dynamic_modules.patch', + 'UCX-1.11.2-missing_header.patch', +] +checksums = [ + 'deebf86a5344fc2bd9e55449f88c650c4514928592807c9bc6fe4190e516c6df', # ucx-1.11.2.tar.gz + '3098c91f2aadc5f148466a2e8756769ad5e99f9515d8cfb6ad8a5712e7433408', # UCX-1.10.0-dynamic_modules.patch + 'fa9052a33da5c8e94bc7df0e5fe6ce3baf613310842ae1ab9ed4ef2d49666c01', # UCX-1.11.2-missing_header.patch +] + +builddependencies = [ + ('binutils', '2.37'), + ('Autotools', '20210726'), + ('pkg-config', '0.29.2'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +dependencies = [ + ('zlib', '1.2.11'), + ('numactl', '2.0.14'), +] + +configure_cmd = "contrib/configure-release" + +configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs ' +configopts += '--without-java --disable-doxygen-doc ' + +buildopts = 'V=1' + +sanity_check_paths = { + 'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'], + 'dirs': ['include', 'lib', 'share'] +} + +sanity_check_commands = ["ucx_info -d"] + +moduleclass = 'lib' diff --git a/u/UCX/UCX-1.11.2-NVHPC-21.11-CUDA-11.4.1.eb b/u/UCX/UCX-1.11.2-NVHPC-21.11-CUDA-11.4.1.eb new file mode 100644 index 00000000..3346f925 --- /dev/null +++ b/u/UCX/UCX-1.11.2-NVHPC-21.11-CUDA-11.4.1.eb @@ -0,0 +1,50 @@ +# IT4Innovations 2021 +# LK + +easyblock = 'ConfigureMake' + +name = 'UCX' +version = '1.11.2' +versionsuffix= '-CUDA-11.4.1' + +homepage = 'http://www.openucx.org/' +description = """Unified Communication X +An open-source production grade communication framework for data centric +and high-performance applications +""" + +toolchain = {'name': 'NVHPC', 'version': '21.11'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] +sources = ['%(namelower)s-%(version)s.tar.gz'] +#patches = ['%(name)s-%(version)s.patch'] + +builddependencies = [ + ('binutils', '2.35'), + ('Autotools', '20200321'), + ('pkg-config', '0.29.2'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +dependencies = [ + ('numactl', '2.0.13'), + ('CUDAcore', '11.4.1', '', True), +] + +configure_cmd = "contrib/configure-release" + +configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs --with-gdrcopy=$EBROOTGDRCOPY ' +configopts += '--without-java --disable-doxygen-doc --with-cuda=$EBROOTCUDACORE ' + +buildopts = 'V=1' + +sanity_check_paths = { + 'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'], + 'dirs': ['include', 'lib', 'share'] +} + +#sanity_check_commands = ["ucx_info -d"] + +moduleclass = 'lib' diff --git a/v/VASP/VASP-5.4.4-intel-2020a-mkl=sequential-karolina.eb b/v/VASP/VASP-5.4.4-intel-2020a-mkl=sequential-karolina.eb new file mode 100644 index 00000000..a59ce032 --- /dev/null +++ b/v/VASP/VASP-5.4.4-intel-2020a-mkl=sequential-karolina.eb @@ -0,0 +1,71 @@ +# IT4Innovations 2020 +# LK + +easyblock = 'MakeCp' + +name = 'VASP' +version = '5.4.4' +versionsuffix = '-mkl=sequential' + +homepage = 'http://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a local_computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles. + +To use VASP, You need academic licenses from University of Wiena. Follow the instructions https://www.vasp.at/index.php/faqs. + +Then send us please a list of authorized users and their ID for which you need this access. Please use only http://support.it4i.cz/rt. We are responsible to verify your licenses. After succesfull verification You will be granted to use VASP in our enviroment.""" + +toolchain = {'name': 'intel', 'version': '2020a'} +toolchainopts = {'pic': True, 'usempi': True} + +# Vasp is proprietary software, see http://www.vasp.at/index.php/faqs on +# how to get access to the code +sources = ['%(namelower)s.%(version)s.tar.gz'] + +dependencies = [ + ('zlib', '1.2.11', '', True), +] + +prebuildopts = 'cp arch/makefile.include.linux_intel ./makefile.include && ' + +# AMD/intel cpu +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + prebuildopts += 'sed -i "s|-xHOST|-march=core-avx2|" makefile.include && ' + +# path to libfftw3xf_intel.a is hardcoded in makefile.include +prebuildopts += 'sed -i "s|\$(MKLROOT)/interfaces/fftw3xf|\$(FFTW_LIB_DIR)|" makefile.include && ' + +# remove mkl flag to prevent mixing dynamic libs with the static libs in +# LIBBLACS/SCALAPACK +prebuildopts += 'sed -i "s|-mkl=sequential ||" makefile.include && ' + +# OFLAG = -O2 -xAVX +prebuildopts += 'sed -i "s|OFLAG = -O2|OFLAG = -O2 -ip -march=core-avx2|" makefile.include && ' + +# objects add MKLROOT +prebuildopts += 'sed -i "s|OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o|OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \$(MKLROOT)/lib/intel64_lin/libfftw3xf_intel.a|" makefile.include && ' + +prebuildopts += 'sed -i "s|FFLAGS = -assume byterecl -w|FFLAGS = -FR -assume byterecl|" makefile.include && ' +prebuildopts += 'sed -i "s|BLAS =|BLAS = -mkl=sequential|" makefile.include && ' + +# VASP uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +#prebuildopts += 'exit 1' + +buildopts = 'all BLACS="$LIBBLACS" SCALAPACK="$LIBSCALAPACK" ' + +parallel = 1 + +files_to_copy = [(['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_std', 'bin/vasp_gam', 'bin/vasp_ncl'], + 'dirs': [] +} + +modluafooter = 'add_property("state","license")' + +moduleclass = 'phys'