Skip to content
Snippets Groups Projects
Commit 4aaec75c authored by Alexandre Strube's avatar Alexandre Strube
Browse files

Merge branch '2023' of...

Merge branch '2023' of https://gitlab.jsc.fz-juelich.de/software-team/easybuild into tensorflow-2023
parents 2b25e9d3 336a76bb
No related branches found
No related tags found
No related merge requests found
Showing
with 4240 additions and 0 deletions
##
# Copyright 2013-2023 Ghent University
#
# This file is part of EasyBuild,
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
# with support of Ghent University (http://ugent.be/hpc),
# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),
# Flemish Research Foundation (FWO) (http://www.fwo.be/en)
# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
#
# https://github.com/easybuilders/easybuild
#
# EasyBuild is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation v2.
#
# EasyBuild is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with EasyBuild. If not, see <http://www.gnu.org/licenses/>.
##
"""
EasyBuild support for software using the Score-P configuration style (e.g., Cube, OTF2, Scalasca, and Score-P),
implemented as an easyblock.
@author: Kenneth Hoste (Ghent University)
@author: Bernd Mohr (Juelich Supercomputing Centre)
@author: Markus Geimer (Juelich Supercomputing Centre)
@author: Alexander Grund (TU Dresden)
@author: Christian Feld (Juelich Supercomputing Centre)
"""
import easybuild.tools.toolchain as toolchain
from easybuild.easyblocks.generic.configuremake import ConfigureMake
from easybuild.tools.build_log import EasyBuildError
from easybuild.tools.modules import get_software_root, get_software_libdir
from distutils.version import LooseVersion
class EB_Score_minus_P(ConfigureMake):
"""
Support for building and installing software using the Score-P configuration style (e.g., Cube, OTF2, Scalasca,
and Score-P).
"""
def configure_step(self, *args, **kwargs):
"""Configure the build, set configure options for compiler, MPI and dependencies."""
# On non-cross-compile platforms, specify compiler and MPI suite explicitly. This is much quicker and safer
# than autodetection. In Score-P build-system terms, the following platforms are considered cross-compile
# architectures:
#
# - Cray XT/XE/XK/XC series
# - Fujitsu FX10, FX100 & K computer
# - IBM Blue Gene series
#
# Of those, only Cray is supported right now.
tc_fam = self.toolchain.toolchain_family()
if tc_fam != toolchain.CRAYPE:
# since 2022/12 releases: --with-nocross-compiler-suite=(gcc|ibm|intel|oneapi|nvhpc|pgi|clang|aocc|amdclang)
comp_opts = {
# assume that system toolchain uses a system-provided GCC
toolchain.SYSTEM: 'gcc',
toolchain.GCC: 'gcc',
toolchain.IBMCOMP: 'ibm',
toolchain.INTELCOMP: 'intel',
toolchain.NVHPC: 'nvhpc',
toolchain.PGI: 'pgi',
}
nvhpc_since = {
'Score-P': '8.0',
'Scalasca': '2.6.1',
'OTF2': '3.0.2',
'CubeW': '4.8',
'CubeLib': '4.8',
'CubeGUI': '4.8',
}
if LooseVersion(self.version) < LooseVersion(nvhpc_since.get(self.name, '0')):
comp_opts[toolchain.NVHPC] = 'pgi'
comp_fam = self.toolchain.comp_family()
if comp_fam in comp_opts:
self.cfg.update('configopts', "--with-nocross-compiler-suite=%s" % comp_opts[comp_fam])
else:
raise EasyBuildError("Compiler family %s not supported yet (only: %s)",
comp_fam, ', '.join(comp_opts.keys()))
# --with-mpi=(bullxmpi|hp|ibmpoe|intel|intel2|intelpoe|lam|mpibull2|mpich|mpich2|mpich3|openmpi|
# platform|scali|sgimpt|sun)
#
# Notes:
# - intel: Intel MPI v1.x (ancient & unsupported)
# - intel2: Intel MPI v2.x and higher
# - intelpoe: IBM POE MPI for Intel platforms
# - mpich: MPICH v1.x (ancient & unsupported)
# - mpich2: MPICH2 v1.x
# - mpich3: MPICH v3.x & MVAPICH2
# This setting actually only affects options passed to the MPI (Fortran) compiler wrappers.
# And since MPICH v3.x-compatible options were already supported in MVAPICH2 v1.7, it is
# safe to use 'mpich3' for all supported versions although MVAPICH2 is based on MPICH v3.x
# only since v1.9b.
#
# With minimal toolchains, packages using this easyblock may be built with a non-MPI toolchain (e.g., OTF2).
# In this case, skip passing the '--with-mpi' option.
mpi_opts = {
toolchain.INTELMPI: 'intel2',
toolchain.OPENMPI: 'openmpi',
toolchain.MPICH: 'mpich3', # In EB terms, MPICH means MPICH 3.x
toolchain.MPICH2: 'mpich2',
toolchain.MVAPICH2: 'mpich3',
}
mpi_fam = self.toolchain.mpi_family()
if mpi_fam is not None:
if mpi_fam in mpi_opts:
self.cfg.update('configopts', "--with-mpi=%s" % mpi_opts[mpi_fam])
else:
raise EasyBuildError("MPI family %s not supported yet (only: %s)",
mpi_fam, ', '.join(mpi_opts.keys()))
# Auto-detection for dependencies mostly works fine, but hard specify paths anyway to have full control
#
# Notes:
# - binutils: Pass include/lib directories separately, as different directory layouts may break Score-P's
# configure, see https://github.com/geimer/easybuild-easyblocks/pull/4#issuecomment-219284755
deps = {
'binutils': ['--with-libbfd-include=%s/include',
'--with-libbfd-lib=%%s/%s' % get_software_libdir('binutils', fs=['libbfd.a'])],
'libunwind': ['--with-libunwind=%s'],
# Older versions use Cube
'Cube': ['--with-cube=%s/bin'],
# Recent versions of Cube are split into CubeLib and CubeW(riter)
'CubeLib': ['--with-cubelib=%s/bin'],
'CubeWriter': ['--with-cubew=%s/bin'],
'CUDA': ['--enable-cuda', '--with-libcudart=%s'],
'OTF2': ['--with-otf2=%s/bin'],
'OPARI2': ['--with-opari2=%s/bin'],
'PAPI': ['--with-papi-header=%s/include', '--with-papi-lib=%%s/%s' % get_software_libdir('PAPI')],
'PDT': ['--with-pdt=%s/bin'],
'Qt': ['--with-qt=%s'],
'SIONlib': ['--with-sionlib=%s/bin'],
}
for (dep_name, dep_opts) in deps.items():
dep_root = get_software_root(dep_name)
if dep_root:
for dep_opt in dep_opts:
try:
dep_opt = dep_opt % dep_root
except TypeError:
pass # Ignore subtitution error when there is nothing to substitute
self.cfg.update('configopts', dep_opt)
super(EB_Score_minus_P, self).configure_step(*args, **kwargs)
easyblock = 'ConfigureMake'
name = 'ABINIT'
version = '9.6.2'
homepage = 'https://www.abinit.org/'
description = """
ABINIT is a package whose main program allows one to find the total energy, charge density and electronic structure of
systems made of electrons and nuclei (molecules and periodic solids) within Density Functional Theory (DFT), using
pseudopotentials and a planewave or wavelet basis.
"""
toolchain = {'name': 'foss', 'version': '2022a'}
toolchainopts = {'usempi': True, 'openmp': True, 'pic': True}
source_urls = ['https://www.abinit.org/sites/default/files/packages/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['b018c2ff24338a5952c5550a7e09d4c7793b62402c7aa4e09273e9a666e674fb']
builddependencies = [
('Python', '3.10.4'),
]
dependencies = [
('libxc', '5.2.3'),
('netCDF', '4.9.0'),
('netCDF-Fortran', '4.6.0'),
('HDF5', '1.12.2'),
('Wannier90', '3.1.0'),
]
# Needed due to changes in GCC10.
configopts = 'FCFLAGS="-fallow-argument-mismatch -ffree-line-length-none $FCFLAGS" '
configopts += 'FFLAGS="-fallow-argument-mismatch $FFLAGS" '
# Ensure MPI
configopts += '--with-mpi="yes" '
# Enable OpenMP
configopts += '--enable-openmp="yes" '
# BLAS/Lapack from FlexiBLAS
configopts += 'LINALG_LIBS="${LIBLAPACK_MT}" '
# FFTW
configopts += '--with-fft-flavor=fftw3 FFTW3_LIBS="-L${EBROOTFFTW} -lfftw3f -lfftw3" '
# libxc support
configopts += '--with-libxc=${EBROOTLIBXC} '
# hdf5/netcdf4 support
configopts += '--with-netcdf="${EBROOTNETCDF}" '
configopts += '--with-netcdf-fortran="${EBROOTNETCDFMINFORTRAN}" '
configopts += '--with-hdf5="${EBROOTHDF5}" '
# Wannier90
configopts += '--with-wannier90="${EBROOTWANNIER90}" '
preconfigopts = 'export WANNIER90_LIBS="-L$EBROOTWANNIER90/lib -lwannier" && '
# Enable double precision for GW calculations
configopts += '--enable-gw-dpc '
# 'make check' is just executing some basic unit tests.
# Also running 'make tests_v1' to have some basic validation
# runtest = "check && make test_v1"
runtest = "check"
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['abinit', 'aim', 'cut3d', 'conducti', 'mrgddb', 'mrgscr', 'optic']],
'dirs': ['lib/pkgconfig'],
}
moduleclass = 'chem'
easyblock = 'ConfigureMake'
name = 'ABINIT'
version = '9.6.2'
homepage = 'https://www.abinit.org/'
description = """
ABINIT is a package whose main program allows one to find the total energy, charge density and electronic structure of
systems made of electrons and nuclei (molecules and periodic solids) within Density Functional Theory (DFT), using
pseudopotentials and a planewave or wavelet basis.
"""
toolchain = {'name': 'gpsmkl', 'version': '2022a'}
toolchainopts = {'usempi': True, 'openmp': True, 'pic': True}
source_urls = ['https://www.abinit.org/sites/default/files/packages/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['b018c2ff24338a5952c5550a7e09d4c7793b62402c7aa4e09273e9a666e674fb']
builddependencies = [
('Python', '3.10.4'),
]
dependencies = [
('libxc', '5.2.3'),
('netCDF', '4.9.0'),
('netCDF-Fortran', '4.6.0'),
('HDF5', '1.12.2'),
('Wannier90', '3.1.0'),
]
# Needed due to changes in GCC10.
configopts = 'FCFLAGS="-fallow-argument-mismatch -ffree-line-length-none $FCFLAGS" '
configopts += 'FFLAGS="-fallow-argument-mismatch $FFLAGS" '
# Ensure MPI
configopts += '--with-mpi="yes" '
# Enable OpenMP
configopts += '--enable-openmp="yes" '
# BLAS/Lapack from MKL
configopts += '--with-linalg-flavor=mkl '
# FFTW from MKL
configopts += '--with-fft-flavor=dfti '
# libxc support
configopts += '--with-libxc=${EBROOTLIBXC} '
# hdf5/netcdf4 support
configopts += '--with-netcdf="${EBROOTNETCDF}" '
configopts += '--with-netcdf-fortran="${EBROOTNETCDFMINFORTRAN}" '
configopts += '--with-hdf5="${EBROOTHDF5}" '
# Wannier90
configopts += '--with-wannier90="${EBROOTWANNIER90}" '
preconfigopts = 'export WANNIER90_LIBS="-L$EBROOTWANNIER90/lib -lwannier" && '
# Enable double precision for GW calculations
configopts += '--enable-gw-dpc '
# 'make check' is just executing some basic unit tests.
# Also running 'make tests_v1' to have some basic validation
# runtest = "check && make test_v1"
runtest = "check"
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['abinit', 'aim', 'cut3d', 'conducti', 'mrgddb', 'mrgscr', 'optic']],
'dirs': ['lib/pkgconfig'],
}
moduleclass = 'chem'
easyblock = 'ConfigureMake'
name = 'ABINIT'
version = '9.6.2'
homepage = 'https://www.abinit.org/'
description = """
ABINIT is a package whose main program allows one to find the total energy, charge density and electronic structure of
systems made of electrons and nuclei (molecules and periodic solids) within Density Functional Theory (DFT), using
pseudopotentials and a planewave or wavelet basis.
"""
toolchain = {'name': 'intel-para', 'version': '2022a'}
toolchainopts = {'usempi': True, 'openmp': True, 'pic': True}
source_urls = ['https://www.abinit.org/sites/default/files/packages/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['b018c2ff24338a5952c5550a7e09d4c7793b62402c7aa4e09273e9a666e674fb']
builddependencies = [
('Python', '3.10.4'),
]
dependencies = [
('libxc', '5.2.3'),
('netCDF', '4.9.0'),
('netCDF-Fortran', '4.6.0'),
('HDF5', '1.12.2'),
('Wannier90', '3.1.0'),
]
# Ensure MPI with intel wrappers.
configopts = '--with-mpi="yes" '
# configopts += ' FC="mpiifort" CC="mpiicc" CXX="mpiicpc" '
# Enable OpenMP
configopts += '--enable-openmp="yes" '
# BLAS/Lapack from MKL
configopts += '--with-linalg-flavor=mkl '
# FFTW from MKL
configopts += '--with-fft-flavor=dfti '
# libxc support
configopts += '--with-libxc=${EBROOTLIBXC} '
# hdf5/netcdf4 support
configopts += '--with-netcdf="${EBROOTNETCDF}" '
configopts += '--with-netcdf-fortran="${EBROOTNETCDFMINFORTRAN}" '
configopts += '--with-hdf5="${EBROOTHDF5}" '
# Wannier90
configopts += '--with-wannier90="${EBROOTWANNIER90}" '
preconfigopts = 'export WANNIER90_LIBS="-L$EBROOTWANNIER90/lib -lwannier" && '
# Enable double precision for GW calculations
configopts += '--enable-gw-dpc '
# 'make check' is just executing some basic unit tests.
# Also running 'make tests_v1' to have some basic validation
# runtest = "check && make test_v1"
runtest = "check"
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['abinit', 'aim', 'cut3d', 'conducti', 'mrgddb', 'mrgscr', 'optic']],
'dirs': ['lib/pkgconfig'],
}
moduleclass = 'chem'
easyblock = 'MakeCp'
name = 'ACTC'
version = '1.1'
homepage = 'https://sourceforge.net/projects/actc'
description = "ACTC converts independent triangles into triangle strips or fans."
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}
source_urls = [SOURCEFORGE_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['3a1303291629b9de6008c3c9d7b020a4b854802408fb3f8222ec492808c8b44d']
builddependencies = [('binutils', '2.38')]
buildopts = 'CC="$CC" CFLAGS="$CFLAGS"'
files_to_copy = [
(['tcsample', 'tctest', 'tctest2'], 'bin'),
(['tc.h'], 'include/ac'),
(['libactc.a'], 'lib'),
'COPYRIGHT', 'manual.html', 'prims.gif', 'README',
]
sanity_check_paths = {
'files': ['bin/tctest', 'bin/tctest2', 'bin/tcsample', 'include/ac/tc.h', 'lib/libactc.a',
'COPYRIGHT', 'manual.html', 'prims.gif', 'README'],
'dirs': [],
}
modextrapaths = {'CPATH': 'include/ac'}
moduleclass = 'lib'
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'
easyblock = 'CMakeMake'
name = 'AMBER'
version = '20'
versionsuffix = '-AmberTools-21-plumed'
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': 'gpsmkl', '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'))
('PLUMED', '2.8.1'),
]
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;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'
diff -ruN A20_src/AmberTools/src/quick/cmake/jedbrown/FindFFTW.cmake A20_src1/AmberTools/src/quick/cmake/jedbrown/FindFFTW.cmake
Fix MPI related errors in CMake FindFFTW modules
author: Sandipan Mohanty (Juelich Supercomputing Centre)
--- A20_src/AmberTools/src/quick/cmake/jedbrown/FindFFTW.cmake 2023-01-28 14:19:26.575506981 +0100
+++ A20_src1/AmberTools/src/quick/cmake/jedbrown/FindFFTW.cmake 2023-01-28 14:05:09.172659586 +0100
@@ -242,7 +242,7 @@
set(CMAKE_REQUIRED_LIBRARIES ${FFTW_LIBRARY_MPI})
if(EXISTS "${FFTW_LIBRARY_MPI}")
- fftw_check_c_function(fftw_mpi_init FFTW_MPI_WORKS)
+ fftw_check_c_function(fftw_mpi_init FFTW_MPI_WORKS ${FFTW_LIBRARY_MPI} ${FFTW_LIBRARY_SERIAL} ${MPI_C_LIBRARIES})
else()
set(FFTW_MPI_WORKS FALSE)
endif()
@@ -365,4 +365,4 @@
endif()
# don't leak required libraries
-set(CMAKE_REQUIRED_LIBRARIES "")
\ No newline at end of file
+set(CMAKE_REQUIRED_LIBRARIES "")
diff -ruN A20_src/cmake/jedbrown/FindFFTW.cmake A20_src1/cmake/jedbrown/FindFFTW.cmake
--- A20_src/cmake/jedbrown/FindFFTW.cmake 2023-01-28 14:18:50.145392374 +0100
+++ A20_src1/cmake/jedbrown/FindFFTW.cmake 2023-01-28 14:03:56.662393042 +0100
@@ -242,7 +242,7 @@
set(CMAKE_REQUIRED_LIBRARIES ${FFTW_LIBRARY_MPI})
if(EXISTS "${FFTW_LIBRARY_MPI}")
- fftw_check_c_function(fftw_mpi_init FFTW_MPI_WORKS)
+ fftw_check_c_function(fftw_mpi_init FFTW_MPI_WORKS ${FFTW_LIBRARY_MPI} ${FFTW_LIBRARY_SERIAL} ${MPI_C_LIBRARIES})
else()
set(FFTW_MPI_WORKS FALSE)
endif()
@@ -365,4 +365,4 @@
endif()
# don't leak required libraries
-set(CMAKE_REQUIRED_LIBRARIES "")
\ No newline at end of file
+set(CMAKE_REQUIRED_LIBRARIES "")
diff -ruN A20_src/cmake/jedbrown/FindNetCDF.cmake A20_src1/cmake/jedbrown/FindNetCDF.cmake
Fix NetCDF find errors in CMake modules due to F77 and F90 interface detection errors
author: Sandipan Mohanty (Juelich Supercomputing Centre)
--- A20_src/cmake/jedbrown/FindNetCDF.cmake 2023-01-28 14:29:38.347400350 +0100
+++ A20_src1/cmake/jedbrown/FindNetCDF.cmake 2023-01-28 14:02:28.892122573 +0100
@@ -51,7 +51,7 @@
get_filename_component(NetCDF_lib_dirs "${NetCDF_LIBRARIES_C}" PATH)
macro (NetCDF_check_interface lang header libs)
- find_path (NetCDF_INCLUDES_${lang} NAMES ${header} HINTS "${NetCDF_INCLUDES}" NO_DEFAULT_PATH)
+ find_path (NetCDF_INCLUDES_${lang} NAMES ${header})
find_library (NetCDF_LIBRARIES_${lang} NAMES ${libs} HINTS "${NetCDF_lib_dirs}")
This diff is collapsed.
diff -ruN amber20_src/src/pmemd/src/cuda/gpu.cpp amber20_src1/src/pmemd/src/cuda/gpu.cpp
Fix error about the 2D array nmrat being given 1 index before a comparison with 0
author: Sandipan Mohanty (Juelich Supercomputing Centre)
--- amber20_src/src/pmemd/src/cuda/gpu.cpp 2022-02-28 12:02:56.035534480 +0100
+++ amber20_src1/src/pmemd/src/cuda/gpu.cpp 2022-02-28 12:26:15.265104588 +0100
@@ -2849,7 +2849,7 @@
}
// torsions, resttype = 3
else if (resttype[i] == 3) {
- if (nmrat[i][0] >= 0 && nmrat[i][1] >= 0 && nmrat[i][2] >= 0 && nmrat[3] >= 0) {
+ if (nmrat[i][0] >= 0 && nmrat[i][1] >= 0 && nmrat[i][2] >= 0 && nmrat[i][3] >= 0) {
torsions++;
}
else {
##
# Author: Robert Mijakovic <robert.mijakovic@lxp.lu>
# Ilya Zhukov <i.zhukov@fz-juelich.de>
##
easyblock = 'Binary'
name = 'AMD-uProf'
version = '4.0.341'
homepage = 'https://developer.amd.com/amd-uprof/'
description = """AMD uProf is a performance analysis tool for applications running on Windows, Linux & FreeBSD
operating systems. It allows developers to better understand the runtime performance of their application and
to identify ways to improve its performance."""
usage = """
Provide "--disable-perfparanoid" option to your sbatch command to enable collection of required perf events.
Typical workflow consists of three phases:
Provide "--disable-perfparanoid" option to your sbatch command to enable to collect all required perf events.
1. Collect phase - run the application program and collect the profile data, e.g.
$ srun <srun_options> AMDuProfCLI collect <additional_collect_options> <program> [<args>]
2. Translate phase - process the profile data to aggregate, correlate, and organize into database
$ AMDuProfCLI report -i <report_directory>
3. Analyze phase - view and analyze the performance data to identify the bottlenecks
$ AMDuProf <report_directory>
"""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = ['https://developer.amd.com/wordpress/media/files/']
sources = ['AMDuProf_Linux_x64_%(version)s.tar.bz2']
checksums = ['7072b2b4a00a215abcd3a782600930d799e0c5335c2fd9b12283627a73a1fa68']
extract_sources = True
sanity_check_paths = {
'files': ['include/AMDTPowerProfileApi.h', 'lib/x64/libAMDProfileController.a',
'bin/libAMDThreadProfileAPI.%s' % SHLIB_EXT, 'bin/AMDuProf'],
'dirs': ['Examples']
}
sanity_check_commands = ['AMDuProfCLI info --system']
modextrapaths = {
'LD_LIBRARY_PATH': 'bin'
}
moduleclass = 'perf'
easyblock = 'ConfigureMake'
name = 'APR-util'
version = '1.6.1'
homepage = 'https://apr.apache.org/'
description = "Apache Portable Runtime (APR) util libraries."
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = ['https://archive.apache.org/dist/apr/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['b65e40713da57d004123b6319828be7f1273fbc6490e145874ee1177e112c459']
builddependencies = [('binutils', '2.38')]
dependencies = [
('APR', '1.7.0'),
('SQLite', '3.38.3'),
('expat', '2.4.8'),
]
configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-sqlite3=$EBROOTSQLITE --with-expat=$EBROOTEXPAT "
sanity_check_paths = {
'files': ["bin/apu-1-config", "lib/libaprutil-1.%s" % SHLIB_EXT, "lib/libaprutil-1.a"],
'dirs': ["include/apr-1"],
}
parallel = 1
moduleclass = 'tools'
easyblock = 'ConfigureMake'
name = 'APR'
version = '1.7.0'
homepage = 'https://apr.apache.org/'
description = "Apache Portable Runtime (APR) libraries."
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = ['https://archive.apache.org/dist/apr/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['48e9dbf45ae3fdc7b491259ffb6ccf7d63049ffacbc1c0977cced095e4c2d5a2']
builddependencies = [('binutils', '2.38')]
sanity_check_paths = {
'files': ["bin/apr-1-config", "lib/libapr-1.%s" % SHLIB_EXT, "lib/libapr-1.a"],
'dirs': ["include/apr-1"],
}
moduleclass = 'tools'
easyblock = 'CMakeMake'
name = 'Arrow'
version = '8.0.0'
homepage = 'https://arrow.apache.org'
description = """Apache Arrow (incl. PyArrow Python bindings), a cross-language development platform
for in-memory data."""
toolchain = {'name': 'foss', 'version': '2022a'}
source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s']
sources = ['apache-arrow-%(version)s.tar.gz']
checksums = ['ad9a05705117c989c116bae9ac70492fe015050e1b80fb0e38fde4b5d863aaa3']
builddependencies = [
('CMake', '3.23.1'),
('Autotools', '20220317'),
('flex', '2.6.4'),
('Bison', '3.8.2'),
('pkgconf', '1.8.0'),
]
# Arrow strongly prefers included jemalloc, so not including it as a dependency
dependencies = [
('Python', '3.10.4'),
('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), # for numpy
('Boost', '1.79.0'),
('lz4', '1.9.3'),
('zlib', '1.2.12'),
('bzip2', '1.0.8'),
('zstd', '1.5.2'),
('snappy', '1.1.9'),
('RapidJSON', '1.1.0'),
('RE2', '2022-06-01'),
('utf8proc', '2.7.0'),
]
start_dir = 'cpp'
# see https://arrow.apache.org/docs/developers/python.html
configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON "
configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON "
configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_ZSTD=ON -DARROW_WITH_LZ4=ON "
configopts += "-DZSTD_ROOT=$EBROOTZSTD "
# also install Python bindings
local_install_pyarrow_cmds = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
local_install_pyarrow_cmds += "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && "
local_install_pyarrow_cmds += "cd %(builddir)s/*arrow-%(version)s/python && export XDG_CACHE_HOME=$TMPDIR && "
local_install_pyarrow_cmds += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
local_install_pyarrow_cmds += "Python3_ROOT_DIR=$EBROOTPYTHON "
local_install_pyarrow_cmds += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 pip install --prefix %(installdir)s ."
postinstallcmds = [local_install_pyarrow_cmds]
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
sanity_check_paths = {
'files': ['lib/libarrow.a', 'lib/libarrow.%s' % SHLIB_EXT,
'lib/libarrow_python.a', 'lib/libarrow_python.%s' % SHLIB_EXT],
'dirs': ['include/arrow', 'lib/cmake/arrow', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'],
}
sanity_check_commands = [
"python -c 'import pyarrow'",
"python -c 'import pyarrow.dataset'",
"python -c 'import pyarrow.parquet'",
]
moduleclass = 'data'
# Author: Maxime Schmitt, University of Luxembourg
# Author: Adam Huffman, The Francis Crick Institute
#
# Based on the work of: Pablo Escobar Lopez
# Swiss Institute of Bioinformatics (SIB)
# Biozentrum - University of Basel
easyblock = 'MakeCp'
name = 'BEDTools'
version = '2.30.0'
homepage = "https://bedtools.readthedocs.io/"
description = """BEDTools: a powerful toolset for genome arithmetic.
The BEDTools utilities allow one to address common genomics tasks such as finding feature overlaps and
computing coverage.
The utilities are largely based on four widely-used file formats: BED, GFF/GTF, VCF, and SAM/BAM."""
toolchain = {'name': 'GCC', 'version': '11.3.0'}
source_urls = ['https://github.com/arq5x/bedtools2/releases/download/v%(version)s/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['333ad1ffcdc6e36005b4d6c9290677986ee97871cff92ed821c1b643d38150b8']
builddependencies = [('Python', '3.10.4')]
dependencies = [
('XZ', '5.2.5'),
('zlib', '1.2.12'),
('bzip2', '1.0.8'),
('BamTools', '2.5.2'),
]
buildopts = 'CXX="$CXX"'
files_to_copy = ["bin", "docs", "data", "genomes", "scripts", "test"]
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['bedtools', 'pairToBed', 'mergeBed', 'bedToBam', 'fastaFromBed']],
'dirs': files_to_copy,
}
sanity_check_commands = ['bedtools --help']
moduleclass = 'bio'
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
name = 'BamTools'
version = '2.5.2'
homepage = 'https://github.com/pezmaster31/bamtools'
description = "BamTools provides both a programmer's API and an end-user's toolkit for handling BAM files."
toolchain = {'name': 'GCC', 'version': '11.3.0'}
toolchainopts = {'pic': True}
# https://github.com/pezmaster31/bamtools
github_account = 'pezmaster31'
source_urls = [GITHUB_LOWER_SOURCE]
sources = ['v%(version)s.tar.gz']
checksums = ['4d8b84bd07b673d0ed41031348f10ca98dd6fa6a4460f9b9668d6f1d4084dfc8']
builddependencies = [('CMake', '3.23.1')]
moduleclass = 'bio'
easyblock = 'PackedBinary'
name = 'Blender'
version = '3.4.1'
versionsuffix = '-binary'
homepage = 'https://www.blender.org'
description = """
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline,
modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video
editing and game creation.
"""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = ['http://ftp.nluug.nl/pub/graphics/%(namelower)s/release/%(name)s%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s-linux-x64.tar.xz']
checksums = ['1497f83f93e9bbbde745422c795ed10fe15f92f5622b4421768f149fbe776981']
dependencies = [
('X11', '20220504'),
('OpenGL', '2022a'),
('CUDA', '11.7', '', SYSTEM),
]
postinstallcmds = [
# remove Blenders OpenGL libs
'rm -rf %(installdir)s/lib/mesa',
]
sanity_check_paths = {
'files': ['%(namelower)s'],
'dirs': ['%(version_major_minor)s'],
}
modaliases = {
'blender': 'blender -- --cycles-device CUDA',
}
moduleclass = 'vis'
easyblock = 'CMakeMake'
name = 'Blosc'
version = '1.21.3'
homepage = 'https://www.blosc.org/'
description = "Blosc, an extremely fast, multi-threaded, meta-compressor library"
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True, 'cstd': 'c++11'}
source_urls = ['https://github.com/Blosc/c-blosc/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['941016c4564bca662080bb01aea74f06630bd665e598c6f6967fd91b2e2e0bb6']
builddependencies = [
('binutils', '2.38'),
('CMake', '3.23.1'),
]
sanity_check_paths = {
'files': ['include/blosc-export.h', 'include/blosc.h', 'lib/libblosc.a',
'lib/libblosc.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'lib'
# easyconfig file for CGNS library
easyblock = 'CMakeMake'
name = 'CGNS'
version = '4.3.0'
homepage = 'https://cgns.github.io/'
description = """The CGNS system is designed to facilitate the exchange
of data between sites and applications, and to help stabilize the archiving
of aerodynamic data."""
toolchain = {'name': 'gpsmpi', 'version': '2022a'}
toolchainopts = {'optarch': True, 'pic': True, 'usempi': True}
source_urls = ['https://github.com/CGNS/CGNS/archive/refs/tags/']
sources = ['v%(version)s.tar.gz']
checksums = ['7709eb7d99731dea0dd1eff183f109eaef8d9556624e3fbc34dc5177afc0a032'] # CGNS-4.3.0.tar.gz
dependencies = [
('HDF5', '1.12.2'),
]
builddependencies = [
('CMake', '3.23.1'),
]
sanity_check_paths = {
'files': ["bin/%s" % x for x in ["cgnscheck", "cgnscompress",
"cgnsconvert", "cgnsdiff", "cgnslist", "cgnsnames",
"cgnsupdate"]],
'dirs': [],
}
moduleclass = 'cae'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment