CloudSim: A Framework for Modeling and Simulation of Cloud Computing Infrastructures and Services


Introduction

Recently, cloud computing emerged as the leading technology for delivering reliable, secure, fault-tolerant, sustainable, and scalable computational services, which are presented as Software, Infrastructure, or Platform as services (SaaS, IaaS, PaaS). Moreover, these services may be offered in private data centers (private clouds), may be commercially offered for clients (public clouds), or yet it is possible that both public and private clouds are combined in hybrid clouds.

These already wide ecosystem of cloud architectures, along with the increasing demand for energy-efficient IT technologies, demand timely, repeatable, and controllable methodologies for evaluation of algorithms, applications, and policies before actual development of cloud products. Because utilization of real testbeds limits the experiments to the scale of the testbed and makes the reproduction of results an extremely difficult undertaking, alternative approaches for testing and experimentation leverage development of new Cloud technologies.

A suitable alternative is the utilization of simulations tools, which open the possibility of evaluating the hypothesis prior to software development in an environment where one can reproduce tests. Specifically in the case of Cloud computing, where access to the infrastructure incurs payments in real currency, simulation-based approaches offer significant benefits, as it allows Cloud customers to test their services in repeatable and controllable environment free of cost, and to tune the performance bottlenecks before deploying on real Clouds. At the provider side, simulation environments allow evaluation of different kinds of resource leasing scenarios under varying load and pricing distributions. Such studies could aid the providers in optimizing the resource access cost with focus on improving profits. In the absence of such simulation platforms, Cloud customers and providers have to rely either on theoretical and imprecise evaluations, or on try-and-error approaches that lead to inefficient service performance and revenue generation.

The primary objective of this project is to provide a generalized, and extensible simulation framework that enables seamless modeling, simulation, and experimentation of emerging Cloud computing infrastructures and application services. By using CloudSim, researchers and industry-based developers can focus on specific system design issues that they want to investigate, without getting concerned about the low level details related to Cloud-based infrastructures and services.

CloudSim is powered by jProfiler.


Main features

Overview of CloudSim functionalities:


Documentation


Download

The CloudSim package containing the source code, examples, jars, and API documentation can be downloaded from the CloudSim web page at Google Code:

http://code.google.com/p/cloudsim/downloads/


Code from the paper: Tom Guerout, Thierry Monteil, Georges Da Costa, Rodrigo N. Calheiros, Rajkumar Buyya, Mihai Alexandru. Energy-aware simulation with DVFS. Simulation Modelling Practice and Theory, Volume 39, pages 76-91, December 2013.

CloudSim_DVFS.rar


Issue tracking system

Discussion group (mailing list)


Related projects

CloudSimEx

The goal of the CloudSimEx project is to develop a set of extensions for the CloudSim simulator. The extensions that prove to be worthy will be merged with CloudSim later on.

Note! These extensions are not officially supported by the CloudSim team until they are integrated with CloudSim.

Currently CloudSimEx features:

  1. Web session modeling;
  2. Better logging utilities;
  3. Utilities for generating CSV files for statistical analysis;
  4. Automatic id generation;
  5. Utilities for running multiple experiments in parallel;
  6. MapReduce simulation.

WorkflowSim

WorkflowSim extends the CloudSim simulation toolkit by introducing the support of workflow preparation and execution with an implementation of a stack of workflow parser, workflow engine and job scheduler. It supports a multi-layered model of failures and delays occurring in the various levels of the workflow management systems. A series of popular workflow scheduling algorithms (e.g., HEFT, Min-Min, and Max-Min) and task clustering algorithms have been implemented in WorkflowSim. Parameters are directly learned from traces of real executions that were run by workflow management systems such as Pegasus. WorkflowSim has been developed by Weiwei Chen and team at University of Southern California, USA.

Download and more information can be found in the project's Github.

SimpleWorkflow

This is a simple package containing classes helping in simulating workflows on CloudSim. This is not as comprehensive as WorkflowSim, but it utilizes the same workload description files than WorkflowSim.

Download SimpleWorkflow here.

DynamicCloudSim

