Versions Compared

Key

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

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.

Code Block
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.

Code Block
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 the 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 tasks. The jobs are run in the order they appear in the suite definition. Be aware that the 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

Image Added
 
 Image Added
And if you manually now re-run the "t1" (you go over the limit!)
 Image Added
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.

Code Block
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.
endsuite
Anchor_Toc117323910_Toc117323910 Anchor_Toc117324176_Toc117324176