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
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 1.6
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:
[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:
Minimum runtime dependencies
DISSECT-CF depends on the following libraries during its runtime:
Although these dependencies can be collected individually. If one installed the simulator according to description above, then except for Java6, all dependencies are located in the local maven repository (e.g.,
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:
- Basic use of one time events:
- Simple physical machine management and use:
- 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:
- Networking basics:
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.
Do you still have some questions? If so, then please share them with the simulator's user and developer community at our Q&A forum - a registration is needed to send your questions in.