Skip to end of metadata
Go to start of metadata

This change is combined with the update on the default versions of ECMWF software packages. See Change of default versions of ECMWF software packages - November 2017 for more information

We will upgrade the different compilers and related libraries during Q4 2017. We invite users to test their applications with the new compilers at their earliest convenience.

The information given below is primarily for user who compile their own applications. Users of prepIFS will not have to do the testing recommended below. The same may be true for other (Member States) applications.

This page will be updated as required. It was last changed on 25.10.2017.

For a record of changes made to this page please refer to  Document versions.

Further information and advice regarding the upgrade can be obtained from User Support.


Timetable for upgrade

The planned timetable for the upgrade of the Compiling environment is as follows:

12.09.2017Initial announcement.
Oct. 2017Confirmation of default versions of the software stack
22/29 Nov. 2017

Upgrade of HPC default compilers and software stack

Current environment


The current default versions of the compilers in use on CCA and CCB are listed hereafter. Another important package defining the compiling environment, also listed below, is called the Cray Development Toolkit (CDT). This includes various components like the Scientific library (libsci), the MPI library (mpich) and others. Each version of CDT has default versions of the 3 compilers associated with it.

  • Cray: cce/8.4.5
  • Intel: intel/
  • GNU: gcc/4.9.3
  • CDT: cdt/16.03

Older versions of the 3 compilers are also available and in use. Users can use the 'module' and 'prgenvswitchto' commands to list the compilers and CDTs, their versions and to change any of these.

Software stack

The main HPC ECMWF developed software packages are the following:

  • eccodes/2.1.0
  • emos/446-r64
  • odb_api/0.16.1
  • grib_api/1.20.0
  • ecflow/4.5.0
  • ecfs/2.2.3

Note that grib_api is no longer loaded by default at ECMWF. Eccodes is now used instead to access GRIB data.

Cray and/or ECMWF also maintain third party software packages, like netCDF4 or HDF5.

We make different versions of all these (ECMWF and third party) packages available. These different versions are usually built with recent versions of the 3 compilers.

New environment


Following extensive testing of the different compilers with the ECMWF forecasting model code and thanks to some feedback from external user groups, we have selected the following compiler versions to become the next default ones:

  • Cray: cce/8.5.8
  • Intel: intel/
  • GNU: gcc/6.3.0
  • CDT: cdt/17.03

Software stack

The upgrade of the compilers in November will correspond to the semestrial update of the default versions of the ECMWF package on the HPC systems. The following versions will become defaults:

  • eccodes/2.5.0
  • emos/452-r64
  • odb_api/0.17.3
  • grib_api/1.24.0
  • ecflow/4.7.1
  • ecfs/2.2.4

All these versions are currently tagged in modules as 'nov17', e.g. eccodes/nov17. 

See Change of default versions of ECMWF software packages - November 2017 for full details.

Known issues

No compiler (environment) is perfect. Problems with compilers and libraries may appear, be solved or even re-appear. A version of a compiler may also not be backwards compatible. We will add in this section the issues we know of with the new compilers.

  • The F90 module (.mod) files for the current GNU compiler (gcc/4.9.3) are incompatible with the new version of the compiler (gcc/6.3). Users will have to recompile their F90 modules and libraries. However gcc/5 F90 module (.mod) files are compatible to the new gcc/6.3 compiler.
  • MPI runs may hang in MPI_Finalize() with cdt/17.03, to be more precise with cray-mpich/7.5.3 which is part of cdt/17.03. The solution is to revert to cray-mpich/7.3.3

Discontinued versions of compilers.

We have no plans to remove any version of any compiler at this stage. We may however have to remove some older versions later. If so, we will inform users well in advance.

Your testing

Your testing of the new compilers is very important for you, to make sure your application continue running and producing the expected results. Your testing is also important for us, so that we are confident we have selected the suitable versions of the compilers, so that we can help you investigating problems, finding solutions and/or reporting possible bugs with the relevant compiler developers.

You can start your tests simply by changing the CDT version:

module swap cdt/17.03

If you use the Cray compiler, you can directly start your tests. If you use the GNU or Intel compilers, you will need to swap to the relevant compiler with 'prgenvswitchto', e.g for the GNU compiler:

prgenvswitchto gnu

May we remind you that you should use the wrapper commands (ftn, cc, CC) to compile and not the compiler specific commands, e.g. gfortran for the GNU Fortran compiler. We also remind you to use 'module' to load the necessary additional packages needed for your compilations instead of pointing to the libraries or include directories directly with compilation options. For example, if your Fortran code uses netCDF4, you should use:

module load netcdf4
ftn myprog.f90

When you have completed your tests, the easiest way to revert to the current default compiling is to start a new session on CCA or CCB.

We welcome any feedback on your experience with the new compilers. We would be interested in particular to hear about the problems you encounter and also about differences in runtimes or results you would have observed with the new compilers. Please send your feedback to the user support team at ECMWF. We will add all useful comments we receive to this page.

Impact to users

Upgrade of default compilers: November 2017

There is no immediate need to recompile all your codes for this first change. Your existing executables and libraries will continue to work. Nevertheless, we strongly recommend you to test the new compilers before this upgrade, to make sure you are ready to use the new compilers. Older versions of compilers and software packages will remain on the systems. You can temporarily continue using these older versions.

Problems after the upgrade

Users facing problems with their programs after the changes of compilers can first try to revert to the previous compiling environment by switching the cdt version:

module swap cdt/16.03

This will automatically switch version of the compiler. Note also that you may need to change the version the ECMWF software packages, e.g. for eccodes:

module swap eccodes/old

In the longer run, we would recommend users to recompile their programs with the new compiler versions.

Document versions

 DateReason for update
  • Initial version
  • Confirmation of dates and new versions to become defaults
  • No labels