ecFlow's documentation is now on readthedocs!

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

This command defines a limit into the current node. It is a means of providing simple load management by say limiting the number of tasks submitted to a specific server.
Typically you either define limits on suite level or define a separate suite to hold limits so that they can be used by multiple suites.

suite limits
 limit sgi 10
 limit mars 10
 endsuite 
 suite obs
 family limits
 limit hpcd 20
 endfamily
 extern /limits:sgi
 task t1
 inlimit sgi
 task t2
 inlimit /obs/limits:hpcd
 endsuite

Using Limits

In order to use limits you have to first define a limit in the suite definition file and then you must also assign families/tasks to use this limit, e.g.
suite x
limit fast 1
family f
inlimit /x:fast
task t1
task t2
Where fast is the "name" of the limit and the number after the name defines maximum number of tasks that can run simultaneously using this limit. That's why you do not need a trigger between tasks "t1" and "t2".
There is no need to change the tasks. The jobs are run in the order they appear in the suite definition. Be aware that command order may be used to modify the order after the suite definition has been defined.
The following is a sequence if the jobs run in the normal order


And if you manually now re-run the "t1" (you go over the limit!)

Using integer limits is a bit different. In the following example we define limit disk to be 50 (megabytes) and task using 20 (megabytes) each. This means that only two of them can be running any given time.
suite x
limit disk 50
family f
inlimit disk 20
task t1
task t2
task t3
Where disk is the "name" of the limit, 50 is the maximum value this limit can be.

  • No labels