Skip to content

scheduling algorithms used for dynamic fractional resource scheduling simulations

License

Notifications You must be signed in to change notification settings

marklee77/flexsched

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contact: Mark Stillwell <m.stillwell@cranfield.ac.uk>

Portions of this software were also developed by Henri Casanova
<henric@hawaii.edu>.

===========================================================================

REQUIREMENTS:

GLPK should be installed.

===========================================================================

COMPILE:

From the directory you checked out of git or unpacked from the tarball:

mkdir build
cd build
cmake ..
make

should create ./src/flexsched

Sorry, there's no easy-install package at the moment.

===========================================================================

USAGE:

./flexsched <quote list of scheduling algorithms> <input file> [<output file> [<estimate file>]]

  Example:   ./flexsched "METAGREEDY METAHVP" ./input ./output

===========================================================================

INPUT FORMATS: 

problem file:

<num resources>
<num servers>
<num services>
<elem. capacity> <elem. capacity> ... <agg. capacity> <agg capacity>
...
<elem. req> ... <elem. need> ... <agg. req> ... <agg. need>

estimate file:

<elem. req> ... <elem. need> ... <agg. req> ... <agg. need>

===========================================================================

OUTPUT FORMAT: 

One or more lines of the form: a|b|c|d|e|f|g|h|i

a: algorithm name (string)
b: expected minimum yield (fraction)
c: expected average yield (fraction)
d: minimum yield using caps (fraction, only for inaccurate estimates)
e: average yield using caps (fraction, only for inaccurate estimates)
f: minimum yield using weights (fraction, only for inaccurate estimates)
g: average yield using weights (fraction, only for inaccurate estimates)
h: minimum yield using equi (fraction, only for inaccurate estimates)
i: average yield using equi (fraction, only for inaccurate estimates)
 
===========================================================================

SCHEDULING ALGORITHMS:

* GREEDY_X_Y:
   X: pre-sorting of the services, always decreasing
   Y: selection of the servers, once all infeasible serers have been removed

  X = S1 | S2 | S3 | S4 | S5 | S6 | S7
  Y = P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8

  * S1: No pre-sorting
  * S2: by max of needs
  * S3: by sum of needs
  * S4: by max of requirements
  * S5: by sum of requirements
  * S6: by max of sum of requirements and needs
  * S7: by sum of all requirements and needs

  * P1: most available resource in dimension of max fluid need 
  * P2: minimum sumload / sumresource after placement
  * P3: best fit in terms of largest requirement
  * P4: best fit in terms of total available resource
  * P5: worst fit in terms of largest requirement
  * P6: worst fit in terms of total available resource
  * P7: first fit (random fit)

* METAGREEDY
    Try all greedy algorithms and pick the best.

* MILP
	Compute the optimal solution

* LPBOUND 
	Compute the rational bound on the optimal solution

* RRND
	Solve the rational LP and do a probabilistic round-off of
        rational values into integer values. 

* RRNZ 
	Solve the rational LP and do a probabilistic round-off of
        rational values into integer values. But first, set all 
        zero-valued variables to some epsilon (0.001)

* VP_X
   X: vector packing heuristic

   X = FF | BF | PP | CP 
   * FF: First Fit
   * BF: Best Fit
   * CP: Choose-Pack
   * PP: Permutation Pack

   CP/PP can also take an additional parameter, W, for the window size.

* METAVP
  Try all VP heuristics at each step of the binary search to maximize the
minimum yield.

* HVP
  Like VP, but heterogeneous-bin aware alternatives.
  additonal parameters:
       R: re-sort bins after item placement
       S: scale bin capacities
       E: equalize dimensions


* METAHVP
  Try all HVP heuristics at each step of the binary search to maximize the
minimum yield.

There may be additional algorithms that are not listed here.


About

scheduling algorithms used for dynamic fractional resource scheduling simulations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published