be.ac.ua.broker.scheduling.workload.wm2
Class SuperOptimizer

java.lang.Object
  extended by be.ac.ua.broker.scheduling.workload.wm2.SuperOptimizer
All Implemented Interfaces:
Optimizer<WorkloadWM2>

public class SuperOptimizer
extends java.lang.Object
implements Optimizer<WorkloadWM2>

This class is used to perform the optimized/spot-optimized scheduling for workload model two tasks. The RealOptimizer is used to perform the scheduling within a bucket. The tasks are evenly distributed across buckets, to make the algorithm feasible.

Author:
Vermeersch Kurt

Constructor Summary
SuperOptimizer(java.util.Date startDate, InstanceSpecification spec, boolean use_spot_optimalization)
          Constructor for SuperOptimizer
 
Method Summary
 void add(WorkloadWM2 wl)
          Add the provided workload to the scheduling optimizer.
 java.util.List<ScheduledTaskCollection> determineOptimal()
           
 int getIntervalLength()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SuperOptimizer

public SuperOptimizer(java.util.Date startDate,
                      InstanceSpecification spec,
                      boolean use_spot_optimalization)
Constructor for SuperOptimizer

Parameters:
startDate - start time of the scheduling period
spec - specification of the instance for which a schedule is created
use_spot_optimalization - whether the spot-optimized scheduling option is set
Method Detail

add

public void add(WorkloadWM2 wl)
Description copied from interface: Optimizer
Add the provided workload to the scheduling optimizer.

Specified by:
add in interface Optimizer<WorkloadWM2>
Parameters:
wl - the workload to add.

determineOptimal

public java.util.List<ScheduledTaskCollection> determineOptimal()
Specified by:
determineOptimal in interface Optimizer<WorkloadWM2>
Returns:
a list of scheduledTaskCollections, one of these represents the schedule containing subTasks for a single instance. This schedules are made in a way that tries to minimize the total cost of running the workload on EC2.

getIntervalLength

public int getIntervalLength()
Returns:
the length of a single interval/bucket in hours