From 60a06b0b40e2229f0b8ff0eb34f2a1c07cb6ac10 Mon Sep 17 00:00:00 2001 From: Lukas Krupcik Date: Tue, 9 Jul 2024 09:30:41 +0200 Subject: [PATCH] modified: b/Boost/Boost-1.72.0-intel-2020a.eb modified: l/LAMMPS/LAMMPS-2Aug2023_update1-foss-2021b-kokkos.eb new file: l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb new file: l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb modified: m/METIS/METIS-5.1.0-intel-2020a.eb modified: p/PETSc/PETSc-3.12.4-intel-2020a.eb modified: s/SCOTCH/SCOTCH-6.0.9-intel-2020a.eb modified: s/SLEPc/SLEPc-3.13.3-intel-2020a.eb new file: y/Yambo/Yambo-5.2.3-intel-2020a-SLEPc.eb --- b/Boost/Boost-1.72.0-intel-2020a.eb | 2 +- ...MMPS-2Aug2023_update1-foss-2021b-kokkos.eb | 4 +- ...3_update2-foss-2023a-kokkos-CUDA-12.1.1.eb | 195 ++++++++++++++++++ ...MMPS-2Aug2023_update2-foss-2023a-kokkos.eb | 187 +++++++++++++++++ m/METIS/METIS-5.1.0-intel-2020a.eb | 5 + p/PETSc/PETSc-3.12.4-intel-2020a.eb | 6 +- s/SCOTCH/SCOTCH-6.0.9-intel-2020a.eb | 1 + s/SLEPc/SLEPc-3.13.3-intel-2020a.eb | 1 + y/Yambo/Yambo-5.2.3-intel-2020a-SLEPc.eb | 51 +++++ 9 files changed, 448 insertions(+), 4 deletions(-) create mode 100644 l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb create mode 100644 l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb create mode 100644 y/Yambo/Yambo-5.2.3-intel-2020a-SLEPc.eb diff --git a/b/Boost/Boost-1.72.0-intel-2020a.eb b/b/Boost/Boost-1.72.0-intel-2020a.eb index e10d1969..53faf22d 100644 --- a/b/Boost/Boost-1.72.0-intel-2020a.eb +++ b/b/Boost/Boost-1.72.0-intel-2020a.eb @@ -11,7 +11,7 @@ toolchainopts = {'pic': True, 'usempi': True} source_urls = [SOURCEFORGE_SOURCE] sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))] - +checksums = ['c66e88d5786f2ca4dbebb14e06b566fb642a1a6947ad8cc9091f9f445134143f'] dependencies = [ ('bzip2', '1.0.8'), diff --git a/l/LAMMPS/LAMMPS-2Aug2023_update1-foss-2021b-kokkos.eb b/l/LAMMPS/LAMMPS-2Aug2023_update1-foss-2021b-kokkos.eb index 717acf1e..c36c63e8 100644 --- a/l/LAMMPS/LAMMPS-2Aug2023_update1-foss-2021b-kokkos.eb +++ b/l/LAMMPS/LAMMPS-2Aug2023_update1-foss-2021b-kokkos.eb @@ -2,7 +2,7 @@ # LK 2023 name = 'LAMMPS' -version = '2Aug2023' +version = '2Aug2023_update1' versionsuffix = '-kokkos' homepage = 'https://www.lammps.org' @@ -27,7 +27,7 @@ else: # 'https://github.com/lammps/lammps/archive/' source_urls = [GITHUB_LOWER_SOURCE] -sources = ['stable_%(version)s_update1.tar.gz'] +sources = ['stable_%(version)s.tar.gz'] checksums = ['0e5568485e5ee080412dba44a1b7a93f864f1b5c75121f11d528854269953ed0'] builddependencies = [ diff --git a/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb b/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb new file mode 100644 index 00000000..14a19794 --- /dev/null +++ b/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb @@ -0,0 +1,195 @@ +# IT4Innovations +# LK 2024 + +name = 'LAMMPS' +version = '2Aug2023_update2' +_cuda_suffix = '-CUDA-%(cudaver)s' +versionsuffix = '-kokkos' + _cuda_suffix + +homepage = 'https://www.lammps.org' +description = """LAMMPS is a classical molecular dynamics code, and an acronym +for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has +potentials for solid-state materials (metals, semiconductors) and soft matter +(biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be +used to model atoms or, more generically, as a parallel particle simulator at +the atomic, meso, or continuum scale. LAMMPS runs on single processors or in +parallel using message-passing techniques and a spatial-decomposition of the +simulation domain. The code is designed to be easy to modify or extend with new +functionality. +""" + +toolchain = {'name': 'foss', 'version': '2023a'} +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} + +# 'https://github.com/lammps/lammps/archive/' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['stable_%(version)s.tar.gz'] +patches = [ + 'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch', + 'LAMMPS-2Aug2023_fix-timestep-balance-example.patch', +] +checksums = [ + {'stable_2Aug2023_update2.tar.gz': '3bcecabc9cad08d0a4e4d989b52d29c58505f7ead8ebacf43c9db8d9fd3d564a'}, + {'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch': + '723c944b62b9d28427d25e80a7a67049631702d344df49268a6846aa0cd0fe04'}, + {'LAMMPS-2Aug2023_fix-timestep-balance-example.patch': + '6f68387ced2b4bd0a06e4c3d31b0ffd47042476777d87d8a0ca6b19a4e6a1777'}, +] + +builddependencies = [ + ('CMake', '3.26.3'), + ('pkgconf', '1.9.5'), + ('archspec', '0.2.1'), +] +dependencies = [ + ('CUDA', '12.1.1', '', SYSTEM), + ('UCX-CUDA', '1.14.1', _cuda_suffix), + ('NCCL', '2.18.3', _cuda_suffix), + ('Python', '3.11.3'), + ('libpng', '1.6.39'), + ('libjpeg-turbo', '2.1.5.1'), + ('netCDF', '4.9.2'), + ('GSL', '2.7'), + ('zlib', '1.2.13'), + ('gzip', '1.12'), + ('cURL', '8.0.1'), + ('HDF5', '1.14.0'), + ('PCRE', '8.45'), + ('libxml2', '2.11.4'), + ('FFmpeg', '6.0'), + ('Voro++', '0.4.6'), + ('kim-api', '2.3.0'), + ('Eigen', '3.4.0'), + ('PLUMED', '2.9.0'), + ('SciPy-bundle', '2023.07'), + # VTK package is auto-disabled if this dep is not available + ('VTK', '9.3.0'), + # We use a custom build of MDI + ('MDI', '1.4.26'), +] +if ARCH == 'x86_64': + # TBB and ScaFaCos are an optional dependency when building on Intel arch + dependencies += [ + ('tbb', '2021.11.0'), + ('ScaFaCoS', '1.0.4'), + ] + +# To use additional custom configuration options, use the 'configopts' easyconfig parameter +# See docs and lammps easyblock for more information. +# https://github.com/lammps/lammps/blob/master/cmake/README.md#lammps-configuration-options + +# OpenMP-Kokkos build is default in the current easyblock. One can switch to serial backend of Kokkos, +# which is claimed to be faster in pure MPI calculations +# configopts = "-DKokkos_ENABLE_SERIAL=yes " + + +# packages auto-enabled by easyblock +# 'GPU' - if cuda package is present and kokkos is disabled +# 'KOKKOS' - if kokkos is enabled (by default) +# 'INTEL' - if builing on Intel CPU +# 'OPENMP' - if OpenMP swithed on in 'toolchainopts' + +# include the following extra packages into the build +general_packages = [ + 'AMOEBA', + 'ASPHERE', + 'ATC', + 'AWPMD', + 'BOCS', + 'BODY', + 'BPM', + 'BROWNIAN', + 'CG-DNA', + 'CG-SPICA', + 'CLASS2', + 'COLLOID', + 'COLVARS', + 'COMPRESS', + 'CORESHELL', + 'DIELECTRIC', + 'DIFFRACTION', + 'DIPOLE', + 'DPD-BASIC', + 'DPD-MESO', + 'DPD-REACT', + 'DPD-SMOOTH', + 'DRUDE', + 'EFF', + 'ELECTRODE', + 'EXTRA-COMPUTE', + 'EXTRA-DUMP', + 'EXTRA-FIX', + 'EXTRA-MOLECULE', + 'EXTRA-PAIR', + 'FEP', + 'GRANULAR', + 'H5MD', + 'INTERLAYER', + 'KIM', + 'KSPACE', + 'LATBOLTZ', + 'LEPTON', + 'MACHDYN', + 'MANIFOLD', + 'MANYBODY', + 'MC', + 'MDI', + 'MEAM', + 'MGPT', + 'MISC', + 'ML-IAP', + 'ML-PACE', + 'ML-POD', + 'ML-RANN', + 'ML-SNAP', + 'MOFFF', + 'MOLECULE', + 'MOLFILE', + 'MPIIO', + 'NETCDF', + 'OPT', + 'ORIENT', + 'PERI', + 'PHONON', + 'PLUGIN', + 'PLUMED', + 'POEMS', + 'PTM', + 'PYTHON', + 'QEQ', + 'QTB', + 'REACTION', + 'REAXFF', + 'REPLICA', + 'RIGID', + 'SCAFACOS', + 'SHOCK', + 'SMTBQ', + 'SPH', + 'SPIN', + 'SRD', + 'TALLY', + 'UEF', + 'VORONOI', + 'VTK', + 'YAFF', +] + +# Excluded packages due to requiring additional (non-trivial) deps +# - ADIOS +# - LATTE +# - MESONT (requires very large files downloaded during build) +# - ML-HDNNP (requires N2P2) +# - ML-QUIP +# - MSCG +# - QMMM (setup seems complex) + +# hardware-specific option +# note: only the highest capability will be used +# cuda_compute_capabilities = ['9.0'] + +moduleclass = 'chem' diff --git a/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb b/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb new file mode 100644 index 00000000..742154b8 --- /dev/null +++ b/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb @@ -0,0 +1,187 @@ +# IT4Innovations +# LK 2024 + +name = 'LAMMPS' +version = '2Aug2023_update2' +versionsuffix = '-kokkos' + +homepage = 'https://www.lammps.org' +description = """LAMMPS is a classical molecular dynamics code, and an acronym +for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has +potentials for solid-state materials (metals, semiconductors) and soft matter +(biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be +used to model atoms or, more generically, as a parallel particle simulator at +the atomic, meso, or continuum scale. LAMMPS runs on single processors or in +parallel using message-passing techniques and a spatial-decomposition of the +simulation domain. The code is designed to be easy to modify or extend with new +functionality. +""" + +toolchain = {'name': 'foss', 'version': '2023a'} +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} + +# 'https://github.com/lammps/lammps/archive/' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['stable_%(version)s.tar.gz'] +patches = [ + 'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch', + 'LAMMPS-2Aug2023_fix-timestep-balance-example.patch', +] +checksums = [ + {'stable_2Aug2023_update2.tar.gz': '3bcecabc9cad08d0a4e4d989b52d29c58505f7ead8ebacf43c9db8d9fd3d564a'}, + {'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch': + '723c944b62b9d28427d25e80a7a67049631702d344df49268a6846aa0cd0fe04'}, + {'LAMMPS-2Aug2023_fix-timestep-balance-example.patch': + '6f68387ced2b4bd0a06e4c3d31b0ffd47042476777d87d8a0ca6b19a4e6a1777'}, +] + +builddependencies = [ + ('CMake', '3.26.3'), + ('pkgconf', '1.9.5'), + ('archspec', '0.2.1'), +] +dependencies = [ + ('Python', '3.11.3'), + ('libpng', '1.6.39'), + ('libjpeg-turbo', '2.1.5.1'), + ('netCDF', '4.9.2'), + ('GSL', '2.7'), + ('zlib', '1.2.13'), + ('gzip', '1.12'), + ('cURL', '8.0.1'), + ('HDF5', '1.14.0'), + ('PCRE', '8.45'), + ('libxml2', '2.11.4'), + ('FFmpeg', '6.0'), + ('Voro++', '0.4.6'), + ('kim-api', '2.3.0'), + ('Eigen', '3.4.0'), + ('PLUMED', '2.9.0'), + ('SciPy-bundle', '2023.07'), + # VTK package is auto-disabled if this dep is not available + ('VTK', '9.3.0'), + # We use a custom build of MDI + ('MDI', '1.4.26'), +] +if ARCH == 'x86_64': + # TBB and ScaFaCos are an optional dependency when building on Intel arch + dependencies += [ + ('tbb', '2021.11.0'), + ('ScaFaCoS', '1.0.4'), + ] + +# To use additional custom configuration options, use the 'configopts' easyconfig parameter +# See docs and lammps easyblock for more information. +# https://github.com/lammps/lammps/blob/master/cmake/README.md#lammps-configuration-options + +# OpenMP-Kokkos build is default in the current easyblock. One can switch to serial backend of Kokkos, +# which is claimed to be faster in pure MPI calculations +# configopts = "-DKokkos_ENABLE_SERIAL=yes " + + +# packages auto-enabled by easyblock +# 'GPU' - if cuda package is present and kokkos is disabled +# 'KOKKOS' - if kokkos is enabled (by default) +# 'INTEL' - if builing on Intel CPU +# 'OPENMP' - if OpenMP swithed on in 'toolchainopts' + +# include the following extra packages into the build +general_packages = [ + 'AMOEBA', + 'ASPHERE', + 'ATC', + 'AWPMD', + 'BOCS', + 'BODY', + 'BPM', + 'BROWNIAN', + 'CG-DNA', + 'CG-SPICA', + 'CLASS2', + 'COLLOID', + 'COLVARS', + 'COMPRESS', + 'CORESHELL', + 'DIELECTRIC', + 'DIFFRACTION', + 'DIPOLE', + 'DPD-BASIC', + 'DPD-MESO', + 'DPD-REACT', + 'DPD-SMOOTH', + 'DRUDE', + 'EFF', + 'ELECTRODE', + 'EXTRA-COMPUTE', + 'EXTRA-DUMP', + 'EXTRA-FIX', + 'EXTRA-MOLECULE', + 'EXTRA-PAIR', + 'FEP', + 'GRANULAR', + 'H5MD', + 'INTERLAYER', + 'KIM', + 'KSPACE', + 'LATBOLTZ', + 'LEPTON', + 'MACHDYN', + 'MANIFOLD', + 'MANYBODY', + 'MC', + 'MDI', + 'MEAM', + 'MGPT', + 'MISC', + 'ML-IAP', + 'ML-PACE', + 'ML-POD', + 'ML-RANN', + 'ML-SNAP', + 'MOFFF', + 'MOLECULE', + 'MOLFILE', + 'MPIIO', + 'NETCDF', + 'OPT', + 'ORIENT', + 'PERI', + 'PHONON', + 'PLUGIN', + 'PLUMED', + 'POEMS', + 'PTM', + 'PYTHON', + 'QEQ', + 'QTB', + 'REACTION', + 'REAXFF', + 'REPLICA', + 'RIGID', + 'SCAFACOS', + 'SHOCK', + 'SMTBQ', + 'SPH', + 'SPIN', + 'SRD', + 'TALLY', + 'UEF', + 'VORONOI', + 'VTK', + 'YAFF', +] + +# Excluded packages due to requiring additional (non-trivial) deps +# - ADIOS +# - LATTE +# - MESONT (requires very large files downloaded during build) +# - ML-HDNNP (requires N2P2) +# - ML-QUIP +# - MSCG +# - QMMM (setup seems complex) + +moduleclass = 'chem' diff --git a/m/METIS/METIS-5.1.0-intel-2020a.eb b/m/METIS/METIS-5.1.0-intel-2020a.eb index 0b3b6709..246c35c6 100644 --- a/m/METIS/METIS-5.1.0-intel-2020a.eb +++ b/m/METIS/METIS-5.1.0-intel-2020a.eb @@ -17,6 +17,11 @@ source_urls = [ 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD', ] +checksums = [ + '76faebe03f6c963127dbb73c13eab58c9a3faeae48779f049066a21c087c5db2', + '7e38a3ec8f2b8e3d189239bade5b28c0dd1c564485050109164fa71a6a767c67' +] + # We use 32bit for indices and 64bit for content patches = ['METIS-5.1.0-use-doubles.patch'] diff --git a/p/PETSc/PETSc-3.12.4-intel-2020a.eb b/p/PETSc/PETSc-3.12.4-intel-2020a.eb index 64865e02..1163ba3a 100644 --- a/p/PETSc/PETSc-3.12.4-intel-2020a.eb +++ b/p/PETSc/PETSc-3.12.4-intel-2020a.eb @@ -8,7 +8,11 @@ description = """PETSc, pronounced PET-see (the S is silent), is a suite of data scalable (parallel) solution of scientific applications modeled by partial differential equations.""" toolchain = {'name': 'intel', 'version': '2020a'} -toolchainopts = {'usempi': True, 'pic': True} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'pic': True, 'usempi': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'pic': True, 'usempi': True} # https:// does not work here source_urls = [ diff --git a/s/SCOTCH/SCOTCH-6.0.9-intel-2020a.eb b/s/SCOTCH/SCOTCH-6.0.9-intel-2020a.eb index 0ed9adf3..fedd2f30 100644 --- a/s/SCOTCH/SCOTCH-6.0.9-intel-2020a.eb +++ b/s/SCOTCH/SCOTCH-6.0.9-intel-2020a.eb @@ -12,6 +12,7 @@ toolchainopts = {'pic': True} source_urls = ['https://gforge.inria.fr/frs/download.php/file/38187/'] sources = ['%(namelower)s_%(version)s.tar.gz'] +checksums = ['622b4143cf01c480bb15708b3651b29c25e4aeb00c8c6447ff196aca2eca5c93'] dependencies = [ ('zlib', '1.2.11'), diff --git a/s/SLEPc/SLEPc-3.13.3-intel-2020a.eb b/s/SLEPc/SLEPc-3.13.3-intel-2020a.eb index 1d382134..7ebbf656 100644 --- a/s/SLEPc/SLEPc-3.13.3-intel-2020a.eb +++ b/s/SLEPc/SLEPc-3.13.3-intel-2020a.eb @@ -15,6 +15,7 @@ toolchainopts = {'usempi': True, 'openmp': True} source_urls = ['https://slepc.upv.es/download/distrib'] sources = [SOURCELOWER_TAR_GZ] +checksums = ['23d179c22b4b2f22d29fa0ac0a62f5355a964d3bc245a667e9332347c5aa8f81'] dependencies = [('PETSc', '3.12.4')] diff --git a/y/Yambo/Yambo-5.2.3-intel-2020a-SLEPc.eb b/y/Yambo/Yambo-5.2.3-intel-2020a-SLEPc.eb new file mode 100644 index 00000000..5d8670ac --- /dev/null +++ b/y/Yambo/Yambo-5.2.3-intel-2020a-SLEPc.eb @@ -0,0 +1,51 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'MakeCp' + +name = 'Yambo' +version = '5.2.3' +versionsuffix = '-SLEPc' + +homepage = 'http://www.yambo-code.org' +description = """Yambo is a FORTRAN/C code for Many-Body calculations in solid state and molecular physics. + Yambo relies on the Kohn-Sham wavefunctions generated by two DFT public codes: abinit, and PWscf.""" + +toolchain = {'name': 'intel', 'version': '2020a'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/yambo-code/yambo/archive/refs/tags/'] +sources = ['%(version)s.tar.gz'] +checksums = [ + 'a6168d1fa820af857ac51217bd6ad26dda4cc89c07e035bd7dc230038ae1ab9c', # 5.2.3 +] + +dependencies = [ + ('netCDF-Fortran', '4.5.2'), + ('libxc', '5.1.5'), + ('IOTK', '1.2.2'), + ('SLEPc', '3.12.2') +] + +prebuildopts = './configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu CPPFLAGS="" FCFLAGS="-nofor_main" --with-blas-libs="$LIBBLAS" --with-lapack-libs="$LIBLAPACK" --with-blacs-libs="$LIBBLACS" --with-scalapack-libs="$LIBSCALAPACK" --with-fft-libs="$LIBFFT" --with-netcdf-libs="-lnetcdff -lnetcdf" --with-hdf5-path=$EBROOTHDF5 --with-libxc-path=$EBROOTLIBXC --enable-iotk --with-iotk-path=$EBROOTIOTK --enable-dp --enable-memory-profile --disable-open-mp --enable-slepc --with-slepc=$EBROOTSLEPC && ' + +buildopts = 'all' + +parallel = 1 + +files_to_copy = [ + (['bin/*'], 'bin'), + (['lib/*.a'], 'lib'), + (['include/*'], 'include'), +] + +sanity_check_paths = { + 'files': ['bin/' + x for x in ['a2y', 'p2y', 'yambo', 'ypp']], + 'dirs': [] +} + +moduleclass = 'phys'