Horizontal Navigation Bar |
---|
Button Group |
---|
Button Hyperlink |
---|
title | Previous |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Repeat |
---|
|
Button Hyperlink |
---|
title | Up |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Advanced+Topics |
---|
|
Button Hyperlink |
---|
title | Next |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Late+Attribute |
---|
|
|
|
Limits provide simple load management by limiting the number of tasks
...
Ecf script
We will create
family f5 with nine tasks.
Create new
ecf script s in
$HOME/course/test/f5/ directory, each one containing:
Code Block |
---|
language | bash |
---|
title | $HOME/course/test/f5/t1.ecf,t2.ecf.....t9.ecf |
---|
|
%include <head.h>
echo "I will now sleep for %SLEEP% seconds"
sleep %SLEEP%
%include <tail.h> |
Text
Let us modify our suite definition file:
Code Block |
---|
# Definition of the suite test.
suite test
edit ECF_INCLUDE "$HOME/course"
edit ECF_HOME "$HOME/course"
limit l1 2
family f5
inlimit l1
edit SLEEP 20
task t1
task t2
task t3
task t4
task t5
task t6
task t7
task t8
task t9
endfamily
endsuite |
Python
Code Block |
---|
language | py |
---|
title | $HOME/course/test.py |
---|
|
#!/usr/bin/env python2.7
import os
|
import ecflow
from ecflow import Defs,Suite,Family,Task,Edit,Trigger,Complete,Event,Meter,Time,Day,Date,Label, \
RepeatString,RepeatInteger,RepeatDate,InLimit,Limit
def create_family_f5() :
|
f5= ecflow.)f5.add_inlimitf5.add_variable("SLEEP",20)
foriinrange(1, 10):
f5.add_task("t"+ str)
return f5range(1,10) ] )
print "Creating suite definition"
|
defsecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_INCLUDE", os.path.join(os.getenv("HOME"), |
)
suite.add_variable("ECF_HOME", os.path.join(os.getenv("HOME"), "course"))
suite.add_limit
defs = Defs(
Suite("test",
Edit(ECF_INCLUDE=home,ECF_HOME=home),
Limit("l1", |
suite.add_family( defs ("Checking job creation: .ecf -> .job0") |
print #print(defs.check_job_creation())
print |
Checkinlimit references
print )
assert len(defs.check()) == 0,defs.check()
print |
("Saving definition to file 'test.def'")
defs.save_as_defs("test.def") |
What to do
- Edit the changes
- Replace the suite definition
- In ecflow_ui , observe the triggers of the limit l1
- Open the Info panel for l1
- Change the value of the limit
- Open the Why? panel for one of the queued tasks of /test/f5
...