Running an ensemble#

About#

This example demonstrates how to run ensemble simulations combined with time cycles, along with advanced extension capabilities.

The workflow runs a task across multiple ensemble members and cycles, showcasing woom’s ability to handle both temporal and ensemble dimensions simultaneously.

The example demonstrates two powerful extension mechanisms:

1. Custom Jinja2 filter (ext/jinja_filters.py):

  • Adds a member2letter filter that converts member IDs to letters (1→A, 2→B, etc.)

  • Shows how to extend woom’s templating system with domain-specific transformations

  • Used in task command lines: {{ member|member2letter }}

  • Illustrates how to add custom formatting for ensemble parameters

2. Custom validator function (ext/validator_functions.py):

  • Extends workflow configuration validation with a custom ks parameter

  • Generates lognormal random numbers from mean, standard deviation, and size arguments

  • Demonstrates how to add complex parameter types beyond woom’s built-in types

  • Defined via a custom workflow.ini specification file that merges with woom’s defaults

This example is ideal for users running ensemble forecasts, sensitivity studies, or Monte Carlo simulations who need to extend woom’s capabilities with custom functionality.

Path: examples/academic/ensemble.

Configuring#

workflow.cfg#
[app]
name=academic_ensemble

[cycles]
begin_date=2020-01-01
end_date=2020-01-02
round=D
freq=12h

[ensemble]
#size=5 # commented because inferred from iterators below
skip=3,6- # we skip members 3, 6 and 7
tasks=task0 # only this task is ran in ensemble mode

    [[iters]]
    cd=0.1,0.3,0.5,0.7,0.9,1.1,1.3
    ks=0.1,0.2,7

[stages]
    [[cycles]]
    seq0=task0,task1
tasks.cfg#
[task0]
    [[content]]
    commandline="""echo this is member {{ member }}/{{ nmembers }}
echo label={{ member.label }}, rank={{ member.rank }}
echo now it is a letter: {{ member|member2letter }}
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value {{ member.cd }}
echo ks has value {{ member.ks }}
"""

[task1]
    [[content]]
    commandline=echo task not distributed across members
hosts.cfg#
[datarmor]
patterns=datavisu*,*.ice.ifremer.fr,datarmor*
scheduler=pbspro
module_setup=. /etc/profile.d/modules.sh

    [[queues]]
    seq=sequentiel
    omp=omp

    [[dirs]]
    scratch=$SCRATCH
    work=$DATAWORK

Extending#

ext/jinja_filters.py#
import string


def filter_member2letter(member):
    """Convert a int to an uppercase letter"""
    return string.ascii_uppercase[member.id - 1]


JINJA_FILTERS = {"member2letter": filter_member2letter}
workflow.ini#
[ensemble]
    [[iters]]
    ks=random_lognormal(default=None)
ext/validator_functions.py#
import random


def random_lognormal(specs):
    if str(specs) == "None":
        return
    mu = float(specs[0])
    sigma = float(specs[1])
    size = int(specs[2])
    return [random.lognormvariate(mu, sigma) for i in range(size)]


VALIDATOR_FUNCTIONS = {"random_lognormal": random_lognormal}

Running#

Overview#

Let’s have an overview of stages before running the workflow.

$ woom show overview
##################################### APP ######################################
name: academic_ensemble
################################## TASK TREE ###################################
cycles:
    - seq0: task0 // task1
#################################### CYCLES ####################################
2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)
2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)
################################### ENSEMBLE ###################################
size: 4
tasks: task0
cd: 0.1, 0.3, 0.5, 0.7, 0.9, 1.1, 1.3
ks: 1.3968899691072918, 0.8769433007269686, 1.1200024651483216, 1.3039580658420438, 0.9068199083575591, 0.9202032513029302, 0.96262174971494

Dry run#

Now let’s run the workflow in test (dry) and debug modes.

