Skip to content

Simulator of a bunch of scheduling algorithms for Workflow Ensembles on IaaS Cloud written with SimGrid

Notifications You must be signed in to change notification settings

habibmot/EnsembleSched

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project is a simulator based on SimGrid of various scheduling
algorithms for workflow ensembles on a cloud platform.

Requires SimGrid (git release):
* http://simgrid.gforge.inria.fr
* git clone git://scm.gforge.inria.fr/simgrid/simgrid.git
* 101 tutorial on the used SimDAG API:
  * http://simgrid.gforge.inria.fr/tutorials/101/simdag-101.pdf

The command line accepts many parameters:
* --alg <algorithm name>: the scheduling algorithm (currently only DPDS)
* --priority <random|sorted>: method to assign priority to workflows
                              (default value: random)
* --period <double>: time in seconds between two dynamic provisioning
                     of resources (default value: 90.)
* --uh <double>: upper utilization threshold in percents (default value: 90)
* --ul <double>: lower utilization threshold in percents (default value: 70)
* --platform <platform file>: the description of the cloud in the
                              simgrid format
* --price <double>: hourly cost of a single VM in $/h 
                    (default value: 1) 
* --provisioning_delay <double>: time in seconds before a started VM actually 
                                 becomes available (default value: 0.)
* --dax <file>: description of a workflow in the Pegasus format (DAX).
                Multiple --dax flags can be used
* --budget <double>: budget in $ (or any other currency)
* --deadline <double>: deadline before which a maximum of workflows
                       have to complete expressed in seconds
* --silent: no information are displayed on the standard output
* --dump <filename>: produce a file with many information on the simulation run

Typical command line:
./EnsembleSched --alg DPDS --platform cluster.xml \
--dax daxfiles/Montage_50.xml --dax daxfiles/CyberShake_30.xml \
--budget 100 --deadline 10000

Corresponding output:
[    0.000] [EnsembleSched/   INFO] Algorithm: DPDS
[    0.000] [EnsembleSched/   INFO]   Priority method: RANDOM
[    0.000] [EnsembleSched/   INFO]   Dynamic provisioning period: 3600s
[    0.000] [EnsembleSched/   INFO]   Lower utilization threshold: 70.00%
[    0.000] [EnsembleSched/   INFO]   Upper utilization threshold: 90.00%
[    0.000] [EnsembleSched/   INFO] Platform: cluster.xml (1000 potential VMs)
[    0.000] [EnsembleSched/   INFO]   VM hourly cost: $1.000000
[    0.000] [EnsembleSched/   INFO]   VM provisioning delay: 0s
[    0.000] [EnsembleSched/   INFO] Ensemble: 2 DAXes
[    0.000] [EnsembleSched/   INFO]   daxfiles/Montage_50.xml
[    0.000] [EnsembleSched/   INFO]     Priority: 1
[    0.000] [EnsembleSched/   INFO]   daxfiles/CyberShake_30.xml
[    0.000] [EnsembleSched/   INFO]     Priority: 0
[    0.000] [EnsembleSched/   INFO] Scheduling constraints:
[    0.000] [EnsembleSched/   INFO]   Budget: $100
[    0.000] [EnsembleSched/   INFO]   Deadline: 10000s

[   61.396] [         dpds/   INFO] daxfiles/Montage_50.xml: Complete!
[ 1450.236] [         dpds/   INFO] daxfiles/CyberShake_30.xml: Complete!

[ 1450.236] [EnsembleSched/   INFO] Makespan: 1450.236 seconds.
[ 1450.236] [EnsembleSched/   INFO] Success rate: 2/2
[ 1450.236] [EnsembleSched/   INFO] Total cost: $36.00
[ 1450.236] [EnsembleSched/   INFO] Score: 1.500000
[ 1450.236] [EnsembleSched/   INFO] Cost/Budget: 0.360000
[ 1450.236] [EnsembleSched/   INFO] Makespan/Deadline: 0.145024

To obtain more verbose outputs add to the command line:
* Full logging
  --log=EnsembleSched.thresh:verbose or --log=EnsembleSched.thresh:debug
* Logging for an algorithm 
   --log=dpds.thresh:verbose or --log=dpds.thresh:debug
* Logging for functions related to a specific element (task, workstations, ...)
   --log=task.thresh:debug

About

Simulator of a bunch of scheduling algorithms for Workflow Ensembles on IaaS Cloud written with SimGrid

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 98.8%
  • Makefile 1.2%