Conference call notes 20231122 - easybuilders/easybuild GitHub Wiki

(back to Conference calls)

Notes on the 234th EasyBuild conference call, Wednesday 22 Nov 2023 (16:00 UTC)

Attendees

List of attendees (12):

  • Simon Branford (Univ. of Birmingham, UK)
  • Jasper Grimm (University of York, UK)
  • Thomas Hoffman (EMBL, Heidelberg, Germany)
  • Kenneth Hoste (HPC-UGent, Belgium)
  • Adam Huffman (Big Data Institute, Oxford, UK)
  • Kurt Lust (UAntwerpen, Belgium + LUMI User Support Team)
  • Sébastien Moretti (SIB, Switzerland)
  • Mikael Öhman (Chalmers University of Technology, Sweden)
  • Bart Oldeman (Digital Research Alliance of Canada)
  • Jure Peĉar (EMBL, Heidelberg, Germany)
  • Jörg Saßmannshausen (Imperial College London, UK)
  • Lars Viklund (Umeå University, Sweden)

Agenda

  • overview of recent developments
  • 2023b update of common toolchains
  • Q&A

Recent developments

  • latest EasyBuild release: 4.8.2 (29 Oct 2023)
    • ETA for next EasyBuild release (v4.9.0): early/mid Dec'23
    • ETA for EasyBuild 5.0 release: first release of 2024?
      • started doing short sprint meetings, each Monday at 10:00 CEST to set next 5 goals to tackle that week
  • recent changes
    • docs (merged PRs)
      • ...
    • framework (merged PRs)
      • bug fixes
        • use -qopenmp instead of -fiopenmp for OpenMP in Intel compilers (PR #4377)
      • enhancements
        • ...
      • changes
        • ...
      • EasyBuild 5.0 (to 5.0.x branch)
        • bug fixes
          • print error message in main_with_hooks function when EasyBuildError was raised (PR #4380)
        • changes
          • change run_shell_cmd to store command output in temporary file(s) by default + pass RunShellCmdResult instance to RunShellCmdError RunShellCmdError (PR #4356)
          • rename shell option in run_shell_cmd to use_bash (PR #4378)
          • start adopting run_shell_cmd in easyblock.py (+ use f-strings) (PR #4383)
    • easyblocks (merged PRs)
      • bug fixes
        • ...
      • enhancements
        • ...
      • updates
        • ...
      • changes
        • ...
      • new easyblocks
        • add new easyblock for HPCC and adapt HPL easyblock (PR #3009)
        • add custom easyblock for flook that includes install step (PR #3034)
      • EasyBuild 5.0 (to 5.0.x branch)
        • ...
    • easyconfigs (merged PRs)
      • ~75 easyconfig PRs were merged since last conf call

      • bug fixes

        • patches for GCC 12.x
          • add patch to fix regression in GCC 12.x on AVX512 systems (PR #19180)
          • add patch for GCC 12.x to fix miscompiling C++ code causing double-free in case of exceptions (PR #19253)
          • relevant for PyTorch (w/ foss/2022b + foss/2023a)
        • add patch to work around potential crash in PyTorch 1.13.1 caused by GCC 12 compiler bug (PR #19133)
        • only use ScaFaCos as dependency for LAMMPS 23Jun2022 on x86_64 (PR #19164)
        • add pkgconf build dependency to libGLU (PR #19186)
        • sidestep some build issues with CUDA-Samples 12.1 (PR #19189)
        • make Pillow easyconfigs aware of sysroot template (PR #19226 + PR #19267)
        • fix possible error/crash in NCCL on x86 due to cpuid (PR #19231)
        • reduce timestep to fix sanity check commands in LAMMPS 23Jun2022 (PR #19246)
        • replace format tag with explicit extension name in Optuna v3.0.3 (PR #19256)
        • enhance easyconfigs for gnuplot 5.4.x to make sure that Lua dependency is always used (PR #19261)
        • avoid indirect dependency on old CMake version built with GCCcore/10.2.0 via Catch2 build dependency using system toolchain in recent pybind11 easyconfigs (PR #19270)
        • use existing patch in pybind11 2.6.2 and 2.7.1 to fix failing test due to extra whitespace (PR #19279)
        • json-fortran creates Fortran modules, so must be at compiler level (PR #19283)
        • Odd issue with JULIA_DEPOT_PATH makes ResistanceGA unusable (issue #19281)
      • enhancements

      • (noteworthy) new software

      • noteworthy software updates

        • ...
      • changes

        • ...
      • EasyBuild 5.0 (to 5.0.x branch)

        • ...
  • work-in-progress
    • docs (open PRs + issues)
    • framework (open PRs + issues)
      • reported bugs / bug fixes
        • fix support for Environment Modules as modules tool to pass unit tests with v4.2+ (PR #4369)
        • adapt module function check for Environment Modules v4+ (PR #4371)
        • fix LIBBLAS_MT for FlexiBLAS, ensure -lpthread is included (PR #4379)
        • eliminate duplicate multideps from generated module files (PR #4386)
        • relax major version match regex in find_related_easyconfigs (PR #4385)
      • enhancements
        • ...
      • changes
        • drop load storm safe guard for Environment Modules v4.2.4+ (PR #4373)
      • EasyBuild 5.0 (to 5.0.x branch)
        • deprecate failure to resolve a template value (PR #3285)
    • easyblocks (open PRs + issues)
      • bug reports/fixes
        • fix extension filter for Perl packages (PR #2699)
          • easyconfigs PR #18789 is a big step towards merging this, but there are other easyconfigs that needs to be tested first, like XML-LibXML, worker, GD, ...
      • enhancements
        • add custom easyconfig parameter cmake_options to SuiteSparse easyblock (PR #3031)
        • update KOKKOS_CPU_MAPPING for AArch64 in LAMMPS (PR #3036)
      • updates
        • update error detection for PyTorch tests (PR #3033)
        • update WIEN2k easyblock for v23.2 (PR #3035)
      • new easyblocks
        • new custom easyblocks for Spparks and Stitch (PR #2948)
        • add generic CargoPythonBundle easyblock (PR #2964)
      • changes
        • ...
      • EasyBuild 5.0 (to 5.0.x branch)
        • enable download_dep_fail, use_pip, sanity_pip_check by default in PythonPackage easyblock (PR #3022)
          • needs some tests to make sure nothing is horribly broken (but should be fine)
          • follow-up is needed in easyconfigs, to:
            • clean up easyconfigs in 5.0.x branch that now set use_pip & co to True
            • explicitly set use_pip & co to False in (non-archived) easyconfig that currently don't specify them at all (which should be a minimal set of easyconfigs)
        • update ConfigureMake easyblock to error out on unknown configure args (PR #3025)
    • easyconfigs (open PRs + issues)
      • bug fixes/reports
        • fix build of Rust 1.70.0 by disabling download of pre-built LLVM (PR #19264)
        • patch setup.py for grpcio extension in TensorFlow 2.13.0 easyconfigs to take into account alternate sysroot (PR #19268)
        • move cmake options to easyblock and support customizing cmake_options for SuiteSparse-7.1.0 (PR #19177)
      • enhancements
        • add test for duplicate $PYTHONPATH in modextrapaths (PR #19061)
      • new software
        • ...
      • noteworthy software updates
        • PETSc 3.19.4 w/ foss/2023a (PR #18608)
        • PyTorch v1.13.1 w/ foss/2022b + CUDA 11.7.0 (PR #18853)
        • PyTorch v1.13.1 w/ foss/2022b + CUDA 12.0.0 (PR #18806)
        • PyTorch v2.0.1 w/ foss/2022b (PR #19067)
        • PYTorch v2.1.0 w/ foss/2022b (PR #19087)
        • R-bundle-CRAN v2023.11 w/ foss/2023a (PR #19170)
          • requires R v4.3.2 with gfbf/2023a (PR #19185)
          • R should ideally have a minimal set of extensions, maybe only devtools and what it requires
            • is shiny really required by devtools? probably not yes it is :man-facepalming:
      • changes
        • ...
      • EasyBuild 5.0 (to 5.0.x branch)
        • ...
      • closed PRs
        • dead end for TensorFlow v2.13.0 w/ CUDA 12.1.1 w/ foss/2023a (PR #19182)

2023b update of common toolchains

  • 2023b toolchains should be included in EasyBuild 4.9.0 release
    • candidate toolchains are merged, ready for more extensive testing of "big" apps
  • most significant change is jump to GCC 13.x
  • foss/2023.09 (PR #18886) - candidate for foss/2023b
    • GCC 13.2.0 + binutils 2.40
    • OpenMPI 4.1.6 (+ UCX 1.15.0, PMIx 4.2.6, libfabric 1.19.0)
    • FlexiBLAS 3.3.1 (+ OpenBLAS 0.3.24)
    • FFTW 3.3.10
    • ScaLAPACK 2.1.0
  • intel/2023.07 (PR #18439) - candidate for intel/2023b
    • GCC 13.2.0 + binutils 2.40
    • intel-compilers 2023.2.1
    • impi 2021.10.0
    • imkl 2023.2.0
  • testing
    • OSU-Micro-Benchmarks (foss in PR #18893)
    • SciPy-bundle (numpy, scipy)
      • keep an eye out for need for CargoPythonBundle
    • GROMACS (C++)
    • OpenFOAM (C++)
      • requires ParaView, Qt5, etc.
      • should we keep building on top of ParaView (only needed for paraFoam utility)?
        • installing paraFoam stand-alone is a PITA
        • paraFoam isn't actually used when running OpenFOAM simulations
    • CP2K (Fortran)
    • check if Qt6 can be used
  • Mikael saw a strange compilation with GCC 13.2 for assimp (dep for Qt6)
  • latest NCCL does not support GCC 13.x yet, but next patch release should
  • CUDA 12.3.0 should support GCC 13.2.0
  • releasing 2023b implies deprecating 2020b
    • that means no more need for Intel license server to test PRs... \o/

Q&A / others

  • https://community.intel.com/t5/Blogs/Tech-Innovation/Tools/Deprecation-of-The-Intel-Fortran-Compiler-Classic-ifort/post/1541699
    • Jörg is attending Intel oneAPI workshop on Mon 27 Nov'23
      • questions welcome!
    • ifort is deprecated in 2024.x releases, will be removed in first 2025 release
      • changes needed in intel-compilers/impi/imkl easyblocks:
        • "latest" symlink changed from 2024.0.0 to 2024.0: can either
          1. resolve symlink; we already do that for tbb
          2. check for 2024 with LooseVersion, then '.'.join(version.split('.')[:2])
          3. use 2024.0 as version in the easyconfigs, or
          4. use "latest" directly Note: Intel's example modules/setvars scripts resolve the symlink using https://wiki.tcl-lang.org/page/file+normalize and pwd -P, respectively.
          • same goes for latest Intel MPI 2021.11 (?) and latest Intel MKL (2024.0.0?)
          • other option could be to reinstate 2024.0.0 symlink to latest?
        • all compiler binaries in bin (no more bin/intel64)
        • remove sanity check for icc/icpc
        • compiler/2023.2.1/linux -> compiler/2024.0/
        • "tools" and "interfaces" moved to "share/mkl" for MKL
        • MPI module files moved to "include/mpi"
        • need to use mpiicx instead of mpiicc in MPI test
        • makefile for FFTW-MPI interfaces needs to use mpiicx or mpicc -cc=icx instead of mpiicc
          • may not be needed, EB sets I_MPI_CC=icx already, but reported on Slack.
        • review optional aliases for mpicc and friends, dead symlinks, etc.
      • framework: use oneapi: true by default for 2024+ (incl. Fortran?) ifx wasn't ready for prime time in 2023, particularly for complex numbers (see LAPACK tests e.g. https://github.com/Reference-LAPACK/lapack/pull/898)
      • Intel removes older compilers from download
  • (Bart) for OpenFOAM(.com):
    • CGAL depends on GMP/MPFR (but deps are missing)
  • easyconfigs test suite should be updated to signal need for CargoPythonPackage (or CargoPythonBundle)
    • Rust (build) dep + easyblock that derives from PythonBundle
  • Jure: any experiences with building SYCL software?
    • GROMACS is starting to get support for SYCL
    • hipSYCL (renamed, now openSYCL AdaptiveCpp) is being recommended for GROMACS
    • we have (old) hipSYCL easyconfigs
    • other option is Intel oneAPI (which has builtin support for SYCL)
    • there be dragons here due to mixing of compilers
    • see also AdaptiveCpp easyconfig used in LUMI
    • Jörg may be contributing things related to Intel Xe GPUs soon
    • Codeplay's commercial products supports Intel Xe, NVIDIA, AMD GPUs
  • Jure: experiences with EPYC Bergamo
    • sambamba genomic tool crashes, which works fine on Genoa
    • floating-point exception
    • implemented in D language
    • D compiler is crashing when running it on Bergamo
    • D language runtime is doing CPU ID detection, which has a bug...
    • probably related to cache size?
    • building D compiler from source requires a working D compiler...
    • see https://issues.dlang.org/show_bug.cgi?id=24254
  • AMD Datacenter Launch event on 6 Dec'23