org.griphyn.cPlanner.cluster.aggregator
Class Abstract

java.lang.Object
  extended by org.griphyn.cPlanner.cluster.aggregator.Abstract
All Implemented Interfaces:
JobAggregator
Direct Known Subclasses:
MPIExec, SeqExec

public abstract class Abstract
extends Object
implements JobAggregator

An abstract implementation of the JobAggregator interface, which the other implementations can choose to extend.

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

Field Summary
static String DERIVATION_NAMESPACE
          The derivation namespace for the cluster jobs.
static String DERIVATION_VERSION
          The version number for the derivations for cluster jobs.
static String FAT_JOB_PREFIX
          The prefix that is assigned to the jobname of the collapsed jobs to get the jobname for the fat job.
protected  PegasusBag mBag
          Bag of initialization objects.
protected  ADag mClusteredADag
          The handle to the ADag object that contains the workflow being clustered.
protected  String mDirectory
          The directory, where the stdin file of the fat jobs are created.
protected  GridStartFactory mGridStartFactory
          The handle to the GridStart Factory.
protected  LogManager mLogger
          The handle to the LogManager that logs all the messages.
protected  PegasusProperties mProps
          The object holding all the properties pertaining to Pegasus.
protected  PoolInfoProvider mSiteHandle
          Handle to the site catalog.
protected  TransformationCatalog mTCHandle
          The handle to the transformation catalog.
static String TRANSFORMATION_NAMESPACE
          The transformation namespace for the cluster jobs.
static String TRANSFORMATION_VERSION
          The version number for the derivations for cluster jobs
 
Fields inherited from interface org.griphyn.cPlanner.cluster.JobAggregator
VERSION
 
Constructor Summary
Abstract()
          The default constructor.
 
Method Summary
abstract  String aggregatedJobArguments(AggregatedJob job)
          Returns the arguments with which the AggregatedJob needs to be invoked with.
 AggregatedJob construct(List jobs, String name, String id)
          Constructs a new aggregated job that contains all the jobs passed to it.
protected  AggregatedJob construct(List jobs, String name, String id, String mergeLFN)
          Constructs a new aggregated job that contains all the jobs passed to it.
private  TransformationCatalogEntry defaultTCEntry(String name, String site)
          Returns a default TC entry to be used in case entry is not found in the transformation catalog.
protected abstract  AggregatedJob enable(AggregatedJob mergedJob, List jobs)
          Enables the constitutent jobs that make up a aggregated job.
protected  boolean entryNotInTC(String namespace, String name, String version, String site)
          Determines whether there is NOT an entry in the transformation catalog for a particular transformation on a particular site.
static String getCompleteTranformationName(String name)
          A convenience method to return the complete transformation name being used to construct jobs in this class.
protected  TransformationCatalogEntry getTCEntry(SubInfo job)
          Helper method to get an entry from the transformation catalog for an installed executable.
 void initialize(ADag dag, PegasusBag bag)
          Initializes the JobAggregator impelementation
protected  void setDirectory(String directory)
          Sets the directory where the stdin files are to be generated.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.griphyn.cPlanner.cluster.JobAggregator
abortOnFristJobFailure, entryNotInTC, getCollapserLFN, setAbortOnFirstJobFailure
 

Field Detail

FAT_JOB_PREFIX

public static final String FAT_JOB_PREFIX
The prefix that is assigned to the jobname of the collapsed jobs to get the jobname for the fat job.

See Also:
Constant Field Values

TRANSFORMATION_NAMESPACE

public static final String TRANSFORMATION_NAMESPACE
The transformation namespace for the cluster jobs.

See Also:
Constant Field Values

TRANSFORMATION_VERSION

public static final String TRANSFORMATION_VERSION
The version number for the derivations for cluster jobs


DERIVATION_NAMESPACE

public static final String DERIVATION_NAMESPACE
The derivation namespace for the cluster jobs.

See Also:
Constant Field Values

DERIVATION_VERSION

public static final String DERIVATION_VERSION
The version number for the derivations for cluster jobs.

See Also:
Constant Field Values

