edu.isi.pegasus.planner.provisioner

## Class Estimator

- java.lang.Object
- - edu.isi.pegasus.planner.provisioner.Estimator

    public class Estimator
    extends java.lang.Object

This Estimator is used to find the near-optimal number of processors required to complete workflow within a given RFT(requested finish time). This estimator read workflow from a DAX file and user can select one estimation method among BTS, DSC, and IterHEFT. User also need to provide RFT and the precision of the predictied execution time.

Author:
  Eunkyu Byun

### Field Summary

Fields
`private Node` `bottomNode`
`private java.util.HashSet` `edges`
`private java.lang.String` `fileName`
`private java.lang.String` `method`
`private java.util.HashMap` `nodes`
`private int` `prec`
`private long` `RFT`
`private Node` `topNode`
`private long` `totalET`

### Constructor Summary

Constructors
Constructor and Description
`Estimator(java.lang.String fileName, java.lang.String methodID, long RFT, int prec)` Constructor

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`private int` `BTS()`
`private void` `calculateSlotSize()`
`private int` `DSC()`
`int` `estimate()` Estimate the number of processors and return the value.
`private long` `HEFT(int size)`
`private int` `IterHEFT()`
`static void` `main(java.lang.String[] args)`
`private void` `readDAX()`
`private void` `updateETs()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### fileName

    private java.lang.String fileName

#### method

    private java.lang.String method

#### RFT

    private long RFT

#### prec

    private int prec

#### topNode

    private Node topNode

#### bottomNode

    private Node bottomNode

#### edges

    private java.util.HashSet edges

#### nodes

    private java.util.HashMap nodes

#### totalET

    private long totalET

### Constructor Detail

#### Estimator

    public Estimator(java.lang.String fileName,
                     java.lang.String methodID,
                     long RFT,
                     int prec)

Constructor

Parameters:
  `fileName` - DAX file describing the workflow
  `methodID` - One of those; BTS, DSC, IterHEFT
  `RFT` - requested finish time. i.e., deadline
  `prec` - The precision of the predicted execution time

### Method Detail

#### readDAX

    private void readDAX()
                  throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### calculateSlotSize

    private void calculateSlotSize()

#### updateETs

    private void updateETs()

#### BTS

    private int BTS()

#### DSC

    private int DSC()

#### IterHEFT

    private int IterHEFT()

#### HEFT

    private long HEFT(int size)

#### estimate

    public int estimate()
                 throws java.lang.RuntimeException

Estimate the number of processors and return the value.

Returns:
  Estimated number of processors
Throws:
  `java.lang.RuntimeException`

#### main

    public static void main(java.lang.String[] args)