Moab Workload Manager

6.5 Internal Charging Facilities

6.5.1 Internal Charging Overview

Moab provides internal support for a number of allocation management tasks and policies. In terms of charging, these facilities include the ability to assign per resource, per user, and per QoS charging rates. For resource allocation, it supports the ability to allocate fixed per user, group, project, and QoS allocations as well as the ability to enable sliding window based resource allocations.

Per resource charging rates are specified using the CHARGERATE attribute of the NODECFG parameter. This attribute is supported for both DEFAULT and specific node configurations.

Per QoS charging is covered in detail in the QoS Charging section.

Sliding window based resource allocations are enabled by configuring the fairshare facility and enabling cap based targets as documented in the Fairshare Targets section.

Credits can be granted to accounts using the CREDITS attribute of the ACCOUNTCFG parameter (ACCOUNTCFG[<name>] CREDITS=<FLOAT>). When a job finishes, its cost (determined by the per QoS charging facility) is debited from the credits of the account under which it ran. This allows sites to allocate credits to certain accounts.

Example

The following configuration highlights some of these capabilities. The first two lines define the charging policy. In this case, jobs are charged based on wallclock time and requested quality of service. The next two lines indicate that jobs requesting the special services available within the premium QoS are charged at a rate 10x that of other jobs. The ACCOUNTCFG lines provide a number of consumable credits to the specified accounts. Resources used by jobs associated with these accounts are charged against these credits. Finally, for auditing purposes, the AMCFG file is added to cause Moab to report all charging based actions to an allocation manager events file.

SCHEDCFG[sched] CHARGERATEPOLICY=QOSREQ
SCHEDCFG[sched] CHARGEMETRICPOLICY=DEBITALLWC

QOSCFG[premium] DEDRESCOST=10.0
QOSCFG[DEFAULT] DEDRESCOST=1.0

ACCOUNTCFG[marketing]   CREDITS=85000
ACCOUNTCFG[sales]       CREDITS=13500
ACCOUNTCFG[development] CREDITS=50000

AMCFG[local]    SERVER=FILE:///opt/moab/charging.log

This setup charges each job 10.0 credits for each second it runs inside the QoS premium. After each job runs, its cost is added to the total amount of credits used.

Note Unlike full allocation management systems, Moab's internal charging facility filters jobs to verify adequate allocations exist before starting but to prevent oversubscription, does not create a true real-time allocation reservation at job start time.

6.5.2 Managing Internal Charging

Current internal charging credit status can be viewed using the Moab Cluster Manager graphical administrator tool or by issuing mdiag -a at a command line.

> mdiag -a
evaluating acct information
Name         Priority        Flags         QDef      QOSList*        PartitionList Target  Limits

marketing           0            -            -            -                     -   0.00       -
  Note:  36100.00 of 85000.00 credits available
development         0            -            -            -                     -   0.00       -
  Note:  49650.00 of 50000.00 credits available
sales               0            -            -            -                     -   0.00       -
  Note:  425.00 of 13500.00 credits available
...

Both base credit and used credit values can be dynamically adjusted using the mschedctl -m command as in the following example:

# set available credits to 15K for sales
> mschedctl -m --flags=pers "ACCOUNTCFG[sales]     CREDITS=15000"

# give an additional 125K credits to marketing
> mschedctl -m --flags=pers "ACCOUNTCFG[marketing] CREDITS+=125000"

# give marketing a refund of 5K credits
> mschedctl -m --flags=pers "ACCOUNTCFG[marketing] USEDCREDITS-=5000"

See Also