Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Horizontal Navigation Bar


Button Group

Button Hyperlink
titlePrevious
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Overview
Button Hyperlink
titleUp
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Tutorial
Button Hyperlink
titleNext
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Defining+a+new+suite


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

Code Block
languagebash
module load ecflow/5new
module load python3

Create a directory called course in your home directory and change to that directory. If you do not use modules you will need to add the correct path to your ecFlow binaries:

e.g.  in ksh   export PATH=/usr/local/apps/ecflow/5.5.0/bin:$PATH

Code Block
cd $HOME
mkdir course; cd course

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:

Code Block
HTML

<div class="section" id="getting-started">
<span id="index-0"></span><span id="id1"></span>
<div class="line-block">
<div class="line">First ensure that the paths to ecFlow executables are accessible.</div>
<div class="line">At ECMWF this is done using <strong>use</strong> command. Hence type the following at the command line.</div>
</div>
<div class="highlight-python"><pre>&gt; use ecflow</pre>
</div>
<p>Create a directory called course in your home directory and change to that directory.</p>
<div class="highlight-python"><pre>&gt; mkdir course; cd course</pre>
</div>
<div class="line-block">
<div class="line">In order to use ecFlow we first need to start the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a></div>
</div>
<div class="section" id="shared-machine">
<h2>Shared Machine<a class="headerlink" href="#shared-machine" title="Permalink to this headline">¶</a></h2>
<div class="line-block">
<div class="line">On a shared machine multiple users and ecFlow servers can coexist. Start an <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a>:</div>
<div class="line">by typing the following</div>
</div>
<div class="highlight-python"><pre>&gt; ecflow_start.sh</pre>
</div>
<div class="line-block">
<div class="line">This will start an <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a> running on your system with a port number unique to your user ID.</div>
<div class="line">With this script ecFlow log files and <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-check-point"><em class="xref std std-term">check point</em></a> files are created in the directory $HOME/ecflow_server.</div>
<div class="line">This can be changed by using:</div>
</div>
<div class="highlight-python"><pre>&gt; ecflow_start.sh -d $HOME/course</pre>
</div>
<div class="line-block">
<div class="line">Please keep a note of the <strong>Host</strong> and <strong>Port</strong> given from your 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 Client Server API or ecflow_ui you need to know this 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 using different port numbers.

Local Machine

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

Code Block
ecflow_server

at the UNIX prompt. 

This will start an ecflow_server running on your system with a default hostname 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:

Code Block
ecflow_server --port=3500

or:

Code Block
</div>
<div class="line">The host and port number uniquely identify your <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a>.</div>
<div class="line">When you want to access this server using <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-client"><em class="xref std std-term">ecflow_client</em></a>, <a class="reference internal" href="/wiki/display/ECFLOW/ecFlow+Python+Api#client-server-python-api"><em>client server python API</em></a></div>
<div class="line">or <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflowview"><em class="xref std std-term">ecflowview</em></a> you need to know these information.</div>
</div>
<div class="line-block">
<div class="line">By setting the value of the environment variables ECF_NODE and ECF_PORT you</div>
<div class="line">identify the server you wish to access. Multiple <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a>&#8216;s can run on the same system.</div>
</div>
</div>
<div class="section" id="local-machine">
<h2>Local Machine<a class="headerlink" href="#local-machine" title="Permalink to this headline">¶</a></h2>
<div class="line-block">
<div class="line">We prefer to start the ecFlow server with the ecflow_start.sh script to help prevent unintentional</div>
<div class="line">shared usage of the server. You could have used the default ECF_PORT and started a server running</div>
<div class="line">on your own local machine using the following command:</div>
</div>
<div class="highlight-python"><pre>&gt; ecflow_server</pre>
</div>
<p>at the unix prompt.</p>
<div class="line-block">
<div class="line">This will start an <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a> running on your system with a default host name of &#8220;localhost&#8221; and</div>
<div class="line">port number of 3141. If another program on your machine is using this same port number, then you will get</div>
<div class="line">an &#8220;Address in use&#8221; error. To start the server on a specific port number you can use:</div>
</div>
<div class="highlight-python"><pre>&gt; ecflow_server --port=3500</pre>
</div>
<p>or:</p>
<div class="highlight-python"><pre>&gt; export ECF_PORT=3500; ecflow_server</pre>
</div>
<div class="line-block">
<div class="line"><a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a> log files and <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-check-point"><em class="xref std std-term">check point</em></a> files are created in the current directory by default, and have</div>
<div class="line">a prefix &lt;machine_name&gt;.&lt;port_number&gt;. As this allows multiple servers to run on the same machine.</div>
</div>
<div class="line-block">
<div class="line">If you had previously run the same <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-ecflow-server"><em class="xref std std-term">ecflow_server</em></a> in the past it will also attempt to recover the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-suite-definition"><em class="xref std std-term">suite definition</em></a></div>
<div class="line">from the <a class="reference internal" href="/wiki/display/ECFLOW/Glossary#term-check-point"><em class="xref std std-term">check point</em></a> file.</div>
</div>
<p><strong>What to do:</strong></p>
<ul>
<li><p class="first">Type &#8216;use ecflow&#8217; to setup up the paths.</p>
</li>
<li><p class="first">Create $HOME/course directory</p>
</li>
<li><p class="first">Start the server using the server

ecflow_server log files and checkpoint 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 checkpoint file.

What to do

  1. Type the following, to set up up the paths

    Code Block
    languagebash
    titleAccess ecflow command line interface and python interface
    module load ecflow/5new
    module load python3


  2. Create the $HOME/course directory

  3. Start the server using 

    Code Block
    languagebash
    titleStart 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. 

    Code Block
    languagebash
    titleCheck 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/5new, and module load python3 in each new shell). The python is needed to access ecflow python API only.


Horizontal Navigation Bar


Button Group

Button Hyperlink
titlePrevious
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Overview
Button Hyperlink
titleUp
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Tutorial
Button Hyperlink
titleNext
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Defining+a+new+suite

course</p> </li> <li><div class="first line-block"> <div class="line">Note: If in the subsequent sections, you have the need to start a new shell,</div> <div class="line">and want access the server, then ensure that ECF_PORT is set.</div> </div> </li> </ul> </div> </div>