Provided by: gridengine-common_6.2u5-7.4_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.

SGE 6.2u5                                            $Date$                                SGE_RESOURCE_QUOTA(5)