Blog from March, 2021

ECMWF is updating the default versions of its software packages and libraries used across all user platforms at the centre as part of the regular update cycle.

When?

The changes will take place on Wednesday 5 May 2021 09:00 UTC

What platforms are affected?

All user platforms at the centre will see their default additional software stack updated:

  • All clusters in our High Performance Computing Facility, mainly CCA and CCB
  • ECGATE
  • Linux Clusters
  • Linux Desktops
  • TEMS

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

Software stack ready for next operational IFS cycle

With the upcoming Implementation of IFS Cycle 47r2, this set of defaults is ready to handle the data produced, including all the new parameters introduced in this cycle and the update to Tropical Cyclone tracks.

Python 3.8 becomes default

For our Python users, we offer now a more recent version of Python 3.8 with the usual extra modules found on the previous default 3.6 which would be out of official maintenance at the end of the year.

For those still using Python 2, note that this major version of Python reached its end of life on 1st January 2020, If you haven't done moved to Python 3.6 yet, please see Migration to Python 3 for some guidance on where to start. We are providing the latest Python 2.7 for compatibility purposes only.

ECMWF software improvements

See the blog posts for the latest two software releases to learn about what is new in some of our own software packages and libraries such as ecCodes, Magics or Metview.

Potentially disruptive changes in ecCodes

It is worth highligting a number of changes in ecCodes that could have an impact in specific user workflows:

  • The GRIB2 representation of parameter 238 (Temperature of snow layer - tsn) has been modified. See the new encoding here: https://apps-test.ecmwf.int/codes/grib/param-db/?id=238
  • The command codes_info -v no longer outputs a trailing space. Some user scripts may need to be modified.
  • grib_get_data output is slightly modified: Words on the first line are now separated by spaces not commas.
  • The tools now check that the output file is not the same as the input to avoid overwriting/corrupting the source.
  • The MARS keys levtype and levelist have been removed from the GRIB2 templates 4.53 and 4.54.

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 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 may21 tag in modules. For example:

module swap metview/may21
module load Magics/may21
module swap eccodes/may21
module swap python3/may21

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 swap metview/old
module load Magics/old
module swap eccodes/old
module swap 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

This table summarises the changes in the version of the different packages:

ecCodes is now the official ECMWF encoder and decoder for GRIB and BUFR formats. It supersedes GRIB-API, for the GRIB format, and EMOSLIB, for the BUFR. If you still use any of those, we encourage you to migrate to ecCodes.

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 on a certain platform, so no changes will be made in those cases. After the update, all platforms will have the same defaults for all these packages.

Package

Next default

Notes

aec1.0.4

https://gitlab.dkrz.de/k202009/libaec/-/blob/v1.0.4/CHANGELOG.md

boost1.71.0

https://www.boost.org/users/history/version_1_71_0.html

cdo1.9.10

https://code.mpimet.mpg.de/projects/cdo/news

clang11.0.1

https://releases.llvm.org/11.0.1/tools/clang/docs/ReleaseNotes.html

cmake3.19.5https://cmake.org/cmake/help/v3.19/release/3.19.html
cmor3.6.1https://cmor.llnl.gov/news/2020/12/16/cmor3/
ferret7.6.3https://ferret.pmel.noaa.gov/Ferret/documentation/version-763-release-notes
fcm2019.05.0https://github.com/metomi/fcm/blob/master/CHANGES.md
fftw3.3.9http://www.fftw.org/release-notes.html
gdal3.2.1https://github.com/OSGeo/gdal/blob/v3.2.1/gdal/NEWS
geos3.9.1https://github.com/libgeos/geos/blob/3.9.1/NEWS
git2.30.1https://github.com/git/git/tree/master/Documentation/RelNotes
gnuparallel20210222https://savannah.gnu.org/forum/forum.php?forum_id=9943
gsl2.6http://git.savannah.gnu.org/cgit/gsl.git/tree/NEWS
grads2.2.1http://cola.gmu.edu/grads/ChangeLog
grass7.8.5https://grass.osgeo.org/news/2020_12_21_grass_gis_7_8_5_released/
hdf51.10.6https://support.hdfgroup.org/ftp/HDF5/releases/ReleaseFiles/hdf5-1.10.6-RELEASE.txt
nccmp1.8.2.1https://gitlab.com/remikz/nccmp/-/blob/master/README.md
nco4.9.7http://nco.sourceforge.net/ANNOUNCE
ncview2.1.7https://cirrus.ucsd.edu/ncview/
netcdf44.7.4https://www.unidata.ucar.edu/blogs/news/entry/netcdf-4-7-4
ninja1.10.2https://groups.google.com/g/ninja-build/c/oobwq_F0PpA/m/FeJC5LoRBgAJ
octave6.2.0https://www.gnu.org/software/octave/news/release/2021/02/20/octave-6.2.0-released.html
openmpi4.1.0

*not on HPCF

https://raw.githubusercontent.com/open-mpi/ompi/v4.1.x/NEWS

panoply4.12.3https://www.giss.nasa.gov/tools/panoply/
pcraster4.3.0-01https://pcraster.geo.uu.nl
proj7.2.1https://proj.org/news.html#id26
python2.7.17-01

More up-to-date extra python packages

https://docs.python.org/2.7/whatsnew/2.7.html

python33.8.8-01

More up-to-date extra python packages

https://docs.python.org/3.8/whatsnew/3.8.html


R4.0.4

More up-to-date extra R packages

https://cran.r-project.org/doc/manuals/r-release/NEWS.html

udunits2.2.28

https://www.unidata.ucar.edu/software/udunits/CHANGE_LOG

valgrind3.16.1

https://www.valgrind.org/docs/manual/dist.news.html

wgrib23.0.0

https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/

wreport3.27

https://github.com/ARPA-SIMC/wreport/blob/master/NEWS.md