$ woom run --log-no-color --log-level debug --dry-run
woom.log    : DEBUG    *** STARTED LOG SESSION ***
woom.cli    : DEBUG    Run the workflow
woom.cli    : DEBUG    Loading extensions
woom.cli    : INFO     Loaded extensions: jinja_filters, validator_functions
woom.cli    : INFO     Using user specific file for workflow configuration specifications: workflow.ini
woom.cli    : DEBUG    Load workflow config: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg
woom.cli    : INFO     Loaded workflow config
woom.cli    : INFO     App name: academic_ensemble
woom.cli    : DEBUG    Initialize the host manager
woom.cli    : INFO     Initialized the host manager
woom.cli    : DEBUG    Load hosts config file: hosts.cfg
woom.cli    : INFO     Loaded hosts config file: hosts.cfg
woom.cli    : DEBUG    Infer host
woom.cli    : INFO     Infered host: local
woom.cli    : DEBUG    Initialize the task manager
woom.cli    : INFO     Initialized the task manager
woom.cli    : DEBUG    Load the task config file: tasks.cfg
woom.cli    : INFO     Loaded the task config file: tasks.cfg
woom.cli    : DEBUG    Initialize the workflow
woom.workflow: DEBUG    Task tree:
cycles:
    - seq0: task0 // task1
woom.cli    : INFO     Initialized the workflow
woom.cli    : INFO     Successfully setup the workflow!
woom.cli    : DEBUG    Run the workflow
woom.workflow: DEBUG    Running the workflow in fake mode
woom.workflow: DEBUG    Entering stage: prolog
woom.workflow: DEBUG    No sequence of task. Skipping...
woom.workflow: DEBUG    Entering stage: cycles
woom.workflow: INFO     Cycling on intervals from 2020-01-01 00:00:00+00:00 to 2020-01-02 00:00:00+00:00 in 2 time(s)
woom.workflow: DEBUG    Running cycle: 2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)
woom.workflow: DEBUG    Entering sequence: seq0
woom.workflow: DEBUG    Running task: cycles/seq0/task0/member1
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task0/member1
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.job    : INFO     Started job manager: BackgroundJobManager()
woom.workflow: DEBUG    Submitting task: cycles/seq0/task0/member1
woom.workflow: DEBUG      Dependencies: 
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task0"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="7"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="1"
export WOOM_CYCLE_IS_LAST="0"
export WOOM_CYCLE_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV=""
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER="member1"
export WOOM_KS="1.3168351028329879"
export WOOM_CD="0.1"
export WOOM_TASK="task0"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/context.json"
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1; } || exit 1

# Run the commandline(s)
echo this is member member1/7
echo label=member1, rank=1/7
echo now it is a letter: A
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value 0.1
echo ks has value 1.3168351028329879
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member1 with job id 497665
woom.workflow: DEBUG    Running task: cycles/seq0/task0/member2
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task0/member2
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.workflow: DEBUG    Submitting task: cycles/seq0/task0/member2
woom.workflow: DEBUG      Dependencies: 
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task0"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="7"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="1"
export WOOM_CYCLE_IS_LAST="0"
export WOOM_CYCLE_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV=""
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER="member2"
export WOOM_KS="1.4864172036136776"
export WOOM_CD="0.3"
export WOOM_TASK="task0"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/context.json"
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2; } || exit 1

# Run the commandline(s)
echo this is member member2/7
echo label=member2, rank=2/7
echo now it is a letter: B
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value 0.3
echo ks has value 1.4864172036136776
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member2 with job id 326452
woom.workflow: DEBUG    Running task: cycles/seq0/task0/member4
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task0/member4
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.workflow: DEBUG    Submitting task: cycles/seq0/task0/member4
woom.workflow: DEBUG      Dependencies: 
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task0"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="7"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="1"
export WOOM_CYCLE_IS_LAST="0"
export WOOM_CYCLE_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV=""
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER="member4"
export WOOM_KS="0.9306536313646606"
export WOOM_CD="0.7"
export WOOM_TASK="task0"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/context.json"
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4; } || exit 1