Performance instability commonly encountered in non-uniform and shared infrastructures like computational clouds has been repeatedly observed to strongly influence the runtime of applications. DynamicCloudSim extends the CloudSim simulation toolkit by introducing models for (1) heterogeneity in the performance of computational resources, (2) uncertainty in and dynamic changes to the performance of virtual machines, and (3) straggler machines and failures during task execution.

Furthermore, DynamicCloudSim introduces a fine-grained representation of computational resources, thereby enabling the simulation of executing different kinds of applications (CPU-, I/O-, communication-bound) on machines with different performance characteristics. As an entry point for research on workflow scheduling, DynamicCloudSim provides the functionality to simulate the execution of scientific workflows using different well-established schedulers.

DynamicCloudSim has been developed by Marc Bux at Humboldt University of Berlin, Germany. The download is available at the project website on Google Code. For questions and suggestions, please contact bux (at) informatik.hu-berlin.de.

RealCloudSim

RealCloudSim is a simulator of allocations of virtual machines based on the main engine of the CloudSim project. RealCloudSim provides a graphical interface to read network topologies based on the BRITE format. RealCloudSim also uses its own engine to simulate allocations based on Genetic Algorithms, Mixed Integer Programming with Lingo software, and network simulations based on the NS2 (Network Simulator 2). A complete report is generated at the end of each simulation.

RealCloudSim has been developed by Lucio Agostinho Rocha and team at State University of Campinas, Brazil.

Doubts and suggestions can be e-mailed to outrosdiasvirao at yahoo dot com dot br. Download and more information can be found in the project page at SourceForge.

CloudReports

CloudReports is a graphic tool that simulates distributed computing environments based on the Cloud Computing paradigm. It uses CloudSim as its simulation engine and provides an easy-to-use user interface, report generation features and creation of extensions in a plugin fashion.

CloudReports has been developed by Thiago Sa and team at Federal University of Ceara, Brazil.

Download and more information can be found in the project's github.

CloudAuction

This works extends Cloudsim by developing a package library that enables CloudSim to handle auction-based services. The main objective of this research is implementing auction-based mechanisms in Cloudsim. To test the package library, a new market mechanism to efficently allocate services to participants based on the combinatorial double auction principle was implmented. The mechanism considers the relevant attributes applicable in Cloud computing environments to the benefit and satisfaction of both users and providers. In this package library, the auction is held based on cost for CPU MIPS and the remainig characteristics (bandwidth, RAM size, etc.) are regarded on VM side if they match the request.

CloudAuction has been developed by Youness Teimoury (QIAU) and Parnia Samimi (UKM).

Download: CloudAuctionV2.0.zip (released on Mar 25, 2013).

CloudMIG Xpress

CloudMIG Xpress facilitates the comparison and planning phases concerning the migration of software systems to PaaS or IaaS-based Cloud environments. Code models can be extracted from Java-based software to (1) model the current system deployment and augment it with a present workload profile, (2) compare the trade-offs that have to be made for different cloud deployment options, and (3) automatically transform the system model to a CloudSim model to enable integrated simulation of various cloud deployment options regarding future costs, response times, and SLA violations.

CloudMIG Xpress has been developed by Soren Frey, Florian Fittkau, and team at the Software Engineering Group, Kiel University, Kiel, Germany.

Download and more information: Project on Sourceforge.

CloudAnalyst

Cloud Analyst is a tool developed at the University of Melbourne whose goal is to support evaluation of social networks tools according to geographic distribution of users and data centers. In this tool, communities of users and data centers supporting the social networks are characterized and, based on their location; parameters such as user experience while using the social network application and load on the data center are obtained/logged.

Download: CloudAnalyst.zip (released on Nov 26, 2009).


Project Team Members

Active Members:

Former Members and Collaborators:

Software License

The CloudSim Toolkit software is released as open source under the LGPL license.
Copyright The CLOUDS Lab, The University of Melbourne, 2009- to date.

Publications

Some publications using CloudSim results

       
Cloud Computing and Distributed Systems (CLOUDS) Laboratory
Department of Computer Science and Software Engineering
The University of Melbourne, Australia