Versions Compared

Key

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

...

  • ecFlow consists of two tar files i.e.:  

    • boost_1_71_0.tar.gz (or any recent boost)

    • ecFlow-5.58.31-Source.tar.gz

      Create a directory for the build:

      Code Block
      languagebash
      mkdir /tmp/ecflow_build


  • Copy the two tar file into this directory, then change directory to /tmp/ecflow_build

  • Un-zip then un-tar the two file files:

    Code Block
    languagebash
    tar -zxf boost_1_71_0.tar.gz
    tar -zxf ecFlow-5.58.31-Source.tar.gz


  • You should have two directories created:

    Code Block
    boost_1_71_0
    ecFlow-5.58.31-Source
    


  • Create two environment variables. These are used by some of the scripts:

    Code Block
    export WK=/tmp/ecflow_build/ecFlow-5.58.31-Source
    export BOOST_ROOT=/tmp/ecflow_build/boost_1_71_0


  • If you have a module system, please ensure that before you start, GCC,cmake,python3, etc are available in $PATH.

    Code Block
    languagebash
    module load gnu
    module load cmake
    module load python3
    module load qt
    


...

Code Block
languagebash
titlecmake/ecbuild
cd $WK
mkdir build; cd build;

# Go with defaults, will build with CMAKE_BUILD_TYPE=Release and install to /usr/local
cmake .. 
# Override install prefix 
# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/apps/ecflow/5.58.31 

# do NOT build the gui.
# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/apps/ecflow -DCMAKE_BUILD_TYPE=Release -DENABLE_UI=OFF

# ignore Wdeprecated-declarations compiler warning messages and do NOT build python api
# cmake .. -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations"  -DENABLE_PYTHON=OFF

# Use -j option to speed up compilation. Determine number of cpu's
CPUS=$(lscpu -p | grep -v '#' | wc -l)
make -j${CPUS}
make check
make install

...

Warning

If you experience a problem with your installation and need to fix your install of dependent libraries like QT, Python, Boost, GCC, etc,  then it is VERY important that you delete the build directory and start cmake build again. (This is because cmake keeps a cache of your configuration, and re-uses this unless the build directory is deleted).

Code Block
languagebash
titleAlways remember to delete build directory if there is a change in system configuration
cd $WK
rm -rf build
mkdir build; cd build
cmake ..      # or use whatever cmake configuration you used before


To use the ecFlow Python Api, you need to add/change PYTHONPATH. 

...

Code Block
languagebash
export PYTHONPATH=$PYTHONPATH:<prefix>/5.58.31/lib/python3.6/site-packages/ecflow
# If you used the default's then <prefix>=/usr/local
# otherwise you should use whatever you entered for -DCMAKE_INSTALL_PREFIX, hence in the examples above we would have:
export PYTHONPATH=$PYTHONPATH:/usr/local/apps/ecflow/5.58.31/lib/python3.6/site-packages/ecflow 

...

Code Block
cd $WK/build  # change to the build directory
cmake -DCMAKE_INSTALL_PREFIX=/tmp/avi/custom/ecflow/5.58.31 -DCOMPONENT=python -P cmake_install.cmake -- make install  # install python module under /tmp/avi/custom/ecflow/5.58.31


ecflow_ui: Make a list servers accessible to all users

...

  • creating a file called servers
  • The format of the server's file is very easy:

    Code Block
    titleserver file format
    <server_name> <machine_name> <port>

    An example might be:

    Code Block
    titleservers file
    server      machineX   3141
    projectX    machineabc 4141
    exp1        machineabc 4141
    mars        bigmac     11031


  • Copy this file to CMAKE_INSTALL_PREFIX/share/ecflow/.   This makes the list of servers accessible to all users of ecflow_ui

    Code Block
    cp servers /tmp/avi/custom/ecflow/5.58.31/share/ecflow/.


Python API (from ecflow 5.6.0)

...