ECMWF updated the default versions of its software packages and libraries used on Atos HPCF and ECS as part of the regular update cycle.

When?

The changes took place on Wednesday 21 May 2025 10:00 UTC

Do I need to do anything?

We strongly recommend you test that your programs, scripts and suites work with the new versions of any software or library affected before the change happens.

Table of contents

Highlights

Python 3.12 becomes default

For our Python users, we now offer a more recent version of Python 3.12 with the usual extra modules found on the previous default 3.11. It features new versions of many extras, like NumPy version 2 and the latest earthkit stack.

Note that new versions of other packages with python bindings may only come with support for the new Python 3.12.

You can check all the extra packages included in this installation with:

module help python3/may25

ECMWF software improvements

There have been a number of improvements and changes in our ECMWF software and libraries since our last default change in November 2024. See the blog posts for all the software releases since then to learn about what is new in ecCodes, Magics or Metview.

ecCodes changes encoding for certain GRIB2 parameters and other changes

Since version 2.28.0, ecCodes has changed the way it encodes certain GRIB2 parameters, in preparation for our Migration to GRIB edition 2. The complete list can be found in Migration to GRIB2 - new in ecCodes . If you encode those particular GRIB2 fields with a more recent ecCodes version, you will not be able to decode them properly with an older ecCodes. We strongly recommend to make sure all your production chain uses an up-to-date ecCodes version for best results.

There has been changes in parameters representing statistical processing in time of an existing parameter with a new structure to streamline and unify statistically processed parameters. 

Additionally, from version 2.40.0, encoding a constant field now sets the binary scale factor to zero and 

  • The following C API functions have been removed:
    • codes_context_set_memory_proc
    • codes_context_set_persistent_memory_proc
    • codes_context_set_buffer_memory_proc
  • GRIB: Encoding a constant field now sets the binary scale factor to zero. See ECC-2012
  • The following C API functions are deprecated and will be removed in a future release:

    codes_string_list* codes_grib_util_get_param_id(const char* mars_param);
    codes_string_list* codes_grib_util_get_mars_param(const char* param_id);

  • The CMake option ENABLE_TIMER is deprecated and will be removed in the next release.
  • bufr_dump will fail if an unknown descriptor is encountered.

See ecCodes Latest news for more information.

A lot of other bugfixes and improvements

All the new versions, both ECMWF and 3rd Party, come with a number of bug fixes and improvements. You may see the change logs and news for any individual package or library in the list below if you want to have all the details.

How to use the new versions for testing BEFORE the update

Users are strongly encouraged to test their software applications and data processing chain with the new versions of the various software packages before the date of the change to the default versions.

The new versions of the software packages can be selected by using the may25 tag in modules. For example:

module load ecmwf-toolbox/may25
module load python3/may25

How to revert to the old versions in case of problems AFTER the update

Users that experience problems with the new default software packages after the update will be able to revert to the old default versions. These can be selected with the commands:

module load ecmwf-toolbox/old
module load python3/old

Please let ECMWF know if you need to revert to the old version of any of the packages after the update of the defaults has taken place. 

Change list

ECMWF Software

The new version of the ECMWF Toolbox (ecmwf-toolbox module) is 2025.04.0.0, replacing 2024.09.0.0. This table summarises the changes in the version of the different packages within the bundle:

Besides ecmwf-toolbox, the following ECMWF packages with their corresponding module also see their default changed:

Please see the Release notes for full details of the changes implemented in each package.

Third-party software

Some of the versions in this list may already be the default for a specific package, so no changes will be made in those cases.

ModuleBeforeAfterRelease notes
adios2.9.22.9.2https://adios2.readthedocs.io/en/latest/
aec

1.1.2

1.1.3

https://gitlab.dkrz.de/k202009/libaec/-/blob/master/CHANGELOG.md
amd-fftw4.14.1https://github.com/amd/amd-fftw/blob/amd-fftw/ChangeLog
ansible

9.2.0

11.3.0

