Class 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$
    Author:
    Karan Vahi vahi@isi.edu
    • Field Detail

      • COLLAPSE_LOGICAL_NAME

        public static final java.lang.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 java.lang.String EXECUTABLE_BASENAME
        The basename of the pegasus cluster executable.
        See Also:
        Constant Field Values
      • SEQEXEC_PROGRESS_REPORT_SUFFIX

        public static final java.lang.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.
      • getClusterExecutableLFN

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

        public java.lang.String getClusterExecutableBasename()
        Returns the executable basename of the clustering executable used.
        Returns:
        the executable basename.
        See Also:
        EXECUTABLE_BASENAME
      • entryNotInTC

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

        public java.lang.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.
      • topologicalOrderingRequired

        public boolean topologicalOrderingRequired()
        A boolean indicating whether ordering is important while traversing through the aggregated job.
        Returns:
        true
      • logFile

        protected java.lang.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.