Conference call notes 20250702 - easybuilders/easybuild GitHub Wiki

(back to Conference calls)

Notes on the 273th EasyBuild conference call, Wednesday 2 July 2025 (15:00 UTC / 17:00 CEST)

Attendees

List of attendees (17):

  • Simon Branford (Univ. of Birmingham, UK)
  • Alex Domingo (Vrije Universiteit Brussel, Belgium)
  • Loris Ercole (CECAM)
  • Davide Grassano (CECAM)
  • Jasper Grimm (University of York, UK)
  • Alexander Grund (ZIH, Dresden, Germany)
  • Kenneth Hoste (HPC-UGent, Belgium)
  • Adam Huffman (University of Oxford, UK)
  • Kurt Lust (UAntwerpen / LUMI)
  • Sam Moors (Vrije Universiteit Brussel, Belgium)
  • Mikael Öhman (Chalmers University of Technology, Sweden)
  • Bart Oldeman (McGill University, Digital Research Alliance of Canada)
  • Jure Pečar (EMBL, Germany)
  • Jan Reuter (JSC, Germany)
  • Jörg Saßmannshausen (Imperial College London, UK)
  • Roberto Scipioni (Red Oak Consulting, UK)
  • Cintia Willemyns (Vrije Universiteit Brussel, Belgium)

Agenda

  • overview of recent developments
  • 2025a update of common toolchains
  • Q&A

Recent developments

  • latest EasyBuild release: EasyBuild v5.1.0 (26 May 2025)
  • next (stable) EasyBuild release: EasyBuid v5.1.1 (ETA: ASAP)

News

  • future easyconfigs merge sprints planned:
    • Mon 18 Aug 2025
    • Mon 13 Oct 2025
    • Mon 15 Dec 2025
    • Mon 16 Feb 2026
    • aiming for semi-fixed schedule: 3rd Monday in even months

Merged PRs

