Skip to content

Releases: Cloudslab/cloudsim

CloudSim v7.0.0-pre

23 Aug 22:39
Compare
Choose a tag to compare

CloudSim v7.0.0-pre (or simply CloudSim7G pre-release) features a re-engineered and generalized internal architecture to facilitate the integration of multiple CloudSim extensions. As a positive side-effect, the majority of extensions packaged with CloudSim v6.0.0-alpha have been refactored, refined, optimized, and finally consolidated into a ``base layer'' upon which to build future CloudSim extensions. For instance, NetworkCloudSim is now implemented as a proper extensions, allowing for the evaluation of complex workflow applications.

More than 13000 lines of code have been removed, and the amount of total heap memory allocated has been significantly reduced.

NOTE: CloudSim7G may have lost backward compatibility with previous extensions due to the deprecation of the ResCloudlet class (which is now fully incorporated in the Cloudlet class), the removal of redundant classes (such as ContainerHost) and due to the re-implementation of the CloudSimTag system using Enums, instead of relying on manually-declared static integers. However, with the aid of a modern IDE, upgrading your extension to CloudSim7G should take no more than 10-15 minutes for most cases.

For more information on the changes introduced with CloudSim7G, check the paper on arxiv

**Feel free to open issues on GitHub (as well as Pull Requests) regarding bugs, feature requests, etc. **

CloudSim v6.0.0-beta

23 Aug 22:41
Compare
Choose a tag to compare
CloudSim v6.0.0-beta Pre-release
Pre-release

This release maintains backward compatibility with existing code from CloudSim 3.0-5.0.
The codebase has undergone massive refactoring, readability, and performance improvement.

Since JDK8 is now deprecated, this release requires JDK11 and above(LTS version recommended).
Also, the codebase contains many "syntax sugar" from JDK 11.
Future releases will be tested and validated against the latest two LTS versions(11 and 17 as of the date of this release).

Feature-wise, it contains many off-spin contributions from various contributors, including container, Geo web load balancing, SDN, etc.

CloudSim 5.0

07 Jun 05:26
Compare
Choose a tag to compare
CloudSim 5.0 Pre-release
Pre-release

Cloudsim 5.0 toolkit combines various releases including containers, VM extensions with performance monitoring features and modelling of Web applications on multi-clouds. This will also work with other simulation models such as Software-defined Networks (SDN) / Service Function Chaining (SFC).

cloudsim-4.0

24 May 04:56
Compare
Choose a tag to compare

Changes from CloudSim 3.0.3 to CloudSim 4.0

WHAT'S NEW

  • added support for Container virtualization
  • lots of bugfixes

cloudsim-3.0.3

19 Mar 04:01
Compare
Choose a tag to compare

Changes from CloudSim 3.0.2 to CloudSim 3.0.3

WHAT'S NEW

This is a bug fix and refactoring release. The following updates have been made:

  • Removed the dependency on the flanagan library. It is now replaced with Apache Math. The implementation and interface of the MathUtil has been changed accordingly.
  • The minimal time between events is now configurable.
  • Fixed Issue 44 : UtilizationModelPlanetLabInMemory: use a global constant to define the size of the data field: a new constructor for the classes, allowing definition of data size, was added.
  • Fixed Issue 49 : Wrong calculation of debt during migrationL: all references to debt from Datacenter and its subclasses were removed.

cloudsim-3.0.2

19 Mar 04:03
Compare
Choose a tag to compare

Changes from CloudSim 3.0 to CloudSim 3.0.2

WHAT'S NEW

This is a bug fix release. The following updates have been made:

  • Fixed Issue 32: a problem with the ant classpath declaration
  • Fixed Issue 37: recalculating MIPS in PowerVmAllocationPolicyMigrationAbstract.findHostForVm()
  • Updated the references to the CCPE paper

cloudsim-3.0.1

19 Mar 04:04
Compare
Choose a tag to compare

Changes from CloudSim 3.0 to CloudSim 3.0.1

WHAT'S NEW

This is mainly a bug fix release. The following updates have been made:

  • Made the CloudletSchedulerTimeShared.getCapacity method protected, to facilitate the development of new cloudlet schedulers.
  • Fixed in PeList: problem in the generics declaration.
  • Fixed Issue #40: Inconsistencies on the return of Cloudlet.isCloudletFinished() and the Cloudlet status.
  • Fixed Issue #35: Default behaviour of Cloudlet may lead to unnecessary usage of heap space.
  • Fixed bug when searching for Cloudlets to cancel in cloudletSchedulerTimeshared
  • Fixed Issue #34: Call getVm(vmId, userId) Function had swaped parameters in several parts of the Datacenter class.
  • Fixed misleading comment on Example 4 that said that capacity of created VMs were different.
  • Fixed comment on example 2, which said that MIPS requirements were different. Actually, they are the same.
  • Fixed the ant building problem: added Flanagan's library to the classpath; updated the readme.txt