# Run the commandline(s)
echo this is member member4/7
echo label=member4, rank=4/7
echo now it is a letter: D
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value 0.7
echo ks has value 0.9306536313646606
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member4 with job id 242904
woom.workflow: DEBUG    Running task: cycles/seq0/task0/member5
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task0/member5
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.workflow: DEBUG    Submitting task: cycles/seq0/task0/member5
woom.workflow: DEBUG      Dependencies: 
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task0"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="7"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="1"
export WOOM_CYCLE_IS_LAST="0"
export WOOM_CYCLE_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV=""
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER="member5"
export WOOM_KS="1.1656734806522526"
export WOOM_CD="0.9"
export WOOM_TASK="task0"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/context.json"
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5; } || exit 1

# Run the commandline(s)
echo this is member member5/7
echo label=member5, rank=5/7
echo now it is a letter: E
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value 0.9
echo ks has value 1.1656734806522526
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member5 with job id 4025
woom.workflow: DEBUG    Running task: cycles/seq0/task1
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task1
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00
woom.workflow: DEBUG    Submitting task: cycles/seq0/task1
woom.workflow: DEBUG      Dependencies: 
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task1"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="4"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="1"
export WOOM_CYCLE_IS_LAST="0"
export WOOM_CYCLE_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV=""
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER=""
export WOOM_TASK="task1"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/context.json"
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1; } || exit 1

# Run the commandline(s)
echo task not distributed across members
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task1 with job id 930125
woom.workflow: INFO     Successfully submitted cycle: 2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)
woom.workflow: DEBUG    Running cycle: 2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)
woom.workflow: DEBUG    Entering sequence: seq0
woom.workflow: DEBUG    Running task: cycles/seq0/task0/member1
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task0/member1
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: DEBUG    Submitting task: cycles/seq0/task0/member1
woom.workflow: DEBUG      Dependencies: 497665, 326452, 242904, 4025, 930125
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task0"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="7"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="0"
export WOOM_CYCLE_IS_LAST="1"
export WOOM_CYCLE_NEXT=""
export WOOM_CYCLE_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER="member1"
export WOOM_KS="1.3168351028329879"
export WOOM_CD="0.1"
export WOOM_TASK="task0"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/context.json"
export WOOM_CYCLE_BEGIN_DATE_PREV="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL_PREV="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE_PREV="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION_PREV="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_PREV="1"
export WOOM_CYCLE_IS_LAST_PREV="0"
export WOOM_CYCLE_NEXT_PREV="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV_PREV=""
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1; } || exit 1

# Run the commandline(s)
echo this is member member1/7
echo label=member1, rank=1/7
echo now it is a letter: A
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value 0.1
echo ks has value 1.3168351028329879
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member1 with job id 157331 depending on [497665, 326452, 242904, 4025, 930125]
woom.workflow: DEBUG    Running task: cycles/seq0/task0/member2
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task0/member2
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: DEBUG    Submitting task: cycles/seq0/task0/member2
woom.workflow: DEBUG      Dependencies: 497665, 326452, 242904, 4025, 930125
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task0"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="7"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="0"
export WOOM_CYCLE_IS_LAST="1"
export WOOM_CYCLE_NEXT=""
export WOOM_CYCLE_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER="member2"
export WOOM_KS="1.4864172036136776"
export WOOM_CD="0.3"
export WOOM_TASK="task0"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/context.json"
export WOOM_CYCLE_BEGIN_DATE_PREV="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL_PREV="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE_PREV="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION_PREV="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_PREV="1"
export WOOM_CYCLE_IS_LAST_PREV="0"
export WOOM_CYCLE_NEXT_PREV="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV_PREV=""
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2; } || exit 1

# Run the commandline(s)
echo this is member member2/7
echo label=member2, rank=2/7
echo now it is a letter: B
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value 0.3
echo ks has value 1.4864172036136776
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member2 with job id 20180 depending on [497665, 326452, 242904, 4025, 930125]
woom.workflow: DEBUG    Running task: cycles/seq0/task0/member4
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task0/member4
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: DEBUG    Submitting task: cycles/seq0/task0/member4
woom.workflow: DEBUG      Dependencies: 497665, 326452, 242904, 4025, 930125
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task0"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="7"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="0"
export WOOM_CYCLE_IS_LAST="1"
export WOOM_CYCLE_NEXT=""
export WOOM_CYCLE_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER="member4"
export WOOM_KS="0.9306536313646606"
export WOOM_CD="0.7"
export WOOM_TASK="task0"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/context.json"
export WOOM_CYCLE_BEGIN_DATE_PREV="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL_PREV="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE_PREV="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION_PREV="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_PREV="1"
export WOOM_CYCLE_IS_LAST_PREV="0"
export WOOM_CYCLE_NEXT_PREV="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV_PREV=""
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4; } || exit 1

