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.


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 GitHub:

https://github.com/Cloudslab/cloudsim/releases


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


Discussion group (mailing list)


Related projects

iFogSim

iFogSim enables modelling and simulation of Fog computing environments for evaluation of resource management and scheduling policies across edge and cloud resources under different scenarios. The simulator supports evaluation of resource management policies focusing on their impact on latency (timeliness), energy consumption, network congestion and operational costs. It simulates edge devices, cloud data centers, and network links to measure performance metrics. The major application model supported by iFogSim is the Sense-Process-Actuate model. In such models, sensors publish data to IoT networks, applications running on Fog devices subscribe to and process data coming from sensors, and finally insights obtained are translated to actions forwarded to actuators.

Download iFogSim here. More information can be found in our SPE paper.

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.

EdgeCloudSim

EdgeCloudSim provides a simulation environment specific to Edge Computing scenarios where it is possible to conduct experiments that considers both computational and networking resources. EdgeCloudSim is based on CloudSim but adds some additional functionalities such as network modeling specific to WLAN and WAN, device mobility model, realistic and tunable load generator.

EdgeCloudSim has been developed by Cagatay Sonmez and team at the NETLAB (Computer Networks Research Laboratory) in the Department of Computer Engineering, Bogazici University, Istanbul, Turkey.

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

CloudSim Automation: Human Readable Scenario Specification for Automated Creation of Simulations on CloudSim

CloudSim Automation is a Java command line tool based on CloudSim and CloudReports classes that is able to read specifications of CloudSim simulation scenarios from a YAML file, a very human readable data format. Simulation scenarios can be written inside a YAML file and Cloud Automation Tool reads these simulation scenarios, creates and runs them on CloudSim.

The tool releases researchers of the need to write Java code just to run simulation scenarios. By this way, the attention can be focused on the problem to be solved, such as creation of new algorithms to load balancing, new virtual machine scheduling policies, VM placement, resource provisioning, workload prediction, server consolidation, energy efficiency, cost reduction and so on.

The main contributions of this work are:

  1. to avoid programming on the creation of CloudSim simulation environments;
  2. to reduce learning curve on creation of CloudSim simulation scenarios;
  3. to facilitate and to automate CloudSim simulation environments creation;
  4. to use a human readable file format to specify cloud simulation scenarios and speed up such a simulation process phase;
  5. to allow reuse, extension and sharing of simulations scenarios.

The code can be downloaded from GitHub. For more information please contact Dr Manoel Campos da Silva Filho.

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.

Cloud2Sim

Cloud2Sim proposes a distributed concurrent architecture to CloudSim simulations. Exploiting Hazelcast in-memory data grid, CloudSim is extended to have multiple instances execute the Cloudlet and VM workloads from multiple nodes, and submit them to the DatacenterBroker, while executing the core simulation segments that cannot be distributed from the master Cloud2Sim instance. Moreover, an adaptive architecture is designed and implemented to elastically scale the resources made available to the simulation, with a Cloud2Sim monitoring thread running on a separate Hazelcast cluster. Cloud2Sim work was developed by Pradeeban Kathiravelu and Luis Veiga, at INESC-ID Lisboa, Universidade de Lisboa, Portugal.

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

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.

FederatedCloudSim

FederatedCloudSim (FCS) is a versatile and flexible extension to the CloudSim framework. It allows for a multitude of cloud federation experiments. FCS supports SLAs and offers a three level scheduling approach for VMs (in data centers, between data centers of the same cloud service provider (CSP) and between CSPs in a federation). FCS also offers a flexible financial model for analyzing the impact of different scheduling strategies on CSP revenue and profit and an auctioning platform for VM exchange.

FederatedCloudSim has been developed by researchers from Technical University of Dortmund, Germany. For details, please check out FederatedCloudSim website.

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 Apache Version 2.0 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
School of Computing and Information Systems
The University of Melbourne, Australia