You are viewing an old version of this page. View the current version.

    Compare with Current View Page History

    Version 1 Next »

    Qube's reservation system is important for correct management of host resources. This is accomplished with the relationship between reservations and resources. 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 and automatically decrement/increment upon acceptance of a job.

    Reservations are used to reserve these resources prior to execution of a job. These resources are always numeric and are integer based. A resource can be defined by either the system, or the administrator.

    The user must know where the resource is located. Examples of this include global and host resources. The global resource is tracked in the entire system. For example, it can be used to simulate tracking of licenses. A host resource is local and specific per host.

    The format of this string is:
    type.name=quantity,[type.name=quantity…]

    Example

    reserves 200MB of memory on the host
    % qbsub --reservations "host.memory=200" set

    reserves at least 1 processor and up to all processors on a host
    % qbsub --reservations "host.processors=1+" set

    reserves from 1 to 20 processors on a single host
    % qbsub --reservations "host.processors=1-20" set

    reserves a global resource called maya.
    % qbsub --reservations "global.maya=1" "maya -batch -render ...."


    Further Reading

    Evaluation of slot reservations at the time of execution

    "host.processors=1+(QB_RESERVATION_INFINITY)
    Dispatch to a worker with at least 1 open slot, then occupy all currently open slots.
    (general form is host.processors=N+, where N is a positive integer)

    "host.processors=1*(QB_RESERVATION_ALL)
    Dispatch to a worker with at least N open slots AND no used slots (i.e. worker must be idle!), then occupy all currently open slots.
    (general form is host.processors=N*, where N is a positive integer)

    "host.processors=all(QB_RESERVATION_ALL): Equivalent to above, "host.processors=1*"

    "host.processors=N+M": Dispatch to a worker with at least N to M open slots. Upon being dispatched to a worker, it occupies as many slots up to M, as slots free up.

     

    • No labels