# Run the commandline(s)
echo this is member member4/7
echo label=member4, rank=4/7
echo now it is a letter: D
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value 0.7
echo ks has value 0.9306536313646606
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member4 with job id 891891 depending on [497665, 326452, 242904, 4025, 930125]
woom.workflow: DEBUG    Running task: cycles/seq0/task0/member5
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task0/member5
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: DEBUG    Submitting task: cycles/seq0/task0/member5
woom.workflow: DEBUG      Dependencies: 497665, 326452, 242904, 4025, 930125
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task0"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="7"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="0"
export WOOM_CYCLE_IS_LAST="1"
export WOOM_CYCLE_NEXT=""
export WOOM_CYCLE_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER="member5"
export WOOM_KS="1.1656734806522526"
export WOOM_CD="0.9"
export WOOM_TASK="task0"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/context.json"
export WOOM_CYCLE_BEGIN_DATE_PREV="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL_PREV="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE_PREV="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION_PREV="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_PREV="1"
export WOOM_CYCLE_IS_LAST_PREV="0"
export WOOM_CYCLE_NEXT_PREV="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV_PREV=""
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5; } || exit 1

# Run the commandline(s)
echo this is member member5/7
echo label=member5, rank=5/7
echo now it is a letter: E
echo this is really $WOOM_MEMBER/$WOOM_NMEMBERS
echo cd has value 0.9
echo ks has value 1.1656734806522526
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member5 with job id 929169 depending on [497665, 326452, 242904, 4025, 930125]
woom.workflow: DEBUG    Running task: cycles/seq0/task1
woom.workflow: DEBUG    Task path: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1
woom.workflow: DEBUG    Cleaning task: cycles/seq0/task1
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00
woom.workflow: DEBUG    Submitting task: cycles/seq0/task1
woom.workflow: DEBUG      Dependencies: 497665, 326452, 242904, 4025, 930125
woom.workflow: DEBUG    Creating directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1
woom.workflow: INFO     Fake submission: academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1 → bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/job.sh
woom.workflow: DEBUG    Fake submission:
--------------- submission command ---------------
bash /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/job.sh
-------------- batch script content --------------
#!/bin/bash

# Prolog
set -eo pipefail
# - handler for graceful termination
on_sigterm() {
    echo "Received termination signal, cleaning up..."
    # Just exit cleanly, let on_exit handle status
    exit 0
}
# - handler for killing termination
on_sigkill() {
    echo "Received kill signal, cleaning up..." >&2
    # Just exit cleanly, let on_exit handle status
    exit 1
}
# - handler for exit (always called)
on_exit() {
    status=$?
    if [ ! -f "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/job.terminating" ]; then
        echo $status > "/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/job.status"
    fi
    exit $status
}
trap on_sigterm SIGKILL
trap on_sigkill SIGTERM SIGINT
trap on_exit EXIT


