You are on page 1of 3

An Optimized Algorithm for Task Scheduling Based On Activity Based Costing in Cloud Computing

QI CAO
International School of Software Wuhan University Wuhan 430079, China Greysh@163.com

ZHI-BO WEI
School of Software Engineering Huazhong University of Science and Technology Wuhan 430074, China uglytrollx@gmail.com

WEN-MAO GONG
International School of Software Wuhan University Wuhan 430079, China Louiscool.g@163.com

AbstractIn cloud computing, traditional way for task scheduling cannot measure the cost of cloud resources accurately by reason that each of the tasks on cloud systems is totally different between each other. There may be no relationship between the overhead application base and the way that different tasks cause overhead costs of resources in cloud systems. The traditional way for task scheduling cannot meet the cloud market well enough. This paper introduces an optimized algorithm for task scheduling based on ABC (Activity Based Costing) in cloud computing and its implementation. Compared with the traditional methods of task scheduling, a new method with an optimized algorithm based on ABC algorithm was proposed in this paper.

the opposite side which need to buy a lot of expensive hardware for the ever growing computing tasks. It is necessary to ensure that the resources are used in the most beneficial manner [1]. Traditionally, tasks are scheduled by users' requirements. The ABC (Activity Based Costing) method typically involves the selection of a set of resources to be used in computing [2]. This paper will focus on an optimized activity-based costing algorithm approach to the tasks selection problem for flexible cloud computing systems in order to profit more than those with the traditional ones. II. Traditional way in cloud computing In order to compare an optimized activity-based costing algorithm with the traditional one for task scheduling, the architecture of cloud computing need firstly be introduced. Then the traditional way will be presented. A. The architecture of cloud computing Cloud computing is Internet-based development and use of computer technology. The cloud is a metaphor for the Internet (based on how it is depicted in computer network diagrams) and is an abstraction for the complex infrastructure it conceals. The architecture behind cloud computing is a massive network of "cloud resources" interconnected as if in a grid running in parallel, always using the technique of virtualization to maximize the computing power per server [3]. Applications of users work on the virtual operation systems are shown as in Figure 1.

Keywords-Cloud computing; task scheduling; activity based


costing; optimized algorithm

I. Introduction With the popularity of the Internet, a lot of business applications based on Internet are widely used while the scientific computing has just started. As learned from past events, computing in its purest form, has changed hands multiple times. Most data are stored on local networks with servers that may be clustered and share storages. This approach has enough time to be developed into a stable architecture, and provides decent redundancy if its deployed in a right way. A new emerging technology, cloud computing, has shown up a demanding attention and quickly been changing the direction of the technology landscape. With more cloud platforms and more Saas (Software as a service) applications which run entirely in them, how to benefit more from them with existent systems is considered to be an important question. According to related statistical data, the average service rate of resource in some systems is just 30%, while some other companies or organizations in

978-1-4244-2902-8/09/$25.00 2009 IEEE

III.

Activity based costing as a solution in cloud

computing ABC uses cost drivers that directly link performed activities to tasks made. Cost drivers are selected which measure the average demand placed on each activity by each task. Activity cost pools are assigned to tasks in proportion to the way that they consume each activity in system resources. A. Activity based costing in cloud computing Activity-based costing is a way of measuring both the cost of the objects and the performances of activities. It can help solve problems such as: distorted product costs and
FIGURE 1. ARCHITECTURE OF CLOUD COMPUTING

poor cost control [5]. In cloud computing, each application of users will run on a virtual operation system, the cloud systems distributed resources among these virtual operation systems. Every application is completely different and is independent and has no link between each other whatsoever, for example, some require more CPU time to compute complex task, and some others may need more memory to store data, etc. Resources are sacrificed on activities performed on each individual unit of service. In order to measure direct costs of applications, every individual use of resources (like CPU cost, memory cost, I/O cost, etc.) must be measured. When the direct data of each individual resources cost has been measured, more accurate cost and profit analysis based on it than those of the traditional way can be got. B. Implementation of activity based costing method in cloud computing Cost of every individual resources use is different. The priority level can be sorted by the ratio of tasks cost to its profit. For easy management, three lists can be built for the sorted task, each list has a label of priority level such as HIGH, MID and LOW. Cloud systems can take someone out from the highest priority list to compute. Maps should be scanned every turn to modify the priority level of each task. Some restrictive conditions like maximum time user can wait should to be measured as extra factors. Parameters are defined as followed: (1) Ri,k: The ith individual use of resources by the kth

