Provided by: gridengine-common_6.2u5-7.3_all bug

NAME

       SGE_resource_quota - Sun Grid Engine resource quota file format

DESCRIPTION

       Resource quota sets (rqs) are a flexible way to set a maximum resource consumption for any
       job requests. They are used by the scheduler to select the next possible jobs for running.
       The  job request distinction is done by a set of user, project, cluster queue, host and pe
       filter criteria.

       By using the resource quota sets administrators are allowed  to  define  a  fine  granular
       resource  quota  configuration.  This  helps  restricting  some  job  requests to a lesser
       resource usage and granting other job requests a higher resource usage.

       Note: Jobs requesting an Advance Reservation (AR) are not honored by Resource  Quotas  and
       are neither subject of the resulting limit, nor are debited in the usage consumption.

       A  list  of  currently configured rqs can be displayed via the qconf(1) -srqsl option. The
       contents of each listed rqs definition can be shown  via  the  -srqs  switch.  The  output
       follows the SGE_resource_quota format description. New rqs can be created and existing can
       be modified via the -arqs, -mrqs and -drqs options to qconf(1).

       A resource quota set defines a maximum resource quota for a particular job request. All of
       the configured rule sets apply all of the time. This means that if multiple resource quota
       sets are defined, the most restrictive set is used.

       Every resource quota set consist of one or more resource  quota  rules.  These  rules  are
       evaluated  in  order,  and  the first rule that matches a specific request will be used. A
       resource quota set always results in at most one  effective  resource  quota  rule  for  a
       specific request.

       Note,  Sun  Grid  Engine  allows  backslashes  (\)  be  used  to escape newline (\newline)
       characters. The backslash and the newline are replaced with a space (" ") character before
       any interpretation.

FORMAT

       A resource quota set definition contains the following parameters:

   name
       The resource quota set name.

   enabled
       If  set  to  true  the  resource quota set is active and will be considered for scheduling
       decisions. The default value is false.

   description
       This description field is optional and can be set to arbitrary string. The  default  value
       is NONE.

   limit
       Every  resource quota set needs at least one resource quota rule definition started by the
       limit field. It's possible to define more resource quota rules divided by a new  line.   A
       resource  quota  rule consists of an optional name, the filters for a specific job request
       and the resource quota limit.

       By default, the expressed limit counts for the entire filter scope. To express  a  filter-
       scope-specific limit, it's possible to define an expanded list by setting the list between
       '{' '}'. It's only possible to set one complete filter in an expanded list.  The tags  for
       expressing a resource quota rule are:

       name   The  name  of  the  rule.  The use is optional. The rule name must be unique in one
              resource quota set.

       users  Contains a comma separated list of UNIX users or ACLs (see  access_list(5)).   This
              parameter  filters  for  jobs by a user in the list or one of the ACLs in the list.
              Any user not in the list will not be considered for the resource  quota  rule.  The
              default  value  is  '*', which means any user. An ACL is differentiated from a UNIX
              user name by prefixing the ACL name with an '@' sign. To exclude a user or ACL from
              the  rule,  the  name  can  be prefixed with the '!' sign. Defined UNIX user or ACL
              names need not be known in the Sun Grid Engine configuration.

       projects
              Contains a comma separated list  of  projects  (see  project(5)).   This  parameter
              filters for jobs requesting a project in the list. Any project not in the list will
              not be considered for the resource quota rule. If no project filter  is  specified,
              all projects and jobs with no requested project match the rule. The value '*' means
              all jobs with requested projects. To exclude a project from the rule, the name  can
              be  prefixed  with  the  '!'  sign.  The value '!*' means only jobs with no project
              requested.

       pes    Contains a comma separated list of PEs (see sge_pe(5)).  This parameter filters for
              jobs requesting a pe in the list. Any PE not in the list will not be considered for
              the resource quota rule. If no pe filter is specified, all  pe  and  jobs  with  no
              requested  pe  matches the rule. The value '*' means all jobs with requested pe. To
              exclude a pe from the rule, the name can be prefixed with the '!' sign.  The  value
              '!*' means only jobs with no pe requested.

       queues Contains  a  comma  separated  list  of  cluster  queues (see queue_conf(5)).  This
              parameter filters for jobs that may be scheduled in a queue in the list.  Any queue
              not  in  the  list  will not be considered for the resource quota rule. The default
              value is '*', which means any queue. To exclude a queue from the rule, the name can
              be prefixed with the '!' sign.

       hosts  Contains   a   comma  separated  list  of  host  or  hostgroups  (see  host(5)  and
              hostgroup(5)).  This parameter filters for jobs that may be scheduled in a host  in
              the  list  or a host contained in a hostgroup in the list. Any host not in the list
              will not be considered for the resource quota rule. The default value is '*', which
              means  any  hosts.  To  exclude  a host or hostgroup from the rule, the name can be
              prefixed with the '!' sign.

       to     This mandatory field defines the quota for resource attributes for this  rule.  The
              quota  is  expressed  by  one  or  more  limit definitions separated by commas. The
              configuration allows two kind of limits definitions

              static limits
                     Static limits sets static values  as  quotas.  Each  limits  consists  of  a
                     complex  attribute  followed  by  an  "="  sign  and the value specification
                     compliant with the complex attribute type (see complex(5)).

              dynamic limits
                     A dynamic limit is a simple algebraic expression used to  derive  the  limit
                     value.  To  be  dynamic, the formula can reference a complex attribute whose
                     value is used for the calculation  of  the  resulting  limit.   The  formula
                     expression syntax is that of a sum of weighted complex values, that is:

                     {w1|$complex1[*w1]}[{+|-}{w2|$complex2[*w2]}[{+|-}...]]

                     The  weighting  factors  (w1,  ...)  are positive integers or floating point
                     numbers in  double  precision.  The  complex  values  (complex1,  ...)   are
                     specified by the name defined as type INT or DOUBLE in the complex list (see
                     complex(5)).
                     Note: Dynamic limits can only configured for a host-specific rule.

       Please note that resource quotas are not enforced as job resource  limits.   Limiting  for
       example h_vmem in a resource quota set does not result in a memory limit being set for job
       execution.

EXAMPLES

       The following is the simplest form of  a  resource  quota  set.  It  restricts  all  users
       together to the maximal use of 100 slots in the whole cluster.

       =======================================================================
       {
          name         max_u_slots
          description  "All users max use of 100 slots"
          enabled      true
          limit        to slots=100
       }
       =======================================================================

       The  next  example restricts user1 and user2 to 6g virtual_free and all other users to the
       maximal use of 4g virtual_free on every host in hostgroup lx_hosts.

       =======================================================================
       {
          name         max_virtual_free_on_lx_hosts
          description  "resource quota for virtual_free restriction"
          enabled      true
          limit        users {user1,user2} hosts {@lx_host} to virtual_free=6g
          limit        users {*} hosts {@lx_host} to virtual_free=4g
       }
       =======================================================================

       The next example shows the use of a dynamic limit. It restricts all users  together  to  a
       maximum use of the double size of num_proc.

       =======================================================================
       {
          name         max_slots_on_every_host
          enabled      true
          limit        hosts {*} to slots=$num_proc*2
       }
       =======================================================================

SEE ALSO

       sge_intro(1),  access_list(5),  complex(5),  host(5),  hostgroup(5),  qconf(1), qquota(1),
       project(5).

COPYRIGHT

       See sge_intro(1) for a full statement of rights and permissions.