-
Notifications
You must be signed in to change notification settings - Fork 144
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.x
branches, 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.x
branches indevelop
post-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-pr
will be broken with EasyBuild 4.x due to major version mismatch-
--from-commit
can be used as a workaround
-
- open easyconfig PRs should be synced with
develop
branch before they get merged- due to changes in easyconfigs test suite implemented in
5.0.x
- for example
use_pip = True
should 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-check
configuration option (PR #4475) -
[5.0.x]
include path tocmd.sh
script in output generated byrun_shell_cmd
when a command fails + use colors: red for ERROR line, yellow for path to output files +cmd.sh
script (PR #4666) -
[develop]
add support for%(rpath_enabled)s
template 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 useicx
on Intel Icelake systems (PR #3321) -
[5.0.x]
MakeMesonNinja
respect thetoolchainopts
with buildtype as well as--debug
and--optimization
flags (PR #3454) -
[5.0.x]
take into account that 'pic
' toolchain option may not be defined inCMakeMake
easyblock (PR #3470) -
[5.0.x]
add missingreturn
for customisedinstall_extension_async
methods 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_PATH
in generated module file for PyTorch (PR #3488) -
[5.0.x]
use*DESCRIPTION
rather than*/DESCRIPTION
inRPackage.requires_deps
(PR #3490) -
[develop]
useDYNAMIC_ARCH=1
when building OpenBLAS with--optarch=GENERIC
(PR #3492)
-
-
enhancements
-
[5.0.x]
enhanceCMakeMake
easyblock to check whether correct Python installation was picked up by CMake (PR #3399) -
[develop]
letCMakeMake
easyblock also setPython_EXECUTABLE
option, as well asPython3_EXECUTABLE
andPython2_EXECUTABLE
derivatives (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=release
in easyconfigs usingMesonNinja
easyblock (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/2023a
toolchain (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
$CPATH
in modulefiles overwriting system paths (issue #3331)-
[5.0.x]
add--search-path-cpp-headers
configuration 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
ModuleLoadEnvironment
a singleton causes trouble - needs more love, additional test is broken
- easyblocks will need to be updated accordingly to not use
make_module_req_guess
anymore
- test was added to verify that making
-
[5.0.x]
addmodule-search-path-headers
configuration 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
-
tarfile
module 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_name
should 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_template
function to easyconfig instances (PR #4677) -
[develop]
Allow templates incustom_paths
&custom_commands
sanity-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 ofparallel
easyconfig parameter and fix updating the template value (PR #4580) -
[5.0.x]
RenameSOURCE_STEP
toEXTRACT_STEP
(PR #4629) -
[5.0.x]
Deprecatepost_install_step
, rename it topost_processing_step
(issue #4656) -
[5.0.x]
proposed changest to add atimeout
torun_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 check
only once forPythonBundle
(PR #3432) -
[develop]
Avoid failure in Python sanity check whenPIP_REQUIRE_VIRTUALENV
is set (PR #3460) -
[develop]
take into account thatf90wrap_version
may beNone
in MetalWalls easyblock (PR #3468) -
[develop]
fix setting ofCMAKE_OPTIONS
for 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-s
option when running Python code via "python -c
" (PR #3440) -
[develop]
enhance genericBundle
EasyBlock to transfer module requirements of components (PR #3472) -
[develop]
Enhance Cargo easyblock to better support crates from git repositories (PR #3476) -
[develop]
fixenhance_sanity_check
forPythonPackage
(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_path
in 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 toCargoPythonBundle
easyblock for orjson 3.9.15 (PR #21392)- requires being able to produce reproducible source tarballs from Git repository (WIP in
5.0.x
branch 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 check
failure) (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/2024a
already available? No, not really, just a minor 2024.2.1.
- are newer versions of Intel components compared to
- should we consider replacing
intel
with 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_info
only have issues with 2023b only? Shouldstrace
it. - Jörg: NVHPC: CUDA compute capability (only one). It's a default, can be overridden in nvcc command line etc.