Skip to content

A framework for modeling and simulation of cloud computing infrastructures and services (fork of Cloudslab/cloudsim)

Notifications You must be signed in to change notification settings

danielcregg/cloudsim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

226 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CloudSim: Cloud Computing Simulation Framework

Java License: Apache 2.0 Last Commit

Note: This repository is a fork of Cloudslab/cloudsim.

CloudSim is a framework for modeling and simulation of cloud computing infrastructures and services. It provides a generalized and extensible simulation environment that enables modeling, simulation, and experimentation of emerging cloud computing infrastructures and application services. Researchers and developers can use CloudSim to focus on specific system design issues without getting concerned about the low-level details related to cloud-based infrastructures and services.

CloudSim was developed at the Cloud Computing and Distributed Systems (CLOUDS) Laboratory at the University of Melbourne.

Custom Extensions

EnergyEfficientPlacementExample (NEW)

A custom example demonstrating energy-efficient VM placement using CloudSim's power package:

  • Uses heterogeneous hosts (HP ProLiant ML110 G4 and G5) with real SPECpower-based power models
  • Shows the non-linear relationship between CPU utilization and power consumption
  • Compares power efficiency between different host types at various utilization levels
  • Reports per-host energy consumption and consolidation insights

Location: modules/cloudsim-examples/src/main/java/org/cloudbus/cloudsim/examples/power/EnergyEfficientPlacementExample.java

Run:

cd modules/cloudsim-examples
mvn exec:java -Dexec.mainClass="org.cloudbus.cloudsim.examples.power.EnergyEfficientPlacementExample"

Modern Alternative: CloudSim Plus

For new research projects, consider using CloudSim Plus, a modern re-engineering of CloudSim that provides:

  • Java 17+ support with clean, modern API design
  • Built-in power models and energy monitoring with PowerMeter
  • VM migration policies with configurable utilization thresholds
  • RL-based VM allocation policy (research extension)
  • 90+ ready-to-run examples
  • Active maintenance and extensive documentation

Main Features

  • Modeling and simulation of large-scale cloud computing data centers
  • Virtualized server hosts with customizable resource provisioning policies
  • Application container modeling and simulation
  • Energy-aware computational resource simulation
  • Data center network topologies and message-passing applications
  • Federated cloud simulation
  • Dynamic insertion of simulation elements with stop and resume support
  • User-defined policies for host-to-VM allocation and resource provisioning

Prerequisites

  • Java 8 or higher
  • Apache Maven 3.x

Getting Started

  1. Clone the repository:

    git clone https://github.com/danielcregg/cloudsim.git
    cd cloudsim
    
  2. Build with Maven:

    mvn clean install
    

Usage

CloudSim includes several example simulations in the modules/cloudsim-examples directory:

  • CloudSimExample1-8 -- Basic cloud simulation scenarios demonstrating VM provisioning, cloudlet scheduling, and datacenter management
  • Container examples -- Container-based cloud simulation with overbooking and placement strategies
  • Network examples -- Network topology simulation with BRITE integration
  • Power examples -- Energy-aware simulations using PlanetLab workload traces and various VM consolidation algorithms (IQR, LR, MAD, THR)
  • EnergyEfficientPlacementExample -- Custom energy-efficient VM placement with SPECpower models (NEW)

Run an example:

cd modules/cloudsim-examples
mvn exec:java -Dexec.mainClass="org.cloudbus.cloudsim.examples.CloudSimExample1"

Project Structure

cloudsim/
├── modules/
│   ├── cloudsim/               # Core simulation library
│   └── cloudsim-examples/      # Example simulations
│       └── .../power/
│           ├── Constants.java
│           ├── Helper.java
│           ├── RunnerAbstract.java
│           ├── EnergyEfficientPlacementExample.java  # NEW
│           ├── planetlab/      # PlanetLab workload trace examples
│           └── random/         # Random workload examples
├── documentation/              # Project documentation and release notes
├── distribution/               # Distribution packaging
└── pom.xml                     # Maven parent POM

References

  • Calheiros, R.N., Ranjan, R., Beloglazov, A., De Rose, C.A.F., and Buyya, R. CloudSim: A Toolkit for Modeling and Simulation of Cloud Computing Environments and Evaluation of Resource Provisioning Algorithms. Software: Practice and Experience, 41(1), 23-50, 2011.
  • Beloglazov, A. and Buyya, R. Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers. Concurrency and Computation: Practice and Experience, 24(13), 1397-1420, 2012.

License

This project is licensed under the Apache License 2.0. See the license file for details.

About

A framework for modeling and simulation of cloud computing infrastructures and services (fork of Cloudslab/cloudsim)

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%