This project is a part of my PhD research. Three Time-Sensitive VM provisioning and resource allocation techniques for clouds are implemented along with an existing one (G-VMPAC) to compare their performances. They are greedy algorithms and best suited for heavily loaded cloud with heterogeneous resources. Based on the runtime information, collected by running spec2006, parsec-3 and splash-2 benchmarks on varius flavors of openstack virtual machines, this code runs a simulation, collects performance data and plots them using gnuplot.
The allocation mechanisms are:
- Earlieast Deadline First (EDF) Allocation
- Time-Sensitive Resource (TSR) Allocation
- K-Earlieast Deadline First (K-EDF) Allocation
- G-VMPAC Allocation
- capacity/ -- contains different cluster configurations represented as resource capacities
- vmConfig/ -- contains different virtual mechine configurations represented as resource requirements
- spec2006/ -- contains runtime information of spec cpu2006 benchmark on different virtual machines running under openstack
- parsec/ -- contains runtime information of parsec-3 and splash-2 benchmarks on different virtual machines running under openstack
- constants.py -- contains all the constant variables
- inputReader.py -- reads the input files and generates request files required to run the simulation
- experiment.py -- main file that runs the experiments
- resourceAllocator.py -- resource allocator class
- scheduler.py -- scheduler class
- epsGenerator.sh -- generates graphs in eps format using gnuplot and puts them inside output folder
- outputRemover.sh -- removes all outputs if needed
- install gnuplot
- change the capacity and vm configuration files
- change the values in constants.py
- python experiment.py