QBank -- Allocation Manager
QBank, developed at Pacific Northwest National Laboratory (PNNL), is a dynamic open source cpu bank that allows system owners and funding managers to fine tune when, where, how and to whom their resources are to be rationed. Much like a bank, but with the currency measured in computational credits instead of dollars, QBank provides an administrative interface supporting familiar operations such as deposits, withdrawals, transfers and refunds. It provides balance and usage feedback to users, managers, and system administrators. Computational resources are allocated to projects and users and full accounting is made of resource utilization.
QBank employs a debit (or credit) system in which a hold (reservation) is placed against a user's account before a job starts and a withdrawal occurs immediately after the job completes. This approach ensures requestors of a resource can only use that which has been allocated to them. Allocations for a given account can be subdivided into portions available toward different users, machines and timeframes. Presetting allocations to activate and expire in regular intervals minimizes year-end resource exhaustion and facilitates capacity planning. QBank can manage and track the use of multiple systems from a central location. Additionally, support for job charge quotes and traceback debits allows QBank to be used in meta-scheduling environments involving multiple administrative domains.
In high level summary, QBank provides the following features:
- dynamic allocation tracking - allocations are updated as jobs start and complete
- guaranteed allocation enforcement - a reservation is placed against the project when a job starts to prevent over-subscription
- project based allocation management - project managers allowed to dedicate or share allocations amongst account members
- expiration cycles - allocations can be predesignated to activate and expire at arbitrary times
- allocation expiration - allocations can be granted with arbitrary expiration (and activation) timeframes
- per machine allocations - allocations can be tied to specific compute resources or allowed to float granting access to any machine
- multi-site bank exchange - quotes and traceback debits allow for dynamic exchange arrangements between sites
- QOS and nodetype billing - allows sites to charge varying rates based on the quality of service and type of compute resource requested
- fliexible charging algorithm - site specific charge rates can be specified for period of time, number of processors, amount of memory, etc consumed by job
- secure communication - a checksum (based on a symmetric key) is used to provide authentication and ensure integrity
- resource quotations - users and brokers can determine ahead of time the cost of using resources
- allocation usage reports - provides detailed usage reports and summaries of exactly who used what and when over any specified timeframe
- authorization levels - supports separate user, project manager, and bank manager service authorization levels
- familiar banking commands - supports familiar operations such as deposits, withdrawals, balance feedback, transfers and refunds.
- transparency - support for default projects allows job submitters to use the system without even knowing it
- credit and debit allocations - sites can base allocations on credit or debit models and even enable overdraft protection for specific projects
- open source - being open source allows for site self-sufficiency, customizability and promotes community development and interoperability
Additional information about QBank can be found on the QBank home page and in the QBank white paper Allocation Management with QBank.
|