Getting Started

First ensure that the paths to ecFlow executables are accessible. On the ECMWF HPC this is done using the module command. Hence type the following in the command line:

module load ecflow/new
module load python3

Create a directory called course in your home directory and enter that directory:

cd $HOME
mkdir course; cd course

If you do not use modules (or outside ECMWF) you will need to add the correct path to your ecFlow binaries, e.g. :

export PATH=path_to_your_ecflow_bin:$PATH

In order to use ecFlow we first need to start the ecflow_server

Shared Machine

On a shared machine multiple users and ecFlow servers can coexist. To allow this we have a startup script “ecflow_start.sh” that will start an ecflow_server. This will start an ecflow_server running on your system with a port number unique to your user ID. By default this script creates ecFlow log and check point files in the directory $HOME/ecflow_server. You can change the location of the log and checkpoint files using the -d option, e.g. to output these file in the course directory:

ecflow_start.sh -d $HOME/course

Note

Please keep a note of the Host and Port given from your ecf_start.sh output for later. The host and port number uniquely identify your ecflow_server. When you want to access this server using ecflow_client, Python API or ecflow_ui you need to know these information.

By setting the value of the environment variables ECF_HOST and ECF_PORT you identify the server you wish to access. Multiple ecflow_servers can run on the same system.

Local Machine

We prefer to start the ecFlow server with the ecflow_start.sh script to help prevent unintentional shared usage of the server. You could have used the default ECF_PORT and started a server running on your own local machine using the following command:

ecflow_server

at the unix prompt.

This will start an ecflow_server running on your system with a default host name of “localhost” and port number of 3141. If another program on your machine is using this same port number, then you will get an “Address in use” error. To start the server on a specific port number you can use:

ecflow_server --port=3500

or

export ECF_PORT=3500; ecflow_server

ecflow_server log files and check point files are created in the current directory by default, and have a prefix <machine_name>.<port_number>. As this allows multiple servers to run on the same machine. If you had previously run the same ecflow_server in the past it will also attempt to recover the suite definition from the check point file.

What to do

  1. Type ‘use ecflow’ to setup up the paths.

    Listing 11 Access ecFlow command line interface and python interface on ECMWF HPC
    module load ecflow/new
    module load python3
    
  2. Create $HOME/course directory

  3. Start the server using:

    Listing 12 Start the server, and set ECF_HOME
    ecflow_start.sh -d $HOME/course
    
  4. Make a note of the ECF_HOST and ECF_PORT variables.

  5. Make sure the following does not error:

    Listing 13 Check ecFlow python API
    python3 -c "import ecflow"
    

Note

If in the subsequent sections, you have the need to start a new shell and want access to the server, then ensure ECF_PORT is set (also call module load ecflow/new, and module load python3 in each new shell). Python is needed to access ecFlow Python API only.