-
Notifications
You must be signed in to change notification settings - Fork 148
Conference call notes 20241023
Bart Oldeman edited this page Oct 23, 2024
·
10 revisions
(back to Conference calls)
Notes on the 257th EasyBuild conference call, Wednesday 23 Oct 2024 (15:00 UTC)
List of attendees (14):
- Alex Domingo (Vrije Universiteit Brussel, Belgium)
- Em Dragowsky (Case Western Reserve University, Ohio, US)
- Davide Grassano (CECAM, Switzerland)
- Jasper Grimm (University of York, UK)
- Georgios Kafanas (University of Luxembourg)
- Kurt Lust (UAntwerpen, Belgium + LUMI User Support Team)
- Mikael Öhman (Chalmers University of Technology, Sweden)
- Bart Oldeman (McGill University, Digital Research Alliance of Canada)
- Jure Pečar (EMBL)
- Jan Reuter (JSC, Germany)
- Jörg Saßmannshausen (Imperial College London, UK)
- Åke Sandgren (Umeå University, Sweden)
- Davide Vanzo (Azure)
- Cintia Willemyns (Vrije Universiteit Brussel, Belgium)
- overview of recent developments
- outlook to EasyBuild 5.0 release
- 2024b update of common toolchains
- Q&A
- latest EasyBuild release: 4.9.4 (22 Sept 2024)
- next EasyBuild release:
- very likely EasyBuild v5.0.0 🔥
- additional EasyBuild 4.9.x versions could still be done via
4.9.xbranches, but none are planned currently
-
EasyBuild v5.0.0
- project board: https://github.com/orgs/easybuilders/projects/18/views/2
- detailed notes on latest developments in https://hackmd.io/tZtz6vMmRfGL6N9Rf__OEA
- to test development version of EasyBuild 5.0:
# set up Python virtual environment, and jump into it python3 -m venv eb5 source eb5/bin/activate # install EasyBuild 5.0 development version into it pip install https://github.com/easybuilders/easybuild-framework/archive/5.0.x.tar.gz pip install https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz pip install https://github.com/easybuilders/easybuild-easyconfigs/archive/5.0.x.tar.gz # go! eb --version
- collapsing of
5.0.xbranches indeveloppost-poned- impact on people using EasyBuild 4.x considered too big, so we want to limit the time window in which problems will arise as much as possible
- impact:
-
--from-prwill be broken with EasyBuild 4.x due to major version mismatch-
--from-commitcan be used as a workaround
-
- open easyconfig PRs should be synced with
developbranch before they get merged- due to changes in easyconfigs test suite implemented in
5.0.x - for example
use_pip = Trueshould no longer be used - same goes for framework & easyblocks
- due to changes in easyconfigs test suite implemented in
-
-
docs (merged PRs)
- ...
-
framework (merged PRs)
-
bug fixes
-
[5.0.x]Use more robust mechanism for unsetting environment variables (PR #4685)
-
-
enhancements
-
[5.0.x]disable strict RPATH sanity check by default, allow re-enabling it via--strict-rpath-sanity-checkconfiguration option (PR #4475) -
[5.0.x]include path tocmd.shscript in output generated byrun_shell_cmdwhen a command fails + use colors: red for ERROR line, yellow for path to output files +cmd.shscript (PR #4666) -
[develop]add support for%(rpath_enabled)stemplate value (PR #4670) -
[5.0.x]don't raise error when required extensions are not found when installing extensions in parallel (PR #4671)
-
-
changes
- ...
-
code cleanup
- ...
-
tests
- ...
-
bug fixes
-
easyblocks (merged PRs)
-
bug fixes
-
[develop]update Kokkos CPU mapping for LAMMPS >= 2Aug2023 to useicxon Intel Icelake systems (PR #3321) -
[5.0.x]MakeMesonNinjarespect thetoolchainoptswith buildtype as well as--debugand--optimizationflags (PR #3454) -
[5.0.x]take into account that 'pic' toolchain option may not be defined inCMakeMakeeasyblock (PR #3470) -
[5.0.x]add missingreturnfor customisedinstall_extension_asyncmethods in Rserve and Rmpi easyblocks (PR #3474) -
[develop]disable CPU-specific optimizations for generic builds (by using a customprocessor_arch) in LAMMPS easyblock (PR #3484) -
[develop]also add path tolibtorch.so& co to$LIBRARY_PATHin generated module file for PyTorch (PR #3488) -
[5.0.x]use*DESCRIPTIONrather than*/DESCRIPTIONinRPackage.requires_deps(PR #3490) -
[develop]useDYNAMIC_ARCH=1when building OpenBLAS with--optarch=GENERIC(PR #3492)
-
-
enhancements
-
[5.0.x]enhanceCMakeMakeeasyblock to check whether correct Python installation was picked up by CMake (PR #3399) -
[develop]letCMakeMakeeasyblock also setPython_EXECUTABLEoption, as well asPython3_EXECUTABLEandPython2_EXECUTABLEderivatives (when appropriate) (PR #3463) -
[develop]enhance cuDNN easyblock to verify that EULA is accepted before installing it ((PR #3473) -
[develop]Enhance AOCC EasyBlock to correctly pass GCC toolchain and compiler driver (PR #3480) -
[develop]enhance Cargo easyblock to printmessage for generating Cargo.lock if it's missing (PR #3491)
-
-
updates
- ...
-
changes
- ...
-
new easyblocks
- ...
-
code cleanup
-
[5.0.x]refactor search forpython_cmd(PR #3475)
-
-
bug fixes
-
easyconfigs (merged PRs)
- ~65 easyconfig PRs were merged since last conf call
-
bug fixes/reports
-
[develop]fix installation of NextPolish v1.4.1 when RPATH linking is used (+ move to GCC toolchain) (PR #21588) -
[develop]stop using--buildtype=releasein easyconfigs usingMesonNinjaeasyblock (PR #21619) -
[develop]demote hatchling to build-only dependency in easyconfigs for anndata 0.10.5.post1, Cassiopeia 2.0.0, phonemizer 3.2.1, scanpy 1.9.8, wandb 0.16.1 (PR #21657) -
[5.0.x]fix failing RPATH sanity check for recent dorado easyconfigs usingfoss/2023atoolchain (PR #21673) -
[develop]Fix alignment bug in patchelf 0.18.0 by adding patch (PR #21674) -
[develop]Remove redundant sanity check from jedi easyconfigs (PR #21686) -
[develop]fix the zero division bug ofnetworkx-3.1(PR #21702)
-
-
enhancements
-
[develop]Add trimmomatic wrapper script for recent Trimmomatic 0.39 easyconfigs (PR #21704)
-
-
(noteworthy) new software
- ...
-
noteworthy software updates
- ...
-
cleanup
- ...
- changes
-
EasyBuild 5.0
- ...
-
docs (open PRs + issues)
- ...
-
framework (open PRs + issues)
-
bug fixes
- Problem using
$CPATHin modulefiles overwriting system paths (issue #3331)-
[5.0.x]add--search-path-cpp-headersconfiguration option to control how EasyBuild sets paths to headers at build time (PR #4645) -
[5.0.x]refactor generation of required environment variables in module files (PR #4653)- test was added to verify that making
ModuleLoadEnvironmenta singleton causes trouble - needs more love, additional test is broken
- easyblocks will need to be updated accordingly to not use
make_module_req_guessanymore
- test was added to verify that making
-
[5.0.x]addmodule-search-path-headersconfiguration option to control how modules set search paths to header files (PR #4655)
-
-
[develop]add support for injecting checksums for cargo crates (PR #4661) -[5.0.x]Reverse order for parsing files in$XDG_CONFIG_DIRS(PR #4630) -
[5.0.x]improve portability of reproducible tarballs by replacing external tar command with tarfile module (PR #4660)- to fix issue #4657: reproducible tarballs have unexpected checksums on mac
-
tarfilemodule in Python allows creating tarballs in a reproducible way across systems (Linux + macOS)- but there's a breaking change in Python 3.9, so we get different tarballs across different Python versions :man-facepalming:
- two options to deal with this:
- only support creating reproducible tarballs with Python 3.9+
- people using Python < 3.9 would have to use
--ignore-checksums - EasyBuild 5.0 could print a warning when using Python < 3.9 that checksums can not be verified?
- this seems like the best way forward?
- we should probably consider deprecating support for Python < 3.9 in EasyBuild 5.0
- people using Python < 3.9 would have to use
- always include two checksums for source tarballs created via
git_config: one for Python < 3.9, one for Python >= 3.9
- only support creating reproducible tarballs with Python 3.9+
- binary patching generated tarballs with older Python versions would be very difficult
-
get_os_nameshould be updated to include Rocky and Alma (PR #4663) -
[develop]fix dry-run output when usingmulti_deps(PR #4678) -
[develop]Make fetching source tarball by git commit more robust (PR #4680)
- Problem using
-
enhancements
-
[develop]Copy build log and artifacts to a permanent location after failures (WIP PR #4601) -
[develop]allow extensions to add text to the module file (PR #4652) -
[develop]Addresolve_templatefunction to easyconfig instances (PR #4677) -
[develop]Allow templates incustom_paths&custom_commandssanity-check arguments (PR #4679) -
[develop]Add function to modify path-like environment variable in a context (PR #4681) -
[5.0.x]Update findPythonDeps (PR #4682) -
[5.0.x]Allow use of custom delimiter for paths in module generator (PR #4687) -
[5.0.x]Add global option to set default toolchain option of "debug" (PR #4688)
-
-
changes
-
[5.0.x]Deprecate use ofparalleleasyconfig parameter and fix updating the template value (PR #4580) -
[5.0.x]RenameSOURCE_STEPtoEXTRACT_STEP(PR #4629) -
[5.0.x]Deprecatepost_install_step, rename it topost_processing_step(issue #4656) -
[5.0.x]proposed changest to add atimeouttorun_shell_cmd(PR #4665) -
[develop]Added possibility to call amend/try-amend multiple times from easystack (PR #4667) -
[5.0.x]Let jobs retweak easyconfigs themselves (draft PR #4669) -
[5.0.x]mark support for installing extensions in parallel as being mature, since it's no longer experimental (PR #4672) -
[5.0.x]mark easystack support as being mature, since it's no longer experimental (PR #4673) -
[5.0.x]simplify code for determining the PYTHONPATH module entries (PR #4686) -
[5.0.x]simplify loop incollect_exts_file_info(PR #4689)
-
-
-
easyblocks (open PRs + issues)
- bug fixes
-
[5.0.x]runpip checkonly once forPythonBundle(PR #3432) -
[develop]Avoid failure in Python sanity check whenPIP_REQUIRE_VIRTUALENVis set (PR #3460) -
[develop]take into account thatf90wrap_versionmay beNonein MetalWalls easyblock (PR #3468) -
[develop]fix setting ofCMAKE_OPTIONSfor SuiteSparse versions between 5.1.2 and 6.0.0 (PR #3471)
-
- enhancements
-
[develop]Set CMake hints for path to Python installation if it's direct or indirect dependency (when using CMake >= 3.12) (PR #3282) -
[develop -> 5.0.x]enhance LLVM easyblock for compilation of clang/flang + other llvm-projects (PR #3373)- related: https://github.com/easybuilders/easybuild/issues/640
- support for LLVM 19.x is a work in progress (by Davide), interesting target for a full LLVM-based toolchain since it's supposed to have a decent Fortran compiler
-
[develop]ignore user python packages by using-soption when running Python code via "python -c" (PR #3440) -
[develop]enhance genericBundleEasyBlock to transfer module requirements of components (PR #3472) -
[develop]Enhance Cargo easyblock to better support crates from git repositories (PR #3476) -
[develop]fixenhance_sanity_checkforPythonPackage(PR #3477) -
[5.0.x]Fix handling of maximum python version in pick_python_cmd (PR #3478) -
[develop]avoid name clash in cargo crates downloaded from git repositories (PR #3481) -
[develop]Handle cargo workspaces in git repositories (PR #3482) -
[develop]enhance cargo easyblock for sources from git repositories (PR #3483) -
[develop]generate version from the source files when usingsoftware-commit(PR #3485) -
[develop]flesh out logic to determine location to binutils commands into a standalone functiondet_binutils_bin_pathin TensorFlow easyblock, and leverage it from jaxlib easyblock (PR #3486) -
[develop]Modularized getting of CMake options (PR #3487)
-
-
updates
-
[develop]update custom easyblock for CP2K >= v2024 (PR #3433)
-
-
changes
- ...
-
new
-
[develop]custom easyblock for DeepSpeed (PR #3450)
-
- bug fixes
-
easyconfigs (open PRs + issues)
-
bug fixes/reports
-
[develop -> 5.0.x]switch toCargoPythonBundleeasyblock for orjson 3.9.15 (PR #21392)- requires being able to produce reproducible source tarballs from Git repository (WIP in
5.0.xbranch of EasyBuild framework)
- requires being able to produce reproducible source tarballs from Git repository (WIP in
-
[5.0.x]promote pybind11 to runtime dependency for CPPE (to fixpip checkfailure) (PR #21564) -
[develop]add patch to SciPy-bundle 2024.05 that fixes test failure on aarch64 (PR #21559) -
[develop]AlphaFold v2.3.2 fix: move run_alphafold_test.py from sanity_check step to testing step ([PR #21678] (https://github.com/easybuilders/easybuild-easyconfigs/pull/21678)) -
[develop]add patch for SciPy-bundle 2023.07 + 2023.11 to fix vectorization bug in scipy 1.11.1 (PR #21693) -
[develop]Switch to using new spaces as delimiters for TCLLIBPATH (PR #21724)
-
- enhancements
-
(noteworthy) new software
- ...
- software updates
-
[develop]PyTorch v2.3.0 (PR #20489)
-
- changes
-
bug fixes/reports
- GCC 14.2 as a base (see easyconfigs PR #21114)
- we should define candidate toolchains using latest version of all components
- are newer versions of Intel components compared to
intel/2024aalready available? No, not really, just a minor 2024.2.1.
- are newer versions of Intel components compared to
- should we consider replacing
intelwith Clang-based toolchain as 2nd common toolchain next tofoss?- Fortran frontend in Clang is becoming mature enough?
- Kurt: it's a good as many others, e.g. Cray.
- Maybe not there yet, but almost, with the rename of flang-new to flang in LLVM 20 (2025).
- Jure: compute capability < 5.3 not supported in CUDA for CUTLASS (half precision), fails when 5.0 is provided, will open issue.
- Jure: CUTLASS/SCALENE downloading things via git, will open issue. Either use git as builddependency or figure out how to build without git.
- Jörg: easyconfigs issue #21715, why does
fi_infoonly have issues with 2023b only? Shouldstraceit. - Jörg: NVHPC: CUDA compute capability (only one). It's a default, can be overridden in nvcc command line etc.