(changed made in PRs marked with * are included latest EasyBuild stable release)

  • blog/docs (merged PRs)

  • framework (merged PRs)

    • bug fixes
      • also copy patches of extensions to easybuild subdirectory of installation directory (PR #4939 + PR #4946)
      • also copy easyblocks of bundle components to reprod dir (PR #4944)
    • enhancements
      • don't allow using --pr-commit-msg when only adding new files with --new-pr (unless --force is used) (PR #4498)
    • changes
      • Change value of architectures constants RISCV32 and RISCV64 (PR #4915)
      • trigger post_easyblock_hook later (PR #4938)
    • code cleanup
      • ...
    • CI/test suite
      • add support for passing valid unittest options to test suite (PR #3790)
  • easyblocks (merged PRs)

    • bug fixes
      • disable trace output when unpacking crates in Cargo easyblock (PR #3750)
      • Set $HOME to temporary folder for TensorFlow build and tests (PR #3751)
      • Use self.start_dir in LLVM easyblock (PR #3770)
      • Fix test step for CMakeNinja easyblock by customizing test_cmd and runtest easyconfig parameters (PR #3771)
      • Reset runtest for components in a bundle (PR #3775)
      • don't forcibly set $LD_LIBRARY_PATH in LAMMPS sanity check (PR #3776)
      • Fix condition to ignore failed LLVM GPU tests (PR #3819)
      • fix --module-only builds for Term::ReadLine::Gnu (PR #3808)
      • fix use of self.cfg.dependencies() in CMake easyblock (PR #3810)
      • Fix LLVM easyblock to allow building with multiple versions at once (PR #3812)
      • fix use of self.cfg.dependencies() in OpenFOAM easyblock (PR #3814)
      • Do not create compiler configs for LLVM < 19 (PR #3817)
      • Fix condition to ignore failed LLVM GPU tests (PR #3819)
    • enhancements
      • Allow test case filtering and other unittest arguments (PR #3653)
      • enhance LLVM easyblock to use dlopen for AMDGPU/CUDA libomptarget / offload target libraries (PR #3747)
      • enhance PythonPackage to allow specifying location to temporary installation used in test step + also update $PATH to pick up on binaries/scripts from it (PR #3797)
      • Add support for UCX, CUDA and mpi_abi directly in MPICH easyblock (PR #3807)
      • Add support for hwloc to MPICH easyblock (PR #3821)
    • updates
      • update numpy easyblock to support installing numpy >= 2.0 (PR #3777)
    • changes
      • change ABAQUS easyblock to use LM_LICENSE_FILE instead of ABAQUSLM_LICENSE_FILE (PR #3794)
    • new easyblocks
      • add new easyblock for BLIS and AOCL-BLAS (PR #3773)
    • code cleanup
      • handle $PATH environment variable with module_load_environment in init of Binary easyblock (PR #3787)
      • simplify use of self.cfg.dependencies() in SLEPc easyblock (PR #3811)
      • simplify use of self.cfg.dependencies() in PETSc easyblock (PR #3813)
    • CI
      • ...
  • easyconfigs (merged PRs)

    • XXX easyconfig PRs were merged since last conf call
    • bug fixes/reports
      • ...
    • enhancements
      • ...
    • (noteworthy) new software
      • ...
    • noteworthy software updates
      • ...
    • cleanup
      • ...
    • changes
      • ...

Open (active) PRs

  • docs (open PRs + issues)

  • framework (open PRs + issues)

    • bugs
      • Correctly detect final path when extracting multiple tarballs (PR #4922)
      • Fix logic for pr_repo used in --sync-pr-with-develop (PR #4947)
    • enhancements
      • Proposed changes to make EasyBuild plugin-able through entrypoints (PR #4918)
        • only works with Python 3.9+
        • we should deprecate support for running EasyBuild on top of Python <3.9
      • make NVHPC a full toolchain with nvidia-compilers, NVHPCX and NVBLAS (PR #4927)
      • introduce XORG_*_URLS and GNU_FTP_URLS template constants (PR #4935)
      • retry fetching extensions from PyPI with alternative download_filename (PR #4943)
    • code cleanup
      • ...
    • changes
      • empty install dir but don't remove it (PR #4932)
  • easyblocks (open PRs + issues)

    • bug fixes/reports
      • Fix use of CUDA CCs in LLVM easyblock and cleanup (PR #3755)
      • Moved several pieces of logic from the __init__ to configure_step in LLVM easyblock (PR #3781)
      • Update Mesa easyblock to use not use removed swrast (PR #3790)
      • use property for gcc_prefix/gcc_root in LLVM easyblock (PR #3793)
      • Moving openmp to a runtime in newer versions of LLVM (PR #3799)
      • Add missing call to make_module_step for components in Bundle easyblock (PR #3801)
      • Installing libiberty via binutils flag --enable-install-libiberty can break lib64 symlink (issue #3804)
      • Refactor LLVM easyblock and install OpenMP library symlinks (PR #3815)
      • move libiberty.a binutils library to 'lib' subdirectory if it's the only file in 'lib64' subdirectory (PR #3822)
    • enhancements
      • Changes to Easyblocks needed to work with the new LLVM toolchain (PR #3759)
      • Set $NCCL_HOME in NCCL easyblock (PR #3782)
      • Show status of component installation (Bundle easyblock) (PR #3783)
      • enhance LAMMPS easyblock to select best performing FFT library (PR #3784)
      • Add option to CMakeMake to specify name of build directory (PR #3786)
      • add option to run unittests of LAMMPS (PR #3789)
      • symlink CUPTI files to standard locations in CUDA installation (PR #3791)
      • Add test for PyTorch test-results (XML files) parsing (PR #3803)
    • updates
      • Update TensorFlow easyblock for CUDA support in TensorFlow 2.18+ (PR #3765)
      • update ORCA easyblock for version 6.1.0 (PR #3796)
    • changes
      • Deprecate the Clang Easyblock in Favor of the LLVM one for newer (>=18.1.6) versions of LLVM (PR #3746)
    • code cleanup
      • ...
    • new easyblocks
      • new easyblock for vscodeextension (PR #3802)
  • easyconfigs (open PRs + issues)

    • ~650 open easyconfig PRs \o/
    • bug fixes/reports
      • ...
    • enhancements
      • ...
    • (noteworthy) new software
      • ...
    • software updates
    • changes
      • ...

2025b common toolchains

  • will likely be set in stone Aug/Sept'25
  • GCC 14.3.0 (PR #22942) will be the base for foss/2025b and intel/2025b

Q&A / others

  • (Jan) update on ROCm
    • getting close to start opening PRs for installing ROCm from source in EasyBuild (starting with ROCM-LLVM)
    • easyblocks PR #3799 result in need for an extra patch for ROCM-LLVM to fix bug
    • (Kurt) little benefit for quite a lot of effort when building ROCm from source
    • (Jan) 50+ packages that come with ROCm, takes ~1 day to build from source (also for AMD)
      • currently ~30 easyconfigs for ROCm packages (not including AI stuff)
      • ROCm sources had to be patched to stop relying op /opt/rocm hardcoded paths
      • only serious problems with roc-gdb when building in a container
  • (Bart) Have ILP64 working for BLIS, centrally we only have that for OpenBLAS
    • AOCL-LAPACK works pretty well, passes LAPACK test suite
  • (Jörg) PETSc w/ foss/2024a (easyconfig PR #23252)
    • Jörg is running into EasyBuild crash with this, will share details in PR
  • (Mikael) installing LLVM 20.x takes very long (>7h) and produces failing ~50 tests (some due to timeout)
    • (Jan) LLVM 20.x includes Flang, which blows up build time quite a bit
    • (Davide) should take about 3 hours
    • (Mikael) maybe using cache in home dir?!
  • (Mikael) LLVM dependency for Mesa
    • "minimal" dependency LLVM in existing Mesa easyconfig => PR open to fix
  • (Mikael) Pillow-SIMD isn't actually Pillow-SIMD at all
    • bug fix PRs open
  • (Jörg) anyone familiar with NAG?
    • quite expensive license
    • users need a lot of numerical accuracy/stability
    • see question in #random in EasyBuild Slack
    • Cholesky factorization is in LAPACK, non-linear optimization is (maybe) supported by NLopt
    • Gurobi may also be relevant? (also commercial, but somewhat affordable for academic use)