https://github.com/ansible-community/ansible-build-data/blob/main/7/CHANGELOG-v7.rst
antlr2.7.72.7.7https://www.antlr2.org/doc/
aocc4.0.04.0.0https://www.amd.com/en/developer/aocc.html
apptainer1.3.01.3.6https://github.com/apptainer/apptainer/blob/main/CHANGELOG.md
bison3.8.23.8.2https://fossies.org/linux/bison/ChangeLog
blis3.23.2https://github.com/amd/blis/blob/master/CHANGELOG
boost1.84.01.84.0https://www.boost.org/users/history/version_1_84_0.html
cdo2.4.02.5.1https://code.mpimet.mpg.de/projects/cdo/news
cgal5.65.6.2https://www.cgal.org/releases.html
cmake3.28.33.31.6https://cmake.org/cmake/help/latest/release/
cmor3.7.33.9.0https://cmor.llnl.gov/news/
coda2.25.12.25.5https://github.com/stcorp/coda/blob/master/CHANGES
conda23.11.0-024.11.3-2https://docs.conda.io/projects/conda/en/latest/release-notes.html
cppcheck2.13.02.17.0https://github.com/danmar/cppcheck/releases
darshan3.4.43.4.6https://www.mcs.anl.gov/research/projects/darshan/
doxygen1.10.01.13.2https://doxygen.nl/manual/changelog.html
eigen3.4.03.4.0https://eigen.tuxfamily.org/index.php?title=3.4
esmf8.6.08.8.0https://earthsystemmodeling.org/static/releases.html
extrae4.0.64.2.11https://github.com/bsc-performance-tools/extrae/blob/master/ChangeLog
fcm2021.05.02021.05.0https://github.com/metomi/fcm/blob/master/CHANGES.md
fdupes2.2.12.3.2https://github.com/adrianlopezroche/fdupes/releases
ferret7.6.37.6.3https://github.com/NOAA-PMEL/PyFerret/releases
ffmpeg6.1.17.1.1https://github.com/FFmpeg/FFmpeg/blob/master/Changelog
fftw3.3.103.3.10https://www.fftw.org/release-notes.html
fgsl1.5.01.6.0https://github.com/reinh-bader/fgsl/blob/master/NEWS
flex2.6.42.6.4

https://github.com/westes/flex/releases

gdal3.8.43.10.2https://github.com/OSGeo/gdal/blob/v3.10.2/NEWS.md
gdl1.0.41.1.1https://github.com/gnudatalanguage/gdl/releases
geocat2024.01.02025.02.0https://github.com/NCAR/geocat-comp
geos

3.12.1

3.13.1

https://github.com/libgeos/geos/releases
git2.43.12.48.1https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.39.1.txt
gitflow1.12.31.12.3https://github.com/petervanderdoes/gitflow-avh/releases/tag/1.12.3
github-cli2.44.12.68.1https://github.com/cli/cli/releases
gmt6.506.50https://docs.generic-mapping-tools.org/dev/changes.html
gnuparallel

20240122

20250222

https://www.gnu.org/software/parallel/
go1.12.71.24.1https://go.dev/doc/devel/release
gperf3.13.1

https://github.com/rurban/gperf/blob/master/ChangeLog

grace5.1.255.1.25https://plasma-gate.weizmann.ac.il/Grace/
grads2.1.a2.oga.12.1.a2.oga.1http://opengrads.org
grass8.3.18.4.1https://grass.osgeo.org/news/2025_03_02_grass_gis_8_4_1_released/
gsl2.82.8http://git.savannah.gnu.org/cgit/gsl.git/tree/NEWS
hdf4.3.04.3.0https://www.hdfgroup.org/2024/02/27/release-of-hdf-4-3-0-newsletter-201/
hdf5-parallel1.14.31.14.6https://github.com/HDFGroup/hdf5/releases
hdf51.14.31.14.6https://github.com/HDFGroup/hdf5/releases
hdfeos3.03.0https://wiki.earthdata.nasa.gov/display/DAS/Toolkit+Downloads
hdfview3.3.13.3.1https://www.hdfgroup.org/downloads/hdfview/
hpcx-openmpi2.9.02.9.0https://developer.nvidia.com/networking/hpc-x
iris3.7.03.11.1https://scitools-iris.readthedocs.io/en/latest/whatsnew/3.11.html
jasper4.2.04.2.4https://github.com/jasper-software/jasper/releases
java11.0.623.0.2https://www.oracle.com/java/technologies/javase/23-relnote-issues.html
julia1.10.01.11.4https://docs.julialang.org/en/v1/NEWS/
lcov2.02.3https://github.com/linux-test-project/lcov/releases
lftp4.9.24.9.3https://lftp.yar.ru/news.html
libflame3.13.1https://github.com/flame/libflame
libspatialindex1.9.32.1.0https://github.com/libspatialindex/libspatialindex/releases
libtensorflow2.15.02.18.0https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md
maven3.9.63.9.9https://maven.apache.org/release-notes-all.html
mongodb7.0.58.0.5https://www.mongodb.com/docs/manual/release-notes/
nccmp1.9.1.01.9.1.0https://gitlab.com/remikz/nccmp
ncl6.6.26.6.2https://github.com/NCAR/ncl
nco5.1.95.3.2https://nco.sourceforge.net/highlights_old.shtml
ncview2.1.82.1.11http://meteora.ucsd.edu/~pierce/ncview_home_page.html
netcdf4-parallel4.9.24.9.3https://docs.unidata.ucar.edu/netcdf-c/current/RELEASE_NOTES.html
netcdf44.9.24.9.3https://docs.unidata.ucar.edu/netcdf-c/current/RELEASE_NOTES.html
ninja1.11.11.12.1https://github.com/ninja-build/ninja/releases
node20.11.022.14.0https://github.com/nodejs/node/releases
numdiff5.9.05.9.0https://www.nongnu.org/numdiff/
nvidia24.124.11https://developer.nvidia.com/hpc-sdk
octave8.4.09.4.0https://octave.org/NEWS-9.html
onnxruntime1.16.31.21.0https://github.com/microsoft/onnxruntime
openblas0.3.260.3.29https://github.com/xianyi/OpenBLAS/releases
openjpeg2.5.02.5.3https://github.com/uclouvain/openjpeg/blob/v2.5.3/NEWS.md
panoply5.3.25.6.0https://www.giss.nasa.gov/tools/panoply/changelog.html
parmetis4.0.34.0.3http://glaros.dtc.umn.edu/gkhome/metis/parmetis/changes
patchelf0.17.20.17.2https://github.com/NixOS/patchelf/releases
pcraster4.4.1-014.4.1-01https://pcraster.geo.uu.nl
pdal2.6.32.8.3https://github.com/PDAL/PDAL/releases
petsc3.20.33.20.3https://gitlab.com/petsc/petsc
pnetcdf1.12.31.14.0https://github.com/Parallel-NetCDF/PnetCDF/blob/master/RELEASE_NOTES
postgres14.214.5https://www.postgresql.org
proj9.3.19.5.1https://proj.org/news.html
psutils1.171.17https://github.com/rrthomas/psutils
pycharm2023.3.32024.3.4https://www.jetbrains.com/pycharm/whatsnew/
pypy

