Libra An Economy-Driven Cluster Schedulng and Service Level Agreements (SLA)-based Resource Allocation System

Problem Statement

Clustering involves connecting two or more computers together to take advantage of combined computational power and resources. Hence, a cluster works as an integrated collection of resources that can provide a single system image spanning all its nodes. Clustering is a popular strategy for processing applications because it transparently spreads the processing of different jobs throughout the cluster, and are used for high-performance applications such as AI expert systems, flight simulations, and scientific calculations.

Computational economy refers to the inclusion of user-specified QoS parameters with jobs so that resource management is based on a user-centric approach rather than on a system-centric approach. This essentially means that user constraints such as deadline and budget are more important in determining the priority of a job by the scheduler, than system policies like ordering jobs according to the basis of submission time. Currently, there is no holistic scheduling mechanism in cluster computing to enable differing QoS levels for different clients.


The main purpose of our project is to:


The Libra Scheduler will only manage sequential and embarrassingly parallel jobs to be run on a homogenous Linux cluster. Linux is an open source operating system, with extensive documentation and user support, and moreover, many open source CMS are well suited for a Linux-based cluster.

To provide QoS to users, there will be no mechanism for users to interact with each other, and bargain on the use of resources according to their considerations, as is provided in a grid-computing environment by projects like Nimrod/G. Once the user job is submitted, the user may not modify the job details. However, if possible, we may allow for interactive jobs that can take in user commands required during the execution of a job.

Project Description

The focus of our project is to implement a scheduler that aims to maximize user satisfaction. Thus the job details submitted by the user will include job prioritization criteria: the allocated budget and the deadline required by the user, enabling the scheduler to maximize CPU utilization while remaining within the constraints imposed by the need to optimize user Quality of Service (QoS).
The scheduler will allocate jobs based on the job parameters, which are job specifications submitted by the user with the job, including: However, our scheduler will be QoS driven: it will aim to optimize resource utilization within user-imposed constraints: thus, user satisfaction is the primary concern, as opposed to maximizing CPU utilization. Thus, the two job parameters most relevant to the scheduling decisions will be: As mentioned earlier, the type of jobs that will be supported are sequential and embarrassingly parallel jobs.

With support from the CMS, the Libra Scheduler should embody the following features: A market-based economic model for computational economy needs to be developed for our cluster, which would be responsible for the pricing and allocation of resources according to user constraints. The model that we are going to implement is the bid-based proportional resource-sharing model, possibly incorporating features of other models such as the commodity market model.

The Team Members

Active Members



Software and Documentation