edu.isi.pegasus.planner.cluster.aggregator
Class SeqExec

java.lang.Object
  extended by edu.isi.pegasus.planner.cluster.aggregator.Abstract
      extended by edu.isi.pegasus.planner.cluster.aggregator.SeqExec
All Implemented Interfaces:
JobAggregator

public class SeqExec
extends Abstract

This class aggregates the smaller jobs in a manner such that they are launched at remote end, sequentially on a single node using seqexec. The executable seqexec is a Pegasus tool distributed in the Pegasus worker package, and can be usually found at $PEGASUS_HOME/bin/seqexec.

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

Field Summary
static String COLLAPSE_LOGICAL_NAME
          The logical name of the transformation that is able to run multiple jobs sequentially.
static String EXECUTABLE_BASENAME
          The basename of the pegasus cluster executable.
private  boolean mFailOnFirstError
          Flag indicating whether to fail on first hard error or not.
private  boolean mGlobalLog
          Flag indicating whether a global log file or per job file.
private  boolean mLogProgress
          Flag to indicate whether to log progress or not.
static String SEQEXEC_PROGRESS_REPORT_SUFFIX
          The suffix to be applied to seqexec progress report file.
 
Fields inherited from class edu.isi.pegasus.planner.cluster.aggregator.Abstract
CLUSTERED_JOB_PREFIX, DERIVATION_NAMESPACE, DERIVATION_VERSION, mBag, mClusteredADag, mDirectory, mGridStartFactory, mLogger, MONITORD_COMMENT_MARKER, mProps, mSiteStore, mTCHandle, TRANSFORMATION_NAMESPACE, TRANSFORMATION_VERSION
 
Fields inherited from interface edu.isi.pegasus.planner.cluster.JobAggregator
VERSION
 
Constructor Summary
SeqExec()
          The default constructor.
 
Method Summary
 boolean abortOnFristJobFailure()
          Returns a boolean indicating whether to fail the aggregated job on detecting the first failure during execution of constituent jobs.
 String aggregatedJobArguments(AggregatedJob job)
          Returns the arguments with which the AggregatedJob needs to be invoked with.
 boolean entryNotInTC(String site)
          Determines whether there is NOT an entry in the transformation catalog for the job aggregator executable on a particular site.
 String getClusterExecutableBasename()
          Returns the executable basename of the clustering executable used.
 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
protected  String logFile(AggregatedJob job)
          Returns the name of the log file to used on the remote site, for the seqexec job.
 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.
 
Methods inherited from class edu.isi.pegasus.planner.cluster.aggregator.Abstract
constructAbstractAggregatedJob, constructAbstractAggregatedJob, entryNotInTC, getCommentString, getCompleteTranformationName, getTCEntry, setDirectory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COLLAPSE_LOGICAL_NAME

public static final String COLLAPSE_LOGICAL_NAME
The logical name of the transformation that is able to run multiple jobs sequentially.

See Also:
Constant Field Values

EXECUTABLE_BASENAME

public static final String EXECUTABLE_BASENAME
The basename of the pegasus cluster executable.

See Also:
Constant Field Values

SEQEXEC_PROGRESS_REPORT_SUFFIX

public static final String SEQEXEC_PROGRESS_REPORT_SUFFIX
The suffix to be applied to seqexec progress report file.

See Also:
Constant Field Values

mGlobalLog

private boolean mGlobalLog
Flag indicating whether a global log file or per job file.


mFailOnFirstError

private boolean mFailOnFirstError
Flag indicating whether to fail on first hard error or not.


mLogProgress

private boolean mLogProgress
Flag to indicate whether to log progress or not.

Constructor Detail

SeqExec

public SeqExec()
The default constructor.

Method Detail

initialize

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

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

makeAbstractAggregatedJobConcrete

public void makeAbstractAggregatedJobConcrete(AggregatedJob job)
Enables the abstract clustered job for execution and converts it to it's executable form. Also associates the post script that should be invoked for the AggregatedJob

Specified by:
makeAbstractAggregatedJobConcrete in interface JobAggregator
Overrides:
makeAbstractAggregatedJobConcrete in class Abstract
Parameters:
job - the abstract clustered job

getClusterExecutableLFN

public 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.
See Also:
COLLAPSE_LOGICAL_NAME

getClusterExecutableBasename

public String getClusterExecutableBasename()
Returns the executable basename of the clustering executable used.

Returns:
the executable basename.
See Also:
EXECUTABLE_BASENAME

entryNotInTC

public boolean entryNotInTC(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.

aggregatedJobArguments

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

Specified by:
aggregatedJobArguments in class Abstract
Parameters:
job - the AggregatedJob for which the arguments have to be constructed.
Returns:
argument string

setAbortOnFirstJobFailure

public void setAbortOnFirstJobFailure(boolean fail)
Setter method to indicate , failure on first consitutent job should result in the abort of the whole aggregated job. Ignores any value passed, as MPIExec does not handle it for time being.

Parameters:
fail - indicates whether to abort or not .

abortOnFristJobFailure

public 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.

logFile

protected String logFile(AggregatedJob job)
Returns the name of the log file to used on the remote site, for the seqexec job. Depending upon the property settings, either assigns a common

Parameters:
job - the AggregatedJob
Returns:
the path to the log file.


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