diff --git a/easybuild/easyconfigs/d/DP-GEN/DP-GEN-0.13.2-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/d/DP-GEN/DP-GEN-0.13.2-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..96deaf35bbd2 --- /dev/null +++ b/easybuild/easyconfigs/d/DP-GEN/DP-GEN-0.13.2-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,91 @@ +easyblock = 'PythonBundle' + +name = 'DP-GEN' +version = '0.13.2' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/deepmodeling/deepmd-kit/' +description = "A deep learning package for many-body potential energy representation and molecular dynamics." + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [ + ('Cython', '3.0.10'), + ('Eigen', '3.4.0'), + ('scikit-build-core', '0.10.6'), + ('SWIG', '4.2.1'), +] +dependencies = [ + ('ASE', '3.23.0'), + ('cp2k-input-tools', '0.9.1'), + ('CUDA', '12.6.0', '', SYSTEM), + ('DeePMD-kit', '3.1.1', versionsuffix), + ('h5py', '3.12.1'), + ('matplotlib', '3.9.2'), + ('netcdf4-python', '1.7.1.post2'), + ('OpenBabel', '3.1.1'), # Use module instead of openbabel-wheel + ('pymatgen', '2025.6.14'), + ('Python', '3.12.3'), + ('scikit-image', '0.25.0'), + ('SciPy-bundle', '2024.05'), +] + +exts_list = [ + ('pycp2k', '0.2.2', { + 'checksums': ['460291dcf01a8f042e61bfbfa1526255877a6ef67242acc27b7eec2d8909839d'], + }), + ('asciichartpy', '1.5.25', { + 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'checksums': ['33c417a3c8ef7d0a11b98eb9ea6dd9b2c1b17559e539b207a17d26d4302d0258'], + }), + ('cp2kdata', '0.7.3', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['79e4197a81021b9861e7aae25fed7f9051f9dcf29bd6c52fb6a48d646d31e5f4'], + }), + ('custodian', '2025.10.11', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['3a69b381f9f2b8e32f41ec85a9336388bcfb0700fb35137eeab6bf7061cf1450'], + }), + ('numkit', '1.3.1', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['ce8a0864ed2ac382502bf208fe83fba50b373ba2a765427c21552b9a5736dce9'], + }), + ('gromacswrapper', '0.9.2', { + 'modulename': 'gromacs', + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['d20ba450fc970595ea3fc83de899cb4c450fb4739ea182c5a56c2edcb80535b8'], + }), + ('dpdispatcher', '1.0.0', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['56e461c5f7162bfd779190bae07f5e563632dd78513070c3a493aa2ae87539ba'], + }), + ('mp_pyrho', '0.5.1', { + 'modulename': 'pyrho', + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['934d90c6be35eeccc6b0d550771410b0801dbf4488aca96517f958b5045dd161'], + }), + ('pymatgen_analysis_defects', '2024.7.19', { + 'modulename': 'pymatgen.analysis.defects', + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['185ae1246df39ee9c7475986ae5ea4ff7582f97edea4d5762248d3dcc82e0628'], + }), + ('dpgen', version, { + 'preinstallopts': """sed -i "/'openbabel-wheel',/d" pyproject.toml && """, + 'checksums': ['318379dbe7f429de7ab26fa78671bed621d9fe55f82ba5afc0984ade2237b0da'], + }), +] + +sanity_check_paths = { + 'files': ['bin/dpgen', 'bin/dpdisp'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['dpgen -h'] + +modloadmsg = """ +Since DeePMD-kit is built with the PyTorch backend, you must set: + train_backend: "pytorch" +as a run parameter if training of the model was done with DeePMD-kit. +""" + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/d/DeePMD-kit/DeePMD-kit-3.1.1-foss-2024a-CUDA-12.6.0.eb b/easybuild/easyconfigs/d/DeePMD-kit/DeePMD-kit-3.1.1-foss-2024a-CUDA-12.6.0.eb new file mode 100644 index 000000000000..72fc5243fcbe --- /dev/null +++ b/easybuild/easyconfigs/d/DeePMD-kit/DeePMD-kit-3.1.1-foss-2024a-CUDA-12.6.0.eb @@ -0,0 +1,102 @@ +easyblock = 'PythonBundle' + +name = 'DeePMD-kit' +version = '3.1.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/deepmodeling/deepmd-kit/' +description = "A deep learning package for many-body potential energy representation and molecular dynamics." + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [ + ('scikit-build-core', '0.10.6'), + ('hatchling', '1.24.2'), + ('poetry', '1.8.3'), + ('git', '2.45.1'), + ('CMake', '3.29.3'), + ('maturin', '1.6.0'), +] +dependencies = [ + ('CUDA', '12.6.0', '', SYSTEM), + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('ml_dtypes', '0.5.0'), + ('pydantic', '2.9.1'), + ('PyYAML', '6.0.2'), + ('PyTorch', '2.6.0', versionsuffix), + ('h5py', '3.12.1'), + ('mpi4py', '4.0.1'), + ('Deprecated', '1.2.18'), + ('SQLAlchemy', '2.0.36'), + ('ruamel.yaml', '0.18.6'), + ('wrapt', '1.16.0'), +] + +local_deepdm_configopts = '-DENABLE_PYTORCH=TRUE ' +local_deepdm_configopts += '-DUSE_CUDA_TOOLKIT=ON ' + +components = [ + ('deepmd', version, { + 'easyblock': 'PythonPackage', + 'source_urls': ['https://pypi.python.org/packages/source/d/deepmd-kit/'], + 'sources': ['deepmd_kit-%(version)s.tar.gz'], + 'preinstallopts': "export DP_VARIANT=cuda && export DP_ENABLE_TENSORFLOW=0 && export DP_ENABLE_PYTORCH=1 && ", + 'start_dir': 'deepmd_kit-%(version)s', + 'checksums': ['c17105c4fc2400039458df93ae5701c6420c794d7fa267b6fe3d5ce56974502d'], + }), + ('deepmd_cpp', version, { + 'easyblock': 'CMakeMake', + 'source_urls': ['https://pypi.python.org/packages/source/d/deepmd-kit/'], + 'sources': ['deepmd_kit-%(version)s.tar.gz'], + 'start_dir': 'deepmd_kit-%(version)s/source', + 'configopts': local_deepdm_configopts, + 'checksums': ['c17105c4fc2400039458df93ae5701c6420c794d7fa267b6fe3d5ce56974502d'], + }), +] + +exts_list = [ + ('typeguard', '4.4.2', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['77a78f11f09777aeae7fa08585f33b5f4ef0e7335af40005b0c422ed398ff48c'], + }), + ('dargs', '0.4.10', { + 'checksums': ['2b39e0a93dcd323d0affb3f54ee2c11a439084d718934df08f38692dfbadddf8'], + }), + ('bracex', '2.6', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['0b0049264e7340b3ec782b5cb99beb325f36c3782a32e36e876452fd49a09952'], + }), + ('wcmatch', '10.1', { + 'checksums': ['f11f94208c8c8484a16f4f48638a85d771d9513f4ab3f37595978801cb9465af'], + }), + ('pyfiglet', '0.8.post1', { + 'checksums': ['c6c2321755d09267b438ec7b936825a4910fec696292139e664ca8670e103639'], + }), + ('mendeleev', '0.18.1', { + 'checksums': ['a5b60bd313a5d2b404a6a250186e643663d5625c8138b3cfba829f1f4384f2a0'], + }), + ('array_api_compat', '1.12.0', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['a0b4795b6944a9507fde54679f9350e2ad2b1e2acf4a2408a098cdc27f890a8b'], + }), + ('monty', '2025.3.3', { + 'checksums': ['16c1eb54b2372e765c2f3f14cff01cc76ab55c3cc12b27d49962fb8072310ae0'], + }), + ('dpdata', '1.0.0', { + 'checksums': ['474da4d20130a85c19274a10efd45446bbf3c844d6fc06e9377298c3e52cbc78'], + }), +] + +sanity_check_paths = { + 'files': ['bin/dp', 'bin/dpdata', 'bin/dp_ipi', 'lib/libdeepmd_cc.so', 'lib/libdeepmd.so'], + 'dirs': ['lib/python%(pyshortver)s/site-packages', 'include/deepmd'], +} + +sanity_check_commands = ['dp -h'] + +modextravars = { + 'DP_BACKEND': 'pytorch', +} + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos-deepmd-CUDA-12.6.0.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos-deepmd-CUDA-12.6.0.eb new file mode 100644 index 000000000000..6e31150098b2 --- /dev/null +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024_update2-foss-2024a-kokkos-deepmd-CUDA-12.6.0.eb @@ -0,0 +1,214 @@ +name = 'LAMMPS' +version = '29Aug2024_update2' +_cuda_suffix = '-CUDA-%(cudaver)s' +versionsuffix = '-kokkos-deepmd' + _cuda_suffix +_deepmdkitver = '3.1.1' + +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, + 'https://github.com/deepmodeling/deepmd-kit/archive/refs/tags/', +] +sources = [ + 'stable_%(version)s.tar.gz', + { + 'download_filename': 'v%s.tar.gz' % _deepmdkitver, + 'filename': 'deepmd-v%s.tar.gz' % _deepmdkitver, + }, +] +patches = [ + 'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch', + 'LAMMPS-29Aug2024_install-deepmd-plugin.patch', +] +checksums = [ + {'stable_29Aug2024_update2.tar.gz': 'f8ca3f021a819ced8658055f7750e235c51b4937ddb621cf1bd7bee08e0b6266'}, + {'deepmd-v3.1.1.tar.gz': 'f68f08db7c48479c0fc1f16b4dfd2e62c5dadcc229143ebd81bb802b6605d3bb'}, + {'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch': + '314ab1064af74ddfcf4091dfe9f90fa32cfa4100e8d01fea7b59b019575a7c51'}, + {'LAMMPS-29Aug2024_install-deepmd-plugin.patch': + 'e601be73e131ed0740553b6ceff066eca0a7a474aad3d1b9e8dd4409ac6497df'}, +] + +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'), + ('DeePMD-kit', _deepmdkitver, _cuda_suffix), +] +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'] + +configopts = '-Ddeepmd_source_dir=%%(builddir)s/deepmd-kit-%s' % _deepmdkitver + +moduleclass = 'chem'