-
Notifications
You must be signed in to change notification settings - Fork 148
Conference call notes 20241009
Kenneth Hoste edited this page Oct 9, 2024
·
1 revision
(back to Conference calls)
Notes on the 256th EasyBuild conference call, Wednesday 9 Oct 2024 (10:00 UTC)
List of attendees (18):
- Simon Branford (Univ. of Birmingham, UK)
- Bibek Chapagain (Barcelona Supercomputing Centre, Spain)
- Alex Domingo (Vrije Universiteit Brussel, Belgium)
- Davide Grassano (CECAM, Switzerland)
- Jasper Grimm (University of York, UK)
- Jorge Guerra (Universidad Politécnica de Madrid, Spain)
- Alexander Grund (ZIH, Dresden, Germany)
- Leonardo Honfi Camilo (Univ. of Wageningen, Netherlands)
- Kenneth Hoste (HPC-UGent, Belgium)
- Adam Huffman (Big Data Institute, Oxford, UK)
- Sébastien Moretti (SIB, Switzerland)
- Alan O'Cais (CECAM, Univ. of Barcelona)
- Jan Reuter (JSC, Germany)
- Jörg Saßmannshausen (Imperial College London, UK)
- Åke Sandgren (Umeå University, Sweden)
- Alexandre Strube (JSC, Germany)
- Alain van Hoof (TU Eindhoven, Netherlands
- Cintia Willemyns (Vrije Universiteit Brussel, Belgium)
- overview of recent developments
- outlook to EasyBuild 5.0 release
- 2024a/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
-
[develop]resolve symlink when making log dir writable (PR #4658) -
[5.0.x]also define functions in interactive shell session created bycmd.shscript that is produced byrun_shell_cmd(PR #4662) -
[5.0.x]add flushing and possible closing ofstdinonrun_shell_cmd(PR #4664) -
[develop]Fix typo in veryloose toolchain option for RISC-V (PR #4668)
-
- enhancements
- changes
-
code cleanup
- ...
-
tests
-
[5.0.x]also run tests with Python 3.13 (PR #4674)
-
-
bug fixes
-
easyblocks (merged PRs)
- bug fixes
- enhancements
- updates
-
changes
- ...
-
new easyblocks
- ...
-
code cleanup
- ...
-
easyconfigs (merged PRs)
- ~75 easyconfig PRs were merged since last conf call
-
bug fixes/reports
-
[develop]replace buggy ESIpy v20240709 with v20240731 (PR #21095) -
[develop]add patch to fix compilation of HPDBSCAN 20210826 (PR #21467) -
[develop]add patch for ROOT v6.24.06, v6.26.06, v6.26.10, v6.30.6 to disable sysroot for cling at runtime (PR #21526) -
[develop]linklibOpenCL.so.1to thelibdirectory for NextGenMap (required when using RPATH linking) (PR #21528) -
[develop]add patch for bug/typo in RISC-V toolchain options to EasyBuild 4.9.4 easyconfig (PR #21547) -
[develop]strip out '-minsize 1' option fromumi_binning.shin longread_umi 0.3.2, since it's not supported by VSEARCH (PR #21557)
-
- enhancements
-
(noteworthy) new software
-
[develop]RAPIDS (PR #21058)
-
-
noteworthy software updates
- ...
-
cleanup
-
[5.0.x]stop usingmodextrapathsto update$PYTHONPATHwith standard path to installed Python packages (lib/python%(pyshortver)s/site-packages) (PR #20960)
-
-
changes
-
[5.0.x]usepycodestylefor code style check + stop usinglin list comprehensions (PR #21502)
-
-
EasyBuild 5.0
-
[5.0.x]sync withdevelop(20240930) (PR #21497)
-
-
docs (open PRs + issues)
- ...
-
framework (open PRs + issues)
-
bug fixes
-
[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)
-
-
enhancements
-
[5.0.x]disable strict RPATH sanity check by default, allow re-enabling it via--strict-rpath-sanity-checkconfiguration option (PR #4475) -
[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)
- 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) -
[develop]add support for%(rpath)stemplate value (PR #4670)- this makes it even more important that we merge the PR that ensures that templates are resolved
-
-
changes
-
[5.0.x]RenameSOURCE_STEPtoEXTRACT_STEP(PR #4629) -
[5.0.x]Deprecate use ofparalleleasyconfig parameter and fix updating the template value (PR #4580) -
[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) -
[5.0.x]include path tocmd.shscript in output generated byrun_shell_cmdwhen a command fails + use colors: red forERRORline, yellow for path to output files +cmd.shscript (PR #4666) -
[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]don't raise error when required extensions are not found when installing extensions in parallel (draft PR #4671) -
[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)
-
-
bug fixes
-
easyblocks (open PRs + issues)
- bug fixes
-
[develop]update Kokkos CPU mapping for LAMMPS >= 2Aug2023 to use icx on Intel Icelake systems #3321 (PR #3321) -
[5.0.x]runpip checkonly once forPythonBundle(PR #3432)
-
[5.0.x]MakeMesonNinjarespect thetoolchainoptswith buildtype as well as--debugand--optimizationflags (PR #3454) -
[develop]Avoid failure in Python sanity check whenPIP_REQUIRE_VIRTUALENVis set (PR #3460) -
[develop]letCMakeMakeeasyblock also setPython_EXECUTABLEoption, as well asPython3_EXECUTABLEandPython2_EXECUTABLEderivatives (when appropriate) (PR #3463) -
[develop]take into account thatf90wrap_versionmay beNonein MetalWalls easyblock (PR #3468) -
[5.0.x]take into account that 'pic' toolchain option may not be defined inCMakeMakeeasyblock (PR #3470) -
[develop]fix setting ofCMAKE_OPTIONSfor SuiteSparse versions between 5.1.2 and 6.0.0 (PR #3471) -
[5.0.x]add missingreturnfor customisedinstall_extension_asyncmethods in Rserve and Rmpi easyblocks (PR #3474)
-
- 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
-
[5.0.x]enhanceCMakeMakeeasyblock to check whether correct Python installation was picked up by CMake (PR #3399)
-
[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 cuDNN easyblock to verify that EULA is accepted before installing it ((PR #3473)
-
-
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)
-
- 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?
- 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?
- NVHPC
- missing library path for QC libraries, should be added to NVHPC easyblock
- trouble with building Wannier90 with NVHPC (Fortran code)
- "funny" case: infinite loop in
spalnconfigure script (see https://github.com/ogotoh/spaln/issues/74) - Implement sanity check in EasyBuild for CUDA compute capabilities (see EESSI support issue #92)
- should probably be implemented in EasyBuild, but as opt-in?
- needs to be taken into account in easyblocks like LAMMPS that pick one of the specified CUDA compute capabilities
- easyblock should "register" which CUDA compute capability it's actually using
- which one is picked is inconsistent across easyblocks
- (Alexandre) why are we still using Bazel 6.x (not 7.x)
- there are several open PRs for Bazel 7.x
- TensorFlow & friends may require specific (older) Bazel versions
- (Jan) PR to implement
make_module_req_guessinBundle(see PR #3472)- should try and avoid re-creating easyblock instances
- required for CodePlay SYCL, see easyconfigs PR #21582
- (Alexander) upcoming PR for
Cargoeasyblock to change how it deal withgit_config, would be good to test it throroughly