edu.isi.pegasus.planner.cluster

## Interface JobAggregator

All Known Implementing Classes:
  Abstract, MPIExec, SeqExec

    public interface JobAggregator

The interface that dictates how the jobs are clumped together into one single larger job. The interface does not dictate how the graph structure is to be modified as a result of the clumping. That is handled outside of the implementing class in NodeCollapser.

Version:
  $Revision$
Author:
  Karan Vahi vahi@isi.edu

### Field Summary

Fields
`static java.lang.String` `VERSION` The version number associated with this API of Job Aggregator.

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `abortOnFristJobFailure()` Returns a boolean indicating whether to fail the aggregated job on detecting the first failure during execution of constituent jobs.
`AggregatedJob` `constructAbstractAggregatedJob(java.util.List jobs, java.lang.String name, java.lang.String id)` Constructs an abstract aggregated job that has a handle to the appropriate JobAggregator that will be used to aggregate the jobs.
`boolean` `entryNotInTC(java.lang.String site)` Determines whether there is NOT an entry in the transformation catalog for the job aggregator executable on a particular site.
`java.lang.String` `getClusterExecutableBasename()` Returns the executable basename of the clustering executable used.
`java.lang.String` `getClusterExecutableLFN()` Returns the logical name of the transformation that is used to collapse the jobs.
`void` `initialize(ADag dag, PegasusBag bag)` Initializes the JobAggregator impelementation
`void` `makeAbstractAggregatedJobConcrete(AggregatedJob job)` Enables the abstract clustered job for execution and converts it to it's executable form
`void` `setAbortOnFirstJobFailure(boolean fail)` Setter method to indicate , failure on first consitutent job should result in the abort of the whole aggregated job.
`boolean` `topologicalOrderingRequired()` A boolean indicating whether ordering is important while traversing through the aggregated job.

### Field Detail

#### VERSION

    static final java.lang.String VERSION

The version number associated with this API of Job Aggregator.

See Also:
  Constant Field Values

### Method Detail

#### initialize

    void initialize(ADag dag,
                    PegasusBag bag)

Initializes the JobAggregator impelementation

Parameters:
  `dag` - the workflow that is being clustered.
  `bag` - the bag of objects that is useful for initialization.

#### constructAbstractAggregatedJob

    AggregatedJob constructAbstractAggregatedJob(java.util.List jobs,
                                                 java.lang.String name,
                                                 java.lang.String id)

Constructs an abstract aggregated job that has a handle to the appropriate JobAggregator that will be used to aggregate the jobs.

Parameters:
  `jobs` - the list of `SubInfo` objects that need to be collapsed. All the jobs being collapsed should be scheduled at the same pool, to maintain correct semantics.
  `name` - the logical name of the jobs in the list passed to this function.
  `id` - the id that is given to the new job.
Returns:
  the `SubInfo` object corresponding to the aggregated job containing the jobs passed as List in the input, null if the list of jobs is empty

#### makeAbstractAggregatedJobConcrete

    void makeAbstractAggregatedJobConcrete(AggregatedJob job)

Enables the abstract clustered job for execution and converts it to it's executable form

Parameters:
  `job` - the abstract clustered job

#### topologicalOrderingRequired

    boolean topologicalOrderingRequired()

A boolean indicating whether ordering is important while traversing through the aggregated job.

Returns:
  a boolean

#### setAbortOnFirstJobFailure

    void setAbortOnFirstJobFailure(boolean fail)

Setter method to indicate , failure on first consitutent job should result in the abort of the whole aggregated job.

Parameters:
  `fail` - indicates whether to abort or not .

#### abortOnFristJobFailure

    boolean abortOnFristJobFailure()

Returns a boolean indicating whether to fail the aggregated job on detecting the first failure during execution of constituent jobs.

Returns:
  boolean indicating whether to fail or not.

#### entryNotInTC

    boolean entryNotInTC(java.lang.String site)

Determines whether there is NOT an entry in the transformation catalog for the job aggregator executable on a particular site.

Parameters:
  `site` - the site at which existence check is required.
Returns:
  boolean true if an entry does not exists, false otherwise.

#### getClusterExecutableLFN

    java.lang.String getClusterExecutableLFN()

Returns the logical name of the transformation that is used to collapse the jobs.

Returns:
  the the logical name of the collapser executable.

#### getClusterExecutableBasename

    java.lang.String getClusterExecutableBasename()

Returns the executable basename of the clustering executable used.

Returns:
  the executable basename.