diff --git a/easybuild/easyconfigs/a/archspec/archspec-0.2.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/archspec/archspec-0.2.5-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..3070f0312a1d --- /dev/null +++ b/easybuild/easyconfigs/a/archspec/archspec-0.2.5-GCCcore-13.3.0.eb @@ -0,0 +1,23 @@ +easyblock = 'PythonPackage' + +name = 'archspec' +version = '0.2.5' + +homepage = 'https://github.com/archspec/archspec' +description = "A library for detecting, labeling, and reasoning about microarchitectures" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['5bec8dfc5366ff299071200466dc9572d56db4e43abca3c66bdd62bc2b731a2a'] + +builddependencies = [ + ('binutils', '2.42'), + ('poetry', '1.8.3'), +] + +dependencies = [('Python', '3.12.3')] + +sanity_check_commands = ["python -c 'from archspec.cpu import host; print(host())'"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/k/kim-api/kim-api-2.4.1-GCC-13.3.0.eb b/easybuild/easyconfigs/k/kim-api/kim-api-2.4.1-GCC-13.3.0.eb new file mode 100644 index 000000000000..bed51fb55ae8 --- /dev/null +++ b/easybuild/easyconfigs/k/kim-api/kim-api-2.4.1-GCC-13.3.0.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'kim-api' +version = '2.4.1' + +homepage = 'https://openkim.org/' +description = """Open Knowledgebase of Interatomic Models. + +KIM is an API and OpenKIM is a collection of interatomic models (potentials) for +atomistic simulations. This is a library that can be used by simulation programs +to get access to the models in the OpenKIM database. + +This EasyBuild only installs the API, the models can be installed with the +package openkim-models, or the user can install them manually by running + kim-api-collections-management install user MODELNAME +or + kim-api-collections-management install user OpenKIM +to install them all. + """ + +toolchain = {'name': 'GCC', 'version': '13.3.0'} + +source_urls = ['https://s3.openkim.org/kim-api/'] +sources = ['%(name)s-%(version)s.txz'] +checksums = ['225e3136d43e416a4424551e9e5f6d92cc6ecfe11389a1b6e97d6dcdfed83d44'] + +dependencies = [ + ('CMake', '3.29.3'), # Also needed to install models, thus not just a builddependency. +] + +maxparallel = 1 +separate_build_dir = True + +modextravars = { + 'KIM_API_CMAKE_PREFIX_DIR': '%(installdir)s/lib64' +} + +sanity_check_paths = { + 'files': ['bin/kim-api-collections-management', 'lib64/libkim-api.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2023b-kokkos-CUDA-12.4.0.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2023b-kokkos-CUDA-12.4.0.eb new file mode 100644 index 000000000000..83ba98634ec1 --- /dev/null +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2023b-kokkos-CUDA-12.4.0.eb @@ -0,0 +1,196 @@ +name = 'LAMMPS' +version = '29Aug2024_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': '2023b'} +toolchainopts = {'openmp': True, 'usempi': True, 'extra_cxxflags': '-D_CMPCCXADDINTRIN_H_INCLUDED'} +# '-D_CMPCCXADDINTRIN_H_INCLUDED' flag is required to avoid the following errors, +# likely due to an incompatibility between the GCC 13.2.0 and NVCC CUDA 12.4.0: +# [...]/GCCcore/13.2.0/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include/cmpccxaddintrin.h(63): +# error: identifier "__builtin_ia32_cmpccxadd" is undefined +# [...]/GCCcore/13.2.0/lib/gcc/x86_64-pc-linux-gnu/13.2.0/include/cmpccxaddintrin.h(71): +# error: identifier "__builtin_ia32_cmpccxadd64" is undefined + +# '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', +] +checksums = [ + {'stable_29Aug2024_update2.tar.gz': 'f8ca3f021a819ced8658055f7750e235c51b4937ddb621cf1bd7bee08e0b6266'}, + {'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch': + '723c944b62b9d28427d25e80a7a67049631702d344df49268a6846aa0cd0fe04'}, +] + +builddependencies = [ + ('CMake', '3.27.6'), + ('pkgconf', '2.0.3'), + ('archspec', '0.2.2'), +] +dependencies = [ + ('CUDA', '12.4.0', '', SYSTEM), + ('UCX-CUDA', '1.15.0', _cuda_suffix), + ('NCCL', '2.20.5', _cuda_suffix), + ('Python', '3.11.5'), + ('libpng', '1.6.40'), + ('libjpeg-turbo', '3.0.1'), + ('netCDF', '4.9.2'), + ('GSL', '2.7'), + ('zlib', '1.2.13'), + ('gzip', '1.13'), + ('cURL', '8.3.0'), + ('HDF5', '1.14.3'), + ('PCRE', '8.45'), + ('libxml2', '2.11.5'), + ('FFmpeg', '6.0'), + ('Voro++', '0.4.6'), + ('kim-api', '2.3.0'), + ('Eigen', '3.4.0'), + ('PLUMED', '2.9.2'), + ('SciPy-bundle', '2023.11'), + # 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.29'), +] +if ARCH == 'x86_64': + # TBB and ScaFaCos are an optional dependency when building on Intel arch + dependencies += [ + ('tbb', '2021.13.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' + +configopts = ' '.join([ + '-DCMAKE_CXX_STANDARD=17', + '-DCMAKE_CXX_STANDARD_REQUIRED=on', +]) + +# 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/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos-CUDA-12.6.0.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos-CUDA-12.6.0.eb new file mode 100644 index 000000000000..5718be367516 --- /dev/null +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos-CUDA-12.6.0.eb @@ -0,0 +1,196 @@ +name = 'LAMMPS' +version = '29Aug2024_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': '2024a'} +toolchainopts = {'openmp': True, 'usempi': True, 'extra_cxxflags': '-D_AMXTILEINTRIN_H_INCLUDED'} +# '-D_AMXTILEINTRIN_H_INCLUDED' flag is required to avoid the following errors, +# likely due to an incompatibility between the GCC 13.3.0 and NVCC CUDA 12.6.0: +# [...]/GCCcore/13.3.0/lib/gcc/x86_64-pc-linux-gnu/13.3.0/include/amxtileintrin.h(42): +# error: identifier "__builtin_ia32_ldtilecfg" is undefined +# [...]/GCCcore/13.3.0/lib/gcc/x86_64-pc-linux-gnu/13.3.0/include/amxtileintrin.h(49): +# error: identifier "__builtin_ia32_sttilecfg" is undefined + +# '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', +] +checksums = [ + {'stable_29Aug2024_update2.tar.gz': 'f8ca3f021a819ced8658055f7750e235c51b4937ddb621cf1bd7bee08e0b6266'}, + {'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch': + '723c944b62b9d28427d25e80a7a67049631702d344df49268a6846aa0cd0fe04'}, +] + +builddependencies = [ + ('CMake', '3.29.3'), + ('pkgconf', '2.2.0'), + ('archspec', '0.2.5'), +] +dependencies = [ + ('CUDA', '12.6.0', '', SYSTEM), + ('UCX-CUDA', '1.16.0', _cuda_suffix), + ('NCCL', '2.22.3', _cuda_suffix), + ('Python', '3.12.3'), + ('libpng', '1.6.43'), + ('libjpeg-turbo', '3.0.1'), + ('netCDF', '4.9.2'), + ('GSL', '2.8'), + ('zlib', '1.3.1'), + ('gzip', '1.13'), + ('cURL', '8.7.1'), + ('HDF5', '1.14.5'), + ('PCRE', '8.45'), + ('libxml2', '2.12.7'), + ('FFmpeg', '7.0.2'), + ('Voro++', '0.4.6'), + ('kim-api', '2.4.1'), + ('Eigen', '3.4.0'), + ('PLUMED', '2.9.3'), + ('SciPy-bundle', '2024.05'), + # VTK package is auto-disabled if this dep is not available + ('VTK', '9.3.1'), + # 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.13.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' + +configopts = ' '.join([ + '-DCMAKE_CXX_STANDARD=17', + '-DCMAKE_CXX_STANDARD_REQUIRED=on', +]) + +# 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/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos.eb new file mode 100644 index 000000000000..7b9b8fa3dae8 --- /dev/null +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos.eb @@ -0,0 +1,182 @@ +name = 'LAMMPS' +version = '29Aug2024_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': '2024a'} +toolchainopts = {'openmp': True, 'usempi': 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', +] +checksums = [ + {'stable_29Aug2024_update2.tar.gz': 'f8ca3f021a819ced8658055f7750e235c51b4937ddb621cf1bd7bee08e0b6266'}, + {'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch': + '723c944b62b9d28427d25e80a7a67049631702d344df49268a6846aa0cd0fe04'}, +] + +builddependencies = [ + ('CMake', '3.29.3'), + ('pkgconf', '2.2.0'), + ('archspec', '0.2.5'), +] +dependencies = [ + ('Python', '3.12.3'), + ('libpng', '1.6.43'), + ('libjpeg-turbo', '3.0.1'), + ('netCDF', '4.9.2'), + ('GSL', '2.8'), + ('zlib', '1.3.1'), + ('gzip', '1.13'), + ('cURL', '8.7.1'), + ('HDF5', '1.14.5'), + ('PCRE', '8.45'), + ('libxml2', '2.12.7'), + ('FFmpeg', '7.0.2'), + ('Voro++', '0.4.6'), + ('kim-api', '2.4.1'), + ('Eigen', '3.4.0'), + ('PLUMED', '2.9.3'), + ('SciPy-bundle', '2024.05'), + # VTK package is auto-disabled if this dep is not available + ('VTK', '9.3.1'), + # 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.13.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' + +configopts = ' '.join([ + '-DCMAKE_CXX_STANDARD=17', + '-DCMAKE_CXX_STANDARD_REQUIRED=on', +]) + +# 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/easybuild/easyconfigs/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2024a-kokkos-CUDA-12.6.0.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2024a-kokkos-CUDA-12.6.0.eb new file mode 100644 index 000000000000..1c4e71cba43c --- /dev/null +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-2Aug2023_update2-foss-2024a-kokkos-CUDA-12.6.0.eb @@ -0,0 +1,199 @@ +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': '2024a'} +toolchainopts = {'openmp': True, 'usempi': True, 'extra_cxxflags': '-D_AMXTILEINTRIN_H_INCLUDED'} +# '-D_AMXTILEINTRIN_H_INCLUDED' flag is required to avoid the following errors, +# likely due to an incompatibility between the GCC 13.3.0 and CUDA 12.6.0: +# [...]/GCCcore/13.3.0/lib/gcc/x86_64-pc-linux-gnu/13.3.0/include/amxtileintrin.h(42): +# error: identifier "__builtin_ia32_ldtilecfg" is undefined +# [...]/GCCcore/13.3.0/lib/gcc/x86_64-pc-linux-gnu/13.3.0/include/amxtileintrin.h(49): +# error: identifier "__builtin_ia32_sttilecfg" is undefined + +# '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.29.3'), + ('pkgconf', '2.2.0'), + ('archspec', '0.2.5'), +] +dependencies = [ + ('CUDA', '12.6.0', '', SYSTEM), + ('UCX-CUDA', '1.16.0', _cuda_suffix), + ('NCCL', '2.22.3', _cuda_suffix), + ('Python', '3.12.3'), + ('libpng', '1.6.43'), + ('libjpeg-turbo', '3.0.1'), + ('netCDF', '4.9.2'), + ('GSL', '2.8'), + ('zlib', '1.3.1'), + ('gzip', '1.13'), + ('cURL', '8.7.1'), + ('HDF5', '1.14.5'), + ('PCRE', '8.45'), + ('libxml2', '2.12.7'), + ('FFmpeg', '7.0.2'), + ('Voro++', '0.4.6'), + ('kim-api', '2.4.1'), + ('Eigen', '3.4.0'), + ('PLUMED', '2.9.3'), + ('SciPy-bundle', '2024.05'), + # VTK package is auto-disabled if this dep is not available + ('VTK', '9.3.1'), + # 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.13.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' + +configopts = ' '.join([ + '-DCMAKE_CXX_STANDARD=17', + '-DCMAKE_CXX_STANDARD_REQUIRED=on', +]) + +# 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/easybuild/easyconfigs/m/MDI/MDI-1.4.26-gompi-2024a.eb b/easybuild/easyconfigs/m/MDI/MDI-1.4.26-gompi-2024a.eb new file mode 100644 index 000000000000..6f1d4b5b055d --- /dev/null +++ b/easybuild/easyconfigs/m/MDI/MDI-1.4.26-gompi-2024a.eb @@ -0,0 +1,54 @@ +# MDI package for LAMMPS +# Author: J. Saßmannshausen (Imperial College London) + +easyblock = 'CMakeMake' +name = 'MDI' +version = '1.4.26' + +homepage = 'https://github.com/MolSSI-MDI/MDI_Library' +description = """The MolSSI Driver Interface (MDI) project provides a +standardized API for fast, on-the-fly communication between computational +chemistry codes. This greatly simplifies the process of implementing +methods that require the cooperation of multiple software packages and +enables developers to write a single implementation that works across +many different codes. The API is sufficiently general to support a wide +variety of techniques, including QM/MM, ab initio MD, machine learning, +advanced sampling, and path integral MD, while also being straightforwardly +extensible. Communication between codes is handled by the MDI Library, which +enables tight coupling between codes using either the MPI or TCP/IP methods. +""" + +toolchain = {'name': 'gompi', 'version': '2024a'} + +source_urls = ['https://github.com/MolSSI-MDI/MDI_Library/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8cbd80ae9adf44394b693fe812b8e4e8ca506173b3ca1f31002adbe7eaf61362'] + +builddependencies = [ + ('CMake', '3.29.3'), +] + +dependencies = [ + ('Python', '3.12.3'), +] + +# perform iterative build to get both static and shared libraries +local_common_configopts = '-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DPython_EXECUTABLE=$EBROOTPYTHON/bin/python ' +configopts = [ + local_common_configopts + ' -Dlibtype=STATIC', + local_common_configopts + ' -DBUILD_SHARED_LIBS=ON', +] + +modextrapaths = { + 'LD_LIBRARY_PATH': 'lib/mdi', + 'LIBRARY_PATH': 'lib/mdi', +} + +sanity_check_paths = { + 'files': ['lib/mdi/libmdi.a', 'lib/mdi/libmdi.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +bin_lib_subdirs = ['lib/mdi'] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.3-foss-2024a.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.3-foss-2024a.eb new file mode 100644 index 000000000000..0e44fc2634b2 --- /dev/null +++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.3-foss-2024a.eb @@ -0,0 +1,55 @@ +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.9.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': 'foss', 'version': '2024a'} +toolchainopts = {'usempi': 'True'} + +source_urls = ['https://github.com/plumed/plumed2/releases/download/v%(version)s/'] +sources = [SOURCE_TGZ] +checksums = ['2ba5095bc7c7cfde1ca95780c1240d852b7dc1b00c9de5b31e607120449ff827'] + +builddependencies = [ + ('xxd', '9.1.1275'), +] + +dependencies = [ + ('zlib', '1.3.1'), + ('GSL', '2.8'), + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('Cython', '3.0.10'), # Cython is not included in Python-bundle-PyPI > 2023 + ('Boost', '1.85.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 ' +prebuildopts = 'source sourceme.sh && ' + +# 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/easybuild/easyconfigs/s/ScaFaCoS/ScaFaCoS-1.0.4-foss-2024a.eb b/easybuild/easyconfigs/s/ScaFaCoS/ScaFaCoS-1.0.4-foss-2024a.eb new file mode 100644 index 000000000000..a28b6d186c4b --- /dev/null +++ b/easybuild/easyconfigs/s/ScaFaCoS/ScaFaCoS-1.0.4-foss-2024a.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'ScaFaCoS' +version = '1.0.4' + +homepage = 'http://www.scafacos.de/' +description = """ScaFaCoS is a library of scalable fast coulomb solvers.""" + +toolchain = {'name': 'foss', 'version': '2024a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + '6634c4202e825e771d1dd75bbe9cac5cee41136c87653fde98fbd634681c1be6', # scafacos-1.0.1.tar.gz +] + +builddependencies = [ + ('Autotools', '20231222'), + ('pkgconf', '2.2.0'), +] + +dependencies = [ + ('GMP', '6.3.0'), + ('GSL', '2.8'), +] + +preconfigopts = 'unset F77 && ' + +configopts = 'FCFLAGS="-fallow-argument-mismatch $FCFLAGS" ' +configopts += '--enable-shared --enable-static --disable-doc ' +# tell it where to find provided FFTW +configopts += '--without-internal-fftw --with-fftw3-includedir=$EBROOTFFTW/include --with-fftw3-libdir=$EBROOTFFTW/lib ' +# only include the solvers supported for LAMMPS +# (for p2nfft we need an additonal dependency) +configopts += '--enable-fcs-solvers=direct,ewald,fmm,p3m ' + +sanity_check_paths = { + 'files': ['lib/libfcs.a', 'include/fcs.h', 'include/fcs_module.mod'], + 'dirs': [], +} + +moduleclass = 'math'