SUSE Linux Enterprise for High-Performance Computing 15 SP5
Release Notes #
Abstract#
SUSE Linux Enterprise for High-Performance Computing is a highly-scalable, high-performance open-source operating system designed to utilize the power of parallel computing. This document provides an overview of high-level general features, capabilities, and limitations of SUSE Linux Enterprise for High-Performance Computing 15 SP5 and important product updates.
These release notes are updated periodically. The latest version of these release notes is always available at https://www.suse.com/releasenotes. General documentation can be found at https://documentation.suse.com/sle-hpc/15-SP4.
- 1 About the release notes
- 2 SUSE Linux Enterprise for High-Performance Computing
- 3 Modules, extensions, and related products
- 4 Technology previews
- 5 Modules
- 6 Changes affecting all architectures
- 6.1 SLE HPC no longer a separate product
- 6.2 Enriched system visibility in the SUSE Customer Center (SCC)
- 6.3 Automatically opened ports
- 6.4 GNU compiler suite version 12
- 6.5
conman - 6.6
dolly - 6.7
imb - 6.8
memkind - 6.9
openblas - 6.10
munge - 6.11
cpuid - 6.12
lmod - 6.13
PAPI - 6.14
warewulf4 - 6.15 Creating containers from current HPC environment
- 6.16 Spack
- 6.17 Slurm
- 7 Removed and deprecated features and packages
- 8 Obtaining source code
- 9 Legal notices
- A Changelog for 15 SP5
1 About the release notes #
These Release Notes are identical across all architectures, and the most recent version is always available online at https://www.suse.com/releasenotes.
Entries are only listed once but they can be referenced in several places if they are important and belong to more than one section.
Release notes usually only list changes that happened between two subsequent releases. Certain important entries from the release notes of previous product versions are repeated. To make these entries easier to identify, they contain a note to that effect.
However, repeated entries are provided as a courtesy only. Therefore, if you are skipping one or more service packs, check the release notes of the skipped service packs as well. If you are only reading the release notes of the current release, you could miss important changes.
2 SUSE Linux Enterprise for High-Performance Computing #
SUSE Linux Enterprise for High-Performance Computing is a highly scalable, high performance open-source operating system designed to utilize the power of parallel computing for modeling, simulation and advanced analytics workloads.
SUSE Linux Enterprise for High-Performance Computing 15 SP5 provides tools and libraries related to High Performance Computing. This includes:
Workload manager
Remote and parallel shells
Performance monitoring and measuring tools
Serial console monitoring tool
Cluster power management tool
A tool for discovering the machine hardware topology
System monitoring
A tool for monitoring memory errors
A tool for determining the CPU model and its capabilities (x86-64 only)
User-extensible heap manager capable of distinguishing between different kinds of memory (x86-64 only)
Serial and parallel computational libraries providing the common standards BLAS, LAPACK, …
Various MPI implementations
Serial and parallel libraries for the HDF5 file format
2.1 Hardware Platform Support #
SUSE Linux Enterprise for High-Performance Computing 15 SP5 is available for the Intel 64/AMD64 (x86-64) and AArch64 platforms.
2.2 Important Sections of This Document #
If you are upgrading from a previous SUSE Linux Enterprise for High-Performance Computing release, you should review at least the following sections:
2.3 Support and life cycle #
SUSE Linux Enterprise for High-Performance Computing is backed by award-winning support from SUSE, an established technology leader with a proven history of delivering enterprise-quality support services.
SUSE Linux Enterprise for High-Performance Computing 15 has a 13-year life cycle, with 10 years of General Support and 3 years of Extended Support. The current version (SP5) will be fully maintained and supported until 6 months after the release of SUSE Linux Enterprise for High-Performance Computing 15 SP6.
Any release package is fully maintained and supported until the availability of the next release.
Extended Service Pack Overlay Support (ESPOS) and Long Term Service Pack Support (LTSS) are also available for this product. If you need additional time to design, validate and test your upgrade plans, Long Term Service Pack Support (LTSS) can extend the support you get by an additional 12 to 36 months in 12-month increments, providing a total of 3 to 5 years of support on any given Service Pack.
For more information, see:
The support policy at https://www.suse.com/support/policy.html
Long Term Service Pack Support page at https://www.suse.com/support/programs/long-term-service-pack-support.html
2.4 Support statement for SUSE Linux Enterprise for High-Performance Computing #
To receive support, you need an appropriate subscription with SUSE. For more information, see https://www.suse.com/support/programs/subscriptions/?id=SUSE_Linux_Enterprise_Server.
The following definitions apply:
- L1
Problem determination, which means technical support designed to provide compatibility information, usage support, ongoing maintenance, information gathering and basic troubleshooting using available documentation.
- L2
Problem isolation, which means technical support designed to analyze data, reproduce customer problems, isolate problem area and provide a resolution for problems not resolved by Level 1 or prepare for Level 3.
- L3
Problem resolution, which means technical support designed to resolve problems by engaging engineering to resolve product defects which have been identified by Level 2 Support.
For contracted customers and partners, SUSE Linux Enterprise for High-Performance Computing is delivered with L3 support for all packages, except for the following:
Technology Previews, see Section 4, “Technology previews”
Sound, graphics, fonts and artwork
Packages that require an additional customer contract, see Section 2.4.1, “Software requiring specific contracts”
SUSE will only support the usage of original packages. That is, packages that are unchanged and not recompiled.
2.4.1 Software requiring specific contracts #
Certain software delivered as part of SUSE Linux Enterprise for High-Performance Computing may require an external contract.
Check the support status of individual packages using the RPM metadata that can be viewed with rpm, zypper, or YaST.
2.4.2 Software under GNU AGPL #
SUSE Linux Enterprise for High-Performance Computing 15 SP5 (and the SUSE Linux Enterprise modules) includes the following software that is shipped only under a GNU AGPL software license:
Ghostscript (including subpackages)
SUSE Linux Enterprise for High-Performance Computing 15 SP5 (and the SUSE Linux Enterprise modules) includes the following software that is shipped under multiple licenses that include a GNU AGPL software license:
MySpell dictionaries and LightProof
ArgyllCMS
2.5 Documentation and other information #
2.5.1 Available on the product media #
Read the READMEs on the media.
Get the detailed change log information about a particular package from the RPM (where
FILENAME.rpmis the name of the RPM):rpm --changelog -qp FILENAME.rpm
Check the
ChangeLogfile in the top level of the installation medium for a chronological log of all changes made to the updated packages.Find more information in the
docudirectory of the installation medium of SUSE Linux Enterprise for High-Performance Computing 15 SP5. This directory includes PDF versions of the SUSE Linux Enterprise for High-Performance Computing 15 SP5 Installation Quick Start Guide.
2.5.2 Online documentation #
For the most up-to-date version of the documentation for SUSE Linux Enterprise for High-Performance Computing 15 SP5, see https://documentation.suse.com/sle-hpc/15-SP4.
Find a collection of White Papers in the SUSE Linux Enterprise for High-Performance Computing Resource Library at https://www.suse.com/products/server#resources.
4 Technology previews #
Technology previews are packages, stacks, or features delivered by SUSE which are not supported. They may be functionally incomplete, unstable or in other ways not suitable for production use. They are included for your convenience and give you a chance to test new technologies within an enterprise environment.
Whether a technology preview becomes a fully supported technology later depends on customer and market feedback. Technology previews can be dropped at any time and SUSE does not commit to providing a supported version of such technologies in the future.
Give your SUSE representative feedback about technology previews, including your experience and use case.
4.1 64K page size kernel flavor has been added #
SUSE Linux Enterprise for High-Performance Computing for Arm 12 SP2 and later kernels have used a page size of 4K. This offers the widest compatibility also for small systems with little RAM, allowing to use Transparent Huge Pages (THP) where large pages make sense.
As a technology preview, SUSE Linux Enterprise for High-Performance Computing for Arm 15 SP5 adds a kernel flavor
64kb, offering a page size of 64 KiB and physical/virtual address size
of 52 bits.
Same as the default kernel flavor, it does not use preemption.
Main purpose at this time is to allow for side-by-side benchmarking for High Performance Computing, Machine Learning and other Big Data use cases. Contact your SUSE representative if you notice performance gains for your specific workloads.
Important: Swap needs to be re-initialized
After booting the 64K kernel, any swap partitions need to re-initialized to be usable.
To do this, run the swapon command with the --fixpgsz parameter on the swap partition.
Note that this process deletes data present in the swap partition (for example, suspend data).
In this example, the swap partition is on /dev/sdc1:
swapon --fixpgsz /dev/sdc1Important: Btrfs file system uses page size as block size
It is currently not possible to use Btrfs file systems across page sizes. Block sizes below page size are not yet supported and block sizes above page size might never be supported.
During installation, change the default partitioning proposal and choose
another file system, such as Ext4 or XFS, to allow rebooting from the
default 4K page size kernel of the Installer into kernel-64kb and back.
See the Storage Guide for a discussion of supported file systems.
Warning: RAID 5 uses page size as stripe size
It is currently not yet possible to configure stripe size on volume creation. This will lead to sub-optimal performance if page size and block size differ.
Avoid RAID 5 volumes when benchmarking 64K vs. 4K page size kernels.
See the Storage Guide for more information on software RAID.
Note: Cross-architecture compatibility considerations
The SUSE Linux Enterprise for High-Performance Computing 15 SP5 kernels on x86-64 use 4K page size.
The SUSE Linux Enterprise for High-Performance Computing for POWER 15 SP5 kernel uses 64K page size.
5 Modules #
5.1 HPC module #
The HPC module contains HPC specific packages. These include the workload manager Slurm, the node deployment tool clustduct, munge for user authentication, the remote shell mrsh, the parallel shell pdsh, as well as numerous HPC libraries and frameworks.
This module is available with the SUSE Linux Enterprise for High-Performance Computing only. It is selected by default during the installation. It can be added or removed using the YaST UI or the SUSEConnect CLI tool. Refer to the system administration guide for further details.
5.2 NVIDIA Compute Module #
The NVIDIA Compute Module provides the NVIDIA CUDA repository for SUSE Linux Enterprise 15. Note that that any software within this repository is under a 3rd party EULA. For more information check https://docs.nvidia.com/cuda/eula/index.html.
This module is not selected for addition by default when installing SUSE Linux Enterprise for High-Performance Computing. It may be selected manually during installation from the Extension and Modules screen. You may also select it on an installed system using YaST. To do so, run from a shell as root yast registration, select: Select Extensions and search for NVIDIA Compute Module and press Next.
Important
Do not attempt to add this module with the SUSEConnect CLI tool. This tool is not yet capable of handling 3rd party repositories.
Once you have selected this module you will be asked to confirm the 3rd party license and verify the repository signing key.
6 Changes affecting all architectures #
Information in this section applies to all architectures supported by SUSE Linux Enterprise for High-Performance Computing 15 SP5.
6.1 SLE HPC no longer a separate product #
As of 15 SP5, SUSE Linux Enterprise for High-Performance Computing is no longer a separate product. As a result:
the HPC Module can now be enabled in SUSE Linux Enterprise Server
when migrating from SUSE Linux Enterprise for High-Performance Computing 15 SP3, SP4, and SP5, only SUSE Linux Enterprise Server 15 SP6 will be available as migration target. The result of such a migration will be an installation of SUSE Linux Enterprise Server with all the previously enabled modules.
6.2 Enriched system visibility in the SUSE Customer Center (SCC) #
SUSE is committed to helping provide better insights into the consumption of SUSE subscriptions regardless of where they are running or how they are managed; physical or virtual, on-prem or in the cloud, connected to SCC or Repository Mirroring Tool (RMT), or managed by SUSE Manager. To help you identify or filter out systems in SCC that are no longer running or decommissioned, SUSEConnect now features a daily “ping”, which will update system information automatically.
For more details see the documentation at https://documentation.suse.com/subscription/suseconnect/single-html/SLE-suseconnect-visibility/.
6.3 Automatically opened ports #
Installing the following packages automatically opens the following ports:
dolly- TCP ports 9997 and 9998slurm- TCP ports 6817, 6818, and 6819
Important
These release notes only document changes in SUSE Linux Enterprise for High-Performance Computing compared to the immediate previous service pack of SUSE Linux Enterprise for High-Performance Computing. The full changes and fixes can be found on the respective web site of the packages.
6.4 GNU compiler suite version 12 #
SLE HPC 15 SP5 now supports the GNU compiler suite version 12.
To install the runtime environments (environment modules) for version 12, run: zypper install gnu12-compilers-hpc.
To install all the packages required for development (C, C and Fortran compilers), run `zypper install gnu12-compilers-hpc-devel`.
To load the environment, run 'module load gnu/12' in your shell.
When the `-devel` package is installed, the compilers (`gcc-12`, `g-12`, gfortran-12) will become available in this shell under their standard names (gcc, g++, gfortran).
6.5 conman #
conman has been updated to version 0.3.1:
Fixed username/password use in
libipmiconsole.conf.Added
-Tcommand-line option to specify terminal emulator.General move of files from
/usr/lib/conmanto/usr/share/conman.
6.6 dolly #
dolly has been updated to version 0.64.2.
The tool is less verbose by default and the dolly service can be activated through a socket.
6.7 imb #
imb is shipped in version 2021.3:
Change default value for
mem_alloc_typeto device.Added new IMB-MPI1-GPU benchmarks as technical preview.
Added
-msg_pauseoption.Changed default
window_sizefrom64to256.Added
-window_sizeoption for IMB-MPI1.
6.8 memkind #
memkind has been updated to version 1.14.0.
The full list of changes is available at http://memkind.github.io/memkind/.
6.9 openblas #
openblas has been updated to version 0.3.25.
:leveloffset: +1
Update to version 0.3.25:
General:
improved the error message shown on exceeding the maximum thread count
improved the code to add supplementary thread buffers in case of overflow
fixed a potential division by zero in
?ROTGimproved the
?MATCOPYfunctions to accept zero-sized rows or columnscorrected empty prototypes in function declarations
cleaned up unused declarations in the f2c-converted versions of the LAPACK sources
improved link line rewriting to avoid mixed libgomp/libomp builds with clang&gfortran
imported the following changes from the upcoming release 3.12 of Reference-LAPACK: LAPACK PR 900, LAPACK PR 904, LAPACK PR 907, LAPACK PR 909, LAPACK PR 926, LAPACK PR 927, LAPACK PR 928 & 930
x86-64:
fixed capability-based fallback selection for unknown cpus in
DYNAMIC_ARCHadded AVX512 optimizations for
?ASUMon Intel Sapphire Rapids and Cooper Lake
ARM64:
fixed building with XCODE 15
fixed building on A64FX and Cortex A710/X1/X2
increased the default buffer size for recent arm server cpus
POWER:
added support for
DYNAMIC_ARCHbuilds with clangfixed union declaration in the
BFLOAT16test case
Changes in version 0.3.24
General:
Declared the arguments of
cblas_xerblaasconst(in accordance with the reference implementation and others, the previous discrepancy appears to have dated back to GotoBLAS)fixed the implementation of
?GEMMTthat was added in 0.3.23made cpu-specific
SWITCH_RATIOparameters for GEMM available toDYNAMIC_ARCHbuildsfixed missing
SSYCONVFfunction in the shared libraryfixed parallel build logic used with gmake
fixed several issues with the handling of runtime limits on the number of OPENMP threads
corrected the error code returned by
SGEADD/DGEADDwhen LDA is too smallcorrected the error code returned by
IMATCOPYwhen LDB is too smallupdated
?NRM2to support negative increment values (as introduced in release 3.10.0 of the Reference BLAS)updated
?ROTGto use the safe scaling algorithm introduced in release 3.10.0 of the Reference BLASfixed OpenMP builds with CLANG for the case where libomp is not in a standard location
fixed a potential overwrite of unrelated memory during thread initialisation on startup
fixed a potential integer overflow in the multithreading threshold for
?SYMM/?SYRKfixed build of the LAPACKE interfaces for the LAPACK 3.11.0
?TRSYLfunctions added in 0.3.22applied additions and corrections from the development branch of Reference-LAPACK:
fixed actual arguments passed to a number of LAPACK functions (from Reference-LAPACK PR 885)
fixed workspace query results in LAPACK
?SYTRF/?TRECV3(from Reference-LAPACK PR 883)fixed derivation of the UPLO parameter in
LAPACKE_?larfb(from Reference-LAPACK PR 878)fixed a crash in LAPACK
?GELSDDonNRHS=0(from Reference-LAPACK PR 876)added new LAPACK utility functions
CRSCLandZRSCL(from Reference-LAPACK PR 839)corrected the order of eigenvalues for 2x2 matrices in
?STEMR(Reference-LAPACK PR 867)removed spurious reference to OpenMP variables outside OpenMP contexts (Reference-LAPACK PR 860)
updated file comments on use of
LAMBDAvariable in LAPACK (Reference-LAPACK PR 852)fixed documentation of LAPACK
SLASD0/DLASD0(Reference-LAPACK PR 855)fixed confusing use of "minor" in LAPACK documentation (Reference-LAPACK PR 849)
added new LAPACK functions ?GEDMD for dynamic mode decomposition (Reference-LAPACK PR 736)
fixed potential stack overflows in the
EIGpart of the LAPACK testsuite (Reference-LAPACK PR 854)applied small improvements to the variants of Cholesky and QR functions (Reference-LAPACK PR 847)
removed unused variables from LAPACK
?BDSQR(Reference-LAPACK PR 832)fixed a potential crash on allocation failure in LAPACKE
SGEESX/DGEESX(Reference-LAPACK PR 836)added a quick return from
SLARUV/DLARUVfor N < 1 (Reference-LAPACK PR 837)updated function descriptions in LAPACK
?GEGS/?GEGV(Reference-LAPACK PR 831)improved algorithm description in
?GELSY(Reference-LAPACK PR 833)fixed scaling in LAPACK
STGSNA/DTGSNA(Reference-LAPACK PR 830)fixed crash in
LAPACKE_?geqrtwith row-major data (Reference-LAPACK PR 768)added LAPACKE interfaces for
C/ZUNHR_COLandS/DORHR_COL(Reference-LAPACK PR 827)added error exit tests for
SYSV/SYTD2/GEHD2to the testsuite (Reference-LAPACK PR 795)fixed typos in LAPACK source and comments (Reference-LAPACK PRs 809,811,812,814,820)
adopt refactored
?GEBALimplementation (Reference-LAPACK PR 808)
x86_64:
added cpu model autodetection for Intel Alder Lake N
added activation of the AMX tile to the Sapphire Rapids
SBGEMMkernelworked around miscompilations of GEMV/SYMV kernels by gcc’s tree-vectorizer
fixed runtime detection of Cooperlake and Sapphire Rapids in
DYNAMIC_ARCHfixed feature-based cputype fallback in
DYNAMIC_ARCHcorrected
ZAXPYresult on old pre-AVX hardware for theINCX=0casefixed a potential use of uninitialized variables in ZTRSM
ARMV8:
implemented SWITCH_RATIO parameter for improved GEMM performance on Neoverse
activated SVE SGEMM and DGEMM kernels for Neoverse V1
improved performance of the SVE CGEMM and ZGEMM kernels on Neoverse V1
improved kernel selection for the ARMV8SVE target and added it to
DYNAMIC_ARCHfixed runtime check for SVE availability in
DYNAMIC_ARCHbuilds to take OS or container restrictions into accountfixed a potential use of uninitialized variables in ZTRSM
POWER:
fixed compiler warnings in the POWER10 SBGEMM kernel
Changes in version 0.3.23
General:
fixed a serious regression in
GETRF/GETF2andZGETRF/ZGETF2where subnormal but nonzero data elements triggered the singularity flagfixed a long-standing bug in
CSPR/ZSPRin single-threaded operationfor cases where elements of the X vector are real numbers (or complex with only the real part zero)
x86_64:
added further CPUID values for Intel Raptor Lake
Changes in version 0.3.22
General:
Updated the included LAPACK to Reference-LAPACK release 3.11.0 plus post-release corrections and improvements
Added a threshold for multithreading in
SYMM,SYMVandSYR2KIncreased the threshold for multithreading in
SYRKOpenBLAS no longer decreases the global
OMP_NUM_THREADSwhen it exceeds the maximum thread count the library was compiled for.fixed
?GETF2potentially returningNaNwith tiny matrix elementsfixed
openblas_set_num_threadsto work inUSE_OPENMPbuilds.fixed cpu core counting in
USE_OPENMPbuilds returning the number of OMP "places" rather than coresfixed stride calculation in the optimized small-matrix path of complex
SYRfixed building of Reference-LAPACK with recent gfortran
added new environment variable
OPENBLAS_DEFAULT_NUM_THREADSadded a GEMV-based implementation of
GEMMT
x86_64:
added autodetection of Intel Raptor Lake cpu models
added SSCAL microkernels for Haswell and newer targets
improved the performance of the Haswell DSCAL microkernel
added CSCAL and ZSCAL microkernels for SkylakeX targets
fixed detection of gfortran and Cray CCE compilers
fixed runtime selection of COOPERLAKE in
DYNAMIC_ARCHbuildsworked around gcc/llvm using risky FMA operations in CSCAL/ZSCAL
ARMV8:
fixed cross-compilation to CortexA53 with CMAKE
fixed compilation with CMAKE and "Arm Compiler for Linux 22.1"
added cpu autodetection for Cortex X3 and A715
fixed conditional compilation of SVE-capable targets in
DYNAMIC_ARCHsped up SVE kernels by removing unnecessary prefetches
improved the GEMM performance of Neoverse V1
added SVE kernels for SDOT and DDOT
added an SBGEMM kernel for Neoverse N2
improved cpu-specific compiler option selection for Neoverse cpus
added support for setting
CONSISTENT_FPCSR
6.10 munge #
munge has been updated to version 0.5.15:
Fixed systemd service unit configuration to wait until network is online.
Fixed sending repeated SIGTERMs to signal stop.
6.11 cpuid #
cpuid has been updated to version 20221201.
This update includes:
Added and updated identification of many CPU models and variants.
Updated hypervisor support.
Improved synth information and u-architecture decoding.
6.12 lmod #
lmod has been updated to version 8.7.17.
The user visible changes include:
Add option
--miniConfigto report configuration differences from default.Move cache file location from
~/.lmod.d/.cache/*to~/.cache/lmod/*Transitional support for using
~/.config/lmodfor collections. Currently collect are written to both~/.lmod.d/and~/.config/lmod.setenv and pushenv change local environment when running spider (and avail).
Allow bash users to export
SUPPORT_KSH=noso that they can avoid bash startup setting FPATHAdd
--locationoption to show to write to stderr the file location.Only rebuild spider caches if there are any loaded or pending modules.
module avail <name1> <name2> …now only prints matching aliases. Search names are resolved.Print
dataTtable when there is an Exception.New command added:
module overview.Add
spiderPathFilterhook so that sites can control what paths are kept or ignored.Added
$LMOD_SITE_MODULEPATHsupport to prepend toMODULEPATHAdd support for
sh_to_modulefileto support zsh, ksh, bash and tcsh with aliases and shell functionsSupport for source_sh added. Now support more than one shell script per modulefile.
6.13 PAPI #
PAPI has been updated to version 7.0.0.
The highlights include:
Added "intel_gpu" component with monitoring capabilities support for Intel GPUs, including GPU hardware events and memory performance metrics.
Added "sysdetect" component for detecting a machine’s architectural details. Additionally, PAPI offers a new API that enables users to get "sysdetect" details from within their application.
A major redesign of the "rocm" component for advanced monitoring features for the latest AMD GPUs. The PAPI "rocm" component is now thread-safe.
Support for NVIDIA compute capability 7.0 and greater. This implies support for CUPTI’s new Profiling and Perfworks APIs.
Significant redesign of the "sde" component into two separate entities:
a standalone library "libsde" with a new API for software developers to define software-based metrics from within their applications
the PAPI "sde" component that enables monitoring of these new software-based events.
New C++ interface for "libsde," which enables software developers to define software-defined events from within their C++ applications.
New Counter Analysis Toolkit (CAT) benchmarks and refinements of PAPI’s CAT data analysis.
Support for FUGAKU’s A64FX Arm architecture, including monitoring capabilities for memory bandwidth and other node-wide metrics. For futher details check https://bitbucket.org/icl/papi/wiki/PAPI-Releases.md
6.14 warewulf4 #
warewulf4 is a popular SLE for HPC deployment tool whose latest version is a full rewrite in the Go programming language.
It is applying lessons learned from its predecessors.
It deploys minimal images which it obtains from container images stored in a registry and performs a minimal configuration for the image to be useful as a compute node image in a cluster. warewulf4 is deprecating the former deployment tool clustduct.
Update to version 4.5.8:
Warewulf v4.5.8 simplifies the
wwinitboot process for SELinux and configures tmpfs to spread the node image across all available NUMA nodes. It also improves the detection of kernels in the container image to more reliably detect the newest available kernel and to avoid debug / rescue kernels.Warewulf v4.5.7 fixes the ability to override overlay files configured in profiles with overlays configured per-node; fixes a template processing bug bug in development-time overlay rendering; and improves the preview dracut-based boot process to better support a “secure” boot process.
added option which allows to copy in file on wwctl container exec and keep them, if they were modified.
Update to version 4.5.6 with following changes:
Show more information during
wwctl container <shell|exec>about when and if the container image will be rebuilt.Command-line completion for
wwctl overlay <edit|delete|chmod|chown>.Display an error during boot if no container is defined.
wwctl container list --kernelshows the kernel detected for each container.wwctl container list --sizeshows the uncompressed size of each container.--compressedshows the compressed size, and--chrootshows the size of the container source on the server.Add a logrotate config for
warewulfd.log.
Update to Warewulf version 4.5.0:
Disks, partitions and file systems can be set in the configuration and if ignition is present in the container, changes to the disks will be made.
Grub can be used as an alternative boot method instead of iPXE.
The grub binary is extracted from the container and shim is executed before the grub.
This enables secure boot.
wwctlhas now the genconfig subcommand which will print/create valid configurations.All paths (e.g. the overlay dir) can now be configured in
warewulf.conf.Notable bug fixes are:
Fixed a bug where profile tags were erroneously overridden by empty node values.
Fixed bug where tags from profiles weren’t rendered.
All configuration overlays now live in
/var/lib/warewulf4/overlays.The overlay templates now reside under
rootfsin each top level directory.This allows the overlays to be maintained in git repositories without risk of including git meta information into the node images.
When updating the package, an attempt will be made to move all added or modified overlay templates to this directory.
After an update, check whether
/usr/share/warewulf/overlaysstill exists and what files have remained and move these manually.Aarch64 compute nodes boot properly now (bsc#1221133).
Package Changes:
dnsmasqmay be used instead of the ISCdhcpd.Specify
dnsmasqas a package to install when installingwarewulf4:zypper in warewulf4 dnsmasq
Client configuration example templates have been moved to the package documentation.
Sub-package dependencies got fixed to avoid mixing package components from different versions.
The script generating ssh keys for users now properly identifies 1000 as the minimal user UID (boo#1221886).
6.15 Creating containers from current HPC environment #
Usually users use environment modules to adjust their environment (that is, environment variables like PATH, LD_LIBRARY_PATH, MANPATH etc.) to pick exactly the tools and libraries they need for their work.
The same can be achieved with containers by including only those components in a container that are part of this environment.
This functionality is now provided using the spack and singularity applications.
6.16 Spack #
6.16.1 v0.20.0 #
6.16.1.1 Features in this release #
requires()directive and enhanced package requirementsWe’ve added some more enhancements to requirements in Spack.
There is a new
requires()directive for packages.requires()is the opposite ofconflicts(). You can use it to impose constraints on this package when certain conditions are met. More details can be found hereExact versions
Spack did not previously have a way to distinguish a version if it was a prefix of some other version. For example,
@3.2would match3.2,3.2.1,3.2.2, etc. You can now match exactly3.2with@=3.2. This is useful, for example, if you need to patch only the3.2version of a package. The new syntax is described in the docs.Generally, when writing packages, you should prefer to use ranges like
@3.2over the specific versions, as this allows the concretizer more leeway when selecting versions of dependencies. More details and recommendations are in the packaging guide.More stable concretization
Now,
spack concretizewill only concretize the new portions of the environment and will not change existing parts of an environment unless you specify--force. This has always been true forunify:false, but not forunify:trueandunify:when_possibleenvironments. Now it is true for all of them.The concretizer has a new
--reuse-depsargument that only reuses dependencies. That is, it will always treat the roots of your environment as it would with--fresh. This allows you to upgrade just the roots of your environment while keeping everything else stable.
Specs in buildcaches can be referenced by hash.
Previously, you could run
spack buildcache listand see the hashes in buildcaches, but referring to them by hash would fail.You can now run commands like
spack specandspack installand refer to buildcache hashes directly, e.g.spack install /abc123
New package and buildcache index websites
Our public websites for searching packages have been completely revamped and updated. You can check them out here:
Package Index: https://packages.spack.io
Buildcache Index: https://cache.spack.io
Both are searchable and more interactive than before. Currently major releases are shown; UI for browsing
developsnapshots is coming soon.
Default CMake and Meson build types are now Release
Spack has historically defaulted to building with optimization and debugging, but packages like
llvmcan be enormous with debug turned on. Our default build type for all Spack packages is nowRelease. This has a number of benefits: * much smaller binaries; * higher default optimization level; and * definingNDEBUGdisables assertions, which may lead to further speedups.+ You can still get the old behavior back through requirements and package preferences.
6.16.1.2 Other new commands and directives #
spack checksumcan automatically add new versions to packagenew command:
spack pkg grepto easily search package filesNew
maintainersdirectiveAdd
spack buildcache push(alias tobuildcache create)Allow using
-jto control the parallelism of concretizationAdd
--excludeoption to `spack external find'
6.16.1.3 Other new features of note #
editing: add higher-precedence
SPACK_EDITORenvironment variableMany YAML formatting improvements from updating
ruamel.yamlto the latest version supporting Python 3.6. .Requirements and preferences should not define (non-git) versions
Environments now store spack version/commit in
spack.lockUser can specify the name of the
packagessubdirectory in repositoriesAdd container images supporting RHEL alternatives
make version(…) kwargs explicit
6.16.1.4 Notable refactors #
buildcache create: reproducible tarballs
Bootstrap most of Spack dependencies using environments
Split
satisfies(…, strict=True/False)into two functionsspack install: simplify behavior when inside environments
6.16.1.5 Removals, Deprecations, and disablements #
Module file generation is disabled by default; you’ll need to enable it to use it
Support for Python 2 was deprecated in
v0.19.0and has been removed.v0.20.0only supports Python 3.6 and higher.Deprecated target names are no longer recognized by Spack. Use generic names instead:
gravitonis nowcortex_a72graviton2is nowneoverse_n1graviton3is nowneoverse_v1
blacklistandwhitelistin module configuration were deprecated inv0.19.0and are removed in this release. Useexcludeandincludeinstead.The
ignore=parameter of theextends()directive has been removed. It was not used by any builtin packages and is no longer needed to avoid conflicts in environment views.Support for the old YAML buildcache format has been removed. It was deprecated in
v0.19.0.spack find --bootstraphas been removed. It was deprecated inv0.19.0. Usespack --bootstrap findinstead.spack bootstrap trustandspack bootstrap untrustare now removed, having been deprecated inv0.19.0. Usespack bootstrap enableandspack bootstrap disable.The
--mirror-name,--mirror-url, and--directoryoptions to buildcache and mirror commands were deprecated inv0.19.0and have now been removed. They have been replaced by positional arguments.Deprecate
env:as top level environment keydeprecate buildcache create –rel, buildcache install –allow-root
Support for very old perl-like spec format strings (e.g.,
$_$@$%@+$+$=) has been removed. This was deprecated in inv0.15.
6.16.1.6 Notable Bugfixes #
bugfix: don’t fetch package metadata for unknown concrete specs
Improve package source code context display on error
Relax environment manifest filename requirements and lockfile identification criteria
installer.py: drop build edges of installed packages by defaultBugfix: package requirements with git commits
Package requirements: allow single specs in requirement lists
conditional variant values: allow boolean
spack uninstall: follow run/link edges on –dependents
For details, check the upstream release notes.
6.16.2 A script to set LD_LIBRARY_PATH is now provided #
The command spack load <target> no longer sets the LD_LIBRARY_PATH
environment variable. Since Spack was setting this variable to all
libraries of the entire dependency stack, this has caused issues with
system programs if they use a shared library that has been rebuilt by
spack in a different way than the one provided by the system. In context
of Spack this is not considered to be an issue as any Spack- built
binary or library uses RPATH to set the location of shared libraries
they depend on. Since Spack is used to build full solution stacks
(including the final application binary this is not a problem.
If Spack is used to build a library stack for an application that is to
be built outside of Spack, this is a problem. To remedy this, we provide
the script spack_get_libs.sh. When called with a list of Spack
packages, it will print shell commands to set and export LD_LIBRARY path
prepended with with the path to the libraries from the Spack packages
listed. The default shell is bash. With the option --csh a csh
command line will be printed instead:
spack_get_libs.sh [--help] [--csh] lib ...
On bash, when the script is sourced, the environment updated directly. Additionally, the script will print settings for (or set) variables identifying include and library paths for each package of the form:
LIB_<PACKAGE_NAME>
INC_<PACKAGE_NAME><PACKAGE_NAME> denotes the package name in upper case. These variables
can be used during building.
6.16.3 v0.23.1 #
Fix a correctness issue of
ArchSpec.intersects.Make extra_attributes order independent in Spec hashing.
Fix issue where system proxy settings were not respected in OCI build caches.
Fix an issue where the
--testconcretizer flag was not forwarded correctly.Fix an issue where
codesignandinstall_name_toolwould not preserve hardlinks on Darwin.Fix an issue on Darwin where codesign would run on unmodified binaries.
Patch configure scripts generated with libtool < 2.5.4, to avoid redundant flags when creating shared libraries on Darwin.
Ensure proper UTF-8 encoding/decoding in logging.
Fix issues related
to filter_file.Fix an issue related to creating bootstrap source mirrors.
Fix an issue where command line config arguments were not always top level.
Fix an incorrect typehint of
concretized().Improve mention of next Spack version in warning. Tests: fix forward compatibility with Python 3.13.
Docs: encourage use of
--oci-username-variableand--oci-password-variable.Docs: ensure Getting Started has bootstrap list output in correct place.
6.16.4 v0.23.0 #
This is a new major release.
6.16.4.1 Features in this Release #
Spec splicing To make binary installation more seamless in Spack,
v0.23introduces “splicing”, which allows users to deploy binaries using local, optimized versions of a binary interface, even if they were not built with that interface. For example, this would allow you to build binaries in the cloud usingmpichand install them on a system using a local, optimized version ofmvapich2without rebuilding. Spack preserves full provenance for the installed packages and knows that they were built one way but deployed another. The intent is to leverage this across many key HPC binary packages, e.g. MPI, CUDA, ROCm, and libfabric. Fundamentally, splicing allows Spack to redeploy an existing spec with different dependencies than how it was built. There are two interfaces to splicing.. Explicit Splicing In the concretizer config, you can specify a target spec and a replacement by hash.
concretizer: splice: explicit: - target: mpi replacement: mpich/abcdefHere, every installation that would normally use the target spec will instead use its replacement. Above, any spec using any
mpiwill be spliced to depend on the specificmpichinstallation requested. This can go wrong if you try to replace something built with, e.g.,openmpiwithmpich, and it is on the user to ensure ABI compatibility between target and replacement specs. This currently requires some expertise to use, but it will allow users to reuse the binaries they create across more machines and environments. . Automatic Splicing (experimental) In the concretizer config, enable automatic splicing:concretizer: splice: automatic: trueor run:
spack config add concretizer:splice:automatic:true
The concretizer will select splices for ABI compatibility to maximize package reuse. Packages can denote ABI compatibility using the
can_splicedirective. No packages in Spack yet use this directive, so if you want to use this feature you will need to addcan_spliceannotations to your packages. We are working on ways to add more ABI compatibility information to the Spack package repository, and this directive may change in the future.Further documentation: https://spack.readthedocs.io/en/latest/build_settings.html#splicing https://spack.readthedocs.io/en/latest/packaging_guide.html#specifying-abi-compatibility
Broader variant propagation You can specify propagated variants like
hdf5 build_type==RelWithDebInfoortrilinos ++openmpto propagate a variant to all dependencies for which it is relevant. This is valid even if the variant does not exist on the package or its dependencies. See https://spack.readthedocs.io/en/latest/basic_usage.html#variants.Query specs by namespace Allow a package’s namespace (indicating the repository it came from) to be treated like a variant. You can request packages from particular repos like this:
spack find zlib namespace=builtin spack find zlib namespace=myrepo
Previously, the spec syntax only allowed namespaces to be prefixes of spec names, e.g.
builtin.zlib. The previous syntax still works.spack specrespects environment settings andunify:truespack specdid not previously respect environment lockfiles or unification settings, which made it difficult to see exactly how a spec would concretize within an environment. Now it does, so the output you get withspack specwill be the same as what your environment will concretize to when you runspack concretize. Similarly, if you provide multiple specs on the command line withspack spec, it will concretize them together ifunify:trueis set.Less noisy
spack specoutputspack specpreviously showed output like this:> spack spec /v5fn6xo Input spec -------------------------------- - /v5fn6xo Concretized -------------------------------- [+] openssl@3.3.1%apple-clang@16.0.0~docs+shared arch=darwin-sequoia-m1 ...
But the input spec is redundant, and we know we run
spack specto concretize the input spec.spack specnow only shows the concretized spec.Better output for
spack find -cIn an environment,spack find -clets you search the concretized, but not yet installed, specs, just as you would the installed ones. As withspack spec, this should make it easier for you to see what will be built before building and installing it.spack -C <env>: use an environment’s configuration without activation Spack environments allow you to associate:a set of (possibly concretized) specs, and
configuration When you activate an environment, you’re using both of these.
Previously, we supported:
spack -e <env>to run spack in the context of a specific environment, andspack -C <directory>to run spack using a directory with configuration files.
You can now also pass an environment to
spack -Cto use only the environment’s configuration, but not the specs or lockfile.
6.16.4.2 New commands, options, and directives #
The new
spack env trackcommand takes a non-managed Spack environment and adds a symlink to Spack’s$environments_rootdirectory, so that it will be included for reference counting for commands likespack uninstallandspack gc. If you use free-standing directory environments, this is useful for preventing Spack from removing things required by your environments. You can undo this tracking with thespack env untrackcommand.Add
-tshort option forspack --backtracespack -d / --debugenables backtraces on error, but it can be very verbose, and sometimes you just want the backtrace.spack -t / --backtraceprovides that option.gc: restrict to specific specs If you only want to garbage-collect specific packages, you can now provide them on the command line. This gives users finer-grained control over what is uninstalled.oci buildcaches now support
--only=package. You can now push just a package and not its dependencies to an OCI registry. This allows dependents of non-redistributable specs to be stored in OCI registries without an error.
6.16.4.3 Highlighted bugfixes #
Externals no longer override the preferred provider. External definitions could interfere with package preferences. Now, if
openmpiis the preferredmpi, and an externalmpichis defined, a newopenmpiwill be built if building it is possible. Previously we would prefermpichdespite the preference.Composable
cflags. This release fixes a longstanding bug that concretization would fail if there were differentcflagsspecified inpackages.yaml,compilers.yaml, or ontheCLI. Flags and their ordering are now tracked in the concretizer and flags from multiple sources will be merged.Fix concretizer Unification for included environments.
6.16.4.4 Deprecations, removals, and syntax changes #
The old concretizer has been removed from Spack, along with the
config:concretizerconfig option. Spack will emit a warning if the option is present in user configuration, since it now has no effect. Spack now uses a simpler bootstrapping mechanism, where a JSON prototype is tweaked slightly to get an initial concrete spec to download.Best-effort expansion of spec matrices has been removed. This feature did not work with the “new” ASP-based concretizer, and did not work with
unify: Trueorunify: when_possible. Use the exclude key for the environment to exclude invalid components, or use multiple spec matrices to combine the list of specs for which the constraint is valid and the list of specs for which it is not.The old Cray
platform(based on Cray PE modules) has been removed, andplatform=crayis no longer supported. Sincev0.19, Spack has handled Cray machines like Linux clusters with extra packages, and we have encouraged using this option to support Cray. The new approach allows us to correctly handle Cray machines with non-SLES operating systems, and it is much more reliable than making assumptions about Cray modules. See thev0.19release notes for more details.The
config:install_missing_compilersconfig option has been deprecated, and it is a no-op when set inv0.23. Our new compiler dependency model will replace it with a much more reliable and robust mechanism inv1.0.Config options that deprecated in
v0.21have been removed inv0.23. You can now only specify preferences forcompilers,targets, andprovidersglobally via thepackages:all:section. Similarly, you can only specifyversions:locally for a specific package.Spack’s old test interface has been removed, having been deprecated in
v0.22.0. Allbuiltinpackages have been updated to use the new interface. See the stand-alone test documentationThe
spack versions --safe-onlyoption, deprecated sincev0.21.0, has been removed.The
--dependenciesand--optimizearguments tospack cihave been deprecated.
6.16.4.5 Binary caches #
Public binary caches now include an ML stack for Linux/aarch64. We now build an ML stack for Linux/aarch64 for all pull requests and on develop. The ML stack includes both CPU-only and CUDA builds for Horovod, Hugging Face, JAX, Keras, PyTorch, scikit-learn, TensorBoard, and TensorFlow, and related packages. The CPU-only stack also includes XGBoost. See https://cache.spack.io/tag/develop/?stack=ml-linux-aarch64-cuda.
6.16.4.6 Architecture support #
archspec has been updated to
v0.2.5, with support forzen5.Spack’s CUDA package now supports the Grace Hopper
9.0acompute capability.
6.16.4.7 Other notable changes #
Bugfix:
spack find -xin environments.Spec splices are now robust to duplicate nodes with the same name in a spec.
Cache per-compiler libc calculations for performance.
Fixed a bug in external detection for openmpi.
Mirror configuration allows username/password as environment variables.
Default library search caps maximum depth/
Unify interface for
spack specandspack solvecommands.Spack no longer RPATHs directories in the default library search path.
Improved performance of Spack database.
Enable package reuse for packages with versions from git refs.
Improved tracking of task queueing/requeueing in the installer.
6.16.5 v0.22.2 #
6.16.5.1 Bugfixes #
Forward compatibility with Spack 0.23 packages with language dependencies.
Forward compatibility with
urllibfrom Python 3.12.6+.Bump vendored
archspecfor better aarch64 support.Fix regression in
\\{variants.X}and\\{variants.X.value}format strings.Ensure shell escaping of environment variable values in load and activate commands.
Fix an issue where
spec[pkg]considers specs outside the current DAG.Do not halt concretization on unknown variants in externals.
Improve validation of
developconfig section/Explicitly disable
ccacheif turned off in config, to avoid cache pollution.Improve backwards compatibility in
include_concrete.Fix issue where package tags were sometimes repeated.
Make
setup-env.sh“sourced only” by dropping execution bits.Make certain source/binary fetch errors recoverable instead of a hard error.
Remove debug statements in package hash computation.
Remove redundant clingo warnings.
Remove hard-coded layout version.
Do not initialize previous store state in
use_store.
6.16.5.2 Package updates #
chapelmajor update/
6.16.6 v0.22.1 #
6.16.6.1 Bug Fixes #
Fix reuse of externals on Linux.
Ensure parent gcc-runtime version >= child.
Ensure the latest gcc-runtime is rpath’ed when multiple exist among link deps.
Improve version detection of glibc.
Improve heuristics for solver.
Make strong preferences override reuse.
Reduce verbosity when C compiler is missing.
Make missing ccache executable an error when required.
Make every environment view containing
pythonavenv.Fix external detection for compilers with os but no target.
Fix version optimization for roots.
Handle common implementations of pagination of tags in OCI build caches.
Apply fetched patches to develop specs.
Avoid Windows wrappers for filesystem utilities on non-Windows.
Fix formatting issue in
spack audit.
6.16.6.2 Package updates #
Require libiconv for iconv. Notice that glibc/musl also provide iconv, but are not guaranteed to be complete. Set
packages:iconv:require:[glibc]to restore the old behavior.protobuf: fix 3.4:3.21 patch checksum.
protobuf: update hash for patch needed when=“@3.4:3.21”.
git: bump v2.39 to 2.45; deprecate unsafe versions.
gcc: use
-rpath \{rpath_dir}not-rpath=\\{rpath dir}.Remove mesa18 and libosmesa.
Enforce consistency of
glproviders.py-matplotlib: qualify when to do a post install.
rust: fix v1.78.0 instructions.
suite-sparse: improve setting of the libs property.
netlib-lapack: provide blas and lapack together.
6.17 Slurm #
6.17.1 Deprecation of old Versions of Slurm #
SLE receives a new Slurm version for roughly every second upstream release. To facilitate this, old version of Slurm will go out of maintenance successively. Users of these versions are encouraged to migrate to a later version before the expiry date. Note, that Slurm only allows migration two versions upwards without loss of data. To migrate to the latest version, migrations to intermedite versions may be required.
Once Slurm versions are out of maintenance, updates to to packages depending
on this Slurm version will no longer be provided. In particular, this will
be the case for pdsh-slurm - the Slurm plugin to Pdsh. Note that
pdsh-slurm is compatible to the Slurm initially shipped with a
product/service pack) while packages pdsh-slurm_<slurm_version> is
compatible with an upgade version of Slurm.
Table 1: Table Sunset Schedule for Slurm #
Slurm Version | Released for Service Pack | Support End Date |
17.02 | SLE-12-SP2 | May 2024 |
18.08 | SLE-15-SP1 and older | October 2024 |
20.02 | SLE-15-SP2 and older | Januar 2025 |
20.11 | SLE-15-SP3/4 and older | January 2026 |
22.05 | SLE-15-SP4 and older | December 2026 |
23.02 | SLE-15-SP5/6 and older | January 2028 |
6.17.2 Slurm 24.11 #
6.17.2.1 Important Notes on Upgrading Slurm from a Previous Version #
Slurm can be upgraded from version 23.02, 23.11 or 24.05 to version 24.11 without loss of jobs or other state information. Upgrading directly from an earlier version of Slurm will result in loss of state information.
IMPORTANT NOTES: If using the slurmdbd (Slurm DataBase Daemon) you must update this first.
The 24.11 slurmdbd will work with Slurm daemons of version 23.02 and above.
You will not need to update all clusters at the same time, but it is very important to update slurmdbd first and having it running before updating any other clusters making use of it.
Note
If using a backup DBD you must start the primary first to do any database conversion, the backup will not start until this has happened.
All SPANK plugins must be recompiled when upgrading from any Slurm version prior to 24.11.
6.17.2.2 Highlights #
Add report AccountUtilizationByQOS to sreport.
AccountUtilizationByUseris able to be filtered by QOS.Add autodetected gpus to the output of
slurmd -CAdd ability to submit jobs with multiple QOS. These are sorted by priority highest being the first.
Removed the instant on feature from
switch/hpe_slingshot.slurmctld- Changed incoming RPC handling to dedicated thread pool with asynchronous handling of I/O that can be configured viaconmgr_*entries underSlurmctldParametersinslurm.conf.
6.17.2.3 Configuration File Changes (see appropriate man page for details) #
Add
SchedulerParameters=bf_allow_magnetic_slotoption. It allows jobs in magnetic reservations to be planned by backfill scheduler.Add
TopologyParam=TopoMaxSizeUnroll=#to allow--nodes=<min>-<max>fortopology/block.Add
DataParserParametersslurm.confparameter to allow setting default value for CLI--jsonand--yamlarguments.Hardware collectives in
switch/hpe_slingshotnow requiresenable_stepmgr.Added connection related parameters to
slurm.confunderSlurmctldParameters:
conmgr_max_connections: Defaults to 150 connections.conmgr_threads: Defaults to 64 threads for slurmctld.conmgr_use_poll: Defaults is to use epoll in Linux.conmgr_connect_timeout: Defaults toMessageTimeout.conmgr_read_timeout: Defaults toMessageTimeout.conmgr_wait_write_delay: Defaults toMessageTimeout.conmgr_write_timeout: Defaults to MessageTimeout.Add
SlurmctldParamters=ignore_constraint_validationto ignoreconstraint/featurevalidation at submission.Add
SchedulerParameters=bf_topopt_enableoption to enable experimental hook to control backfill.
6.17.2.4 Command Changes (see man pages for details) #
Remove srun
--cpu-bind=rank.Add
"%b"as a file name pattern for the array task id modulo 10.sacct- Respect--noheaderfor--batch-scriptand--env-vars.Add
sacctmgr pingcommand to query status ofslurmdbd.sbcast- Add--nodelistoption to specify where files are transmitted tosbcast- Add--no-allocationoption to transmit files to nodes outside of a job allocation.slurmdbd- Add-uoption. This is used to determine if restarting the DBD will result in database conversion.Remove
salloc --get-user-env.scontrol- Add--json/--yamlsupport tolistpids.scontrol- Addliststeps.scontrol- Addlistjobs.scontrol show topo- Show aggregated block sizes when using topology/block.
6.17.2.5 API Changes #
Remove
burst_buffer/luacallslurm.job_info_to_string().job_submit/lua- Addassoc_qosattribute tojob_descto display all potential QOS’s for a job’s association.job_submit/lua- Addslurm.get_qos_priority()function to retrieve the given QOS’s priority.
6.17.2.6 SLURMRESTD CHANGES #
Removed fields deprecated in the Slurm-23.11 release from v0.0.42 endpoints.
Removed v0.0.39 plugins.
Set
data_parser/v0.0.42+prefer_refsflag to default.Add
data_parser/v0.0.42+minimize_refsflag to inline single referenced schemas in the OpenAPI schema to get default behavior ofdata_parser/v0.0.41.Rename v0.0.42
JOB_INFOfieldminimum_switchestorequired_switchesto reflect the actual behavior.Rename v0.0.42
ACCOUNT_CONDITIONfieldassocationtoassociation(typo).Tag
slurmdb/v0.0.42/jobs pidfield deprecated.
Also Check slurm 24.11 changelog for further details.
6.17.2.7 Update to version 24.11.1 #
With client commands
MIN_MEMORYwill showmem_per_tresif specified.Fix errno message about bad constraint.
slurmctld- Fix crash and possible split brain issue if the backup controller handles an scontrol reconfigure while in control before the primary resumes operation.Fix
stepmgrnot getting dynamic node addrs from the controller.stepmgr- avoidUnexpected missing socketerrors.Fix
scontrol show stepswith dynamic stepmgr.Deny jobs using the
R:option of--signalifPreemptMode=OFFglobally.Force jobs using the
R:option of--signalto be preemptable by requeue or cancel only. IfPreemptModeon the partition or QOS is off or suspend, the job will default to usingPreemptMode=cancel.If
--mem-per-cpuexceedsMaxMemPerCPU, the number of CPUs per task will always be increased even if--cpus-per-taskwas specified. This is needed to ensure each task gets the expected amount of memory.Fix compilation issue on openSUSE Leap 15.
Fix jobs using more nodes than needed when not using
-N.Fix issue with allocation being allocated less resources than needed when using
--gres-flags=enforce-binding.select/cons_tres- Fix errors withMaxCpusPerSocketpartition limit. Used CPUs/cores weren’t counted properly, nor limiting free ones to avail, when the socket was partially allocated, or the job request went beyond this limit.Fix issue when jobs were preempted for licenses even if there were enough licenses available.
Fix
srunntaskscalculation inside an allocation when nodes are requested using a min-max range.Print correct number of digits for
TmpDiskinsdiag.Fix a regression in 24.11 which caused file transfers to a job with sbcast to not join the job container namespace.
data_parser/v0.0.40- Prevent a segfault in theslurmrestdwhen dumping data with v0.0.40+complex data parser.Remove logic to force lowercase GRES names.
data_parser/v0.0.42- Prevent the association id from always being dumped as NULL when parsing in complex mode. Instead it will now dump the id. This affects the following endpoints:GET slurmdb/v0.0.42/associationGET slurmdb/v0.0.42/associationsGET slurmdb/v0.0.42/configFixed a job requeuing issue that merged job entries into the same SLUID when all nodes in a job failed simultaneously.
When a job completes, try to give idle nodes to reservations with the
REPLACEflag before allowing them to be allocated to jobs.Avoid expensive lookup of all associations when dumping or parsing for v0.0.42 endpoints.
Avoid expensive lookup of all associations when dumping or parsing for v0.0.41 endpoints.
Avoid expensive lookup of all associations when dumping or parsing for v0.0.40 endpoints.
Fix segfault when testing jobs against nodes with invalid gres.
Fix performance regression while packing larger RPCs.
job_container/tmpfs- Fix Xauthority file being created outside the container whenEntireStepInNSis enabled.job_container/tmpfs- Fixspank_task_post_forknot always running in the container whenEntireStepInNSis enabled.Fix a job potentially getting stuck in CG on permissions errors while setting up X11 forwarding.
Fix error on X11 shutdown if Xauthority file was not created.
slurmctld- Fix memory or fd leak if an RPC is received that is not registered for processing.Inject
OMPI_MCA_orte_precondition_transportswhen using PMIx. This fixes mpi apps using Intel OPA, PSM2 and OMPI 5.x when run throughsrun.Don’t skip the first
partition_job_depthjobs per partition.Fix gres allocation issue after controller restart.
Fix issue where jobs requesting CPUs-per-GPU hang in queue.
switch/hpe_slingshot- Treat HTTP status forbidden the same as unauthorized, allowing for a graceful retry attempt.Package fixes: Slurmdbd no longer starts as root so that the systemd
RuntimeDirectoryoption works properly. This requires further adjustments:
Use
/run/slurmdbdas directory for PID file. This is created when slurmdbd starts byRuntimeDirectory=slurmdbdin the systemd service file (boo#1236928).Upon installation, create empty
/var/log/slurmdbd.logowned by user slurm as slurmdbd is not able to create it (boo#1236929).
6.17.3 Slurm 23.02 #
6.17.3.1 Important Notes on Upgrading Slurm from a Previous Version #
If using the slurmdbd (Slurm DataBase Daemon) you must update this first.
If using a backup DBD you must start the primary first to do any database conversion, the backup will not start until this has happened.
The 23.02 slurmdbd will work with Slurm daemons of version 21.08 and above.
You will not need to update all clusters at the same time, but it is very
important to update slurmdbd first and having it running before updating
any other clusters making use of it.
Slurm can be upgraded from version 22.05 to version 23.02 without loss of jobs or other state information. Upgrading directly from an earlier version of Slurm will result in loss of state information.
All SPANK plugins must be recompiled when upgrading from any Slurm version
prior to 23.02.
Note
PMIx v1.x is no longer supported.
6.17.3.2 Highlights #
slurmctld- Add new RPC rate limiting feature. This is enabled throughSlurmctldParameters=rl_enable, otherwise disabled by default.Make
scontrolreconfigure and sending aSIGHUPto theslurmctldbehave the same. If you were usingSIGHUPas a 'lighter' scontrol reconfigure to rotate logs please update your scripts to use SIGUSR2 instead.Change cloud nodes to show by default.
PrivateData=cloudis no longer needed.sreport- Count planned (FKA reserved) time for jobs running inIGNORE_JOBSreservations. Previously was lumped intoIDLEtime.job_container/tmpfs- Support running with an arbitrary list of private mount points (/tmpand/dev/shmare the default, but not required).job_container/tmpfs- Set more environment variables inInitScript.Make all cgroup directories created by Slurm owned by root. This was the behavior in cgroup/v2 but not in cgroup/v1 where by default the step directories ownership were set to the user and group of the job.
accounting_storage/mysql- change purge/archive to calculate record ages based on end time, rather than start or submission times.job_submit/lua- add support forlog_user()fromslurm_job_modify().Run the following scripts in slurmscriptd instead of
slurmctld:ResumeProgram,ResumeFailProgram,SuspendProgram,ResvProlog,ResvEpilog, andRebootProgram(only withSlurmctldParameters=reboot_from_controller).Only permit changing log levels with
srun --slurmd-debugby root orSlurmUser.slurmctldwillfatal()when reconfiguring thejob_submitplugin fails.Add PowerDownOnIdle partition option to power down nodes after nodes become idle.
Add “[jobid.stepid]” prefix from
slurmstepdand “slurmscriptd” prefix fromslurmcriptdto Syslog logging. Previously was only happening when logging to a file.Add purge and archive functionality for job environment and job batch script records.
Extend support for Include files to all "configless" client commands.
Make node weight usable for powered down and rebooting nodes.
Add “Extra” field to job to store extra information other than a comment.
Add usage gathering for AMD (requires ROCM 5.5+) and NVIDIA gpus.
Add job’s allocated nodes, features, oversubscribe, partition, and reservation to
SLURM_RESUME_FILEoutput for power saving.Automatically create directories for stdout/stderr output files. Paths may use
%jand related substitution characters as well.Add
--tres-per-tasktosalloc/sbatch/srun.Allow
nodefeaturesplugin features to work with cloud nodes. e.g. - Powered down nodes have no active changeable features.Nodes can’t be changed to other active features until powered down.
Active changeable features are reset/cleared on power down.
Make
slurmstepdcgroups constrained by total configured memory fromslurm.conf(NodeName=<> RealMemory=#) instead of total physical memory.node_features/helpers- add support for the OR and parentheses operators in a--constraintexpression.slurmctldwillfatal()when [Prolog|Epilog]Slurmctld are defined but are not executable.Validate node registered active features are a super set of node’s currently active changeable features.
On clusters without any
PrologFlagsoptions, batch jobs with failed prologs nolonger generate an output file.Add
SLURM_JOB_START_TIMEandSLURM_JOB_END_TIMEenvironment variables.Add
SuspendExcStatesoption toslurm.confto avoid suspending/powering down specific node states.Add support for DCMI power readings in IPMI plugin.
slurmrestdserved/slurm/v0.0.39and/slurmdb/v0.0.39endpoints had major changes from prior versions. Almost all schemas have been renamed and modified. Sites using OpenAPI Generator clients are highly suggested to upgrade to to using atleast version 6.x due to limitations with prior versions.Allow for
--nodelistto contain more nodes than required by--nodes.Rename “nodes” to “nodes_resume” in
SLURM_RESUME_FILEjob output.Rename “all_nodes” to “all_nodes_resume” in
SLURM_RESUME_FILEoutput.Add
jobcomp/kafkaplugin.Add new
PreemptParameters=reclaim_licensesoption which will allow higher priority jobs to preempt jobs to free up used licenses. (This is only enabled for withPreemptModesofCANCELandREQUEUE, as Slurm cannot guarantee suspended jobs will release licenses correctly.)hpe/slingshot- add support for the instant-on feature.Add ability to update
SuspendExc*parameters withscontrol.Add ability to restore
SuspendExc*parameters on restart withslurmctld -Roption.Add ability to clear a GRES specification by setting it to "0" via “scontrol update job”.
Add
SLURM_JOB_OVERSUBSCRIBEenvironment variable forEpilog,Prolog,EpilogSlurmctld,PrologSlurmctld, and mail ouput.System node down reasons are appended to existing reasons, separated by ':'.
New command scrun has been added. scrun acts as an Open Container Initiative (OCI) runtime proxy to run containers seamlessly via Slurm.
Fixed
GpuFreqDefoption. When set inslurm.conf, it will be used if--gpu-freqwas not explicitly set by the job step.
6.17.3.3 Configuration File Changes (see appropriate man page for details) #
job_container.conf- Added “Dirs” option to list desired private mount points.node_featuresplugins - invalid users specified forAllowUserBootwill now result infatal()rather than just an error.MinKmemSpace.Allow jobs to queue even if the user is not in
AllowGroupswhenEnforcePartLimits=nois set. This ensures consistency for all the Partition access controls, and matches the documented behavior forEnforcePartLimits.Add
InfluxDBTimeoutparameter toacct_gather.conf.job_container/tmpfs- add support for expanding%hand%ninBasePath.slurm.conf- RemovedSlurmctldPlugstackoption.Add new
SlurmctldParameters=validate_nodeaddr_threads=<number>option to allow concurrent hostname resolution atslurmctldstartup.Add new
AccountingStoreFlags=job_extraoption to store a job’s extra field in the database.Add new “defer_batch” option to
SchedulerParametersto only defer scheduling for batch jobs.Add new
DebugFlagsoption “JobComp” to replace “Elasticsearch”.Add configurable job requeue limit parameter -
MaxBatchRequeue- inslurm.confto permit changes from the old hard-coded value of 5.helpers.conf- Allow specification of node specific features.helpers.conf- Allow many features to one helper script.job_container/tmpfs- Add “Shared” option to support shared namespaces. This allows autofs to work with thejob_container/tmpfsplugin when enabled.acct_gather.conf- AddedEnergyIPMIPowerSensors=Node=DCMIandNode=DCMI_ENHANCED.Add new “getnameinfo_cache_timeout=<number>” option to CommunicationParameters to adjust or disable caching the results of
getnameinfo().Add new PrologFlags=ForceRequeueOnFail option to automatically requeue batch jobs on Prolog failures regardless of the job --requeue setting.
Add
HealthCheckNodeState=NONDRAINED_IDLEoption.Add “explicit” to Flags in
gres.conf. This makes it so the gres is not automatically added to a job’s allocation when--exclusiveis used. Note that this is a per-node flag.Moved the “preempt_” options from
SchedulerParameterstoPreemptParameters, and dropped the prefix from the option names. (The old options will still be parsed for backwards compatibility, but are now undocumented.)Add
LaunchParameters=ulimit_pam_adopt, which enables settingRLIMIT_RSSin adopted processes.Update SwitchParameters=job_vni to enable/disable creating job VNIs for all jobs, or when a user requests them.
Update
SwitchParameters=single_node_vnito enable/disable creating single node VNIs for all jobs, or when a user requests them.Add ability to preserve
SuspendExc*parameters on reconfig withReconfigFlags=KeepPowerSaveSettings.slurmdbd.conf- Add newAllResourcesAbsoluteto force all new resources to be created with theAbsoluteflag.topology/tree- Add newTopologyParam=SwitchAsNodeRankoption to reorder nodes based on switch layout. This can be useful if the naming convention for the nodes does not natually map to the network topology.Removed the default setting for
GpuFreqDef. If unset, no attempt to change the GPU frequency will be made if--gpu-freqis not set for the step.
6.17.3.4 Command Changes (see man pages for details) #
sacctmgr- no longer force updates to theAdminComment,Comment, orSystemCommentto lower-case.sinfo- Add-F/--futureoption to sinfo to display future nodes.sacct- Rename “Reserved” field to “Planned” to match sreport and the nomenclature of the 'Planned' node.scontrol- advanced reservation flagMAINTwill no longer replace nodes, similar toSTATIC_ALLOCsbatch- add parsing for#PBS -dand#PBS -w.scontrolshowassoc_mgrwill show username(uid) instead of uid in QoS section.Add
strigger --drainingand-R/--resumeoptions.Change
--oversubscribeand--exclusiveto be mutually exclusive for job submission. Job submission commands will now fatal if both are set. Previously, these options would override each other, with the last one in the job submission command taking effect.scontrol- RequestedTRESand allocatedTRESwill now always be printed when showing jobs, instead of oneTRESoutput that was either the requested or allocated.srun --ntasks-per-corenow applies to job and step allocations. Now, use of--ntasks-per-core=1implies--cpu-bind=coresand--ntasks-per-core>1implies--cpu-bind=threads.salloc/sbatch/srun- Check and abort if ntasks-per-core > threads-per-core.scontrol- AddResumeAfter=<secs>option to “scontrol update nodename=”.Add a new “nodes=” argument to
scontrol setdebugto allow the debug level on theslurmdprocesses to be temporarily altered.Add a new “nodes=” argument to “scontrol setdebugflags” as well.
Make it so
scrontabprints client-side thejob_submit()error messsage (which can be set i.e. by using thelog_user()function for the lua plugin).scontrol- Reservations will not be allowed to haveSTATIC_ALLOCorMAINTflags andREPLACE[_DOWN]flags simultaneously.scontrol- Reservations will only accept one reoccurring flag when being created or updated.scontrol- A reservation cannot be updated to be reoccurring if it is already a floating reservation.squeue- removed unused “%s” and “SelectJobInfo” formats.squeue- align print format for exit and derived codes with that of other components (<exit_status>:<signal_number>).sacct- Add--arrayoption to expand job arrays and display array tasks on separate lines.Partial support for “--json” and “--yaml” formated outputs have been implemented for
sacctmgr,sdiag,sinfo,squeue, andscontrol. The resultant data ouput will be filtered by normal command arguments. Formatting arguments will continue to be ignored.salloc/sbatch/srun- extended the--nodessyntax to allow for a list of valid node counts to be allocated to the job. This also supports a "step count" value (e.g.,--nodes=20-100:20is equivalent to--nodes=20,40,60,80,100) which can simplify the syntax when the job needs to scale by a certain "chunk" size.srun- add user requestible vnis with “--network=job_vni” option.srun- add user requestible single node VNIs with the “--network=single_node_vni” option.
6.17.3.5 API Changes #
job_containerplugins -container_p_stepd_create()function signature replaceduint32_tuid withstepd_step_rec_t*step.gresplugins -gres_g_get_devices()function signature replacedpid_tpid withstepd_step_rec_t*step.cgroupplugins -task_cgroup_devices_constrain()function signature removedpid_tpid.taskplugins - replacetask_p_pre_set_affinity(),task_p_set_affinity(), andtask_p_post_set_affinity()withtask_p_pre_launch_priv()like it was back in slurm 20.11.Allow for concurrent processing of
job_submit_g_submit()andjob_submit_g_modify()calls. If your plugin is not capable of concurrent operation you must add additional locking within your plugin.Removed return value from
slurm_list_append().The
ListandListIteratortypes have been removed in favor oflist_tandlist_itr_trespectively.burst bufferplugins - addbb_g_build_het_job_script().bb_g_get_status()- added authenticated UID and GID.bb_g_run_script()- addedjob_infoargument.burst_buffer.lua- Pass UID and GID to most hooks. Passjob_info(detailed job information) to many hooks. Seeetc/burst_buffer.lua.examplefor a complete list of changes. WARNING: Backwards compatibility is broken forslurm_bb_get_status: UID and GID are passed before the variadic arguments. If UID and GID are not explicitly listed as arguments toslurm_bb_get_status(), then they will be included in the variadic arguments. Backwards compatibility is maintained for all other hooks because the new arguments are passed after the existing arguments.node_featuresplugins -node_features_p_reboot_weight()function removed.node_features_p_job_valid()- added parameterfeature_list.node_features_p_job_xlate()- added parametersfeature_listandjob_node_bitmap.New
data_parserinterface with v0.0.39 plugin.
6.17.3.6 Known Issues #
The
--uidoption for thesruncommand is broken: its use may lead to the error messagejob <job ID> queued and waiting for resources. This does not, however, affect thesbatchcommand.
6.17.3.7 Removals and Deprecations #
Removed
launchplugin.openapi/[db]v0.0.36- plugins have been removed.squeue- removed--array-uniqueoption.Deprecate
AllowedKmemSpace,ConstrainKmemSpace,MaxKmemPercent, andMinKmemSpace.openapi/[db]v0.0.37- tagged as deprecated.
7 Removed and deprecated features and packages #
This section lists features and packages that were removed from SUSE Linux Enterprise for High-Performance Computing or will be removed in upcoming versions.
dapl,rds-tools, andimgenare being deprecated due to lack of upstream activity.openmpi2 andopenmpi3 are being deprecated due to being replaced byopenmpi4.
7.1 Removed features and packages #
The following features and packages have been removed in this release.
Python 2 bindings for
gendershas been removed. These are now provided for Python 3.
Ganglia is not supported anymore in 15 SP5. It has been replaced with Grafana (https://grafana.com/)
Due to a lack of usage by customers, some library packages have been removed from the HPC module in SLE HPC 15 SP5. On SUSE Linux Enterprise you can build your own library using
spack. These libraries will continue to be available through SUSE Package Hub. The following libraries have been removed:boostadiosgslfftw3hypremetismumpsnetcdfocrpetscptscotchscalapacksuperlutrilinos
7.2 Deprecated features and packages #
The following features and packages are deprecated and will be removed in a future version of SUSE Linux Enterprise for High-Performance Computing.
clustductis deprecated and will be removed in SUSE Linux Enterprise for High-Performance Computing 15 SP6. With SLE HPC 15 SP5,warewulf4has been introduced as cluster deployment tool, and users are advised to migrate to it.
8 Obtaining source code #
This SUSE product includes materials licensed to SUSE under the GNU General Public License (GPL). The GPL requires SUSE to provide the source code that corresponds to the GPL-licensed material. The source code is available for download at https://www.suse.com/download/sle-hpc/ on Medium 2. For up to three years after distribution of the SUSE product, upon request, SUSE will mail a copy of the source code. Send requests by e-mail to sle_source_request@suse.com. SUSE may charge a reasonable fee to recover distribution costs.
9 Legal notices #
SUSE makes no representations or warranties with regard to the contents or use of this documentation, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, SUSE reserves the right to revise this publication and to make changes to its content, at any time, without the obligation to notify any person or entity of such revisions or changes.
Further, SUSE makes no representations or warranties with regard to any software, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, SUSE reserves the right to make changes to any and all parts of SUSE software, at any time, without any obligation to notify any person or entity of such changes.
Any products or technical information provided under this Agreement may be subject to U.S. export controls and the trade laws of other countries. You agree to comply with all export control regulations and to obtain any required licenses or classifications to export, re-export, or import deliverables. You agree not to export or re-export to entities on the current U.S. export exclusion lists or to any embargoed or terrorist countries as specified in U.S. export laws. You agree to not use deliverables for prohibited nuclear, missile, or chemical/biological weaponry end uses. Refer to https://www.suse.com/company/legal/ for more information on exporting SUSE software. SUSE assumes no responsibility for your failure to obtain any necessary export approvals.
Copyright © 2010-2026 SUSE LLC.
This release notes document is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License (CC-BY-ND-4.0). You should have received a copy of the license along with this document. If not, see https://creativecommons.org/licenses/by-nd/4.0/.
SUSE has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed at https://www.suse.com/company/legal/ and one or more additional patents or pending patent applications in the U.S. and other countries.
For SUSE trademarks, see the SUSE Trademark and Service Mark list (https://www.suse.com/company/legal/). All third-party trademarks are the property of their respective owners.