Migration to ecflow 5 series is straightforward, if you are using ecFlow version 4.7.0 or later.
- Stop all jobs in the old server, then terminate the server. Check that the checkpoint file was written.
Load the latest ecflow 5
module load ecflow/5new
Start the new ecflow 5 server with the same port. It will automatically read the checkpoint file that were created in version 4.7.X and above.
ecflow_start.sh -p <port> # Open with same port.
If you used the '-d' option for location of ECF_HOME directory(i.e. for checkpoint and log file, includes, etc), make sure you use the same location.
ecflow_start.sh -p <port> -d <dir> # Open with same port and -d dir as used for ecflow 4
For the very first use of ecflow_ui, then move aside the old .ecflowrc directory.
mv $HOME/.ecflowrc $HOME/.ecflowrc_old4
Migration( only required for ecflow < 4.7.0)
In most cases, we can easily migrate from one version of ecflow to another. Since the checkpoint file will be readable by the new version of ecflow.
However, occasionally this may not always be possible. (i.e. if there has been large internal re-factoring). On these occasions we can use ecflow_client --migrate.
The simplest migration involves running:
ecflow_client --migrate > migrate.def # run on old server
migrate.def is like a normal definition file where the state is encoded as comments.
Then run the following with the new client/server:
ecflow_client --load migrate.def # run on new server
This will load the file into the new server preserving all state information.
If the backup servers functionality is used, then backup servers should also be migrated at the same time.
The following notes provide more detailed guidance on the migration process.
This assumes you are migrating halfway through running some experiments, and want to continue where you left.
Steps for Old ecflow4 server:
shut-down
shutdownecflow_client --shutdown
suspend all suites
suspendCL="ecflow_client --port 3142 --host machineX" for s in $($CL --suites); do $CL --suspend /$s; done
- wait for active/submitted tasks to complete
halt the server:
haltecflow_client --halt
Use --migrate to dump state and structure to a file:
migrateecflow_client --migrate > all_suites.def
- terminate server *or* leave the server running but start a new server on a different machine to avoid port number clash.
- remove checkpt and backup checkpt files, to prevent the new server from loading them
*Only* applicable if starting a new server on the same machine
Steps for New ecflow5 server:
module load the latest release
Load latest ecflow> module load ecflow/5new > module load python3
start-server
ecflow_start.sh
load the migration file:
Loadecflow_client --load=all_suites.def
set server running:
restartecflow_client --restart
resume suspended suites:
ResumeCL="ecflow_client --port 3142 --host machineX" for s in $($CL --suites); do $CL --resume=/$s; done
However, the client/server/GUI between ecflow 4.x.x and ecflow 5.X.Y are not compatible.
Please see Switching between ecFlowUI version 4 and 5
The python API remains backward compatible.
Package Retirement
ecFlowview
The old GUI ecflowview will be retired.
Trying to maintain two GUI's is to expensive.
ecflowview is MOTIF based, and many Linux distributions have dropped support for it.
QT4
Support for QT4 will be dropped.
Tying to maintain compatibility with QT4 and QT5 is too prohibitive. Some features like QTCharts are only available in QT5
Misc
ECF_NODE can no longer be used in script files(.ecf), it has been replaced with ECF_HOST