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.
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.
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.
|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.|
> 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"