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.

Also in this Section