Configuration management at ECMWF

Glenn Carver Paul Burton

[email protected], [email protected]

IS-ENES2 Configuration Management Workshop 2013, Met Office, Exeter, UK 23-24 September 2013

Slide 1 © ECMWF Who are we and what do we do?

European Centre We are an independent international organisation funded by 34 States Medium-Range Up to fifteen days ahead. Today our products also include monthly and seasonal forecasts and we collect and store meteorological data. Weather Forecasts We produce global weather forecasts

What do we have to achieve this? People About 260 staff, specialists and contractors Equipment State-of-the-art supercomputers and data handling systems Budget £50 million per year Experience 37 years

Slide 2 © ECMWF Software at ECMWF

IFS : Integrated Forecast System ● Approx 3 million lines of code. ● Includes forecast model, 4D-Var, tangent linear & adjoint models, land- surface and wave models, NEMO ocean model and single column model. ● Mostly Fortran90 with some . ● New components in development use C++ (e.g. new I/O layer, new control layer) ● Operaonal and research use. Other soware: ● Libraries and tools. e.g. grib_api, Metview. ● Moving to Open Source (Apache2). ● Disnct development and management from IFS code.

Configuraon management is different for IFS &’other’.

Slide 3 © ECMWF Configuration management

IFS: ● Perforce for last 10yrs, previously Clearcase. ● Perl wrappers are used to make commands easier for sciensts, enforce local convenons & addional sanity checks. Based on previous VCS clearcase workflow. ● Code is separated into directory ‘projects’ which currently are compiled into separate libxx.a before the final link step. ● Parallel build restricted to parallel compilaon of libraries. ● Increasing dependency between projects (because of Fortran modules) enforces compilaon order of libraries. ● Current build system uses a separate dependency analysis step, and recursive makefiles. Old, inflexible, difficult to debug and slow.

FCM provides opportunity to update & improve current IFS build system

Slide 4 © ECMWF Configuration management (2)

Other soware packages:

● Managed by Forecast Products department. ● Separate Perforce repository. ● Libraries and tools e.g. grib_api, magics++, Metview, etc. ● Mix of languages: C, C++ and increasingly python. ● Moving from Perforce to ‘’. Part of general desire to move away from Perforce. ● Moving from ‘autotools’ to ‘CMake’.

Slide 5 © ECMWF OpenIFS

Academic version of IFS. ● Much smaller codebase; forecast mode only. ● Needed to be easier to build for users. ● Useful testbed for technical changes suitable for IFS. ● Early users find ‘fcm make’ easy to use. ● No ‘wrappers’ around fcm as yet (e.g. WRF-style) but might be needed in future.

FCM ● Only use ‘fcm make’ facility but other users (e.g. UK NCAS) will use more fcm funconality. ● Thanks to Dave & Ma for assistance. ● FCM well received at ECMWF.

Slide 6 © ECMWF Benefits & Issues

● Benefits ○ Integrated & reliable dependency analysis ○ Fast & parallel ○ Removes inter-project dependency issues ○ Easy to change compile opons per file

● Issues ○ Will require C++ support. ○ Beer access to log file - hidden nature not ideal. ○ Can’t see compiler warnings using -v and -vv is too verbose. ○ Temporary nature of final libXX.a for linking causes problems for tools like CrayPAT which inspect the link step.

Slide 7 © ECMWF Summary

FCM works very well with OpenIFS.

Will be used for IFS and other ECMWF codes.

Interested in integraon with git.

Look forward to collaboraon with Met Office on FCM

Interested in parcipang in IS-ENES2 community evaluaon - believe this will be of benefit to ECMWF.

Slide 8 © ECMWF