# Environment variables
export WOOM_TASK_NAME="task1"
export WOOM_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1"
export WOOM_WORKFLOW="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/workflow.cfg"
export WOOM_HOST="local"
export WOOM_TASKMANAGER="/home/docs/checkouts/readthedocs.org/user_builds/woom/envs/latest/lib/python3.11/site-packages/woom/tasks.cfg:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/tasks.cfg"
export WOOM_JOBMANAGER="BackgroundJobManager"
export WOOM_TASK_TREE_CYCLES_SEQ0="['task0']:['task1']"
export WOOM_CYCLES="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00:2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_NMEMBERS="4"
export WOOM_MEMBERS="member1:member2:member4:member5"
export WOOM_PATHS_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin"
export WOOM_PATHS_PYTHONPATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python"
export WOOM_PATHS_LIBRARY_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib"
export WOOM_PATHS_INCLUDE_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include"
export WOOM_APP_PATH="academic_ensemble"
export WOOM_APP_NAME="academic_ensemble"
export WOOM_APP_CONF=""
export WOOM_APP_EXP=""
export WOOM_CYCLES_BEGIN_DATE="2020-01-01T00:00:00+00:00"
export WOOM_CYCLES_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLES_ROUND="D"
export WOOM_CYCLES_FREQ="12h"
export WOOM_CYCLES_NCYCLES="0"
export WOOM_CYCLES_INDEP="0"
export WOOM_CYCLES_AS_INTERVALS="1"
export WOOM_CYCLES_HORIZON=""
export WOOM_SCRATCH_DIR="/home/docs/woom/scratch"
export WOOM_WORK_DIR="/home/docs/woom/work"
export WOOM_WORKFLOW_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble"
export WOOM_LOG_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/log"
export WOOM_CYCLE="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST="0"
export WOOM_CYCLE_IS_LAST="1"
export WOOM_CYCLE_NEXT=""
export WOOM_CYCLE_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_BEGIN_DATE_NEXT="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_LABEL_NEXT="2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_NEXT="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_END_DATE_NEXT="2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_DURATION_NEXT="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_NEXT="0"
export WOOM_CYCLE_IS_LAST_NEXT="1"
export WOOM_CYCLE_NEXT_NEXT=""
export WOOM_CYCLE_PREV_NEXT="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_MEMBER=""
export WOOM_TASK="task1"
export WOOM_TASK_PATH="academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1"
export WOOM_TASK_RUN_DIR="/home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1"
export WOOM_TASK_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1"
export WOOM_TASK_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/job.sh"
export WOOM_SUBMISSION_DIR="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1"
export WOOM_SCRIPT_PATH="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/job.sh"
export WOOM_TASK_ENV=""
export WOOM_ENV=""
export WOOM_TASK_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/context.json"
export WOOM_CONTEXT_JSON="/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/context.json"
export WOOM_CYCLE_BEGIN_DATE_PREV="2020-01-01T00:00:00+00:00"
export WOOM_CYCLE_LABEL_PREV="2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)"
export WOOM_CYCLE_TOKEN_PREV="2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_END_DATE_PREV="2020-01-01T12:00:00+00:00"
export WOOM_CYCLE_DURATION_PREV="P0DT12H0M0S"
export WOOM_CYCLE_IS_FIRST_PREV="1"
export WOOM_CYCLE_IS_LAST_PREV="0"
export WOOM_CYCLE_NEXT_PREV="2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00"
export WOOM_CYCLE_PREV_PREV=""
export PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/bin:$PATH
export PYTHONPATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib/python:$PYTHONPATH
export LIBRARY_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/lib:$LIBRARY_PATH
export INCLUDE_PATH=/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:/home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/include:$INCLUDE_PATH


# Go to run dir
{ mkdir -p /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1; cd /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1; } || exit 1

# Run the commandline(s)
echo task not distributed across members
--------------------------------------------------
woom.workflow: INFO     Submitted task: cycles/seq0/task1 with job id 353130 depending on [497665, 326452, 242904, 4025, 930125]
woom.workflow: INFO     Successfully submitted cycle: 2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)
woom.workflow: DEBUG    Entering stage: epilog
woom.workflow: DEBUG    No sequence of task. Skipping...
woom.workflow: DEBUG    Terminating non-blocking jobs
woom.cli    : INFO     Successfully ran the workflow!

Normal run#

And finally in run it.

