Conference call notes 20210526 - easybuilders/easybuild GitHub Wiki

(back to Conference calls)

Notes on the 173th EasyBuild conference call, Wednesday May 26th 2021 (15:00 UTC)

Attendees

Alphabetical list of attendees (13):

  • Sebastian Achilles (Jülich Supercomputing Centre, Germany)
  • Simon Branford (University of Birmingham, UK)
  • Bennet Fauber (Univ. of Michigan, US)
  • Alexander Grund (TU Dresden, Germany)
  • Victor Holanda Rusu (CSCS, Switzerland)
  • Kenneth Hoste (HPC-UGent, Belgium)
  • Adam Huffman (Big Data Institute, Oxford, UK)
  • Terje Kvernes (Univ. of Oslo, Norway)
  • Kurt Lust (Univ. of Antwerp, Belgium + LUMI User Support Team)
  • Mikael Öhman (Chalmers University of Technology, Sweden)
  • Bart Oldeman (Compute Canada)
  • Jörg Saßmannshausen (NIHR Biomedical Research Centre, UK)
  • Åke Sandgren (Umeå University, Sweden)

Agenda

  • outlook to next EasyBuild release (v4.4.0)
  • progress update on 2021a version of common toolchains
  • Q&A

Recent developments

  • last release: EasyBuild v4.3.4 (April 9th)
  • ETA next release: ASAP
  • recent changes
    • framework
      • bug fixes
        • avoid metadata greedy behaviour when probing for external module metadata (PR #3559)
        • avoid picking up easyblocks outside of sandbox in framework tests (PR #3680)
        • use unload/load in ModuleGeneratorLua.swap_module, since 'swap' is not supported by Lmod (PR #3685)
        • make get_config_obj return a copy rather than a reference (PR #3692)
          • was required to fix problem in the easyconfigs test suite
        • update HierarchicalMNS to also return 'Toolchain/<name>/<version>' as $MODULEPATH extension for cpe* Cray toolchains (PR #3686)
        • make sure that $TAPE is unset when using piped tar (PR #3698)
      • enhancements
        • enhance apply_regex_substitutions to allow specifying action to take in case there are no matches (PR #3440)
        • performance improvements for easyconfig parsing and eb startup (PR #3555)
        • add support for multiple PRs in --from-pr (PR #3605)
        • add support for prepending custom library paths in RPATH section (PR #3650)
        • add support for --sanity-check-only + also run sanity check for extensions when using --module-only (PR #3655)
        • add support for using oneAPI versions of 'intel' toolchain components (PR #3665)
        • extend sanity check step to check whether specific libraries are not linked into installed binaries/libraries (PR #3678)
          • see --banned-linked-shared-libs and --required-linked-shared-libs + corresponding easyconfig parameters (banned_linked_shared_libs + required_linked_shared_libs)
        • add system agnostic function to locate shared libraries (PR #3683)
        • add update_build_option function to update specific build options after initializing the EasyBuild configuration (PR #3684)
        • add toolchain definition for Fujitsu ARM toolchain (PR #3677https://github.com/easybuilders/easybuild-framework/pull/3677)
        • allow opting out of recursively unloaded of modules via recursive_module_unload easyconfig parameter (PR #3689)
          • provides way out for issue #3627 reported for Cray toolchains
        • check for correct version values when parsing easystack file (PR #3693)
        • run post-install commands specified for a specific extension via postinstallcmds (PR #3696)
      • changes
        • deprecate adding a non-existing path to $MODULEPATH (PR #3637)
        • tweak foss toolchain definition to switch from OpenBLAS to FlexiBLAS in foss/2021a (PR #3679)
    • easyblocks
      • bug fixes
        • use explicit build toolset and compiler path in Boost easyblock (PR #2402)
        • make GROMACS easyblock work with --module-only (PR #2414)
        • make Tkinter easyblock work with --module-only (PR #2416
        • make sure OpenFOAM sanity checks don't requite builddir write permissions (PR #2415)
      • enhancements
        • enhance Python easyblock: install pip2 when available, tweak defaults, create unversioned pip symlink (PR #2388)
          • installing pip along with Python is opt-in in easyconfig via install_pip = True
          • recommended to reinstall recent Python 3 installations to fix "corrupt" setuptools installation in there
        • create unused build dir when separate_build_dir is set in Meson and CMake EasyBlock (PR #2419)
        • enhance BWA easyblock to copy includes and libraries (PR #2417)
        • enable sanity_pip_check by default for Python easyconfigs if pip >= 9.0 will be installed (PR #2423)
        • update imkl easyblock to unpack example tarballs and set $MKL_EXAMPLES (+ some code cleanup) (PR #2430)
        • make ScaLAPACK easyblock aware of FlexiBLAS (PR #2427)
        • enhance FFTW easyblock to support SVE CPU feature and building with Fujitsu compiler (PR #2425)
      • new software
        • add easyblock to install OpenSSL wrapper for OpenSSL installed in OS, or build and install OpenSSL from source if not available in OS (PR #2429)
        • custom easyblock for dm-reverb (PR #2413)
      • changes
        • (none)
    • easyconfigs
      • close 100 easyconfig PRs merged since last conf call
      • bug fixes
        • ...
      • enhancements
        • ...
      • cleanup
        • ...
      • new software
      • noteworthy software updates
      • noteworthy changes
        • disable usNIC by default in libfabric to avoid problems due to linking to both libnl and libnl-3 (PR #12854)
  • to merge/fix/tackle soon
    • framework
      • bug fixes
        • (nothing major?)
      • enhancements
        • support additional features in easystack files
          • support for filtering via labels (PR #3620)
        • avoid using a priority in prepend_module_path (Lmod) to avoid costly module calls (PR #3636)
        • add support for installing extensions in parallel (WIP) (PR #3667)
        • add support for --skip-extensions (PR #3702)
        • support systems with more than 1024 cores (PR #3701)
      • changes
        • (nothing significant?)
    • easyblocks
      • bug fixes
        • treat files/directories of unpacked sources equally in PackedBinary (PR #2306)
        • --module-only doesn't always work as expected
          • we need a better way of catching this in tests
          • problem is that you typically need an actual installation to catch these problems, so can't be done in easyconfigs or easyblocks test suite run in CI
          • test installations done on generoso via boegelbot could be enhanced to catch problems with --module-only?
      • enhancements
        • enhance test and install step of CMakePythonPackage easyblock (PR #2318)
        • allow for Perl modules being part of other, already installed Perl modules (PR #2386)
        • including FlexiBLAS as the default BLAS in foss will require easyblock changes (issue #2421)
        • should set BLA_VENDOR in CMakeMake easyblock if BLAS is in the toolchain (PR #2420)
      • changes
        • (nothing major)
      • new software
        • new easyblock for NCCL (built from source) (PR #2337)
    • easyconfigs
      • bug fixes
        • add patches for PyTorch 1.7.1 avoiding failures on POWER and A100 (PR #12753)
        • improve check for multi-variant dependencies per generation of easyconfigs (PR #12687)
        • update GCC 10.2 binutils to 2.35.2 to fix fatal issues on PPC (PR #12920)
          • some easyconfigs use binutils as runtime dep (like Python)
          • ideally we should replace the binutils version everywhere, which is a very painful operation...
          • extracting the specific commit to fix this issue isn't easy...
          • or we just replace the binutils 2.35 sources with 2.35.2? only for POWER?
          • should we use binutils/2.36 in 2021a with 2.36.1 sources to allow in-place updates?
      • enhancements
        • (nothing major)
      • new software
        • (nothing major?)
      • software updates
        • SciPy-bundle

2021a update of common toolchains

  • outlook to component versions
    • foss/2021a
      • GCC 10.3 + binutils 2.36.1
      • OpenMPI 4.1.1
      • FlexiBLAS 3.0.4 + OpenBLAS 0.3.15
      • FFTW 3.3.9
    • intel/2021a
      • GCC 10.3 + binutils 2.36.1 as a base
      • intel-compilers 2021.2.0
      • impi 2021.2.0
      • imkl 2021.2.0
  • direct linking to OpenBLAS rather than FlexiBLAS is caught in sanity check
    • via banned_linked_shared_libs in easybuild/toolchains/linalg/flexiblas.py
  • current status:
    • foss/2021.04 easyconfig merged in develop (candidate to be promoted in place to foss/2021a)
    • intel/2021.03 easyconfig merged in develop (candidate to be promoted in place to intel/2021a)
    • updated SciPy-bundle
      • with foss/2021.04 (PR #12935)
        • works on Intel + AMD (numpy tests pass)
        • fails on aarch64: failing numpy tests (see numpy issue #18422)
        • fails on ppc64le (POWER9): segfault for specific numpy test in FlexiBLAS (see FlexiBLAS issue #17)
      • with intel/2021.03 (PR #12964)
      • would be nice to resolve these problems before declaring success on 2021a...
        • easy way out for now is to ignore failing numpy tests on aarch64/ppc64le for now...
      • more testing needed with candidate toolchains foss/2021.04 and intel/2021.03
    • Mesa on top of LLVM 11.1.0 (PR #12943)
      • LLVM vs numba (llvmlite): will LLVM 11.1.0 be a good pick going forward? :-/
      • blocking Qt5 (PR #12946)
  • collapsing foss and fosscuda toolchains

Q&A

  • Bennet: any problems expected between UCX/PMIx installed with EB vs UCX/PMIx used by Slurm?
    • short answer: no, should work fine :)
  • Mikael: could EasyBuild be made more atomic when doing re-installations?
    • currently:
      • the module file is removed early on (we started doing that for a reason)
      • existing install directory is removed when install step starts
    • can we do better?
      • temporary move the module file + install dir so it's easier to restore later?
        • doesn't help with avoiding that users don't see the module for a while...
  • Mikael: EasyBuild checking with "full" module names like Core/GCCcore/... causes trouble when modules are spread across different directories
    • painful when letting users install stuff in their home directory, because <prefix>/modules/all isn't in their $MODULEPATH
    • can we avoid that EasyBuild uses the full module names internally when checking for dependencies?
    • can EasyBuild automatically add <prefix> to $MODULEPATH when <prefix>/Core is there already?
    • also module files that extend $MODULEPATH should iterate over existing $MODULEPATH for other "opportunities" to extend $MODULEPATH?
  • Victor: is there a fixed schedule for future EasyBuild releases?
⚠️ **GitHub.com Fallback** ⚠️