What is CloudSim?
CloudSim is an open-source Java-based framework developed by the CLOUDS Lab at the University of Melbourne. It is used for modeling and simulating cloud computing infrastructures and services, allowing researchers and developers to evaluate their hypotheses in a controlled, reproducible environment before actual deployment.
For example, if you plan to deploy an application on the cloud and want to test its performance, load capacity, and potential bottlenecks before deployment, you can perform these evaluations through simulation using CloudSim's flexible and scalable classes—at no cost.
Benefits of Simulation with CloudSim
No Capital Investment
No installation or maintenance costs involved in simulation.
Easy & Scalable
Add or remove resources by changing just a few lines of code.
Early Risk Assessment
Reproducible tests without the limitations of real testbeds.
No Trial-and-Error
Evaluate in a repeatable, controlled environment at no cost.
Why CloudSim?
- Open-source and free — ideal for researchers and developers
- Easy to download and set up
- Generalized and extensible — supports diverse modeling and experimentation
- No high-spec hardware required
- Provides predefined allocation policies and allows custom algorithm implementation
- Comprehensive documentation with pre-coded examples for quick start
- Identify bottlenecks before deployment to reduce risk, lower costs, and increase performance
CloudSim Architecture
The three main layers of the framework
User Code
The user-controlled layer where developers specify hardware requirements and scenarios.
CloudSim Core
The core simulation engine managing resources like VM, memory, and bandwidth of datacenters.
CloudSim Layer
Handles creation and execution of core entities (VM, Cloudlet, Host) and network/resource provisioning.
Commonly Used Classes:
- Datacenter: Models datacenter hardware and allocation policies
- Host: Manages virtual machines and allocates memory, bandwidth, and CPU cores
- VM: Represents a virtual machine with RAM, bandwidth, MIPS, and size
- Cloudlet: Models tasks (processing, memory, file) that run on VMs
- DatacenterBroker: Acts on behalf of the user to manage VM lifecycle and submit Cloudlets
- CloudSim: The main class for initializing, starting, and stopping simulations
Key Features of CloudSim
Large-Scale Datacenters
Simulation of virtualized servers and hosts
Customizable Policies
Host-to-VM allocation policies
Energy-Aware
Energy-aware computational resources
Networks & Federated Clouds
Network topologies and multi-cloud management
Dynamic Entity Insertion
Stop and resume simulation capabilities
Custom Policies
User-defined allocation and provisioning policies
CloudSim Extensions
Open-source projects built on CloudSim by independent researchers
GPUCloudSim
Simulates GPU-based cloud infrastructures, multi-GPU setups, custom policies, and GPU remoting
[4][5][6]CloudSim Plus
Re-engineered fork with multi-cloud simulations, vertical/horizontal VM scaling, fault injection, and joint power-network simulations
[7][8]CloudReports
Provides a graphical user interface (GUI) for CloudSim simulations
[9]CloudSimEx
Adds MapReduce simulation capabilities and parallel simulation
[10]Cloud2Sim
Executes CloudSim on distributed servers using the Hazelcast framework
[11][12]RECAP DES
Extends CloudSim Plus for modeling synchronous hierarchical architectures (e.g., ElasticSearch)
[13][14][15]ThermoSim
Incorporates thermal characteristics and uses deep learning-based temperature prediction for cloud nodes
[16][17]Dr. Mohammad Mahdi Ghaseminya
Ph.D. Candidate in Computer Science, Yazd University
Member of Parallel Processing Laboratory (PPL)
15+ years of experience in Java, Spring, Docker, and distributed simulators. Author of multiple papers in top-tier international journals.
📬 Contact for Consultation & Collaboration
Response usually within 12 hours