$ woom run --log-no-color
woom.cli    : INFO     Loaded extensions: jinja_filters, validator_functions
woom.cli    : INFO     Using user specific file for workflow configuration specifications: workflow.ini
woom.cli    : INFO     Loaded workflow config
woom.cli    : INFO     App name: academic_ensemble
woom.cli    : INFO     Initialized the host manager
woom.cli    : INFO     Loaded hosts config file: hosts.cfg
woom.cli    : INFO     Infered host: local
woom.cli    : INFO     Initialized the task manager
woom.cli    : INFO     Loaded the task config file: tasks.cfg
woom.cli    : INFO     Initialized the workflow
woom.cli    : INFO     Successfully setup the workflow!
woom.workflow: INFO     Cycling on intervals from 2020-01-01 00:00:00+00:00 to 2020-01-02 00:00:00+00:00 in 2 time(s)
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0
woom.job    : INFO     Started job manager: BackgroundJobManager()
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member1 with job id 875
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member2 with job id 877
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member4 with job id 879
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member5 with job id 881
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task1 with job id 883
woom.workflow: INFO     Successfully submitted cycle: 2020-01-01T00:00:00+00:00 -> 2020-01-01T12:00:00+00:00 (0 days 12:00:00)
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member1 with job id 885 depending on [875, 877, 879, 881, 883]
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member2 with job id 887 depending on [875, 877, 879, 881, 883]
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member4 with job id 889 depending on [875, 877, 879, 881, 883]
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task0/member5 with job id 891 depending on [875, 877, 879, 881, 883]
woom.workflow: INFO     Created directory: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1
woom.workflow: INFO     Created batch script: /home/docs/checkouts/readthedocs.org/user_builds/woom/checkouts/latest/examples/academic/ensemble/jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1/job.sh
woom.workflow: INFO     Submitted task: cycles/seq0/task1 with job id 893 depending on [875, 877, 879, 881, 883]
woom.workflow: INFO     Successfully submitted cycle: 2020-01-01T12:00:00+00:00 -> 2020-01-02T00:00:00+00:00 (0 days 12:00:00)
woom.cli    : INFO     Successfully ran the workflow!

Check status#

Check what is running or finished.

$ woom show status
╭──────────┬─────────┬────────┬─────────────────────────────────────────────────────┬───────────┬──────────────────────────────────────────────────────────────────────────────────────────╮
│ STATUS   │   JOBID │ TASK   │ CYCLE                                               │ MEMBER    │ SUBMISSION DIR                                                                           │
├──────────┼─────────┼────────┼─────────────────────────────────────────────────────┼───────────┼──────────────────────────────────────────────────────────────────────────────────────────┤
│ SUCCESS  │     875 │ task0  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │ member1/4 │ jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1 │
│ SUCCESS  │     877 │ task0  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │ member2/4 │ jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2 │
│ SUCCESS  │     879 │ task0  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │ member4/4 │ jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4 │
│ SUCCESS  │     881 │ task0  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │ member5/4 │ jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5 │
│ SUCCESS  │     883 │ task1  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │           │ jobs/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1         │
│ SUCCESS  │     885 │ task0  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │ member1/4 │ jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1 │
│ SUCCESS  │     887 │ task0  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │ member2/4 │ jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2 │
│ SUCCESS  │     889 │ task0  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │ member4/4 │ jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4 │
│ SUCCESS  │     891 │ task0  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │ member5/4 │ jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5 │
│ SUCCESS  │     893 │ task1  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │           │ jobs/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1         │
╰──────────┴─────────┴────────┴─────────────────────────────────────────────────────┴───────────┴──────────────────────────────────────────────────────────────────────────────────────────╯

Show run directories#

Show where tasks were executed.

$ woom show run_dirs
╭────────┬─────────────────────────────────────────────────────┬───────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ TASK   │ CYCLE                                               │ MEMBER    │ RUN DIR                                                                                                          │
├────────┼─────────────────────────────────────────────────────┼───────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ task0  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │ member1/4 │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member1 │
│ task0  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │ member2/4 │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member2 │
│ task0  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │ member4/4 │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member4 │
│ task0  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │ member5/4 │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task0/member5 │
│ task1  │ 2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00 │           │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T00:00:00+00:00-2020-01-01T12:00:00+00:00/task1         │
│ task0  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │ member1/4 │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member1 │
│ task0  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │ member2/4 │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member2 │
│ task0  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │ member4/4 │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member4 │
│ task0  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │ member5/4 │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task0/member5 │
│ task1  │ 2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00 │           │ /home/docs/woom/scratch/woom/academic_ensemble/2020-01-01T12:00:00+00:00-2020-01-02T00:00:00+00:00/task1         │
╰────────┴─────────────────────────────────────────────────────┴───────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