3.10-v7.3.15-01

3.10-v7.3.15-01

https://doc.pypy.org/en/latest/index-of-release-notes.html
python33.11.10-013.12.9-01https://docs.python.org/3.12/whatsnew/changelog.html
qgis3.34.33.40.4https://www.qgis.org/en/site/forusers/visualchangelogs.html
qhull8.1-alpha18.1-alpha1http://www.qhull.org/news/qhull-news.html
qt6.6.16.6.1https://wiki.qt.io/Main
R4.3.34.4.3https://cran.r-project.org/doc/manuals/r-release/NEWS.html
rclone1.65.21.69.1https://rclone.org/changelog/
rstudio2023.12.1+4022024.12.1+563https://docs.posit.co/ide/news/
s3cmd2.1.02.4.0https://github.com/s3tools/s3cmd/releases
snakemake8.5.58.30.0https://snakemake.readthedocs.io/en/stable/project_info/history.html#changelog
sqlite3.46.03.49.1https://www.sqlite.org/changes.html
sqlitebrowser3.12.23.13.1https://github.com/sqlitebrowser/sqlitebrowser/releases
stat4.2.14.2.1https://github.com/LLNL/STAT
texlive20232025https://www.tug.org/texlive/
udunits2.2.282.2.28https://github.com/Unidata/UDUNITS-2
wgrib1.8.51.8.5https://www.cpc.ncep.noaa.gov/products/wesley/wgrib.html
wgrib23.1.33.6.0https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/
wreport3.36.13.37-1

https://github.com/ARPA-SIMC/wreport/releases

wxparaver4.11.34.12.0https://github.com/bsc-performance-tools/wxparaver
xconv1.941.94https://ncas-cms.github.io/xconv-doc/html/index.html

Potential issues

ecFlow and python3 incompatibilities

While the ecFlow client and python3 default versions are updated on the HPCF, if you may be running an older version of the ecFlow server. If in your ecFlow tasks you use the ecFlow Python bindings, they may not work with the new default version of Python.

We will update the version of all servers shortly, but in the meantime you may need to either revert to using python3/old in your tasks, or force them to load the new default ecFlow module.

Basemap not present on Python3 3.12

Current versions of Basemap cannot be provided as part of the same environment since they have not been ported to NumPy 2, which is the version used in Python 3.12. If you rely on Basemap, you should stay on Python 3.11 until Basemap has been ported, or move to similar packages such as CartoPy.

Metview and Pyproj / cartopy incompatibilities

When using Metview from Python 3.12, there is a known incompatibility with any package that uses Pyproj, such as Cartopy. If Metview is imported first, then importing the incompatible packages may fail with:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted

Avoiding the use of both in the same script is the safest approach. However, if that is not possible, switching the order of imports so metview is imported last may solve the issue. For example:

import cartopy
import metview

This issue has been addressed and should no longer be occurring.

  • No labels