Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions EESSI-pilot-install-software.sh
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,38 @@ fail_msg="Installation of Nextflow failed, that's unexpected..."
$EB -r --from-pr 16531 Nextflow-22.10.1.eb
check_exit_code $? "${ok_msg}" "${fail_msg}"


echo ">> Installing EasyBuild 4.5.1..."
ok_msg="EasyBuild v4.5.1 installed"
fail_msg="EasyBuild v4.5.1 failed to install"
$EB --from-pr 14545 --include-easyblocks-from-pr 2805
check_exit_code $? "${ok_msg}" "${fail_msg}"

LMOD_IGNORE_CACHE=1 module swap EasyBuild/4.5.1
check_exit_code $? "Swapped to EasyBuild/4.5.1" "Couldn't swap to EasyBuild/4.5.1"

echo ">> Installing SciPy-bundle with foss/2021a..."
ok_msg="SciPy-bundle with foss/2021a installed, welcome to the modern age"
fail_msg="Installation of SciPy-bundle with foss/2021a failed, back to the stone age..."
# use GCCcore easyconfig from https://github.com/easybuilders/easybuild-easyconfigs/pull/14454
# which includes patch to fix installation with recent Linux kernel headers
$EB --from-pr 14454 GCCcore-10.3.0.eb --robot
# use enhanced Perl easyblock from https://github.com/easybuilders/easybuild-easyblocks/pull/2640
# to avoid trouble when using long installation prefix (for example with EESSI pilot 2021.12 on skylake_avx512...)
$EB Perl-5.32.1-GCCcore-10.3.0.eb --robot --include-easyblocks-from-pr 2640
# use enhanced CMake easyblock to patch CMake's UnixPaths.cmake script if --sysroot is set
# from https://github.com/easybuilders/easybuild-easyblocks/pull/2248
$EB CMake-3.20.1-GCCcore-10.3.0.eb --robot --include-easyblocks-from-pr 2248
# use Rust easyconfig from https://github.com/easybuilders/easybuild-easyconfigs/pull/14584
# that includes patch to fix bootstrap problem when using alternate sysroot
$EB --from-pr 14584 Rust-1.52.1-GCCcore-10.3.0.eb --robot
# use OpenBLAS easyconfig from https://github.com/easybuilders/easybuild-easyconfigs/pull/15885
# which includes a patch to fix installation on POWER
$EB --from-pr 15885 OpenBLAS-0.3.15-GCC-10.3.0.eb --robot

$EB SciPy-bundle-2021.05-foss-2021a.eb -r --buildpath /dev/shm/$USER/easybuild_build
check_exit_code $? "${ok_msg}" "${fail_msg}"

### add packages here

echo ">> Creating/updating Lmod cache..."
Expand Down
26 changes: 24 additions & 2 deletions eb_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@

from easybuild.tools.build_log import EasyBuildError, print_msg
from easybuild.tools.config import build_option, update_build_option
from easybuild.tools.systemtools import AARCH64, POWER, get_cpu_architecture
from easybuild.tools.systemtools import AARCH64, POWER, X86_64, get_cpu_architecture, get_cpu_features
from easybuild.tools.toolchain.compiler import OPTARCH_GENERIC

EESSI_RPATH_OVERRIDE_ATTR = 'orig_rpath_override_dirs'

Expand Down Expand Up @@ -53,6 +54,13 @@ def parse_hook(ec, *args, **kwargs):
PARSE_HOOKS[ec.name](ec, eprefix)


def pre_configure_hook(self, *args, **kwargs):
"""Main pre-configure hook: trigger custom functions based on software name."""

if self.name in PRE_CONFIGURE_HOOKS:
PRE_CONFIGURE_HOOKS[self.name](self, *args, **kwargs)


def pre_prepare_hook(self, *args, **kwargs):
"""Main pre-prepare hook: trigger custom functions."""

Expand Down Expand Up @@ -120,7 +128,7 @@ def ucx_eprefix(ec, eprefix):
if ec.name == 'UCX':
ec.update('configopts', '--with-sysroot=%s' % eprefix)
ec.update('configopts', '--with-rdmacm=%s' % os.path.join(eprefix, 'usr'))
print_msg("Using custom configure option for %s: %s", ec.name, ec['configopts'])
print_msg("Using custom configure options for %s: %s", ec.name, ec['configopts'])
else:
raise EasyBuildError("UCX-specific hook triggered for non-UCX easyconfig?!")

Expand All @@ -131,6 +139,19 @@ def pre_configure_hook(self, *args, **kwargs):
PRE_CONFIGURE_HOOKS[self.name](self, *args, **kwargs)


def libfabric_disable_psm3_x86_64_generic(self, *args, **kwargs):
"""Add --disable-psm3 to libfabric configure options when building with --optarch=GENERIC on x86_64."""
if self.name == 'libfabric':
if get_cpu_architecture() == X86_64:
generic = build_option('optarch') == OPTARCH_GENERIC
no_avx = 'avx' not in get_cpu_features()
if generic or no_avx:
self.cfg.update('configopts', '--disable-psm3')
print_msg("Using custom configure options for %s: %s", self.name, self.cfg['configopts'])
else:
raise EasyBuildError("libfabric-specific hook triggered for non-libfabric easyconfig?!")


def metabat_preconfigure(self, *args, **kwargs):
"""
Pre-configure hook for MetaBAT:
Expand Down Expand Up @@ -167,6 +188,7 @@ def wrf_preconfigure(self, *args, **kwargs):
}

PRE_CONFIGURE_HOOKS = {
'libfabric': libfabric_disable_psm3_x86_64_generic,
'MetaBAT': metabat_preconfigure,
'WRF': wrf_preconfigure,
}
34 changes: 19 additions & 15 deletions eessi-2021.12.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
software:
R-bundle-Bioconductor:
code-server:
toolchains:
foss-2020a:
versions:
'3.11':
versionsuffix: -R-4.0.0
SYSTEM:
versions: '3.7.3'
GROMACS:
toolchains:
foss-2020a:
Expand All @@ -19,6 +17,10 @@ software:
versions:
'0.21.3':
versionsuffix: -TensorFlow-2.3.1-Python-3.8.2
Nextflow:
toolchains:
SYSTEM:
versions: '22.10.1'
OpenFOAM:
toolchains:
foss-2020a:
Expand All @@ -31,29 +33,31 @@ software:
toolchains:
foss-2020a:
versions: ['6.6']
TensorFlow:
R-bundle-Bioconductor:
toolchains:
foss-2020a:
versions:
'2.3.1':
versionsuffix: -Python-3.8.2
'3.11':
versionsuffix: -R-4.0.0
RStudio-Server:
toolchains:
foss-2020a:
versions:
'1.3.1093':
versionsuffix: -Java-11-R-4.0.0
code-server:
SciPy-bundle:
toolchains:
SYSTEM:
versions: '3.7.3'
foss-2021a:
versions: ['2021.05']
TensorFlow:
toolchains:
foss-2020a:
versions:
'2.3.1':
versionsuffix: -Python-3.8.2
WRF:
toolchains:
foss-2020a:
versions:
'3.9.1.1':
versionsuffix: -dmpar
Nextflow:
toolchains:
SYSTEM:
versions: '22.10.1'