Conference call notes 20210512 - easybuilders/easybuild GitHub Wiki

(back to Conference calls)

Notes on the 172nd EasyBuild conference call, Wednesday May 12th 2021 (08:00 UTC)

Attendees

Alphabetical list of attendees (16):

  • Kenneth Hoste (HPC-UGent, Belgium)
  • Lev Lafayette (Univ. of Melbourne)
  • Thekla (Cyprus Institute)
  • Minas Trattou (Cyprus Institute)
  • Adam Huffman (Big Data Institute, Oxford, UK)
  • Alan O'Cais (Jülich Supercomputer Centre, Germany)
  • Jörg Saßmannshausen (NIHR Biomedical Research Centre, UK)
  • Kurt Lust (Univ. of Antwerp, Belgium + LUMI User Support Team)
  • Maxim Masserov (SURF, Netherlands)
  • Miguel Dias Costa (Univ. of Singapore)
  • Dinindu Senanayake (New Zealand eScience Infrastructure)
  • Jorge Guerra (Universidad Politécnica de Madrid, Spain)
  • Alexander Grund (TU Dresden, Germany)
  • Alex Domingo (VUB, Belgium)
  • Mikael Öhman (Chalmers University of Technology, Sweden)
  • Sebastian Achilles (Jülich Supercomputing Centre, Germany)
  • Simon Branford (University of Birmingham, UK)

Agenda

  • update on recent developments
  • progress update on 2021a version of common toolchains
  • Q&A

