Skip to content

[Amber] [package list]

Amber/24.0-cpeGNU-24.03-AmberTools-24.0-rocm (Amber-24.0-cpeGNU-24.03-AmberTools-24.0-rocm.eb)

Install with the EasyBuild-user module:

eb Amber-24.0-cpeGNU-24.03-AmberTools-24.0-rocm.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider Amber/24.0-cpeGNU-24.03-AmberTools-24.0-rocm.

EasyConfig:

easyblock = 'CMakeMake'

local_Amber_version      = '24'
local_AmberTools_version = '24'
local_arpack_ng_version  = '3.9.1'
local_Boost_version      = '1.83.0'
local_Perl_version       = '5.38.0' 
local_zlib_version       = '1.3.1'
local_bzip2_version      = '1.0.8'

# Patch levels from https://ambermd.org/AmberPatches.php and https://ambermd.org/ATPatches.php
local_patchlevels = (0, 0)  # (AmberTools, Amber)

name = 'Amber'
version = '%s.%s' % (local_Amber_version, local_patchlevels[1])
versionsuffix = '-AmberTools-%s.%s-rocm' % (local_AmberTools_version, local_patchlevels[0])

homepage = 'https://ambermd.org/amber.html'

description = """
Amber (originally Assisted Model Building with Energy Refinement) is software
for performing molecular dynamics and structure prediction.
"""

toolchain = {'name': 'cpeGNU', 'version': '24.03'}
toolchainopts = {'usempi': True, 'openmp': True}

sources = [
    {'filename': '%%(name)s%s.tar.bz2' % local_Amber_version},
    {'filename': 'AmberTools%s.tar.bz2' % local_AmberTools_version, 'alt_location': 'AmberTools'},
]

patches = [
     'AmberTools-20_fix_missing_MPI_LIBRARY_error.patch',
     'Amber-22_remove_undeclared_redundant_variable.patch',
     'Amber-24_remove_open-pal-link.patch',
     'Amber-24_cusparse_LinearSolvers_ugly_fix.patch',
]

checksums = [
    '74a7dbc4530f6302ae1efe723ba54d0fcdb03bce2b7231663ce5afc2c5660076', # Amber24.tar.bz2
    '52fb4fb3370a89b7ce738a2dc3e513c2fc1943fde4b4381846d9e75cc48d840f', # AmberTools24.tar.bz2
    '210b0fb2a33e9cf00e8deb991420a027095d569ef752b1b9442915ec9f378be3', # AmberTools-20_fix_missing_MPI_LIBRARY_error.patch
    'b94900c2178dd6dbf2824b17074980a3e5e6e71b38c0b2b30e1f147e4e1ac8cb', # Amber-22_remove_undeclared_redundant_variable.patch
    '5878b2cb0525a4501b2679dd17fe3321ddc5a9d389f0d73d51c8ae3f6e705a5e', # Amber-24_remove_open-pal-link.patch
    '576fb8416b8a0427702d85dc785047d7c70234c780a74a1ae06cb298bc3d72fa', # Amber-24_cusparse_LinearSolvers_ugly_fix.patch
]

builddependencies = [
    ('buildtools', '%(toolchain_version)s', '', True),
    ('Boost',      local_Boost_version),
]

dependencies = [
    ('cray-python',              EXTERNAL_MODULE),
    ('cray-fftw',                EXTERNAL_MODULE),
    ('cray-hdf5-parallel',       EXTERNAL_MODULE),
    ('cray-parallel-netcdf',     EXTERNAL_MODULE),
    ('cray-netcdf-hdf5parallel', EXTERNAL_MODULE),
    ('rocm',                     EXTERNAL_MODULE),
    ('zlib',                     local_zlib_version),
    ('bzip2',                    local_bzip2_version),
    ('Perl',                     local_Perl_version),
    ('arpack-ng',                local_arpack_ng_version, '-OpenMP'),
]

configopts = ' '.join([ 
    '-D COMPILER=CRAY',
    '-D CMAKE_CXX_FLAGS="-O3 -ftree-vectorize -fno-math-errno -fopenmp"',
    '-D CMAKE_C_FLAGS="-O3 -ftree-vectorize -fno-math-errno -fopenmp"',
    '-D CMAKE_Fortran_FLAGS="-O3 -ftree-vectorize -fno-math-errno -fopenmp" ',
    '-D BOOST_ROOT=$EBROOTBOOST',
    '-D Boost_NO_SYSTEM_PATHS=ON ' 
    '-D MPI=ON',
    '-D OPENMP=ON',
    '-D USE_FFT=ON',
    '-D BUILD_PYTHON=OFF',
    '-D CHECK_UPDATES=OFF',
    '-D APPLY_UPDATES=FALSE',
    '-D DOWNLOAD_MINICONDA=OFF',
    '-D HIP=ON',
    '-D GPU_TARGETS="gfx90a"',
    '-D AMDGPU_TARGETS="gfx90a"',
    '-D HIP_WARP64=ON',
    '-D CUDA_NVCC_FLAGS="--offload-arch=gfx90a -std=c++14 -I$CRAY_MPICH_DIR/include"',
    '-D CMAKE_HIP_ARCHITECTURES="gfx90a"',
    '-D GTI=TRUE',
    '-D VKFFT=ON',
    '-D HIP_RDC=ON',
    '-D HIP_TOOLKIT_ROOT_DIR=$ROCM_PATH',
    '-D HIPCUDA_EMULATE_VERSION="10.1"',
    '-D FORCE_EXTERNAL_LIBS="netcdf;fftw;blas;lapack;pnetcdf;arpack"',
    '-D TRUST_SYSTEM_LIBS=TRUE',
    '-D BLAS_LIBRARIES=$CRAY_LIBSCI_PREFIX_DIR/lib/libsci_gnu_mp.so',
    '-D LAPACK_LIBRARIES=$CRAY_LIBSCI_PREFIX_DIR/lib/libsci_gnu_mp.so',
    '-D NetCDF_INCLUDES=$CRAY_NETCDF_HDF5PARALLEL_PREFIX/include',
    '-D NetCDF_INCLUDES_F90=$CRAY_NETCDF_HDF5PARALLEL_PREFIX/include',
    '-D NetCDF_LIBRARIES_F90=$CRAY_NETCDF_HDF5PARALLEL_PREFIX/lib/libnetcdff.so',
    '-D NetCDF_LIBRARIES_F77=$CRAY_NETCDF_HDF5PARALLEL_PREFIX/lib/libnetcdff.so ' 
    '-D NetCDF_LIBRARIES_C=$CRAY_NETCDF_HDF5PARALLEL_PREFIX/lib/libnetcdf.so',
    '-D PnetCDF_LIBRARY=$CRAY_PARALLEL_NETCDF_PREFIX/lib/libpnetcdf.so',
    '-D PnetCDF_INCLUDE_DIR=$CRAY_PARALLEL_NETCDF_PREFIX/include',
    '-D ARPACK_LIBRARY=$EBROOTARPACKMINNG/lib/libarpack.so',
    '-D MVAPICH2GDR_GPU_DIRECT_COMM=ON',
])

sanity_check_paths = {
    'files': ['bin/pmemd.hip'],
    'dirs': [''],
}

modextravars = {
    'AMBERHOME' : '%(installdir)s',
}

moduleclass = 'chem'

[Amber] [package list]