mDirectory

protected String mDirectory
The directory, where the stdin file of the fat jobs are created. It should be the submit file directory that the user mentions at runtime.


mProps

protected PegasusProperties mProps
The object holding all the properties pertaining to Pegasus.


mLogger

protected LogManager mLogger
The handle to the LogManager that logs all the messages.


mTCHandle

protected TransformationCatalog mTCHandle
The handle to the transformation catalog.


mSiteHandle

protected PoolInfoProvider mSiteHandle
Handle to the site catalog.


mClusteredADag

protected ADag mClusteredADag
The handle to the ADag object that contains the workflow being clustered.


mGridStartFactory

protected GridStartFactory mGridStartFactory
The handle to the GridStart Factory.


mBag

protected PegasusBag mBag
Bag of initialization objects.

Constructor Detail

Abstract

public Abstract()
The default constructor.

Method Detail

getCompleteTranformationName

public static String getCompleteTranformationName(String name)
A convenience method to return the complete transformation name being used to construct jobs in this class.

Parameters:
name - the name of the transformation
Returns:
the complete transformation name

initialize

public void initialize(ADag dag,
                       PegasusBag bag)
Initializes the JobAggregator impelementation

Specified by:
initialize in interface JobAggregator
Parameters:
dag - the workflow that is being clustered.
bag - the bag of objects that is useful for initialization.

aggregatedJobArguments

public abstract String aggregatedJobArguments(AggregatedJob job)
Returns the arguments with which the AggregatedJob needs to be invoked with.

Parameters:
job - the AggregatedJob for which the arguments have to be constructed.
Returns:
argument string

enable

protected abstract AggregatedJob enable(AggregatedJob mergedJob,
                                        List jobs)
Enables the constitutent jobs that make up a aggregated job.

Parameters:
mergedJob - the clusteredJob
jobs - the constitutent jobs
Returns:
AggregatedJob

construct

public AggregatedJob construct(List jobs,
                               String name,
                               String id)
Constructs a new aggregated job that contains all the jobs passed to it. The new aggregated job, appears as a single job in the workflow and replaces the jobs it contains in the workflow.

Specified by:
construct in interface JobAggregator
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

construct

protected AggregatedJob construct(List jobs,
                                  String name,
                                  String id,
                                  String mergeLFN)
Constructs a new aggregated job that contains all the jobs passed to it. The new aggregated job, appears as a single job in the workflow and replaces the jobs it contains in the workflow.

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.
mergeLFN - the logical name for the aggregated job that has to be constructed.
Returns:
the AggregatedJob object corresponding to the aggregated job containing the jobs passed as List in the input, null if the list of jobs is empty

getTCEntry

protected TransformationCatalogEntry getTCEntry(SubInfo job)
Helper method to get an entry from the transformation catalog for an installed executable. It does the traversal from the list of entries to return a single TransformationCatalogEntry object, and dies with an appropriate error message if the object is not found. The pool and the name are retrieved from job object.

Parameters:
job - the job whose corresponding TransformationCatalogEntry you want.
Returns:
the TransformationCatalogEntry corresponding to the entry in the TC.

defaultTCEntry

private TransformationCatalogEntry defaultTCEntry(String name,
                                                  String site)
Returns a default TC entry to be used in case entry is not found in the transformation catalog.

Parameters:
name - the logical name of the clustering executable.
site - the site for which the default entry is required.
Returns:
the default entry.

entryNotInTC

protected boolean entryNotInTC(String namespace,
                               String name,
                               String version,
                               String site)
Determines whether there is NOT an entry in the transformation catalog for a particular transformation on a particular site.

Parameters:
namespace - the logical namespace of the transformation.
name - the logical name of the transformation.
version - the version of the transformation.
site - the site at which existence check is required.
Returns:
boolean true if an entry does not exists, false otherwise.

setDirectory

protected void setDirectory(String directory)
Sets the directory where the stdin files are to be generated.

Parameters:
directory - the path to the directory to which it needs to be set.


Copyright © 2007 The University of Southern California. All Rights Reserved.