Git Product home page Git Product logo

dissect-cf's Introduction

GitHub top language GitHub Build Status GitHub Test Status CodeFactor Maintainability

Overview

This package represents the DIScrete event baSed Energy Consumption simulaTor for Clouds and Federations (DISSECT-CF).

It is intended as a lightweight cloud simulator that enables easy customization and experimentation. It was designed for research purposes only so researchers could experiment with various internal cloud behavior changes without the need to actually have one or even multiple cloud infrastructures at hand.

The development of DISSECT-CF started in MTA SZTAKI in 2012, major contirbutions and design elements were incorporated at the University of Innsbruck.

When using the simulator for scientific research please cite the following paper: Gabor Kecskemeti: DISSECT-CF: A simulator to foster energy-aware scheduling in infrastructure clouds. In Simulation Modelling Practice and Theory. 2015. DOI: 10.1016/j.simpat.2015.05.009

Website: https://github.com/kecskemeti/dissect-cf

Documentation website: https://kecskemeti.github.io/dissect-cf

Archive for past (even pre-github) releases: http://users.iit.uni-miskolc.hu/~kecskemeti/DISSECT-CF

Licensing: GNU Lesser General Public License 3 and later

Optimisations on the code were done using the java profiler called jprofiler.

Compilation & Installation

Prerequisites: Apache Maven 3, Java 17

After cloning, run the following in the main dir of the checkout:

mvn clean install javadoc:javadoc

This command will download all other prerequisites for compilation and testing. Then it will compile the complete sources of DISSECT-CF as well as its test classes. If the compilation is successful, then the tests are executed. In case no test fails, maven proceeds with the packaging and istallation.

The installed simulator will be located in the default maven repository's (e.g., ~/.m2/repository) following directory:

at/ac/uibk/dps/cloud/simulator/dissect-cf/[VERSION]/dissect-cf-[VERSION].jar

Where [VERSION] stands for the currently installed version of the simulator.

The documentation for the simulator's java API will be generated in the following subfolder of the main dir of the checkout:

target/site/apidocs

Getting started

Minimum runtime dependencies

DISSECT-CF depends on the following libraries during its runtime:

Hint:

Although these dependencies can be collected individually. If one installed the simulator according to description above, then except for Java 11, all dependencies are located in the local maven repository (e.g., ~/.m2/repository).

Overview of the basic functionalities

The test cases of the simulator contain many useful examples so one can start working right away with the simulator. In the following list one can find the most essential bits to get to know the internals and the behavior of the simulator:

  • Basic time and event management:
    • at.ac.uibk.dps.cloud.simulator.test.simple.TimedTest.singleEventFire
    • at.ac.uibk.dps.cloud.simulator.test.simple.TimedTest.repeatedEventFire
  • Basic use of one time events:
    • at.ac.uibk.dps.cloud.simulator.test.simple.DeferredEventTest
  • Simple physical machine management and use:
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.PMTest.constructionTest
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.PMTest.simpleTwoPhasedSmallVMRequest
  • Simple IaaS construction and use:
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.IaaSServiceTest.repoRegistrationTest - to add storage
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.IaaSServiceTest.capacityMaintenanceTest - pm addition and overall capacity monitoring
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.IaaSServiceTest.vmRequestTest - scheduled vm creation
  • Starter kit for VM operations:
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.VMTest.subscriptionTest - VM state monitoring
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.VMTest.taskKillingSwitchOff - New compute task creation
  • General use of the resource sharing foundation:
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.ResourceConsumptionTest.testConsumption
  • Networking basics:
    • at.ac.uibk.dps.cloud.simulator.test.simple.cloud.NetworkNodeTest.intraNodeTransferTest

More elaborate examples can be found in the dissect-cf-examples project and in the dcf-exercises project.

Also, the wiki provides further insights to advanced topics (like creating custom schedulers) and offers a FAQ. Apart from contributing with code, feel free to contribute there with documentation as well.

Remarks

Warning: the master branch of the simulator is intended as a development branch, and might not contain a functional version!

dissect-cf's People

Contributors

dependabot[bot] avatar kecskemeti avatar reneponto avatar zoltanmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.