As shown in Figure 1, the virtualization employed cloud resources as the environment for applications to work on. Obviously, cloud resources are limited while the requirements of applications are growing. B. The disadvantages of traditional way for task scheduling in cloud computing Traditional way for task scheduling in cloud computing tended to use the direct tasks of users as the overhead application base. The problem is that there may be no relationship between the overhead application base and the way that different tasks cause overhead costs of resources in cloud systems. This problem leads to over-costed and over-priced in some high-volume simple tasks while under-costed and under-priced in low-volume complex ones. To compete in the marketplace, some companies have had to cut the prices of high volume popular items. But they have been able to achieve high mark-ups on low volume specialty tasks. Price cuts produce increased sales in units but decreased total revenue and high mark-ups on specialty tasks didnt offset the fall in profit margins of high volume ones [4]. Here are some causes of the problems: increased product diversity, changing cost structures and use of volume-based cost drivers, all of these causes have resulted in the costs in cloud distorted.

task. (2) Ci,k: The cost of the i individual use of resources by the kth task. (3) Pk: The profit earned from the kth task. (4) Lk: The priority level of the kth task. The priority level of each task can be calculate as in formula (1), the total individual resources use is supposed to be n, so the priority level of the kth task is:
th

V. Conclusions and future work Traditional way for task scheduling in cloud computing tended to use the direct tasks of users as the overhead application base. There are some problems with it. This problem leads to over-costed and over-priced in some high-volume simple tasks while under-costed and under-priced in low-volume complex ones. Activity-based costing is a way of measuring both the cost of the objects (1) and the performances of activities and it can measure the cost more accurate than traditional ones in cloud computing. This paper introduces an optimized algorithm for task scheduling based on ABC (Activity Based Costing) in cloud computing and the implementation of it. Compared with the traditional way of task scheduling, activity based costing method has its own advantages. In future, the more accurate comparative data will be measured based on SimGrid[10], and more concrete algorithm which can meet more complex condition will be investigated. REFERENCES
[1] Rajkumar Buyya, Chee Shin Yeo, Srikumar Venugopal. Market-Oriented Cloud Computing: Vision, Hype, and Reality for Delivering IT Services as Computing Utilities, GRIDS Lab Technical Report, August 2008. [2] YM Babad. Cost Driver Optimization in Activity-Based Costing, Accounting review, 1993. [3] Cloud computing and distributed computing. http://www.cncloudcomputing.com/. [4] PBB Turney, Common Cents: The ABC Performance Breakthrough: how to succeed with Activity-based Costing, Cost technology, 1992. [5] JA Brimson, Activity Accounting: An Activity-based Costing Approach, John Wiley & Sons, 1991. [6] J Innes, F Mitchell, A survey of activity-based costing in the UK's largest companies, Management Accounting Research, 1995. [7] J Blythe, S Jain, E Deelman, Y Gil, K Vahi, Task scheduling strategies for workflow-based applications in grids, Cluster Computing and the Grid, 2005. [8] Rajkumar Buyya, Manzur Murshed, A Deadline and Budget Constrained Cost-Time optimization Algorithm for Scheduling Task Farming Applications on Global Grids, Technical Report, Monash University, March 2002. [9] J Cao, DP Spooner, SA Jarvis, S Saini, Agent-Based Grid Load Balancing Using Performance-Driven Task Scheduling, International Parallel and Distributed Processing Symposium, 2003. [10] Casanova H, SimGrid : a toolkit for the simulation of application scheduling, IEEE Computer Society Press, 2001.

L
IV.

= Ri ,k C i ,k Pk
i =0

Algorithm of activity based costing method in cloud computing

This section describe how to design an algorithm of activity based costing method in cloud computing. The specific algorithm is described as followed: Algorithm of preprocess: For all available tasks do Calculate their priority levels Lk End for For every Lk do Sort them and then put them into an appropriate list End for While the system is running do If there is new task coming do Calculate its priority and then put it into an appropriate list End if End while Algorithm of process: Do preprocess as a thread While the system is running do If every list is not empty do Process the task which has the highest priority Scan every list to modify the priority base on the restrictive conditions End if End while

You might also like