The development of ecflow started in April 2009 as a replacement for SMS.
During this time it has been continually developed to meet the needs of production, research, and development sections.
Its use in ECMWF is now universal.
The 4 series has been in use by member and co-operating states since 2013.
ecFlow 5 series is the next iteration. It is intended for use in the new Bologna data centre.
Older packages like SMS and ecflow 4.X.X will no longer be supported after the move to Bologna.
It should be noted that:
- New features in version 5 will need to be validated by the Production section.
To minimize the maintenance burden, unused features may be removed. - It provides python 2.7 and Python3 API, to ease the testing and migration process.
There is no change in the python API, other than the addition of new features - The 4.X.X GUI is not interoperable with version 5 and vice versa.
Why do we need version 5?
- ecFlow 4.X.X series relied on boost serialisation for client-server communication,
which meant sticking with a single version of boost, to maintain compatibility between versions.
The ability to extend existing classes over the client/server divide was very limited - ecFlow 5 has dropped the dependency for boost in the client/server comms and now uses JSON.
This means that future versions of ecflow 5 can use different boost libs. The latency during the client/server communication has been improved.
There was a requirement to use the older compilers to support RPM creation, this has been dropped. Ecflow 5 requires a minimum of c++14
We now use the newer c++ compilers and features, resulting in improved performance.