Versions Compared

    Key

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

    ...

    Each host has a list of resources including system resources such as memory and number of processors. It also includes user-specified resources. Resources are integer based (meaning '1' and '99' are valid resource counts; 'a' and '4.5' are not) and automatically decrement/increment upon acceptance of a job. A resource can be "discovered" by the system (eg, number of cores) or defined by admins (eg, number of licenses).

    The user must know whether the resource is global or host-based (see global and host resources). Global resources are tracked through the entire system. For , for example, the license tracking of licenses. A host resource is local and specific to each host, for example the number of cores.

    ...

    type.name=quantity[,type.name=quantity…]

    This appears is set on the Supervisor (for global resources, see supervisor_global_resources), on the host (for host-based resources, see worker_resources) and/or in the job submission UI in the reservations field.

    ...

    Info

    From version 6.5 on Qube! allows for a more "dynamic" evaluation of the "host.processors=1+" or "host.processors=4-8" style of reservations.

    A "1+" reservation used to mean "all the slots", but there was no way to know how many slots it was allocated; there could be a 2-slot job already running on an 8-slot worker, and then the 1+ would just assume that it was getting all 8 slots and the worker would be over-scheduled for as long as both the 2-slot and the 1+ job were running at the same time.

    Now, the reservations as evaluated on each worker at the time the job instance starts on the particular worker. So in the above example, the 2-slot job has already been allocated 2 worker slots, and when the 1+ instance starts, it's allocated the remaining 6 slots.

    Examples

    ReservationExplanation
    "host.memory=200"Reserve 200MB of memory on the host

    ...

    "host.

    ...

    processors=

    ...

    1+"

    ...

    Reserve

    ...

    all processors on a host

    ...

    , but at least 1 must be available in order to start
    "host.processors=1

    ...

    -20"

    ...

    Reserve

    ...

    20 processors on a single host

    ...

    , but at least 1 must be available in order to start
    "global.maya=1" Reserve a global resource called maya

    ...

    Relevant environment variables

    This will be exposed to the When a 1+ or similar job picks up on a Worker, we don't know how many cores were available or assigned to that instance. That number is made available dynamically in the running job's running environment as an environment variable, QB_JOBSLOTS=6, (or whatever the value) and stored in the Qube! database in the job's subjob table as "allocations".

    ...