Resource Management
Altair Accelerator includes a subsystem for managing computing resources. This allows the design team to factor in various constraints regarding hardware and software resources, as well as site policy constraints.
This mechanism is based on the following:
- Resources required by jobs
- Resources offered by taskers
- Resource maps, as described in the file
resources.tcl
There are several types of resources, which are listed below:
Resource type | Representation | Explanation |
---|---|---|
Job Resources | name |
A resource required by a job. If the quantity is not shown, the default is 1; "unix" is the same as "unix#1". |
Uncountable Resources (also called Attributes) | name |
These resources represent attributes of a tasker that are not countable. For example, a tasker may have attributes such as "unix" or "linux". The quantity is not shown for these resources and it defaults to MAXINT; "unix" is equivalent to "unix#MAXINT". |
Quantitative Resources | name#quantity |
Example: The resource RAMTOTAL#2014 on a
tasker indicates the total amount of RAM on
that machine. On a job, it says that the job requires at least the
shown amount of RAMTOTAL. |
Consumable Resources | name/quantity |
Example: RAM/500 assigned to a job indicates that the job consumes 500 MB of the consumable resources RAM. |
Negated Resources | !name |
Example: "unix !linux" on a job indicates that the job requires a UNIX machine but not a Linux one. |
The definition of the quantity is related to the context of the resource. If the
context is a tasker, quantity represents how much of that
resource is available from the tasker. If the context is a job,
quality represents how much of that resource is required by the job.
Note: Negated
resources are allowed only for the context of a job.
The unit of measure is determined by convention for each resource. For
example, the resource RAMTOTAL
is measured in MB. By default,
quantity is assumed to be 1; the notation foo
is equivalent to
foo#1
.
A resources list is a space-separated list of resources, which are
typical resources offered by the taskers. The following example
indicates that a job requires at least 128 MB of RAM and a UNIX host, but not a Linux host.
RAMTOTAL#128 unix !linux
A resources expression is a space separated list of resources and
operators: typical resources requested by the jobs or mapped in the resource map
set. Operators can be one of the following:
<blank space>
,
&
, |
, OR
,
AND
, !
, and NOT
. The
operators are defined in the table below. Note: Logical
AND
has
precedence over logical OR
operations. - Operator
- Description
<blank space>
- implicit logical AND
&
- explicit logical AND
AND
- explicit logical AND
|
- explicit logical OR
OR
- explicit logical OR
!
- explicit logical negation
NOT
- explicit logical negation
For example, a job may have the following resource requirements:
RAMTOTAL#128 unix !linux | RAMTOTAL#512 & linux
This job requires either a UNIX host with at least 128 MB
of RAM, but not a linux
host or a Linux host with at least 512MB of
RAM.