Skip to content

Commit

Permalink
Merge pull request #16166 from akesandgren/20220831075433_new_pr_Ambe…
Browse files Browse the repository at this point in the history
…r220

{chem}[foss/2021b] Amber v22.0 w/ Python 3.9.6
  • Loading branch information
boegel committed Oct 12, 2022
2 parents 3b5ee82 + e18aa2a commit 70d92f9
Show file tree
Hide file tree
Showing 4 changed files with 165 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name = 'Amber'
local_amber_ver = 22
local_ambertools_ver = 22
# Patch levels from https://ambermd.org/AmberPatches.php and https://ambermd.org/ATPatches.php
patchlevels = (3, 0) # (AmberTools, Amber)
version = '%s.%s' % (local_amber_ver, patchlevels[1])
versionsuffix = '-AmberTools-%s.%s' % (local_ambertools_ver, 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': 'foss', 'version': '2021b'}
toolchainopts = {'usempi': True, 'openmp': True}

sources = [
'%%(name)s%s.tar.bz2' % local_amber_ver,
{'filename': 'AmberTools%s.tar.bz2' % local_ambertools_ver, 'alt_location': 'AmberTools'},
]
patches = [
{'name': 'AmberTools-20_cmake-locate-netcdf.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-20_fix_missing_MPI_LIBRARY_error.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-20_fix_xblas_missing_make_dependency.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_CMake-FlexiBLAS.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_fix_DGESVD_workspace_query.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_fix_incorrect_dvout_call.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_fix_incorrect_mexit_calls.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_fix_more_blas_argument_problems.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_fix_multiple_definition.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_fix_potential_use_before_init.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_fix_rism_argument_mismatch.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-21_fix_xray_fftpack_arg_mismatch.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-22_fix_test_missing_cuda_dir.patch', 'alt_location': 'AmberTools'},
{'name': 'AmberTools-22_fix_missing_error_check_on_test_run.patch', 'alt_location': 'AmberTools'},
'Amber-22_reduce_precision_of_kmmd_test.patch',
'Amber-22_remove_undeclared_redundant_variable.patch',
]
checksums = [
'3c887ccbad690fc76ff0b120a3448eae023c08e76582aac07900d4a9708ebd16', # Amber22.tar.bz2
'1571d4e0f7d45b2a71dce5999fa875aea8c90ee219eb218d7916bf30ea229121', # AmberTools22.tar.bz2
'473e07c53b6f641d96d333974a6af2e03413fecef79f879d3fdecf7fecaab4d0', # AmberTools-20_cmake-locate-netcdf.patch
# AmberTools-20_fix_missing_MPI_LIBRARY_error.patch
'0b89a0624167bc23876bcdefcb1055f591e38e3bd559a71d5749e342bd311acc',
# AmberTools-20_fix_xblas_missing_make_dependency.patch
'ff25e91fdc72347a778c3837b581e174d6a8c71efa5b46e11391b18bca84fd65',
'9543812c24c4b7842f64f1f8abaf2c92b5c4c0fadcdbd9811e76b81a778f0d36', # AmberTools-21_CMake-FlexiBLAS.patch
# AmberTools-21_fix_DGESVD_workspace_query.patch
'560c73e9d8bd159c609098c63a0256cdee78f49e524d06ea94d16d3146f69bcd',
'1054d4007f5c79126a41582e1e80514267cf406416ed6c471574cd708b16319b', # AmberTools-21_fix_incorrect_dvout_call.patch
'd1de8c596119dcedbb809515816f0c98762306c469e9caf2c0b878d9b0a1095f', # AmberTools-21_fix_incorrect_mexit_calls.patch
# AmberTools-21_fix_more_blas_argument_problems.patch
'c6279b57752239184b942d37f760749494ae0eff95236f3368c76ac0d2726a7c',
'ce30eeaba9feea53aa115e4b0dcc5be943b8a55abe322480c807ca7ea963d83b', # AmberTools-21_fix_multiple_definition.patch
# AmberTools-21_fix_potential_use_before_init.patch
'377e645b5bd2c91ebb4d0b6fbca0407a94289e5ddc5b1e7ed0cb0b0724ad2139',
# AmberTools-21_fix_rism_argument_mismatch.patch
'14255e5739cec39303df570f06820c7532f7395e1b73b1e4104377984e2c9fc1',
# AmberTools-21_fix_xray_fftpack_arg_mismatch.patch
'99c954e693659efc2a1d121f91510f56408006f0751d91595f45a34b03364e2f',
'fb1ab74314d7816169bb9f3f527b78085654aae2825c52cebf50a5760401b737', # AmberTools-22_fix_test_missing_cuda_dir.patch
# AmberTools-22_fix_missing_error_check_on_test_run.patch
'a86eee60bd65c16a849469e303cb99dfc207cbadd2ae9e70b9ff580ced785475',
'b5855866c63c2ee860a5e6ad6f618ac4dab7072f5caae95769d4b2457d616a8e', # Amber-22_reduce_precision_of_kmmd_test.patch
# Amber-22_remove_undeclared_redundant_variable.patch
'b94900c2178dd6dbf2824b17074980a3e5e6e71b38c0b2b30e1f147e4e1ac8cb',
]

builddependencies = [
('CMake', '3.21.1'),
('Bison', '3.7.6'),
('flex', '2.6.4'),
('make', '4.3'),
]

dependencies = [
('zlib', '1.2.11'),
('bzip2', '1.0.8'),
('Python', '3.9.6'),
('SciPy-bundle', '2021.10'), # mpi4py required for MMPBSA
('Perl', '5.34.0'),
('Boost', '1.77.0'),
('libreadline', '8.1'),
('matplotlib', '3.4.3'),
('netCDF', '4.8.1'),
('netCDF-Fortran', '4.5.3'),
('PnetCDF', '1.12.3'),
('Tkinter', '3.9.6'),
('X11', '20210802'),
]

# All tests are expected to pass or be skipped
runtest = True

static = False

moduleclass = 'chem'
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Reduce the number of digits checked for kmmd_pmemd/kmmd_pmemd:gb tests.
Partially ok:ed by Amber devs. They will investigate and come back with
more info.

Åke Sandgren, 2022-08-25
diff -ru amber22_src.orig/test/kmmd/kmmd_pmemd/Run.kmmd amber22_src/test/kmmd/kmmd_pmemd/Run.kmmd
--- amber22_src.orig/test/kmmd/kmmd_pmemd/Run.kmmd 2022-04-09 03:11:47.000000000 +0200
+++ amber22_src/test/kmmd/kmmd_pmemd/Run.kmmd 2022-08-25 10:52:13.397649018 +0200
@@ -64,7 +64,7 @@
#cp $output $output.save

##diff the test and reference
-../../dacdif -t 2 $output.save $output
+../../dacdif -a 0.03 $output.save $output

/bin/rm -f mdin mdinfo mdcrd mdfrc restrt logfile tidied*txt *.dat
exit(0)
diff -ru amber22_src.orig/test/kmmd/kmmd_pmemd_gb/Run.kmmd amber22_src/test/kmmd/kmmd_pmemd_gb/Run.kmmd
--- amber22_src.orig/test/kmmd/kmmd_pmemd_gb/Run.kmmd 2022-04-09 03:11:47.000000000 +0200
+++ amber22_src/test/kmmd/kmmd_pmemd_gb/Run.kmmd 2022-08-25 10:52:20.981592091 +0200
@@ -64,7 +64,7 @@
#cp $output $output.save

##diff the test and reference
-../../dacdif -t 2 $output.save $output
+../../dacdif -a 0.01 $output.save $output

/bin/rm -f mdin mdinfo mdcrd mdfrc restrt tidied*txt *.dat
exit(0)
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Remove the undeclared (and unused) variable i from the private clause
in an OpenMP pragma, which otherwise results in an error:

93 | !$omp parallel do private(ihkl,i,f,angle)
| 1
Error: Symbol i at (1) has no IMPLICIT type

Bob Dröge, University of Groningen, 2022-08-18
--- amber22_src.orig/src/pmemd/src/xray/src/xray_non_bulk_impl_cpu.F90 2022-08-18 13:12:24.807724049 +0200
+++ amber22_src/src/pmemd/src/xray/src/xray_non_bulk_impl_cpu.F90 2022-08-18 13:12:42.039809811 +0200
@@ -90,7 +90,7 @@
call check_precondition(size(frac, 2) == size(scatter_type_index))
call check_precondition(size(hkl, 2) == size(atomic_scatter_factor, 1))

- !$omp parallel do private(ihkl,i,f,angle)
+ !$omp parallel do private(ihkl,f,angle)
do ihkl = 1, size(hkl, 2)

! Fhkl = SUM( fj * exp(2 * M_PI * i * (h * xj + k * yj + l * zj)) ),
@@ -127,4 +127,4 @@
end subroutine calc_f_non_bulk


-end module xray_non_bulk_impl_cpu_module
\ No newline at end of file
+end module xray_non_bulk_impl_cpu_module
20 changes: 14 additions & 6 deletions test/easyconfigs/easyconfigs.py
Original file line number Diff line number Diff line change
Expand Up @@ -1336,21 +1336,29 @@ def template_easyconfig_test(self, spec):

# make sure all patch files are available
specdir = os.path.dirname(spec)
basedir = os.path.dirname(os.path.dirname(specdir))
specfn = os.path.basename(spec)
for idx, patch in enumerate(ec['patches']):
if isinstance(patch, (tuple, list)):
patch = patch[0]
patch_dir = specdir
if isinstance(patch, str):
patch_name = patch
elif isinstance(patch, (tuple, list)):
patch_name = patch[0]
elif isinstance(patch, dict):
patch_name = patch['name']
if patch['alt_location']:
patch_dir = os.path.join(basedir, letter_dir_for(patch['alt_location']), patch['alt_location'])

# only check actual patch files, not other files being copied via the patch functionality
patch_full = os.path.join(specdir, patch)
if patch.endswith('.patch'):
patch_full = os.path.join(patch_dir, patch_name)
if patch_name.endswith('.patch'):
msg = "Patch file %s is available for %s" % (patch_full, specfn)
self.assertTrue(os.path.isfile(patch_full), msg)

# verify checksum for each patch file
if idx < len(patch_checksums) and (os.path.exists(patch_full) or patch.endswith('.patch')):
if idx < len(patch_checksums) and (os.path.exists(patch_full) or patch_name.endswith('.patch')):
checksum = patch_checksums[idx]
error_msg = "Invalid checksum for patch file %s in %s: %s" % (patch, ec_fn, checksum)
error_msg = "Invalid checksum for patch file %s in %s: %s" % (patch_name, ec_fn, checksum)
res = verify_checksum(patch_full, checksum)
self.assertTrue(res, error_msg)

Expand Down

0 comments on commit 70d92f9

Please sign in to comment.