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

Merge branch '2020' of...

parents 9cf2f70f 36a97ed0
Branches
No related tags found
No related merge requests found
Showing
with 1135 additions and 4 deletions
# Custom EasyBlocks
Overview of the custom EasyBlocks.
## Quantum ESPRESSO
- __*added by*__ s.achilles
- __*needed because*__ Installation with GCC 9.x required a change in the EasyBlock.
- __*difference compared to upstream*__ Upstream EasyBlocks 4.3.3 reflects this change as well as support for GCC 10.
- __*can be removed*__ when we upgread EasyBlocks 4.3.3+
## ##
# Copyright 2015-2019 Bart Oldeman # Copyright 2015-2019 Bart Oldeman
# Copyright 2016-2020 Forschungszentrum Juelich # Copyright 2016-2021 Forschungszentrum Juelich
# #
# This file is triple-licensed under GPLv2 (see below), MIT, and # This file is triple-licensed under GPLv2 (see below), MIT, and
# BSD three-clause licenses. # BSD three-clause licenses.
...@@ -38,6 +38,7 @@ import fileinput ...@@ -38,6 +38,7 @@ import fileinput
import re import re
import stat import stat
import sys import sys
import platform
from easybuild.easyblocks.generic.packedbinary import PackedBinary from easybuild.easyblocks.generic.packedbinary import PackedBinary
from easybuild.framework.easyconfig import CUSTOM from easybuild.framework.easyconfig import CUSTOM
...@@ -90,12 +91,20 @@ class EB_NVHPC(PackedBinary): ...@@ -90,12 +91,20 @@ class EB_NVHPC(PackedBinary):
"""Easyblock constructor, define custom class variables specific to NVHPC.""" """Easyblock constructor, define custom class variables specific to NVHPC."""
super(EB_NVHPC, self).__init__(*args, **kwargs) super(EB_NVHPC, self).__init__(*args, **kwargs)
# Potential improvement: get "Linux_x86_64" from easybuild.tools.systemtools' get_cpu_architecture() # Ideally we should be using something like `easybuild.tools.systemtools.get_cpu_architecture` here, however,
self.nvhpc_install_subdir = os.path.join('Linux_x86_64', self.version) # on `ppc64le` systems this function returns `POWER` instead of `ppc64le`. Since this path needs to reflect
# `arch` (https://easybuild.readthedocs.io/en/latest/version-specific/easyconfig_templates.html) the same
# procedure from `templates.py` was reused here:
architecture = 'Linux_%s' % platform.uname()[4]
self.nvhpc_install_subdir = os.path.join(architecture, self.version)
def install_step(self): def install_step(self):
"""Install by running install command.""" """Install by running install command."""
# EULA for NVHPC must be accepted via --accept-eula EasyBuild configuration option,
# or via 'accept_eula = True' in easyconfig file
# self.check_accepted_eula(more_info='https://docs.nvidia.com/hpc-sdk/eula/index.html') # only supported in next EasyBuild release
default_cuda_version = self.cfg['default_cuda_version'] default_cuda_version = self.cfg['default_cuda_version']
if default_cuda_version is None: if default_cuda_version is None:
module_cuda_version_full = get_software_version('CUDA') module_cuda_version_full = get_software_version('CUDA')
......
##
# Copyright 2009-2020 Ghent University
# Copyright 2015-2020 Stanford 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://vscentrum.be/nl/en),
# the Hercules foundation (http://www.herculesstichting.be/in_English)
# 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 VMD, implemented as an easyblock
@author: Stephane Thiell (Stanford University)
@author: Kenneth Hoste (HPC-UGent)
"""
import os
from distutils.version import LooseVersion
from easybuild.easyblocks.generic.configuremake import ConfigureMake
from easybuild.easyblocks.generic.pythonpackage import det_pylibdir
from easybuild.tools.build_log import EasyBuildError
from easybuild.tools.filetools import change_dir, copy_file, extract_file
from easybuild.tools.run import run_cmd
from easybuild.tools.modules import get_software_root, get_software_version
import easybuild.tools.environment as env
import easybuild.tools.toolchain as toolchain
class EB_VMD(ConfigureMake):
"""Easyblock for building and installing VMD"""
def __init__(self, *args, **kwargs):
"""Initialize VMD-specific variables."""
super(EB_VMD, self).__init__(*args, **kwargs)
# source tarballs contains a 'plugins' and 'vmd-<version>' directory
self.vmddir = os.path.join(self.builddir, '%s-%s' % (self.name.lower(), self.version))
self.surf_dir = os.path.join(self.vmddir, 'lib', 'surf')
self.stride_dir = os.path.join(self.vmddir, 'lib', 'stride')
def extract_step(self):
"""Custom extract step for VMD."""
super(EB_VMD, self).extract_step()
if LooseVersion(self.version) >= LooseVersion("1.9.3"):
change_dir(self.surf_dir)
srcdir = extract_file('surf.tar.Z', os.getcwd(), change_into_dir=False)
change_dir(srcdir)
def configure_step(self):
"""
Configure VMD for building.
"""
# make sure required dependencies are available
deps = {}
for dep in ['FLTK', 'OpenGL', 'netCDF', 'Python', 'Tcl', 'Tk']:
deps[dep] = get_software_root(dep)
if deps[dep] is None:
raise EasyBuildError("Required dependency %s is missing", dep)
# optional dependencies
for dep in ['ACTC', 'CUDA', 'OptiX']:
deps[dep] = get_software_root(dep)
# specify Tcl/Tk locations & libraries
tclinc = os.path.join(deps['Tcl'], 'include')
tcllib = os.path.join(deps['Tcl'], 'lib')
env.setvar('TCL_INCLUDE_DIR', tclinc)
env.setvar('TCL_LIBRARY_DIR', tcllib)
env.setvar('TK_INCLUDE_DIR', os.path.join(deps['Tk'], 'include'))
env.setvar('TK_LIBRARY_DIR', os.path.join(deps['Tk'], 'lib'))
tclshortver = '.'.join(get_software_version('Tcl').split('.')[:2])
self.cfg.update('buildopts', 'TCLLDFLAGS="-ltcl%s"' % tclshortver)
# Netcdf locations
netcdfinc = os.path.join(deps['netCDF'], 'include')
netcdflib = os.path.join(deps['netCDF'], 'lib')
# Python locations
pymajver = get_software_version('Python').split('.')[0]
out, ec = run_cmd("python -c 'import sysconfig; print(sysconfig.get_path(\"include\"))'", simple=False)
if ec:
raise EasyBuildError("Failed to determine Python include path: %s", out)
else:
env.setvar('PYTHON_INCLUDE_DIR', out.strip())
pylibdir = det_pylibdir()
python_libdir = os.path.join(deps['Python'], os.path.dirname(pylibdir))
env.setvar('PYTHON_LIBRARY_DIR', python_libdir)
out, ec = run_cmd("python%s-config --libs" % pymajver, simple=False)
if ec:
raise EasyBuildError("Failed to determine Python library name: %s", out)
else:
env.setvar('PYTHON_LIBRARIES', out.strip())
# numpy include location, easiest way to determine it is via numpy.get_include()
out, ec = run_cmd("python -c 'import numpy; print(numpy.get_include())'", simple=False)
if ec:
raise EasyBuildError("Failed to determine numpy include directory: %s", out)
else:
env.setvar('NUMPY_INCLUDE_DIR', out.strip())
# compiler commands
self.cfg.update('buildopts', 'CC="%s"' % os.getenv('CC'))
self.cfg.update('buildopts', 'CCPP="%s"' % os.getenv('CXX'))
# plugins need to be built first (see http://www.ks.uiuc.edu/Research/vmd/doxygen/compiling.html)
change_dir(os.path.join(self.builddir, 'plugins'))
cmd = ' '.join([
'make',
'LINUXAMD64',
"TCLINC='-I%s'" % tclinc,
"TCLLIB='-L%s'" % tcllib,
"TCLLDFLAGS='-ltcl%s'" % tclshortver,
"NETCDFINC='-I%s'" % netcdfinc,
"NETCDFLIB='-L%s'" % netcdflib,
self.cfg['buildopts'],
])
run_cmd(cmd, log_all=True, simple=False)
# create plugins distribution
plugindir = os.path.join(self.vmddir, 'plugins')
env.setvar('PLUGINDIR', plugindir)
self.log.info("Generating VMD plugins in %s", plugindir)
run_cmd("make distrib %s" % self.cfg['buildopts'], log_all=True, simple=False)
# explicitely mention whether or not we're building with CUDA/OptiX support
if deps['CUDA']:
self.log.info("Building with CUDA %s support", get_software_version('CUDA'))
if deps['OptiX']:
self.log.info("Building with Nvidia OptiX %s support", get_software_version('OptiX'))
else:
self.log.warn("Not building with Nvidia OptiX support!")
else:
self.log.warn("Not building with CUDA nor OptiX support!")
# see http://www.ks.uiuc.edu/Research/vmd/doxygen/configure.html
# LINUXAMD64: Linux 64-bit
# LP64: build VMD as 64-bit binary
# IMD: enable support for Interactive Molecular Dynamics (e.g. to connect to NAMD for remote simulations)
# PTHREADS: enable support for POSIX threads
# COLVARS: enable support for collective variables (related to NAMD/LAMMPS)
# NOSILENT: verbose build command
# FLTK: enable the standard FLTK GUI
# TK: enable TK to support extension GUI elements
# OPENGL: enable OpenGL
self.cfg.update(
'configopts', "LINUXAMD64 LP64 IMD PTHREADS COLVARS NOSILENT FLTK TK OPENGL", allow_duplicate=False)
# add additional configopts based on available dependencies
for key in deps:
if deps[key]:
if key == 'Mesa' or key == 'OpenGL':
self.cfg.update('configopts', "OPENGL MESA", allow_duplicate=False)
elif key == 'OptiX':
self.cfg.update('configopts', "LIBOPTIX", allow_duplicate=False)
elif key == 'Python':
self.cfg.update('configopts', "PYTHON NUMPY", allow_duplicate=False)
else:
self.cfg.update('configopts', key.upper(), allow_duplicate=False)
# configure for building with Intel compilers specifically
if self.toolchain.comp_family() == toolchain.INTELCOMP:
self.cfg.update('configopts', 'ICC', allow_duplicate=False)
# specify install location using environment variables
env.setvar('VMDINSTALLBINDIR', os.path.join(self.installdir, 'bin'))
env.setvar('VMDINSTALLLIBRARYDIR', os.path.join(self.installdir, 'lib'))
# configure in vmd-<version> directory
change_dir(self.vmddir)
run_cmd("%s ./configure %s" % (self.cfg['preconfigopts'], self.cfg['configopts']))
# change to 'src' subdirectory, ready for building
change_dir(os.path.join(self.vmddir, 'src'))
def build_step(self):
"""Custom build step for VMD."""
super(EB_VMD, self).build_step()
self.have_stride = False
# Build Surf, which is part of VMD as of VMD version 1.9.3
if LooseVersion(self.version) >= LooseVersion("1.9.3"):
change_dir(self.surf_dir)
surf_build_cmd = 'make CC="%s" OPT="%s"' % (os.environ['CC'], os.environ['CFLAGS'])
run_cmd(surf_build_cmd)
# Build Stride if it was downloaded
if os.path.exists(os.path.join(self.stride_dir, 'Makefile')):
change_dir(self.stride_dir)
self.have_stride = True
stride_build_cmd = 'make CC="%s" CFLAGS="%s"' % (os.environ['CC'], os.environ['CFLAGS'])
run_cmd(stride_build_cmd)
else:
self.log.info("Stride has not been downloaded and/or unpacked.")
def install_step(self):
"""Custom build step for VMD."""
# Install must also be done in 'src' subdir
change_dir(os.path.join(self.vmddir, 'src'))
super(EB_VMD, self).install_step()
if LooseVersion(self.version) >= LooseVersion("1.9.3"):
surf_bin = os.path.join(self.surf_dir, 'surf')
copy_file(surf_bin, os.path.join(self.installdir, 'lib', 'surf_LINUXAMD64'))
if self.have_stride:
stride_bin = os.path.join(self.stride_dir, 'stride')
copy_file(stride_bin, os.path.join(self.installdir, 'lib', 'stride_LINUXAMD64'))
def sanity_check_step(self):
"""Custom sanity check for VMD."""
custom_paths = {
'files': ['bin/vmd'],
'dirs': ['lib'],
}
super(EB_VMD, self).sanity_check_step(custom_paths=custom_paths)
easyblock = 'MakeCp'
name = 'ACTC'
version = '1.1'
homepage = 'https://sourceforge.net/projects/actc'
description = "ACTC converts independent triangles into triangle strips or fans."
site_contacts = 'j.goebbert@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
toolchainopts = {'pic': True}
source_urls = [SOURCEFORGE_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['3a1303291629b9de6008c3c9d7b020a4b854802408fb3f8222ec492808c8b44d']
builddependencies = [('binutils', '2.34')]
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'
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.
"""
site_contacts = 'Sandipan Mohanty <s.mohanty@fz-juelich.de>'
toolchain = {'name': 'gpsmpi', 'version': '2020'}
toolchainopts = {'pic': True}
builddependencies = [
('CMake', '3.18.0'),
('binutils', '2.34',),
]
dependencies = [
('CMake', '3.18.0'),
('FFTW', '3.3.8'),
('Python', '3.8.5'),
('flex', '2.6.4', '', True),
]
sources = [
'AmberTools20.tar.bz2',
'Amber20.tar.bz2',
]
separate_build_dir = True
local_build_mpi_parts = "TRUE"
local_build_cuda_parts = "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 "
configopts += " -DINSTALL_TESTS=TRUE -DMPI=%s " % local_build_mpi_parts
configopts += " -DDOWNLOAD_MINICONDA=TRUE -DMINICONDA_USE_PY3=TRUE "
configopts += " -DCUDA=%s " % local_build_cuda_parts
modextravars = {
'AMBERHOME': '%(installdir)s/',
}
modluafooter = '''
add_property("arch","gpu")
'''
group = "amber"
modloadmsg = '''
The access to this software is restricted to members of the group "amber".
The JSC has a site licence for academic users. If you would like to get
access please see:
"http://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/Chemistry/AmberConfirmationOfLicence.html"
'''
moduleclass = 'bio'
easyblock = 'EB_Boost'
name = 'Boost.Python'
version = '1.74.0'
versionsuffix = '-nompi'
homepage = 'https://boostorg.github.io/python'
description = """Boost.Python is a C++ library which enables seamless interoperability between C++
and the Python programming language."""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
toolchainopts = {'pic': True}
source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/']
sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))]
patches = ['Boost-1.71.0_fix-Python3.patch']
dependencies = [
('Boost', version, versionsuffix),
('Python', '3.8.5')
]
only_python_bindings = True
moduleclass = 'lib'
name = 'Boost'
version = '1.74.0'
versionsuffix = '-nompi'
homepage = 'https://www.boost.org/'
description = """Boost provides free peer-reviewed portable C++ source libraries."""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
toolchainopts = {'pic': True, 'cstd': 'c++11'}
source_urls = ['https://dl.bintray.com/boostorg/release/%(version)s/source/']
sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
builddependencies = [
('binutils', '2.34'),
]
dependencies = [
('bzip2', '1.0.8'),
('zlib', '1.2.11'),
('XZ', '5.2.5'),
('ICU', '67.1'),
]
configopts = '--without-libraries=python'
# do not build boost_mpi
boost_mpi = False
moduleclass = 'devel'
easyblock = 'ConfigureMake'
name = 'CMake'
version = '3.18.0'
homepage = 'http://www.cmake.org'
description = """CMake, the cross-platform, open-source build system.
CMake is a family of tools designed to build, test and package software.
"""
site_contacts = 'a.strube@fz-juelich.de'
toolchain = SYSTEM
source_urls = ['http://www.cmake.org/files/v%(version_major_minor)s']
sources = [SOURCELOWER_TAR_GZ]
configopts = '-- -DCMAKE_USE_OPENSSL=1 -DCMAKE_PREFIX_PATH=$EBROOTNCURSES'
builddependencies = [
('binutils', '2.34'),
]
dependencies = [
('ncurses', '6.2'),
# OS dependency should be preferred if the os version is more recent then this version,
# it's nice to have an up to date openssl for security reasons
# ('OpenSSL', '1.0.1p'),
]
osdependencies = [('openssl-devel', 'libssl-dev', 'libopenssl-devel')]
sanity_check_paths = {
'files': ["bin/%s" % x for x in ['cmake', 'cpack', 'ctest']],
'dirs': [],
}
moduleclass = 'devel'
# Patches the setup.py to use EB settings for BLAS/LAPACK, FFTW, etc
# original by wpoely86@gmail.com, ported to v1.2.1 by Kenneth Hoste (HPC-UGent)
--- cvxopt-1.2.1/setup.py.orig 2018-08-30 19:54:12.000000000 +0200
+++ cvxopt-1.2.1/setup.py 2018-10-02 16:28:57.252340779 +0200
@@ -91,9 +91,11 @@
LAPACK_LIB = os.environ.get("CVXOPT_LAPACK_LIB",LAPACK_LIB)
BLAS_LIB_DIR = os.environ.get("CVXOPT_BLAS_LIB_DIR",BLAS_LIB_DIR)
BLAS_EXTRA_LINK_ARGS = os.environ.get("CVXOPT_BLAS_EXTRA_LINK_ARGS",BLAS_EXTRA_LINK_ARGS)
+FFTW_EXTRA_LINK_ARGS = os.environ.get("CVXOPT_FFTW_EXTRA_LINK_ARGS",'')
if type(BLAS_LIB) is str: BLAS_LIB = BLAS_LIB.strip().split(';')
if type(LAPACK_LIB) is str: LAPACK_LIB = LAPACK_LIB.strip().split(';')
-if type(BLAS_EXTRA_LINK_ARGS) is str: BLAS_EXTRA_LINK_ARGS = BLAS_EXTRA_LINK_ARGS.strip().split(';')
+if type(BLAS_EXTRA_LINK_ARGS) is str: BLAS_EXTRA_LINK_ARGS = BLAS_EXTRA_LINK_ARGS.strip().split(' ')
+if type(FFTW_EXTRA_LINK_ARGS) is str: FFTW_EXTRA_LINK_ARGS = FFTW_EXTRA_LINK_ARGS.strip().split(' ')
BUILD_GSL = int(os.environ.get("CVXOPT_BUILD_GSL",BUILD_GSL))
GSL_LIB_DIR = os.environ.get("CVXOPT_GSL_LIB_DIR",GSL_LIB_DIR)
GSL_INC_DIR = os.environ.get("CVXOPT_GSL_INC_DIR",GSL_INC_DIR)
@@ -126,7 +128,7 @@
# optional modules
if BUILD_GSL:
- gsl = Extension('gsl', libraries = M_LIB + ['gsl'] + BLAS_LIB,
+ gsl = Extension('gsl', libraries = M_LIB + ['gsl'],
include_dirs = [ GSL_INC_DIR ],
library_dirs = [ GSL_LIB_DIR, BLAS_LIB_DIR ],
define_macros = GSL_MACROS,
@@ -135,11 +137,11 @@
extmods += [gsl];
if BUILD_FFTW:
- fftw = Extension('fftw', libraries = ['fftw3'] + BLAS_LIB,
+ fftw = Extension('fftw',
include_dirs = [ FFTW_INC_DIR ],
library_dirs = [ FFTW_LIB_DIR, BLAS_LIB_DIR ],
define_macros = FFTW_MACROS,
- extra_link_args = BLAS_EXTRA_LINK_ARGS,
+ extra_link_args = BLAS_EXTRA_LINK_ARGS + FFTW_EXTRA_LINK_ARGS,
sources = ['src/C/fftw.c'] )
extmods += [fftw];
@@ -151,7 +153,7 @@
extmods += [glpk];
if BUILD_DSDP:
- dsdp = Extension('dsdp', libraries = ['dsdp'] + LAPACK_LIB + BLAS_LIB,
+ dsdp = Extension('dsdp', libraries = ['dsdp'],
include_dirs = [ DSDP_INC_DIR ],
library_dirs = [ DSDP_LIB_DIR, BLAS_LIB_DIR ],
extra_link_args = BLAS_EXTRA_LINK_ARGS,
@@ -160,19 +162,19 @@
# Required modules
-base = Extension('base', libraries = M_LIB + LAPACK_LIB + BLAS_LIB,
+base = Extension('base',
library_dirs = [ BLAS_LIB_DIR ],
define_macros = MACROS,
extra_link_args = BLAS_EXTRA_LINK_ARGS,
sources = ['src/C/base.c','src/C/dense.c','src/C/sparse.c'])
-blas = Extension('blas', libraries = BLAS_LIB,
+blas = Extension('blas',
library_dirs = [ BLAS_LIB_DIR ],
define_macros = MACROS,
extra_link_args = BLAS_EXTRA_LINK_ARGS,
sources = ['src/C/blas.c'] )
-lapack = Extension('lapack', libraries = LAPACK_LIB + BLAS_LIB,
+lapack = Extension('lapack',
library_dirs = [ BLAS_LIB_DIR ],
define_macros = MACROS,
extra_link_args = BLAS_EXTRA_LINK_ARGS,
@@ -180,9 +182,10 @@
if not SUITESPARSE_SRC_DIR:
umfpack = Extension('umfpack',
- libraries = ['umfpack','cholmod','amd','colamd','suitesparseconfig'] + LAPACK_LIB + BLAS_LIB + RT_LIB,
+ libraries = ['umfpack','cholmod','amd','colamd','suitesparseconfig'] + RT_LIB,
include_dirs = [SUITESPARSE_INC_DIR],
library_dirs = [SUITESPARSE_LIB_DIR, BLAS_LIB_DIR],
+ extra_link_args = BLAS_EXTRA_LINK_ARGS,
sources = ['src/C/umfpack.c'])
else:
umfpack = Extension('umfpack',
@@ -193,7 +196,6 @@
SUITESPARSE_SRC_DIR + '/SuiteSparse_config' ],
library_dirs = [ BLAS_LIB_DIR ],
define_macros = MACROS + [('NTIMER', '1'), ('NCHOLMOD', '1')],
- libraries = LAPACK_LIB + BLAS_LIB,
extra_compile_args = UMFPACK_EXTRA_COMPILE_ARGS,
extra_link_args = BLAS_EXTRA_LINK_ARGS,
sources = [ 'src/C/umfpack.c',
@@ -206,14 +208,13 @@
if not SUITESPARSE_SRC_DIR:
cholmod = Extension('cholmod',
- libraries = ['cholmod','colamd','amd','suitesparseconfig'] + LAPACK_LIB + BLAS_LIB + RT_LIB,
+ libraries = ['cholmod','colamd','amd','suitesparseconfig'] + RT_LIB,
include_dirs = [SUITESPARSE_INC_DIR],
library_dirs = [SUITESPARSE_LIB_DIR, BLAS_LIB_DIR],
sources = [ 'src/C/cholmod.c' ])
else:
cholmod = Extension('cholmod',
library_dirs = [ BLAS_LIB_DIR ],
- libraries = LAPACK_LIB + BLAS_LIB,
include_dirs = [ SUITESPARSE_SRC_DIR + '/CHOLMOD/Include',
SUITESPARSE_SRC_DIR + '/COLAMD',
SUITESPARSE_SRC_DIR + '/AMD/Include',
@@ -235,17 +236,18 @@
libraries = ['amd','suitesparseconfig'] + RT_LIB,
include_dirs = [SUITESPARSE_INC_DIR],
library_dirs = [SUITESPARSE_LIB_DIR],
+ extra_link_args = BLAS_EXTRA_LINK_ARGS,
sources = ['src/C/amd.c'])
else:
amd = Extension('amd',
include_dirs = [SUITESPARSE_SRC_DIR + '/AMD/Include',
SUITESPARSE_SRC_DIR + '/SuiteSparse_config' ],
define_macros = MACROS + [('NTIMER', '1')],
+ extra_link_args = BLAS_EXTRA_LINK_ARGS,
sources = [ 'src/C/amd.c', SUITESPARSE_SRC_DIR + '/SuiteSparse_config/SuiteSparse_config.c'] +
glob(SUITESPARSE_SRC_DIR + '/AMD/Source/*.c') )
misc_solvers = Extension('misc_solvers',
- libraries = LAPACK_LIB + BLAS_LIB,
library_dirs = [ BLAS_LIB_DIR ],
define_macros = MACROS,
extra_link_args = BLAS_EXTRA_LINK_ARGS,
easyblock = 'PythonPackage'
name = 'CVXOPT'
version = '1.2.5'
versionsuffix = '-Python-%(pyver)s'
homepage = 'http://cvxopt.org'
description = """CVXOPT is a free software package for convex optimization based on the Python programming language.
Its main purpose is to make the development of software for convex optimization applications straightforward by
building on Python's extensive standard library and on the strengths of Python as a high-level programming language.
"""
site_contacts = 'j.goebbert@fz-juelich.de'
toolchain = {'name': 'gpsmkl', 'version': '2020'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = [PYPI_LOWER_SOURCE]
sources = [SOURCELOWER_TAR_GZ]
patches = ['CVXOPT-1.2.1-fix-setup-py.patch']
checksums = [
'94ec8c36bd6628a11de9014346692daeeef99b3b7bae28cef30c7490bbcb2d72', # cvxopt-1.2.5.tar.gz
'85d8475098895e9af45f330489a712b5b944489c5fb4a6c67f59bef8fed4303d', # CVXOPT-1.2.1-fix-setup-py.patch
]
builddependencies = [
('binutils', '2.34'),
]
dependencies = [
('Python', '3.8.5'),
('SuiteSparse', '5.7.1', '-CUDA'),
('GSL', '2.6'),
]
download_dep_fail = True
use_pip = True
preinstallopts = 'CVXOPT_BUILD_FFTW=1 CVXOPT_BUILD_GSL=1 CVXOPT_BLAS_EXTRA_LINK_ARGS="$LIBLAPACK" '
preinstallopts += 'CVXOPT_FFTW_EXTRA_LINK_ARGS="$LIBFFT" CVXOPT_SUITESPARSE_SRC_DIR=$EBROOTSUITESPARSE'
installopts = ' --no-binary cvxopt'
sanity_check_commands = ['nosetests']
moduleclass = 'math'
easyblock = 'PythonBundle'
name = 'Cirq'
version = '0.9.1'
versionsuffix = '-Python-%(pyver)s'
homepage = 'https://github.com/quantumlib/cirq'
description = """A python framework for creating, editing,
and invoking Noisy Intermediate Scale Quantum (NISQ) circuits."""
site_contacts = 'j.goebbert@fz-juelich.de'
toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'}
toolchainopts = {'pic': True}
dependencies = [
('Python', '3.8.5'),
('SciPy-Stack', '2020', versionsuffix),
('protobuf', '3.12.4'),
('texlive', '20200406'),
]
local_common_opts = {
'req_py_majver': '3',
'req_py_minver': '0'
}
exts_default_options = {
'download_dep_fail': True,
'source_urls': [PYPI_SOURCE],
'use_pip': True,
'use_pip_for_deps': False,
'sanity_pip_check': True,
}
exts_list = [
('cachetools', '4.1.1', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'bbaa39c3dede00175df2dc2b03d0cf18dd2d32a7de7beb68072d13043c9edb20')]),
])),
('pyasn1-modules', '0.2.8', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e')]),
])),
('rsa', '4.6', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '109ea5a66744dd859bf16fe904b8d8b627adafb9408753161e766a92e7d681fa')]),
])),
('google-auth', '1.23.0', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '5176db85f1e7e837a646cd9cede72c3c404ccf2e3373d9ee14b2db88febad440')]),
('modulename', 'google.auth'),
])),
('googleapis-common-protos', '1.52.0', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '560716c807117394da12cecb0a54da5a451b5cf9866f1d37e9a5e2329a665351')]),
('modulename', 'googleapiclient')
])),
('grpcio', '1.33.2', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '21265511880056d19ce4f809ce3fbe2a3fa98ec1fc7167dbdf30a80d3276202e')]),
('modulename', 'grpc')
])),
('google-api-core', '1.23.0', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '1bb3c485c38eacded8d685b1759968f6cf47dd9432922d34edb90359eaa391e2')]),
('modulename', 'google'),
])),
('httplib2', '0.18.1', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '8af66c1c52c7ffe1aa5dc4bcd7c769885254b0756e6e69f953c7f0ab49a70ba3')]),
])),
('uritemplate', '3.0.1', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '5af8ad10cec94f215e3f48112de2022e1d5a37ed427fbd88652fa908f2ab7cae')]),
])),
('google-auth-httplib2', '0.0.4', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '8d092cc60fb16517b12057ec0bba9185a96e3b7169d86ae12eae98e645b7bc39')]),
])),
('google-api-python-client', '1.12.5', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '1892cd490d164e5ec2f2168dc3b4fa0af68f36ca15a88b91bca1826b3d4f2829')]),
('modulename', 'googleapiclient'),
])),
('typing_extensions', '3.7.4.3', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c')]),
])),
('sortedcontainers', '2.2.2', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '4e73a757831fc3ca4de2859c422564239a31d8213d09a2a666e375807034d2ba')]),
])),
('networkx', '2.5', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '7978955423fbc9639c10498878be59caf99b44dc304c2286162fd24b458c1602')]),
])),
('freezegun', '0.3.15', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'e2062f2c7f95cc276a834c22f1a17179467176b624cc6f936e8bc3be5535ad1b')]),
])),
('protobuf', '3.12.4', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'c99e5aea75b6f2b29c8d8da5bdc5f5ed8d9a5b4f15115c8316a3f0a850f94656')]),
('modulename', 'google.protobuf')
])),
('cirq', version, dict(list(local_common_opts.items()) + [
('source_tmpl', 'cirq-%(version)s-py3-none-any.whl'),
('checksums', [('sha256', 'd900b861f2132a673b511b22ec80955cedec34c1bfa95d8f39cdc1eab5309242')]),
('use_pip', True),
('unpack_sources', False),
])),
]
moduleclass = 'quantum'
easyblock = 'PythonBundle'
name = 'DWave'
version = '3.2.0'
versionsuffix = '-Python-%(pyver)s'
homepage = 'https://docs.ocean.dwavesys.com'
description = """Ocean software is a suite of tools D-Wave Systems for solving hard problems with quantum computers."""
site_contacts = 'j.goebbert@fz-juelich.de'
toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'}
toolchainopts = {'pic': True}
dependencies = [
('Python', '3.8.5'),
('SciPy-Stack', '2020', versionsuffix),
('Boost.Python', '1.74.0', '-nompi'),
('protobuf', '3.13.0'),
]
local_common_opts = {
'req_py_majver': '3',
'req_py_minver': '0'
}
exts_default_options = {
'source_urls': [PYPI_SOURCE],
'use_pip': True,
'sanity_pip_check': True,
'download_dep_fail': True,
'use_pip_for_deps': False,
}
exts_list = [
('plucky', '0.4.3', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '5bc75d43ae6b40f1b7ba42000b37e4934fa6bd2d6a6cd4e47461f803a404c194')]),
])),
('homebase', '1.0.1', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '9ee008df4298b420852d815e6df488822229c4bd8d571bcd0a454e04232c635e')]),
])),
('dwave-cloud-client', '0.8.2', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '5472aa523311380bdb5b4e659d127d4fc7acdef73e03234df23890972be2fca3')]),
('modulename', 'dwave.cloud'),
])),
('dwave_networkx', '0.8.8', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '9d6bb1f93d89511aeaa191319da9970e48134a4dccecff59c972e8f1f3107387')]),
('modulename', 'dwave_networkx'),
])),
('dwave-system', '1.3.0', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'ec1283592211016b30587c67837b23898a74b809de6d715447ff2822798b26f1')]),
('modulename', 'dwave.system'),
])),
('dwave-qbsolv', '0.3.2', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'aca74f909748cd02d3e59647ae6c81585dd75afcf53a19fa116580c7c7873782')]),
('modulename', 'dwave_qbsolv'),
])),
('dwave-hybrid', '0.6.1', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'd8b195dabe9e630c31bb9e3362d1cb6d3fab933b94d175719cd3771e346d5934')]),
('modulename', 'hybrid'),
])),
('dwave-neal', '0.5.7', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '86da2141f81ade1e69d595a9840222a45c47b19577c037ef3d4988b5463c26f8')]),
('modulename', 'neal'),
])),
('dimod', '0.9.13', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'a9ab210a2737199b824191089e71fa669b2760b168d0f7ad5aaa7fddcada933f')]),
])),
('dwavebinarycsp', '0.1.2', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'bf2000c2738df2b3924470f080e73c42e7246b5137fdedc7a2627d5e08479bdf')]),
])),
('fasteners', '0.16', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'c995d8c26b017c5d6a6de9ad29a0f9cdd57de61ae1113d28fac26622b06a0933')]),
])),
('minorminer', '0.2.5', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '3a521099ec64c99295ae8205b08da29c06aad81d3be74fb27a58d22e220a2a33')]),
])),
('penaltymodel', '0.16.4', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'e2d9e94154a675b33db59dadb9856ee4c8bc1aee1647c664df1b17bc53b04f2a')]),
])),
('penaltymodel-cache', '0.4.3', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '93b76ba83e9b39bca705c341b5e925f4ff5841c20f3e5fac962304656f1ec66e')]),
('modulename', 'penaltymodel.cache')
])),
('penaltymodel-lp', '0.1.4', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '044ec3a12f78003b044c05b66e9597131bcbb47d775db03dba2d1dc45d2f0efb')]),
('modulename', 'penaltymodel.lp')
])),
('protobuf', '3.13.0', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '6a82e0c8bb2bf58f606040cc5814e07715b2094caeba281e2e7d0b0e2e397db5')]),
('modulename', 'google.protobuf')
])),
('ortools', '8.0.8283', dict(list(local_common_opts.items()) + [
('source_tmpl', 'ortools-8.0.8283-cp38-cp38-manylinux1_x86_64.whl'),
('checksums', [('sha256', '31020d0b46c8e4ff7d920803c3bb5cbfc5630d319b9b46f70de8d18f9456e9c9')]),
('unpack_sources', False),
])),
('penaltymodel-mip', '0.2.4', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'c3471a8f10107b163ab0035125fe861a3c55808e7656db9ed524451667ff1e38')]),
('modulename', 'penaltymodel.mip')
])),
('wrapt', '1.12.1', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7')]),
])),
('Deprecated', '1.2.10', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', '525ba66fb5f90b07169fdd48b6373c18f1ee12728ca277ca44567a367d9d7f74')]),
])),
('pyqubo', '1.0.7', dict(list(local_common_opts.items()) + [
('source_tmpl', 'pyqubo-1.0.7-cp38-cp38-manylinux1_x86_64.whl'),
('checksums', [('sha256', '79dfd9a7f2f75a216838e357959b321d55ced7cdf4559037a4704d2f2927f6ba')]),
('unpack_sources', False),
])),
('importlib_resources', '1.0.2', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'd3279fd0f6f847cced9f7acc19bd3e5df54d34f93a2e7bb5f238f81545787078')]),
])),
('dwave-inspector', '0.2.4', dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'b596e3cc0055e373e0955b402e1ee43998e0ceb2968e09eeb8a194c67b080e38')]),
('modulename', 'dwave.inspector'),
])),
('dwave-tabu', '0.3.1', dict(list(local_common_opts.items()) + [
('source_tmpl', 'dwave_tabu-0.3.1-cp38-cp38-manylinux1_x86_64.whl'),
('checksums', [('sha256', '6a57c6e0c6d6dce912d36c2c183a2a841c1f2830fab7434ddb912e5200d7dc2f')]),
('unpack_sources', False),
('modulename', 'tabu'),
])),
('dwave-greedy', '0.1.2', dict(list(local_common_opts.items()) + [
('source_tmpl', 'dwave_greedy-0.1.2-cp38-cp38-manylinux1_x86_64.whl'),
('checksums', [('sha256', '88cdb3897159880d02b6e5880285b2b5a5295c3a725ce7c990ce4e72c21724ac')]),
('unpack_sources', False),
('modulename', 'greedy'),
])),
('dwave-ocean-sdk', version, dict(list(local_common_opts.items()) + [
('checksums', [('sha256', 'a8a5e0acbd7483f62f65beb6f2fdb397d5370e20df949434521cae0635d954e9')]),
('skipsteps', ['sanitycheck']),
('modulename', 'dwave.system'), # just a fake for sanity-check
])),
]
moduleclass = 'quantum'
...@@ -44,7 +44,8 @@ sources = ['ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-%s.tar.gz' % vers ...@@ -44,7 +44,8 @@ sources = ['ftp://ftp.mcs.anl.gov/pub/darshan/releases/darshan-%s.tar.gz' % vers
local_subpath = 'darshan-runtime' local_subpath = 'darshan-runtime'
preconfigopts = 'cd %s;' % local_subpath preconfigopts = 'cd %s;' % local_subpath
configopts = '--with-mem-align=8 --with-log-path-by-env=DARSHAN_LOG_PATH --with-jobid-env=SLURM_JOBID CC=mpicc' configopts = '--with-mem-align=8 --with-log-path-by-env=DARSHAN_LOG_PATH '
configopts += ' --with-jobid-env=SLURM_JOBID CC=mpicc --enable-hdf5-mod=$EBROOTHDF5'
prebuildopts = 'cd %s;' % local_subpath prebuildopts = 'cd %s;' % local_subpath
...@@ -55,4 +56,9 @@ sanity_check_paths = { ...@@ -55,4 +56,9 @@ sanity_check_paths = {
'dirs': [] 'dirs': []
} }
dependencies = [
("HDF5", "1.10.6"),
]
moduleclass = 'lib' moduleclass = 'lib'
...@@ -47,6 +47,8 @@ prebuildopts = 'cd %s;' % local_subpath ...@@ -47,6 +47,8 @@ prebuildopts = 'cd %s;' % local_subpath
preinstallopts = 'cd %s;' % local_subpath preinstallopts = 'cd %s;' % local_subpath
configopts = '--enable-hdf5-mod=$EBROOTHDF5'
sanity_check_paths = { sanity_check_paths = {
'files': ["bin/darshan-job-summary.pl"], 'files': ["bin/darshan-job-summary.pl"],
'dirs': [] 'dirs': []
...@@ -55,6 +57,7 @@ sanity_check_paths = { ...@@ -55,6 +57,7 @@ sanity_check_paths = {
dependencies = [ dependencies = [
("gnuplot", "5.2.8"), ("gnuplot", "5.2.8"),
("Perl", "5.32.0"), ("Perl", "5.32.0"),
("HDF5", "1.10.6"),
] ]
moduleclass = 'lib' moduleclass = 'lib'
...@@ -17,6 +17,7 @@ sources = [SOURCELOWER_TGZ] ...@@ -17,6 +17,7 @@ sources = [SOURCELOWER_TGZ]
builddependencies = [ builddependencies = [
('binutils', '2.34'), ('binutils', '2.34'),
('CMake', '3.18.0'), ('CMake', '3.18.0'),
('texinfo', '6.7'),
] ]
dependencies = [ dependencies = [
......
##
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
# Ghent University / The Francis Crick Institute
# Authors::
# * Wiktor Jurkowski <wiktor.jurkowski@gmail.com>
# * Fotis Georgatos <fotis@cern.ch>
# * George Tsouloupas <g.tsouloupas@cyi.ac.cy>
# * Kenneth Hoste <kenneth.hoste@ugent.be>
# * Adam Huffman <adam.huffman@crick.ac.uk>
# License:: MIT/GPL
##
name = 'GROMACS'
version = '2020.4'
versionsuffix = '-plumed'
homepage = 'http://www.gromacs.org'
description = """
GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations
of motion for systems with hundreds to millions of particles. It is primarily designed for
biochemical molecules like proteins and lipids that have a lot of complicated bonded interactions,
but since GROMACS is extremely fast at calculating the non-bonded interactions (that usually
dominate simulations) many groups are also using it for research on non-biological systems, e.g.
polymers.
Documentation
=============
Use `gmx` to execute GROMACS commands on a single node, for example, to prepare your run. Use
`gmx_mpi mdrun` in your job scripts with `srun`. The user documentation of GROMACS can be found at
http://manual.gromacs.org/documentation/current/user-guide/index.html.
"""
site_contacts = 'sc@fz-juelich.de'
toolchain = {'name': 'gpsmkl', 'version': '2020'}
toolchainopts = {'openmp': True, 'usempi': True}
source_urls = ['ftp://ftp.gromacs.org/pub/gromacs/']
sources = [SOURCELOWER_TAR_GZ]
builddependencies = [
('CMake', '3.18.0'),
('libxml2', '2.9.10')
]
dependencies = [
('PLUMED', '2.7.0'),
('CUDA', '11.0', '', True),
]
configopts = '-DCMAKE_PREFIX_PATH=$EBROOTHWLOC -DMPIEXEC_MAX_NUMPROCS="24" '
configopts += '-DMKL_LIBRARIES="${MKLROOT}/lib/intel64/libmkl_intel_ilp64.so;'
configopts += '${MKLROOT}/lib/intel64/libmkl_sequential.so;${MKLROOT}/lib/intel64/libmkl_core.so" '
configopts += '-DGMX_CUDA_TARGET_SM="60;70;80" '
mpiexec = 'srun'
mpiexec_numproc_flag = '"--gres=gpu:1 -n"'
mpi_numprocs = '24'
runtest = False
modluafooter = '''
add_property("arch","gpu")
'''
moduleclass = 'bio'
name = 'HDF5'
version = '1.10.6'
homepage = 'http://www.hdfgroup.org/HDF5/'
description = """HDF5 is a unique technology suite that makes possible the management of
extremely large and complex data collections.
"""
site_contacts = 's.luehrs@fz-juelich.de'
toolchain = {'name': 'ipsmpi', 'version': '2020-mt'}
toolchainopts = {'optarch': True, 'pic': True, 'usempi': True}
source_urls = [
'https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major)s.%(version_minor)s/hdf5-%(version)s/src'
]
sources = [SOURCELOWER_TAR_GZ]
checksums = ['5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa']
dependencies = [
('zlib', '1.2.11'),
('Szip', '2.1.1'),
]
moduleclass = 'data'
easyblock = "PythonPackage"
name = 'h5py'
version = '2.10.0'
versionsuffix = '-Python-%(pyver)s'
homepage = 'http://www.h5py.org/'
description = """HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library,
version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous
amounts of data.
"""
site_contacts = 's.luehrs@fz-juelich.de'
toolchain = {'name': 'ipsmpi', 'version': '2020-mt'}
toolchainopts = {'usempi': True}
source_urls = [PYPI_SOURCE]
sources = [SOURCE_TAR_GZ]
req_py_majver = 3
req_py_minver = 0
# to really use mpi enabled hdf5 we now seem to need a configure step
prebuildopts = 'export LDSHARED="$CC -shared" && python setup.py configure --mpi --hdf5=$EBROOTHDF5 && '
builddependencies = [
('pkgconfig', '1.5.1', versionsuffix),
]
dependencies = [
('Python', '3.8.5'),
('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')), # numpy required
('mpi4py', '3.0.3', versionsuffix), # required for MPI support
('HDF5', '1.10.6'),
]
sanity_check_paths = {
'files': [],
'dirs': ['lib/python%(pyshortver)s/site-packages/'],
}
moduleclass = 'data'
easyblock = 'PythonBundle'
name = 'PyTorch-Geometric'
version = '1.6.3'
local_pytorch_ver = '1.7.0'
versionsuffix = '-Python-%%(pyver)s-PyTorch-%s' % local_pytorch_ver
homepage = 'https://github.com/rusty1s/pytorch_geometric'
description = "PyTorch Geometric (PyG) is a geometric deep learning extension library for PyTorch."
site_contacts = 't.breuer@fz-juelich.de'
toolchain = {'name': 'gcccoremkl', 'version': '9.3.0-2020.2.254'}
local_pysuff = '-Python-%(pyver)s'
dependencies = [
('Python', '3.8.5'),
('PyTorch', local_pytorch_ver, local_pysuff),
('numba', '0.51.1', local_pysuff),
('h5py', '2.10.0', '-serial%s' % local_pysuff),
('scikit', '2020', local_pysuff),
('torchvision', '0.8.1', local_pysuff),
('trimesh', '3.8.11', local_pysuff),
('METIS', '5.1.0', '-IDX64'),
]
use_pip = True
# this is a bundle of Python packages
exts_defaultclass = 'PythonPackage'
exts_download_dep_fail = True
exts_default_options = {'source_urls': [PYPI_SOURCE]}
exts_list = [
('gdist', '1.0.3', {
'source_urls': ['https://pypi.python.org/packages/source/g/gdist'],
'modulename': 'gdist',
}),
('rdflib', '5.0.0', {
'checksums': ['78149dd49d385efec3b3adfbd61c87afaf1281c30d3fcaf1b323b34f603fb155'],
'modulename': 'rdflib',
}),
('googledrivedownloader', '0.4', {
'checksums': ['4b34c1337b2ff3bf2bd7581818efbdcaea7d50ffd484ccf80809688f5ca0e204'],
'modulename': 'google_drive_downloader',
}),
('plyfile', '0.7.2', {
'checksums': ['59a25845d00a51098e6c9147c3c96ce89ad97395e256a4fabb4aed7cf7db5541'],
}),
('torch_scatter', '2.0.5', {
'patches': ['torch_scatter-2.0.5-sm_70.patch'],
'prebuildopts': 'FORCE_CUDA=1',
'preinstallopts': 'FORCE_CUDA=1',
'source_tmpl': '2.0.5.tar.gz',
'source_urls': ['https://github.com/rusty1s/pytorch_scatter/archive/'],
}),
('torch_sparse', '0.6.8', {
'patches': ['torch_sparse-0.6.8-sm_70.patch'],
'prebuildopts': 'FORCE_CUDA=1 WITH_METIS=1',
'preinstallopts': 'FORCE_CUDA=1 WITH_METIS=1',
'source_tmpl': '0.6.8.tar.gz',
'source_urls': ['https://github.com/rusty1s/pytorch_sparse/archive/'],
}),
('torch_cluster', '1.5.8', {
'patches': ['torch_cluster-1.5.8-sm_70.patch'],
'prebuildopts': 'FORCE_CUDA=1',
'preinstallopts': 'FORCE_CUDA=1',
'source_tmpl': '1.5.8.tar.gz',
'source_urls': ['https://github.com/rusty1s/pytorch_cluster/archive/'],
}),
('torch_spline_conv', '1.2.0', {
'patches': ['torch_spline_conv-1.2.0-sm_70.patch'],
'prebuildopts': 'FORCE_CUDA=1',
'preinstallopts': 'FORCE_CUDA=1',
'source_tmpl': '1.2.0.tar.gz',
'source_urls': ['https://github.com/rusty1s/pytorch_spline_conv/archive'],
}),
('ase', '3.21.0', {
'source_urls': ['https://pypi.python.org/packages/source/a/ase'],
'modulename': 'ase',
}),
('python-louvain', '0.15', {
'source_urls': ['https://pypi.python.org/packages/source/p/python-louvain'],
'checksums': ['2a856edfbe29952a60a5538a84bb78cca18f6884a88b9325e85a11c8dd4917eb'],
'modulename': 'community',
}),
('tqdm', '4.56.0', {
'source_urls': ['https://pypi.python.org/packages/source/t/tqdm'],
'modulename': 'tqdm',
}),
('torch_geometric', version, {
'checksums': ['347f693bebcc8a621eda4867dafab91c04db5f596d7ed7ecb89b242f8ab5c6a1'],
}),
]
sanity_pip_check = True
moduleclass = 'devel'
--- setup_orig.py 2021-01-20 10:10:11.609352000 +0100
+++ setup.py 2021-01-20 10:10:37.525550350 +0100
@@ -39,7 +39,7 @@
define_macros += [('WITH_CUDA', None)]
nvcc_flags = os.getenv('NVCC_FLAGS', '')
nvcc_flags = [] if nvcc_flags == '' else nvcc_flags.split(' ')
- nvcc_flags += ['-arch=sm_35', '--expt-relaxed-constexpr']
+ nvcc_flags += ['-gencode=arch=compute_70,code=sm_70', '--expt-relaxed-constexpr']
extra_compile_args['nvcc'] = nvcc_flags
extensions_dir = osp.join(osp.dirname(osp.abspath(__file__)), 'csrc')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment