Merge branch 'it4i-karolina'

This commit is contained in:
Lukas Krupcik 2021-10-20 10:34:12 +02:00
commit a66d03f234
14 changed files with 557 additions and 4 deletions

24
a/OAMD/OAMD-2021a.eb Normal file
View File

@ -0,0 +1,24 @@
# IT4Innovations
# LK 2021
easyblock = 'Toolchain'
name = 'OAMD'
version = '2021a'
homepage = '(none)'
description = """AMD Compiler Collection (aocc) based local_compiler toolchain, including
OpenMPI for MPI support, AOCL."""
toolchain = SYSTEM
local_gccver = '10.2.0'
dependencies = [
('GCC', local_gccver),
('OpenMPI', '4.1.1', '-AOCL-3.0.1-AOCC-3.1.0', ('GCC', local_gccver)),
('AOCC', '3.1.0', '', ('GCCcore', local_gccver)),
('AOCL', '3.0.1', '-AOCC-3.1.0', True),
]
moduleclass = 'toolchain'

View File

@ -0,0 +1,81 @@
# IT4Innovations 2021
# LK
easyblock = 'CMakeMake'
name = 'DFTB+'
version = '21.1'
versionsuffix = '-Python-%(pyver)s-karolina'
homepage = 'https://www.dftb-plus.info'
description = """DFTB+ is a fast and efficient versatile quantum mechanical simulation package.
It is based on the Density Functional Tight Binding (DFTB) method, containing
almost all of the useful extensions which have been developed for the DFTB
framework so far. Using DFTB+ you can carry out quantum mechanical simulations
like with ab-initio density functional theory based packages, but in an
approximate way gaining typically around two order of magnitude in speed."""
toolchain = {'name': 'intel', 'version': '2020b'}
# AMD/intel cpu
#toolchainopts = {'lowopt': True, 'optarch': False} # original
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'usempi': False, 'optarch': 'march=core-avx2'}
else:
toolchainopts = {'usempi': False}
local_external_dir = '%%(builddir)s/dftbplus-%%(version)s/external/%s/origin/'
local_external_extract = 'mkdir -p %s && tar -C %s' % (local_external_dir, local_external_dir)
local_external_extract += ' --strip-components=1 -xzf %%s'
sources = [
{
# DFTB+ source code
'source_urls': ['https://github.com/dftbplus/dftbplus/archive'],
'download_filename': '%(version)s.tar.gz',
'filename': SOURCE_TAR_GZ,
},
{
# Slater-Koster (slakos) data for testing
'source_urls': ['https://github.com/dftbplus/testparams/archive'],
'download_filename': 'd0ea16df2b56d14c7c3dc9329a8d3bac9fea50a0.tar.gz',
'filename': 'slakos-data-%(version)s.tar.gz',
'extract_cmd': local_external_extract % ('slakos', 'slakos'),
},
]
builddependencies = [
('CMake', '3.18.4'),
]
dependencies = [
('Python', '3.8.6'),
('SciPy-bundle', '2020.11'),
('arpack-ng', '3.8.0'),
('dftd3-lib', '0.9.2', '', ('GCC', '10.2.0')),
]
# Link to Arpack
local_makeopts = ' WITH_ARPACK=1 ARPACK_LIBS="-L$EBROOTARPACKMINNG/lib -larpack" ARPACK_NEEDS_LAPACK=1'
# Use DFTD3 from EB
local_makeopts += ' WITH_DFTD3=1 COMPILE_DFTD3=0 DFTD3_INCS="-I$EBROOTDFTD3MINLIB/include"'
local_makeopts += ' DFTD3_LIBS="-L$EBROOTDFTD3MINLIB/lib -ldftd3"'
buildopts = local_makeopts
#runtest = 'test' + local_makeopts
installopts = 'INSTALLDIR="%(installdir)s"'
sanity_check_paths = {
'files': ['bin/' + x for x in ['dftb+', 'dp_bands', 'dp_dos', 'gen2cif', 'gen2xyz', 'makecube',
'modes', 'repeatgen', 'straingen', 'waveplot', 'xyz2gen']],
'dirs': ['lib/python%(pyshortver)s/site-packages']
}
sanity_check_commands = [('python', '-c "import dptools"')]
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
moduleclass = 'phys'

View File

@ -0,0 +1,53 @@
##
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB
# Authors:: George Tsouloupas <g.tsouloupas@cyi.ac.cy>, Fotis Georgatos <fotis.georgatos@uni.lu>,
# Kenneth Hoste (UGent)
# License:: MIT/GPL
# $Id$
#
# This work implements a part of the HPCBIOS project and is a component of the policy:
# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html
# Modified by: Adam Huffman, Jonas Demeulemeester
# The Francis Crick Institute
# Modified for version 4.0.5.1 by: Ruben van Dijk, University of Groningen
##
easyblock = 'Tarball'
name = 'GATK'
version = '4.1.9.0'
versionsuffix = '-Java-%(javaver)s'
homepage = 'https://www.broadinstitute.org/gatk/'
description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute
to analyse next-generation resequencing data. The toolkit offers a wide variety of tools,
with a primary focus on variant discovery and genotyping as well as strong emphasis on
data quality assurance. Its robust architecture, powerful processing engine and
high-performance computing features make it capable of taking on projects of any size."""
toolchain = {'name': 'GCCcore', 'version': '10.2.0'}
source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/']
sources = ['gatk-%(version)s.zip']
dependencies = [
('Java', '11', '', True),
('Python', '3.8.6'),
]
modextrapaths = {'PATH': ''}
sanity_check_paths = {
'files': ['gatk'],
'dirs': [],
}
sanity_check_commands = [
"gatk --help",
"gatk --list",
]
# modloadmsg = "WARNING: GATK v%(version)s support for Java 11 is in beta state. Use at your own risk.\n"
moduleclass = 'bio'

View File

@ -0,0 +1,31 @@
# IT4Innovations 2021
# LK
name = 'HDF5'
version = '1.10.6'
versionsuffix = '-parallel'
homepage = 'http://www.hdfgroup.org/HDF5/'
description = """HDF5 is a unique technology suite that makes possible the management of
extremely large and local_complex data collections."""
toolchain = {'name': 'OAMD', 'version': '2021a'}
toolchainopts = {'pic': True, 'usempi': True}
source_urls = [
'https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src']
sources = [SOURCELOWER_TAR_GZ]
# AMD/intel cpu
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
prebuildopts = "echo %(builddir)s && while read i; do echo $i; sed 's|-xHost|-avx2|g' -i $i; done < <(grep xHost %(builddir)s -R | cut -d ':' -f 1 | sort -u) && "
configopts = '--enable-fortran --enable-fortran 2003 --enable-cxx'
dependencies = [
('zlib', '1.2.11'),
('Szip', '2.1.1'),
]
moduleclass = 'data'

View File

@ -0,0 +1,34 @@
easyblock = 'PythonPackage'
name = 'h5py'
version = '3.1.0'
homepage = 'https://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."""
toolchain = {'name': 'GCC', 'version': '10.2.0'}
toolchainopts = {'usempi': True}
sources = [SOURCE_TAR_GZ]
checksums = ['1e2516f190652beedcb8c7acfa1c6fa92d99b42331cbef5e5c7ec2d65b0fc3c2']
builddependencies = [('pkgconfig', '1.5.1', '-python')]
dependencies = [
('Python', '3.8.6'),
('SciPy-bundle', '2020.11'),
('HDF5', '1.10.6', '-AOCC-3.1.0-OpenMPI-4.1.1-Python-3.8.6'),
]
use_pip = True
sanity_pip_check = True
download_dep_fail = True
# h5py's setup.py will disable setup_requires if H5PY_SETUP_REQUIRES is set to 0
# without this environment variable, pip will fetch the minimum numpy version h5py supports during install,
# even though SciPy-bundle provides a newer version that satisfies h5py's install_requires dependency.
preinstallopts = 'HDF5_MPI=ON HDF5_DIR="$EBROOTHDF5" H5PY_SETUP_REQUIRES=0 '
moduleclass = 'data'

View File

@ -14,9 +14,9 @@ toolchain = SYSTEM
sources = ['matlab-%(version)s.tar.gz']
checksums = ['af53ba32e959c40071128e717a48495d']
java_options = '-Xmx2048m'
#java_options = '-Xmx2048m'
dependencies = [('Java', '1.8.0_221')]
#dependencies = [('Java', '1.8.0_221')]
# Use EB_MATLAB_KEY environment variable or uncomment and modify license key
# key = '00000-00000-00000-00000-00000-00000-00000-00000-00000-00000-00000-00000'
@ -24,7 +24,7 @@ dependencies = [('Java', '1.8.0_221')]
# Use EB_MATLAB_LICENSE_SERVER and EB_MATLAB_LICENSE_SERVER_PORT environment variables or
# uncomment and modify the following variables for installation with floating license server
# license_file = 'my-license-file'
# license_server = 'my-license-server'
# license_server_port = '1234'
license_server = 'lm-praha.metacentrum.cz'
license_server_port = '1712'
moduleclass = 'math'

View File

@ -0,0 +1,27 @@
# IT4Innovations
# LK 2021
easyblock = 'Tarball'
name = 'OVITO'
version = '3.5.1'
versionsuffix = '-pro'
homepage = 'https://www.ovito.org/'
description = """OVITO is a scientific visualization and analysis software for atomistic and particle simulation data."""
toolchain = {'name': 'GCC', 'version': '10.2.0'}
#source_urls = ['https://www.ovito.org/download/3106/']
sources = ['ovito-pro-3.5.4-dev-HEAD-861f612-x86_64-dev3.5.5.tar.xz']
dependencies = [
('X11', '20201008'),
]
sanity_check_paths = {
'files': ['bin/ovito'],
'dirs': [],
}
moduleclass = 'vis'

View File

@ -0,0 +1,27 @@
# IT4Innovations
# LK 2021
easyblock = 'Tarball'
name = 'OVITO'
version = '3.5.4'
versionsuffix = '-pro'
homepage = 'https://www.ovito.org/'
description = """OVITO is a scientific visualization and analysis software for atomistic and particle simulation data."""
toolchain = {'name': 'GCC', 'version': '10.2.0'}
#source_urls = ['https://www.ovito.org/download/3106/']
sources = ['ovito-pro-%(version)s-x86_64.tar.xz']
dependencies = [
('X11', '20201008'),
]
sanity_check_paths = {
'files': ['bin/ovito'],
'dirs': [],
}
moduleclass = 'vis'

View File

@ -0,0 +1,40 @@
# IT4Innovations 2021
# LK
name = 'OpenMPI'
version = '4.0.6'
versionsuffix = '-CUDA-11.4.1-v2'
homepage = 'https://www.open-mpi.org/'
description = """The Open MPI Project is an open source MPI-3 implementation."""
toolchain = {'name': 'NVHPC', 'version': '21.9'}
source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
sources = [SOURCELOWER_TAR_GZ]
dependencies = [
('UCX', '1.11.2', '-CUDA-11.4.1'),
('CUDAcore', '11.4.1', '', True),
('GDRCopy', '2.3', '-CUDA-11.4.1'),
]
preconfigopts = 'export CC="pgcc -noswitcherror" && export CXX="pgc++ -noswitcherror" && export FC="pgfortran -noswitcherror" && '
configopts = '--enable-shared --enable-mpi-thread-multiple --with-verbs '
configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support
configopts += '--enable-mpirun-prefix-by-default '
configopts += '--with-tm=/opt/pbs ' # Enable PBS
configopts += '--enable-mpi-cxx ' # Enable building the C++ MPI bindings
configopts += '--with-ucx=$EBROOTUCX '
configopts += '--with-cuda=$EBROOTCUDACORE '
moduleclass = 'mpi'
import os
if os.environ.get("CLUSTERNAME") in ["BARBORA"]:
modextravars = {'OMPI_MCA_btl_openib_if_include': 'mlx5_0',
'OMPI_MCA_btl_openib_allow_ib': '1',
'OMPI_MCA_orte_base_help_aggregate': '0',
'OMPI_MCA_pml': '^ucx',
}

View File

@ -0,0 +1,53 @@
##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
#
# This is a contribution from Phoenix HPC Service, The University of Adelaide, Australia
# Homepage: https://www.adelaide.edu.au/phoenix/
#
# Copyright:: adelaide.edu.au/phoenix
# Authors:: Robert Qiao <robert.qiao@adelaide.edu.au>, Exe Escobedo <exequiel.sepulvedaescobedo@adelaide.edu.au>
# License:: MIT
#
# 2.10.1:
# Adam Huffman
# The Francis Crick Institute
# 2.18.11:
# Jonas Demeulemeester
# The Francis Crick Institute
# 2.21.1
# Pavel Grochal (INUITS)
# 2.25.1
# J. Sassmannshausen (GSTT)
# 2.25.5
# Erica Bianco (HPCNow!)
##
easyblock = 'JAR'
name = 'picard'
version = '2.23.8'
versionsuffix = '-Java-%(javaver)s'
homepage = 'https://broadinstitute.github.io/picard/'
description = """A set of tools (in Java) for working with next generation sequencing data in the BAM format."""
toolchain = SYSTEM
source_urls = ['https://github.com/broadinstitute/picard/releases/download/%(version)s']
sources = [{
'filename': '%(name)s-%(version)s.jar',
'download_filename': '%(name)s.jar',
}]
postinstallcmds = ["mv %(installdir)s/%(name)s-%(version)s.jar %(installdir)s/%(name)s.jar"]
dependencies = [('Java', '11')]
sanity_check_paths = {
'files': ['picard.jar'],
'dirs': [],
}
modloadmsg = "To execute picard run: java -jar $EBROOTPICARD/%(name)s.jar"
moduleclass = 'bio'

View File

@ -0,0 +1,59 @@
# IT4Innovations 2021
# JK2021
easyblock = 'CMakeMake'
name = 'QMCPACK'
version = '3.11.0'
versionsuffix = "-AOCC-3.1.0-OpenMPI-4.1.1-Python-%(pyver)s"
homepage = "https://qmcpack.org/"
description = """QMCPACK, is a modern high-performance open-source Quantum Monte Carlo (QMC) simulation code. Its main applications are electronic structure calculations of molecular, quasi-2D and solid-state systems. Variational Monte Carlo (VMC), diffusion Monte Carlo (DMC) and a number of other advanced QMC algorithms are implemented. Orbital space auxiliary field QMC (AFQMC) has recently been added. By directly solving the Schrodinger equation, QMC methods offer greater accuracy than methods such as density functional theory, but at a trade-off of much greater local_computational expense.
"""
toolchain = {'name': 'GCC', 'version': '10.2.0'}
import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
toolchainopts = {'opt': True, 'pic': True, 'optarch': 'march=core-avx2'}
# prebuildopts = "echo %(builddir)s && while read i; do echo $i; sed 's|-xHost|-march=core-avx2|g' -i $i; done < <(grep xHost %(builddir)s -R | cut -d ':' -f 1 | sort -u) &&"
else:
toolchainopts = {'opt': True, 'pic': True, }
source_urls = ['https://github.com/QMCPACK/qmcpack/archive/']
sources = ['v%(version)s.tar.gz']
builddependencies = [('CMake', '3.20.1', '', True)]
dependencies = [
('AOCC', '3.1.0'),
('AOCL', '3.0.1', '-AOCC-3.1.0', True),
('OpenMPI', '4.1.1', '-AOCL-3.0.1-AOCC-3.1.0'),
('libxml2', '2.9.10'),
('Boost', '1.74.0'),
('HDF5', '1.10.6', '-AOCC-3.1.0-parallel'),
('Python', '3.8.6'),
('h5py', '3.1.0', '-AOCC-3.1.0-OpenMPI-4.1.1', True),
('SciPy-bundle', '2020.11', '-AOCC-3.1.0', True),
# ('GCC', '9.3.0', '', True), # obejití podmínky GCC 9.3.0
]
separate_build_dir = True
configopts = ' -DENABLE_SOA=1 '
# prekopiruje nexus knihovny o kterych install file tvrdi, ze nejsou potreba
# ale evidentne to bez nich nejede
preinstallopts = [
' mkdir -p %(installdir)s/nexus && ',
' cp -r %(builddir)s/qmcpack-%(version)s/nexus/lib %(installdir)s/nexus/lib && ',
]
# prida nexus knihovny do PYTHONPATH
modextrapaths = {'PYTHONPATH': 'nexus/lib'}
sanity_check_paths = {
'files': ['bin/qmcpack'],
'dirs': ['bin'],
}
moduleclass = 'phys'

View File

@ -0,0 +1,70 @@
# IT4Innovations
# LK 2021
easyblock = 'PythonBundle'
name = 'SciPy-bundle'
version = '2020.11-AOCC-3.1.0'
homepage = 'https://python.org/'
description = "Bundle of Python packages for scientific software"
toolchain = {'name': 'OAMD', 'version': '2021a'}
toolchainopts = {'pic': True, 'lowopt': True}
builddependencies = [('hypothesis', '5.41.2', '', ('GCCcore', '10.2.0'))]
dependencies = [
('Python', '3.8.6', '', ('GCCcore', '10.2.0')),
('pybind11', '2.6.0', '', ('GCCcore', '10.2.0')), # required by scipy
]
use_pip = True
preconfigopts = [ 'export MKL_DEBUG_CPU_TYPE=5 && ']
exts_default_options = {'source_urls': [PYPI_SOURCE]}
# order is important!
exts_list = [
('numpy', '1.19.4', {
'source_tmpl': '%(name)s-%(version)s.zip',
'patches': [
'numpy-1.18.2-mkl.patch',
'numpy-1.19.4_disable-broken-test.patch',
],
'checksums': [
'141ec3a3300ab89c7f2b0775289954d193cc8edb621ea05f99db9cb181530512', # numpy-1.19.4.zip
'ea25ad5c0148c1398d282f0424e642fb9815a1a80f4512659b018e2adc378bcf', # numpy-1.18.2-mkl.patch
#numpy-1.19.4_disable-broken-test.patch
'9cc8bbd106ecba603254536101f53fdc200e81d43ca4800b5a84be9b645e9320',
],
}),
('scipy', '1.5.4', {
'checksums': ['4a453d5e5689de62e5d38edf40af3f17560bfd63c9c5bd228c18c1f99afa155b'],
}),
('mpi4py', '3.0.3', {
'checksums': ['012d716c8b9ed1e513fcc4b18e5af16a8791f51e6d1716baccf988ad355c5a1f'],
}),
('numexpr', '2.7.1', {
'checksums': ['b0d239d9827e1bcee08344fd05835823bc60aff97232e35a928214d03ff802b1'],
}),
('Bottleneck', '1.3.2', {
'checksums': ['20179f0b66359792ea283b69aa16366419132f3b6cf3adadc0c48e2e8118e573'],
}),
('pandas', '1.1.4', {
'checksums': ['a979d0404b135c63954dea79e6246c45dd45371a88631cdbb4877d844e6de3b6'],
# strip out use of -Werror to avoid failing compilation due to Intel compiler warning
'preinstallopts': """sed -i 's@extra_compile_args = \["-Werror"\]@extra_compile_args = []@g' setup.py && """,
}),
('mpmath', '1.1.0', {
'checksums': ['fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6'],
}),
('deap', '1.3.1', {
'checksums': ['11f54493ceb54aae10dde676577ef59fc52d52f82729d5a12c90b0813c857a2f'],
}),
]
sanity_pip_check = True
moduleclass = 'lang'

View File

@ -0,0 +1,28 @@
# IT4Innovations
# LK 2021
easyblock = 'ConfigureMake'
name = 'Szip'
version = '2.1.1'
homepage = 'https://www.hdfgroup.org/doc_resource/SZIP/'
description = """
Szip compression software, providing lossless compression of scientific data
"""
toolchain = {'name': 'OAMD', 'version': '2021a'}
toolchainopts = {'pic': True}
source_urls = ['https://www.hdfgroup.org/ftp/lib-external/szip/%(version)s/src']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['21ee958b4f2d4be2c9cabfa5e1a94877043609ce86fde5f286f105f7ff84d412']
sanity_check_paths = {
'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] +
["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]],
'dirs': [],
}
moduleclass = 'tools'

View File

@ -0,0 +1,26 @@
# IT4Innovations
# LK 2021
easyblock = 'ConfigureMake'
name = 'zlib'
version = '1.2.11'
homepage = 'https://www.zlib.net/'
description = """zlib is designed to be a free, general-purpose, legally unencumbered -- that is,
not covered by any patents -- lossless data-compression library for use on virtually any
computer hardware and operating system."""
toolchain = {'name': 'OAMD', 'version': '2021a'}
toolchainopts = {'pic': True}
source_urls = ['https://zlib.net/fossils']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1']
sanity_check_paths = {
'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT],
'dirs': [],
}
moduleclass = 'lib'