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 5 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