From 3053222e4338de39beb4c7a3daa4bf9541c84e18 Mon Sep 17 00:00:00 2001 From: Sandipan Mohanty <s.mohanty@fz-juelich.de> Date: Sat, 28 Jan 2023 23:02:34 +0100 Subject: [PATCH] AMBER 20 with AmberTools 21 for foss toolchain A lot of patches were necessary in the sources, in C, C++ Python and CMake, but we have a working version of AMBER-20 with the other packages in the 2023 stage. The most trouble came from certain API changes in Python 3.10. It is easy to compile AMBER 20, but because of changes to the interfaces of some Python--C interface functions like Py_REFCNT, which were used in a lot of places in AMBER, over 500 changes spread over 25 files are necessary. In addition, in this version, we make sure that fftw and netcdf are used from the installed versions instead of using the bundled version inside AMBER. --- Golden_Repo/a/AMBER/AMBER-20-foss-2023.eb | 121 ++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 Golden_Repo/a/AMBER/AMBER-20-foss-2023.eb diff --git a/Golden_Repo/a/AMBER/AMBER-20-foss-2023.eb b/Golden_Repo/a/AMBER/AMBER-20-foss-2023.eb new file mode 100644 index 000000000..9247e073f --- /dev/null +++ b/Golden_Repo/a/AMBER/AMBER-20-foss-2023.eb @@ -0,0 +1,121 @@ +easyblock = 'CMakeMake' + +name = 'AMBER' +version = '20' +versionsuffix = '-AmberTools-21' + +homepage = 'http://ambermd.org' +description = """ +AMBER: 'Assisted Model Building with Energy Refinement' is a set of molecular +mechanics force fields and a package of molecular simulation programs. + +Citation: +D.A. Case, K. Belfon, I.Y. Ben-Shalom, S.R. Brozell, D.S. Cerutti, +T.E. Cheatham, III, V.W.D. Cruzeiro, T.A. Darden, R.E. Duke, G. Giambasu, +M.K. Gilson, H. Gohlke, A.W. Goetz, R. Harris, S. Izadi, S.A. Izmailov, +K. Kasavajhala, A. Kovalenko, R. Krasny, T. Kurtzman, T.S. Lee, S. LeGrand, +P. Li, C. Lin, J. Liu, T. Luchko, R. Luo, V. Man, K.M. Merz, Y. Miao, +O. Mikhailovskii, G. Monard, H. Nguyen, A. Onufriev, F.Pan, S. Pantano, +R. Qi, D.R. Roe, A. Roitberg, C. Sagui, S. Schott-Verdugo, J. Shen, +C. Simmerling, N.R.Skrynnikov, J. Smith, J. Swails, R.C. Walker, J. Wang, +L. Wilson, R.M. Wolf, X. Wu, Y. Xiong, Y. Xue, D.M. York +and P.A. Kollman (2020), +AMBER 2020, University of California, San Francisco. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} +toolchainopts = {'openmp': True, 'usempi': True} + +builddependencies = [ + ('CMake', '3.23.1'), + ('binutils', '2.38'), +] +dependencies = [ + ('FFTW.MPI', '3.3.10'), + ('Boost', '1.79.0'), + ('flex', '2.6.4'), + ('NCCL', 'default', '-CUDA-11.7'), + ('netCDF', '4.9.0'), + ('netCDF-Fortran', '4.6.0'), + ('PnetCDF', '1.12.3'), + ('Python', '3.10.4'), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('mpi4py', '3.1.4', '', ('gompi', '2022a')) +] + +sources = [ + 'AmberTools21.tar.bz2', + 'Amber20.tar.bz2', +] +patches = [ + 'fix_nmrat_error.patch', + 'adapt_to_python_3_10_api_changes.patch', + 'AmberTools-21_CMake-FlexiBLAS.patch', + 'AmberTools-21_fix_more_blas_argument_problems.patch', + 'AmberTools-21_fix_rism_argument_mismatch.patch', + 'AmberTools-21_fix_xray_fftpack_arg_mismatch.patch', + 'Fix_FFTW_find_error_due_to_MPI_components.patch', + 'Fix_netcdf_find_error_due_to_missed_F77_F90_interfaces.patch', +] + +checksums = [ + 'f55fa930598d5a8e9749e8a22d1f25cab7fcf911d98570e35365dd7f262aaafd', + 'a4c53639441c8cc85adee397933d07856cc4a723c82c6bea585cd76c197ead75', + '00394f987105f047cbacf5f002170a11720f0decbd399a59db6b3b6c8e950677', + 'f5e7ff2fb5e782f5b64a70e750d1ccc6566fd600663dd339f1769ceca60f64d6', + '9543812c24c4b7842f64f1f8abaf2c92b5c4c0fadcdbd9811e76b81a778f0d36', + 'c6279b57752239184b942d37f760749494ae0eff95236f3368c76ac0d2726a7c', + '14255e5739cec39303df570f06820c7532f7395e1b73b1e4104377984e2c9fc1', + '99c954e693659efc2a1d121f91510f56408006f0751d91595f45a34b03364e2f', + '468acfd764e8e3787f8f855e724a16ae11e92d36576994297eec26e6e0b41dd0', + '4f409c139ff49f61b1f617a34202b61223c2d8ae474ac9de62313aaad2284afd', +] + +separate_build_dir = True +local_build_mpi_parts = "TRUE" +local_build_cuda_parts = "TRUE" +local_build_cuda_nccl = "TRUE" + +preconfigopts = "CC=gcc && CXX=g++ && COMPILER=GNU " +preconfigopts += " && cd %(builddir)s/amber20_src && " +preconfigopts += " ./update_amber --update && cd ../easybuild_obj && " + +configopts = "-DCOMPILER=GNU -DCHECK_UPDATES=OFF -DAPPLY_UPDATES=OFF -DBUILD_GUI=FALSE " +configopts += " -DINSTALL_TESTS=TRUE -DOPENMP=TRUE -DMPI=%s " % local_build_mpi_parts +configopts += " -DDOWNLOAD_MINICONDA=FALSE -DTRUST_SYSTEM_LIBS=TRUE " +configopts += " -DCUDA=%s " % local_build_cuda_parts +configopts += " -DNCCL=%s " % local_build_cuda_nccl +configopts += " -DBLA_VENDOR=FlexiBLAS " +configopts += " -DFORCE_EXTERNAL_LIBS='boost;fftw;netcdf;netcdf-fortran;pnetcdf' " +configopts += " -DUSE_FFT=TRUE " +buildopts = 'NVCC_GENCODE="-gencode=arch=compute_70,code=sm_70 \ + -gencode=arch=compute_75,code=sm_75 \ + -gencode=arch=compute_80,code=sm_80"' + +modextravars = { + 'AMBERHOME': '%(installdir)s/', +} +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +modluafooter = ''' +add_property("arch","gpu") +''' + +group = "amber" + +modloadmsg = ''' + +Info: (1) Check the loaded modules to see if loading the AMBER module +succeeded. If it did, ignore the rest of this message. (2) If AMBER +didn't load, one possible reason is that "amber" is not currently +your primary group. You can temporarily change your primary group by +typing "newgrp amber". (3) If that didn't work, you are probably +not a member of the group "amber", you have to first add yourself +to that group. Visit "https://judoor.fz-juelich.de/", follow the +link "Request access to restricted software", enable "amber" for +your account, wait 15-20 minutes and then try "newgrp amber" again. + +''' + +moduleclass = 'bio' -- GitLab