cloudsim-3.0

19 Mar 04:06
Compare
Choose a tag to compare

Changes from CloudSim 2.1 to CloudSim 3.0

WHAT'S NEW

  • NEW VM SCHEDULER. VmSchedulerTimeSharedOverSubscription models a scheduler that allows unbounded number of
    VMS to be deployed in a single VM, regardless its requirements in terms of number of MIPS. Notice that this
    was the behaviour of VmSchedulerTimeShared in CloudSim 1.0 Beta, but this behaviour had changed in
    CloudSim 2.0 to accommodate requests with specific amount of MIPS.

  • NEW DATACENTER NETWORK MODEL. A internal network model has been added to CloudSim 3.0. It supports definition
    of switches connecting hosts in arbitrary network topologies. New Vm classes and Cloudlet classes were added to
    take advantage of this feature without breaking compatibility of older code. This new feature also enables
    modelling of message-passing applications. They are included in the package 'network.datacenter'.

  • NEW VM ALLOCATION AND SELECTION POLICIES. 6 new VM allocation and 4 VM selection policies were added to the
    power package. To find more details about the policies please refer to the following paper:

    Anton Beloglazov, and Rajkumar Buyya, "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, ISSN: 1532-0626, Wiley Press, New York, USA, 2011, DOI: 10.1002/cpe.1867

  • NEW POWER MODELS. 7 power models of real servers using the data from SPECpower were added to the power package.
    They are PowerModelSpecPowerHpProLiantMl110G3PentiumD930, PowerModelSpecPowerHpProLiantMl110G4Xeon3040,
    PowerModelSpecPowerHpProLiantMl110G5Xeon3075, PowerModelSpecPowerIbmX3250XeonX3470, PowerModelSpecPowerIbmX3250XeonX3480,
    PowerModelSpecPowerIbmX3550XeonX5670, and PowerModelSpecPowerIbmX3550XeonX5675.

  • NEW WORKLOAD TRACES. Workload traces from the PlanetLab project were added and used in the examples of the
    power package. The data have originally been provided as a part of the CoMon project, a monitoring infrastructure
    for PlanetLab (http://comon.cs.princeton.edu/).

  • SUPPORT FOR EXTERNAL WORKLOADS. External workloads written in the Standard Workload Format (SWF, from the
    Parallel Workload Archive) can be loaded and read by CloudSim. Relevant classes are WorkloadModel and
    WorkloadFileReader ('util' package).

  • SUPPORT FOR USER-DEFINED END OF SIMULATION. Users are now able to specify a given event that causes the simulaton
    to finish. We thanks Gaston Keller for developing this new feature.

REMOVED CLASSES

  • CloudCoordinator
  • Sensor
  • CloudCoordinator
  • PowerPe
  • Power.PeList

API CHANGES

  • CloudSim.terminateSimulation(long time) was changed to CloudSim.terminateSimulation(double time), to comply
    with clock field of CloudSim class.
  • PowerModel was moved from PowerPe to PowerHost
  • VM allocation policies in the power package were replaced by a completely new implementation.

BUGFIXES AND IMPROVEMENTS

  • Fixed issue 20: HostDynamicWorkload.updateVmsProcessing() throws NullPointerException.
  • Fixed issue 19: CloudSimTags class should be abstract, not final.
  • Fixed issue 17: "Something is wrong, the VM can's be restored" should be an Exception.
  • Fixed issue 16: cloudletsSubmitted in DatacenterBroker should be protected, not private.
  • Fixed issue 15: Simulation failed by the RAM where it should not fail.
  • Fixed issue 14: Rounding problem in VMSchedulerTimeShared.
  • Fixed issue 13: Output error when setDisableMigrations is set to true.
  • Fixed issue 12: Dynamically created space-shared VMs fail to process cloudlets.
  • Fixed issue 11: Wrong sharing of MIs among VMs by VmSchedulerTimeShared.
  • Fixed issue 10: Access modifier of DatacenterBroker::finishExecution().
  • Fixed issue 9: Access modifier of DatacenterBroker::cloudletsSubmitted.
  • Fixed issue 7: Problem in manifests of Maven-generated jar files.
  • Fixed issue 5: Abrupt termination of the simulation caused by VmAllocationPolicySimple.
  • Fixed issue 4: Network examples do not load topology file.
  • Fixed issue 2: Turn the 'future' queue of CloudSim class protected.
  • Fixed issue 1: VM is created without check on host's storage capacity.
  • The power package and corresponding examples were heavily updated, as well as new PlanetLab workload data were added.
  • Fix in Datacenter: one initial update step was been skipped, what caused malfunctions in the schedulers.
  • Fixed issue affecting all CloudletSchedulers: if updated was less then 1, due to a small timespam, processing was
    never updated, because it was always rounded to 0.
  • Datacenter: Fixed problem with very short intervals between events.

cloudsim-2.1.1

19 Mar 04:07
Compare
Choose a tag to compare

Changes from CloudSim 2.0 to CloudSim 2.1

  • The project has been migrated to using Apache Maven (http://maven.apache.org/). Maven simplifies
    java project management by providing various tools and plugins for project building, testing, and
    packaging, dependency management, etc.
  • The directory structure has been changed to comply with the Maven specification
  • The VmSchedulerTimeSharedWithPriority has been removed as well as the priority field from the
    Vm class. Users can have the same functionality by using the VmSchedulerTimeShared class and
    setting the MIPS requirements for VMs. See examples 2 and 3.
  • Bug fixes, refactoring and removing obsolete code.

cloudsim-2.1

19 Mar 04:09
Compare
Choose a tag to compare

Changes from CloudSim 2.0 to CloudSim 2.1

  • The project has been migrated to using Apache Maven (http://maven.apache.org/). Maven simplifies
    java project management by providing various tools and plugins for project building, testing, and
    packaging, dependency management, etc.
  • The directory structure has been changed to comply with the Maven specification
  • The VmSchedulerTimeSharedWithPriority has been removed as well as the priority field from the
    Vm class. Users can have the same functionality by using the VmSchedulerTimeShared class and
    setting the MIPS requirements for VMs. See examples 2 and 3.
  • Bug fixes, refactoring and removing obsolete code.

Changes from CloudSim 1.0 beta to CloudSim 2.0

WHAT'S NEW

  • NEW SIMULATION CORE. CloudSim 2.0 does not rely on SimJava to process simulation. Therefore, creation of threads was
    controlled, race conditions found in CloudSim beta were removed, scalability and performance of CloudSim improved.
    Moreover, support for dynamic creation and destruction of simulation entities was added.
  • IMPROVEMENT IN SCHEDULERS, which enhances accuracy of simulation results.
  • NEW FEATURES, including power-aware simulation, federation simulation, and network simulation.
  • PACKAGE ORGANIZATION CHANGES, including changes in class names, removal of classes, and changes in interfaces. Next, the
    main changes that affect CloudSim beta users are summarized.

CHANGES IN CLASS NAMES

The following classes had their names changed to better reflect its functionalities and/or to adhere to naming standards:

(previous name) VMScheduler -> (current name) CloudletScheduler
(previous name) TimeSharedVMScheduler -> (current name) CloudletSchedulerTimeShared
(previous name) SpaceSharedVMScheduler -> (current name) CloudletSchedulerSpaceShared

(previous name) VMMAllocationPolicy -> (current name) VmScheduler
(previous name) TimeSharedAllocationPolicy -> (current name) VmSchedulerTimeShared
(previous name) TimeSpaceSharedAllocationPolicy -> (current name) VmSchedulerOportunisticSpaceShared
(previous name) TimeSharedWithPriorityAllocationPolicy -> (current name) VmSchedulerTimeShared
(previous name) SpaceSharedAllocationPolicy -> (current name) VmSchedulerTimeSharedWithPriority

(previous name) VMProvisioner -> (current name) VmAllocationPolicy
(previous name) SimpleVMProvisioner -> (current name) VmAllocationPolicySimple

(previous name) DataCenter -> (current name) Datacenter
(previous name) PE -> (current name) Pe
(previous name) VirtualMachine -> (current name) Vm

(previous name) SimpleMemoryProvisioner -> (current name) provisioners.RamProvisionerSimple
(previous name) MemoryProvisioner -> (current name) provisioners.RamProvisioner

(previous name) BWProvisioner -> (current name) provisioners.BwProvisioner
(previous name) SimpleBWProvisioner -> (current name) provisioners.BwProvisionerSimple

(previous name) DataCenterTags -> (current name) core.CloudSimTags

(previous name) SANStorage -> (current name) HardDriveStorage

REMOVED CLASSES

Previous classes that implemented list operations were removed from CloudSim. Instead of this classes, users should use standard lists from java.utils

  • CloudletList
  • VirtualMachineList

The following classes were removed because they were redundant:

  • VMCharacteristics

INTERFACE CHANGES

Because dependencies from SimJava were removed, and due to other code optimizations, some classes suffered major changes in their interfaces. The main ones are listed below:

  • Vm (previous VirtualMachine) now receives directly all the relevant VM parameters (before, it was done through a VMCharacteristics object)
  • Simulation entities (Datacenter, FederatedDatacenter, DatacenterBroker) have now simpler constructors. Please, refer to examples or Javadoc for new constructors

NEW FEATURES

Below there is a list of CloudSim's new features. Please, refer to Javadoc and examples for instructions on how to use this new features.

  • Network effects added through determination of network link latency and bandwidth;
  • Support for simulation of Federation of Data centers (new classes FederatedDatacenter, CloudCoordinator, and Sensor);
  • Support for modeling of energy-aware cloud computing.