Recent developments

  • last release: EasyBuild v4.3.4 (April 9th)
  • ETA next release: end of next week?
  • recent changes
    • framework
      • bug fixes
        • don't skip sanity check for --module-only --rebuild (PR #3645)
          • currently doesn't sanity check extensions
          • --module-only --force still skips sanity check
        • re-enable write permissions when installing with --read-only-installdir (PR #3649)
        • fix use of --module-only on existing installations without write permissions (PR #3659)
      • enhancements
        • allow amending easyconfig parameters which are not the default (PR #3651)
        • add toolchain definition for gofbf (foss with FlexiBLAS rather than OpenBLAS) (PR #3666)
        • add support for using ARCH constant in easyconfig files (PR #3670)
        • honor keyboard interrupt in 'eb' command (PR #3674)
      • changes
    • easyblocks
      • bug fixes
        • fix installopts before installing the extension in GROMACS easyblock (PR #2391)
        • set $SANDCASTLE when running PyTorch tests to disable some tests as-if we are on Facebooks CI (PR #2412
          • disables downloading stuff during testing from GitHub
      • enhancements
        • don't unpack whl files by default in generic PythonPackage easyblock (PR #2366)
        • make it possible to force disabling kernel features in Qt easyblock (PR #2403)
        • update imkl easyblock to support oneAPI versions (>= 2021.x) (PR #2407)
        • allow 'default' versions to be defined by modulerc EasyBlock (PR #2418)
      • new software
        • custom easyblock for installing FlexiBLAS (PR #2369)
      • changes
        • (none)
    • easyconfigs
      • over 75 easyconfig PRs merged since last conf call
      • bug fixes
        • add patch for rhdf5filters extension in Bioconductor 3.12 bundle to fix installation on aarch64 (PR #12836)
      • enhancements
        • add check to make sure that source step is not being skipped (PR #12807)
          • skipping source step implies not verifying checksums, so should be avoided
      • cleanup
        • remove 'unpack_sources = False' from recent easyconfigs that use a *.whl file as source (PR #12783)
      • new software
        • (nothing major?)
      • noteworthy software updates
        • OpenMPI 4.1.1 (PR #12566)
        • OpenBLAS 0.3.15 (PR #12653)
        • impi 2021.2.0 (PR #12766)
        • PyTorch 1.8.1 with foss/2020b (PR #12347)
          • PyTorch 1.8.1 fosscuda/2020b is WIP (PR #)
          • Alexander saw some failing tests on AMD EPYC systems with foss/2020b
          • should we also have eb --ignore-failing-tests next to eb --skip-test-step?
          • first failing GPU test aborts the whole test suite...
      • noteworthy changes
        • require sanity_pip_check for all Python package/bundles (PR #12464)
  • to merge/fix/tackle soon
    • framework
      • bug fixes
        • performance improvements for easyconfig parsing (PR #3555)
        • error creating Cray toolchain modulefiles with Lua syntax (issue #3626)
      • enhancements
        • support additional features in easystack files
          • support for filtering via labels (PR #3620)
        • allow for overriding RPATH with higher priority paths (PR #3650)
        • avoid using a priority in prepend_module_path (Lmod) to avoid costly module calls (PR #3636)
        • add support for postinstallcmds for extensions (PR #3663)
        • add support for --sanity-check-only (PR #3655)
          • needs more work to ensure that sanity checks for extensions are also done when using eb --sanity-check-only
        • add support for using oneAPI versions of 'intel' toolchain components (PR #3665)
          • need to figure out how to correctly "switch" between iccifort and intel-compiler in subtoolchains...
        • add support for installing extensions in parallel (WIP) (PR #3667)
        • allow tweaking of ECs from different toolchains (PR #3669)
          • mostly relevant for --try-amend
        • recursive module unload with limited depth for Cray toolchains problem report (issue #3627)
      • changes
        • deprecate adding a non-existing path to $MODULEPATH (PR #3637)
    • easyblocks
      • bug fixes
        • treat files/directories of unpacked sources equally in PackedBinary (PR #2306)
        • use explicit build toolset and compiler path in Boost easyblock (PR #2402)
        • --module-only doesn't always work as expected
          • see issues #2397 (Bundle), #2399 (GROMACS), PR #2401 (Tkinter)
          • and PRs that fixes those issues: GROMACS (PR #2414), Tkinter (PR #2416)
          • 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?
        • make sure OpenFOAM sanity checks don't requite builddir write permissions (PR #2415)
      • 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)
        • enhance Python easyblock: install pip2 when available, tweak defaults, create unversioned pip symlink (PR #2388)
        • enhance BWA easyblock to copy includes and libraries (PR #2417)
      • changes
        • (none)
      • new software
        • new easyblock for NCCL (built from source) (PR #2337)
        • custom easyblock for dm-reverb (PR #2413)
    • easyconfigs
      • bug fixes
        • come up with good solution for clash between libnl and libnl-3 in libfabric (cfr. issue #11939)
          • see also https://www.infradead.org/~tgr/libnl
          • do we need to implement an easyblock for libfabric that can produce easy to understand error messages?
          • libibverbs.so links to libnl-3.so, so including libnl-3 as a proper EasyBuild dependency is not an option...
          • just require libnl3-devel as OS dependency?
          • prevent that libfabric is built on top of libnl by using configure option to disable that?
          • enhanced sanity check to capture early on that libfabric links to both libnl and libnl-3?
        • 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)
      • enhancements
        • (nothing major)
      • new software
      • software updates

2021a update of common toolchains

  • outlook to component versions
    • foss/2021a
      • GCC 10.3 + binutils 2.36.1 (done, see PR #12521)
      • OpenMPI 4.1.1 (done, see PR #12566)
        • needs tweak to libfabric to resolve issue Simon ran into?
        • looks related to issue #11939
      • FlexiBLAS 3.0.4 + OpenBLAS 0.3.15
        • OpenBLAS 0.3.15 done, see PR #12653
        • TODO: FlexiBLAS 3.0.4 with GCCcore/10.3.0, on top of OpenBLAS 0.3.15
          • FlexiBLAS easyconfig PR should be merged first (PR #12476)
    • intel/2021a
      • GCC 10.3 + binutils 2.36.1 as a base
      • intel-compilers 2021.2.0 (done, see PR #12765)
      • impi 2021.2.0 (done, see PR #12766)
      • imkl 2021.2.0 (see PR #12777)
        • imkl easyblock update done (PR #2407)
        • see toolchain fixes in framework (WIP, PR #3665) +
  • we should detect direct linking to OpenBLAS rather than FlexiBLAS in sanity check
  • TODO (in develop):
    • define a foss/2021.04 toolchain that's a candidate for foss/2021a, using FlexiBLAS with OpenBLAS backend
    • evaluate by building applications like CP2K, SciPy-bundle, etc. on top
  • collapsing foss and fosscuda toolchains
    • see https://github.com/easybuilders/easybuild-easyconfigs/issues/12484
    • we have a good way of handling this via an OpenMPI "plugin"
      • to be installed via gompi, on top of UCX+CUDA
      • Mikael is planning to look into tackling via UCX instead via their module system (with hardcoded stuff currently)
        • introduce $EBUCXPLUGINS environment variable to make it more dynamic
        • would be better to also supporting other MPI libraries in top of UCX like Intel MPI
    • fosscuda would be a supertoolchain of foss
    • what about intelcuda?
      • do the same thing just for symmetry, unclear whether Intel MPI actually supports this functionality to leverage CUDA
    • we won't really have a fosscuda toolchain anymore
      • the OpenMPI CUDA plugin will just be a different dependency
      • MPI+CUDA aware installations could be indicated via a versionsuffix
      • or another hierarchy level (cfr. ComputeCanada)

Q&A

  • (none)