11.10 Job Templates

11.10.1 Job Template Overview

Job templates are used for two primary purposes: (1) to provide a means of generically matching and categorizing jobs, and (2) to provide a means of setting arbitrary default or forced attributes for certain jobs. Job templates can be used in many aspects of scheduling but they are most commonly applied in the areas of Peer-Based Grid usage policies. Job templates are defined using the JOBCFG configuration parameter.

11.10.2 Applying Job Templates

11.10.2.1 Matching

The JOBMATCHCFG parameter allows relationships to be established between a number of job templates. JMAX and JMIN function as filters to determine whether a job is eligible for a subsequent template to be applied to the job. If a job is eligible, JDEF and JSET templates apply attributes to the job. The table in section Job Template Extension Attributes indicates which job template types are compatible with which job template extension attributes. The following types of templates can be specified with the JOBMATCHCFG parameter:

AttributeDescription
A potential job is rejected if it has matching attributes set or has resource requests that exceed those specified in this template.
A potential job is rejected if it does not have matching attributes set or has resource requests that do not meet or exceed those specified in this template.
A matching job has the specified attributes set as defaults but all values can be overridden by the user if the matching attribute is explicitly set at job submission time.
A matching job has the specified attributes forced to these values and these values override any values specified by the submitter at job submission time.
A matching job has its usage statistics reported into this template.
NoteFor JMAX, a job template can specify only positive non-zero numbers as maximum limits for generic resources. If a job requests a generic resource that is not limited by the template, then the template can still be used.
# limit all users to a total of two non-interactive jobs
USERCFG[DEFAULT]  MAXJOB=2
# reservation configuration
SRCFG[test] DESCRIPTION="compute pool for interactive and short duration jobs"
SRCFG[test] JOBATTRLIST=INTERACTIVE
SRCFG[test] MAXTIME=1:00:00
SRCFG[test] HOSTLIST=R:atl[16-63]
# job template configuration
JOBCFG[inter.min] FLAGS=interactive
JOBCFG[inter.set] FLAGS=ignpolicies
JOBMATCHCFG[interactive] JMIN=inter.min JSET=inter.set

In the preceding example, a reservation called test is created. This reservation is only accessible by interactive jobs and jobs that will take less than one hour to complete. Specifying MAXJOB=2 means that each user on the system is only allowed to run two jobs simultaneously.

The job template configuration is signified by the JOBCFG parameter. The inter.min template (JMIN) determines that if a job is marked as interactive it is eligible to have inter.set template applied to it. The JOBMATCHCFG parameter establishes the relationship between inter.min and inter.set. The inter.set template forces the ignpolicies flag on the job, which allows the job to ignore the MAXJOB policy. Also, the job automatically requests the reservation named test. Any user submitting a job may have as many interactive jobs running as resources permit, and the job runs inside the test reservation, which constrains the jobs to run on nodes at1[16-63]. With this template, users do not need to know to which nodes to send interactive jobs; Moab automatically sends interactive jobs to the nodes specified in the reservation.

11.10.2.2 Selecting

Rather than matching a job automatically based on job attributes, a specific template can be directly requested by setting the SELECT attribute to TRUE. Attributes specified in the job template are applied to the job.

JOBCFG[inter.set] FLAGS=ignpolicies SELECT=true

In the preceding example, instead of the interactive jobs automatically going to the reservation named test (as in the Matching example), users can request the inter.set template for the ignpolicies flag and the requested reservation test to be applied to the job.

Use the following to request the job template:

Selecting a specific reservation is often used in creating workflows. See Creating Workflows with Job Templates for more information.

msub -l template=inter.set myjob.sh
NoteAttributes set in a template are evaluated as if they were part of the original job submission. They are still subject to all the same ACLs and policies.

11.10.3 Job Template Extension Attributes

When creating a job template, any attribute acceptable within the WIKI workload query data format can be used. In addition, job templates can use any of the extension attributes in the following table. Note that a checkmark in the Template Type (JMIN, JMAX, JDEF, JSET) row indicates compatibility with the associated attribute.

NoteWhile JMIN and JMAX both work with numerical values, only JMIN can be used to test text values.
ACCOUNT
<ACCOUNT>[,<ACCOUNT>]...
JMINJMAXJDEFJSET
Yes YesYes
Account credentials associated with job. Used in job template matching.
JOBCFG[public]      FLAGS=preemptee
JOBCFG[public.min]  ACCOUNT=public_acct
JOBMATCHCFG[public] JMIN=public.min JSET=public
ACTION
HOLD or CANCEL
JMINJMAXJDEFJSET
Yes
Describes an action that is done to the job if the set template is applied.
JOBCFG[test.min] QOS=high
JOBCFG[test.set] ACTION=CANCEL
JOBMATCHCFG[test] JMIN=test.min JSET=test.set
ALLOCSIZE
<ALLOCSIZE>[,<DEALLOCSIZE>]
JMINJMAXJDEFJSET
YesYes
Number of application tasks to allocate/deallocate at each allocation adjustment.
JOBCFG[webdb] ALLOCSIZE=4
ALLOCDELAY
[[[DD]:HH]:MM]:SS
JMINJMAXJDEFJSET
YesYes
The amount of time to wait before trying to allocate a new resource. When you have a dynamic service job - ones that grow and shrink - ALLOCDELAY is the minimum amount of time Moab waits before allowing a change to the size of the service job. The size of the job should not change too quickly, so ALLOCDELAY specifies an amount of time that must elapse before another size change can occur.
JOBCFG[webdb] ALLOCDELAY=1:00
ALLOCSYNCTIME
[[[DD]:HH]:MM]:SS
JMINJMAXJDEFJSET
YesYes
Time indicating maximum duration Moab waits before forcing allocation decisions via provisioning or other steps.

NoteBy default, when deallocating resources, Moab does not reassign resources from one service to another until the service/job initially assigned the resources reports successful de-allocation via the workload query response.
JOBCFG[webdb]  ALLOCSYNCTIME=00:04:00
JOBCFG[sirius] ALLOCSYNCTIME=00:00:20

Moab forces the deallocation of resources assigned to webdb if the application does not release them within four minutes of a deallocation request. For the sirius application, Moab forces deallocation if not released by the application within twenty seconds of a deallocation request.

CLASS
<CLASS>[,<CLASS>]...
JMINJMAXJDEFJSET
Yes YesYes
Class credentials associated with job. Used in job template matching.
JOBCFG[night]      FLAGS=preemptor
JOBCFG[night.min]  CLASS=night_class
JOBMATCHCFG[night] JMIN=night.min JSET=night
CPULIMIT
[[[DD]:HH]:MM]:SS
JMINJMAXJDEFJSET
YesYesYesYes
Maximum amount of CPU time used by all processes in the job.
JOBCFG[job.min]  CPULIMIT=1:00:00:00
JOBCFG[job.max]  CPULIMIT=2:00:00:00
DESCRIPTION
<STRING>

JMINJMAXJDEFJSET
YesYes

Description of the job. When you run the checkjob command, the description appears as Reason.
JOBCFG[webdb] DESCRIPTION="Template job"
DPROCS
<INTEGER>
JMINJMAXJDEFJSET
YesYesYes
Number of processors dedicated per task. Default is 1.
JOBCFG[job.min]  DPROCS=2
JOBCFG[job.max]  DPROCS=4
EUSER
<STRING>
JMINJMAXJDEFJSET
YesYes
In a job template, EUSER is the effective user, meaning that when a job starts it will change the user running the job to the one on the template.
JOBCFG[batch]    EUSER=render
EXEC
<STRING>
JMINJMAXJDEFJSET
Yes
Sets what the job runs, regardless of what the user sets.
JOBCFG[setup.pre]    EXEC=nfs/tools/setup.pre.sh
FLAGS
<JOBFLAG>[,<JOBFLAG>]...
JMINJMAXJDEFJSET
Yes YesYes
One or more legal job flag values.
JOBCFG[webdb] FLAGS=NORMSTART
GNAME
<STRING>
JMINJMAXJDEFJSET
Yes
Group credential associated with job.
JOBCFG[webserv] GNAME=service
NoteFor matching the group, see the GROUP attribute.
GRES
<generic resource>[:<COUNT>]

JMINJMAXJDEFJSET
YesYes

Consumable generic attributes associated with individual nodes or the special pseudo-node global, which provides shared cluster (floating) consumable resources. Use the NODECFG parameter to configure such resources.
JOBCFG[gres.set] GRES=abaqus:2

In this example, the gres.set template applies two Abaqus licenses per task to a matched job.

GROUP
<GROUP>[,<GROUP>]...
JMINJMAXJDEFJSET
Yes YesYes
Group credentials associated with job. Used in job template matching.
JOBCFG[webserv] GROUP=service
NoteFor setting the group, see the GNAME attribute.
MEM
<INTEGER>
JMINJMAXJDEFJSET
YesYesYesYes
Maximum amount of physical memory per task used by the job. See Requesting Resources for more information.
JOBCFG[smalljobs] MEM=25
NODEACCESSPOLICY
One of the following:SHARED, SHAREDONLY, SINGLEJOB, SINGLETASK , SINGLEUSER, or UNIQUEUSER
JMINJMAXJDEFJSET
YesYes
Specifies how node resources will be shared by a job. See the Node Access Overview for more information.
JOBCFG[serverapp] NODEACCESSPOLICY=SINGLEJOB
NODERANGE
<MIN>[,<MAX>]

JMINJMAXJDEFJSET
YesYes

Minimum and maximum nodes allowed to be allocated to job.
JOBCFG[vizserver] NODERANGE=1,16
NODES
<INTEGER>
JMINJMAXJDEFJSET
YesYesYes
Number of nodes required by job. Default is 1. See Node Definition for more information.
JOBCFG[job.min]  NODES=2
JOBCFG[job.max]  NODES=4
NODESET
<STRING>
JMINJMAXJDEFJSET
Yes
See Node Set Overview for more information.
JOBCFG[medium.set] NODESET=ONEOF:FEATURE:fast,slow
PARTITION
<PARTITION>[:<PARTITION>]...
JMINJMAXJDEFJSET

Yes

YesYes
Specifies the partition (or partitions) in which a job must run.
JOBCFG[meis] PARTITION=math:geology
PREF
<STRING>
JMINJMAXJDEFJSET
YesYes
Specifies which node features are preferred by the job and should be allocated if available. See PREF for more information.
JOBCFG[meis] PREF=bigmem
PRIORITY
<INTEGER>

JMINJMAXJDEFJSET
YesYes

Relative job priority.
JOBCFG[meis] PRIORITY=25000
PROCRANGE
<MIN>[,<MAX>]
JMINJMAXJDEFJSET
YesYes
Minimum and maximum processors allowed to be allocated to job.
JOBCFG[meis] PROCRANGE=2,64
QOS
<QOS>[,<QOS>]...
JMINJMAXJDEFJSET
Yes YesYes
QoS credentials associated with job. Used in job template matching.
JOBCFG[admin]      RFEATURES=bigmem
JOBCFG[admin.min]  QOS=admin_qos
JOBMATCHCFG[admin] JMIN=admin.min JSET=admin
RARCH
<STRING>
JMINJMAXJDEFJSET
Yes
Architecture required by job.
JOBCFG[servapp] RARCH=i386
RFEATURES
<FEATURE>[,<FEATURE>]...
JMINJMAXJDEFJSET
Yes YesYes
List of features required by job.
JOBCFG[servapp] RFEATURES=fast,bigmem
RM
<STRING>
JMINJMAXJDEFJSET
YesYes
Destination resource manager to be associated with job.
JOBCFG[webdb] RM=slurm
ROPSYS
<STRING>
JMINJMAXJDEFJSET
YesYes
Operating system required by job.
JOBCFG[test.set] ROPSYS=windows
SELECT
<BOOLEAN> : TRUE | FALSE
JMINJMAXJDEFJSET
Job template can be directly requested by job at submission.
JOBCFG[servapp] SELECT=TRUE
SOFTWARE
<RESTYPE>[{+|:}<COUNT>][@<TIMEFRAME>]
JMINJMAXJDEFJSET
YesYes
Indicates generic resources required by the job. See SOFTWARE for more information.
JOBCFG[servapp] SOFTWARE=matlab:2
SYSTEMJOBTYPE
JMINJMAXJDEFJSET
Yes
System job type (ex. vmcreate).
JOBCFG[vmcreate.min] SYSTEMJOBTYPE=vmcreate
JOBCFG[vmcreate.set] TRIGGER=atype=reserve,action="00:05:00",etype=end
JOBMATCHCFG[vmcreate] JMIN=vmcreate.min JSET=vmcreate.set
TARGETBACKLOG
[<MIN>,]<MAX>
JMINJMAXJDEFJSET
YesYes
Minimum and maximum backlog for application within job.
JOBCFG[pdb] TARGETBACKLOG=0.5,2.0
TARGETLOAD
[<MIN>,]<MAX>
JMINJMAXJDEFJSET
YesYes
Minimum and maximum load for application within job.
JOBCFG[pdb] TARGETLOAD=0.5,2.0
TARGETRESPONSETIME
[<MIN>,]<MAX>
JMINJMAXJDEFJSET
YesYes
Minimum and maximum response time in seconds for application within job.
JOBCFG[pdb] TARGETRESPONSETIME=0.5,2.0
TARGETTHROUGHPUT
[<MIN>,]<MAX>
JMINJMAXJDEFJSET
YesYes
Minimum and maximum throughput for application within job.
JOBCFG[pdb] TARGETTHROUGHPUT=0.5,2.0
TASKS
<INTEGER>
JMINJMAXJDEFJSET
YesYesYes
Number of tasks required by job. Default is 1. See Task Definition for more information.
JOBCFG[job.min]  TASKS=4
JOBCFG[job.max]  TASKS=8
TASKPERNODE
<INTEGER>
JMINJMAXJDEFJSET
YesYesYes
Exact number of tasks required per node. Default is 0.
JOBCFG[job.min]  TASKPERNODE=2
JOBCFG[job.max]  TASKPERNODE=4
TEMPLATEDEPEND
<TYPE>:<TEMPLATE_NAME>
JMINJMAXJDEFJSET
Create another job from the TEMPLATE_NAME job template, on which any jobs using this template will depend. This is used for dynamically creating workflows. See Job Dependencies for more information.
JOBCFG[engineering] TEMPLATEDEPEND=AFTER:setup.pre
JOBCFG[setup.pre]   SELECT=TRUE EXEC=/tools/setup.pre.sh
UNAME
<STRING>
JMINJMAXJDEFJSET
Yes
User credential associated with job.
JOBCFG[webserv] UNAME=service
NoteFor matching the user, see the USER attribute.
USER
<USER>[,<USER>]...
JMINJMAXJDEFJSET
Yes YesYes
User credentials associated with job.
JOBCFG[webserv] USER=service
NoteFor setting the user, see the UNAME attribute.
VARIABLE
<NAME>[:<VAL>]
JMINJMAXJDEFJSET
Yes  Yes
Variables attached to the job template.
JOBCFG[this] VARIABLE=var1:1 VARIABLE=var2:1
				
NoteVariables are set upon successful completion of the job.
WCLIMIT
[[HH:]MM:]SS
JMINJMAXJDEFJSET
YesYesYesYes
Walltime required by job. Default is 8640000 (100 days).
JOBCFG[job.min]  WCLIMIT=2:00:00
JOBCFG[job.max]  WCLIMIT=12:00:00
WORK
<DOUBLE>
JMINJMAXJDEFJSET
YesYes
Unitless measure of work accomplished per task.
JOBCFG[webserv] WORK=10.5

11.10.4 Resource Manager Templates

Job templates can also be applied to resource managers modifying attributes of jobs submitted to, migrated to, or routed through specified resource manager interfaces. In particular the RMCFG attributes MAX.JOB, MIN.JOB, SET.JOB, and DEFAULT.JOB can be used. However, the meanings of resource manager job templates are slightly different than their JOBMATCHCFG counterparts as described in the following table.

AttributeDescription
A potential job is not allowed to access the resource manager if it has matching attributes set or has resource requests that exceed those specified in this template.
A potential job is not allowed to access the resource manager if it does not have matching attributes set or has resource requests that do not meet or exceed those specified in this template.
A job associated with this resource manager has the specified attributes set as defaults but all values can be overridden by the user if the matching attribute is explicitly set at job submission time.
A job associated with this resource manager has the specified attributes forced to these values and these values override any values specified by the submittor at job submission time.

11.10.5 Job Template Examples

Job templates can be used for a wide range of purposes including enabling automated learning, setting up custom application environments, imposing special account constraints, and applying group default settings. The following examples highlight some of these uses:

11.10.5.1 .1 Example 1: Setting Up Application-Specific Environments

JOBCFG[xxx] EXEC=*app* JOBPROLOG=/usr/local/appprolog.x

11.10.5.2 .2 Example 2: Applying Job Preferences and Defaults

JOBCFG[xxx] CLASS=appq EXEC=*app* PREF=clearspeed
NODEALLOCATIONPOLICY PRIORITY
NODECFG[DEFAULT] PRIOF=5.0*PREF

11.10.5.3 .3 Example 3: Applying Resource Constraints to Fuzzy Collections

In the following example, a job template match is set up. Using the JOBMATCHCFG parameter, Moab is configured to apply all attributes of the inter.set job template to all jobs that match the constraints of the inter.min job template. In this example, all interactive jobs are assigned the ignpolicies flag that allows them to ignore active, idle, system, and partition level policies. Interactive jobs are also locked into the teststanding reservation and thus only allowed to run on the associated nodes.

# limit all users to a total of two non-interactive jobs
USERCFG[DEFAULT]  MAXJOB=2
SRCFG[test] DESCRIPTION="compute pool for interactive and short duration jobs"
SRCFG[test] JOBATTRLIST=INTERACTIVE
SRCFG[test] MAXTIME=1:00:00
SRCFG[test] HOSTLIST=R:atl[16-63]
JOBCFG[inter.min] FLAGS=interactive
JOBCFG[inter.set] FLAGS=ignpolicies
JOBMATCHCFG[interactive] JMIN=inter.min JSET=inter.set

11.10.5.4 .4 Example 4: Resource Manager Templates

In the following example, interactive jobs are not allowed to enter through this resource manager and any job that does route in from this resource manager interface has the preemptee flag set.

JOBCFG[no_inter]    FLAGS=interactive
JOBCFG[preempt_job] FLAGS=preemptee

RMCFG[gridA.in] MAX.JOB=no_inter SET.JOB=preempt_job
<

11.10.6 Managing Job Templates

11.10.6.1 .1 Dynamically Creating Job Templates

Job templates can be dynamically created while Moab is running using the mschedctl -m command.

NoteDynamically created job templates will only survive a Moab restart if the --flags=pers[istent] flag is used.
> mschedctl -m --flags=pers "JOBCFG[preempt] FLAGS=PREEMPTOR"
> mschedctl -m --flags=pers "JOBCFG[preempt] SELECT=TRUE" 
> msub -l template=preempt mysjob.sh

11.10.6.2 .2 Removing Job Templates

Job templates cannot be dynamically removed. You can only remove job templates by commenting out (or removing) the template definition (lines) in the moab.cfg file; then you must restart Moab.

11.10.6.3 .3 Dynamically Modifying Job Templates

Job templates can be dynamically modified by using the mschedctl -m command.

NoteDynamic changes do not persist after a shutdown of the Moab server unless the --flags=pers[istent] flag is used.
> mschedctl -m "JOBCFG[single] NODEACCESSPOLICY=SINGLEJOB"

11.10.6.4 .4 Viewing Job Templates

Job templates can be viewed by specifying "template:" before the template name in checkjob and also by using the command mdiag -j as in the following example:

> mdiag -j --flags=policy
> checkjob -v template:match.min

11.10.6.5 .5 Requesting Job Templates Directly

Job templates can be requested directly by setting the SELECT flag on the job template to TRUE as in the following example:

> JOBCFG[medium.set] NODESET=ONEOF:FEATURE:fast,slow SELECT=true
> msub -l template=medium.set

11.10.7 Creating Workflows with Job Templates

Moab can create workflows from individual jobs using job templates. The Moab naming convention for jobs created with job templates is <moabid>.<templatename>. By default, when Moab submits jobs to only one resource manager, the job IDs are synchronized with the resource manger's job IDs. For consistency, the parameter USEMOABJOBID may be used so that a template-created job is easily associated with its parent job (such as moab.1, moab.1.setup.pre).

NoteJSETs and JDEFs have only been tested using msub as the job submission command.

11.10.7.1 .1 Example 1: Building a Workflow with Job Templates

In this example, creating a job in the engineering account generates a workflow based on a two-step setup. The job is set to depend on the completion of this workflow.

JOBMATCHCFG[engineering.job]  JMIN=engineering.match JSET=engineering
JOBCFG[engineering.match]     ACCOUNT=engineering
JOBCFG[engineering]     TEMPLATEDEPEND=AFTER:setup.pre2
JOBCFG[setup.pre2]      TEMPLATEDEPEND=AFTER:setup.pre SELECT=TRUE EXEC=/nfs/tools/setup.pre2.sh
JOBCFG[setup.pre]       TASKS=2 WCLIMIT=00:01:00 SELECT=TRUE EXEC=/usr/tools/setup.pre.sh STAGEIN=TRUE

In the previous example, a job is submitted with the account name engineering. Moab then matches the submitted job with the engineering template. The engineering template states that the job must run after the setup.pre2 template job runs. Then the setup.pre2 template creates a job from the specified EXEC string; the setup.pre2 job must run after the setup.pre template job runs. The setup.pre template creates a job from the specified EXEC string. The new setup.pre job is specified for two processors and has a wallclock time of one minute.

Note that since the setup.pre.sh script is not on an NFS mount, it must be staged in. STAGEIN has a value of TRUE or FALSE. If set to TRUE, Moab ensures the executable is staged out to the compute host where the dependent job runs. If set to FALSE, Moab assumes the executable is already available on the compute host.

11.10.7.2 .2 Example 2: A Workflow with Multiple Dependencies

In this example the job will depend on the completion of two other jobs Moab creates. Both jobs execute at the same time.

# Engineering2
JOBCFG[engineering2]           TEMPLATEDEPEND=AFTER:engineering2.pre2 TEMPLATEDEPEND=AFTER:engineering2.pre
JOBCFG[engineering2.pre2]      TASKS=2 WCLIMIT=00:01:00 SELECT=TRUE EXEC=/usr/tools/engineering2.pre2.sh
JOBCFG[engineering2.pre]       TASKS=2 WCLIMIT=00:01:00 SELECT=TRUE EXEC=/usr/tools/engineering2.pre.sh
JOBCFG[engineering2.match]     ACCOUNT=engineering2
JOBMATCHCFG[engineering2.job]  JMIN=engineering2.match JSET=engineering2

11.10.7.3 .3 Example 3: Jobs that Run After the Submission Job

Three additional jobs are created that depend on the submitted job.

# Workflow 2
JOBCFG[workflow2]           TEMPLATEDEPEND=BEFORE:workflow2.post1  TEMPLATEDEPEND=BEFORE:workflow2.post2 TEMPLATEDEPEND=BEFORE:workflow2.post3
JOBCFG[workflow2.post1]     TASKS=2 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow2.post1.sh
JOBCFG[workflow2.post2]     TASKS=2 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow2.post2.sh
JOBCFG[workflow2.post3]     TASKS=2 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow2.post3.sh
JOBCFG[workflow2.match]     ACCOUNT=workflow2
JOBMATCHCFG[workflow2.job]  JMIN=workflow2.match JSET=workflow2

11.10.7.4 .4 Example 4: A Complex Workflow

A complex workflow that handles failures.

# Workflow 4
JOBCFG[workflow4.step1]     TASKS=1 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow.step1.sh TEMPLATEDEPEND=BEFOREFAIL:workflow4.fail1
JOBCFG[workflow4.fail1]     TASKS=1 WCLIMIT=00:00:30 SELECT=TRUE  EXEC=/usr/tools/workflow.fail.1.sh TEMPLATEDEPEND=BEFOREANY:workflow4.fail2
JOBCFG[workflow4.fail2]     TASKS=1 WCLIMIT=00:00:30 SELECT=TRUE  EXEC=/usr/tools/workflow.fail.2.sh
# Submission job
JOBCFG[workflow4.step2]     TEMPLATEDEPEND=AFTEROK:workflow4.step1  TEMPLATEDEPEND=BEFOREOK:workflow4.step3.1  TEMPLATEDEPEND=BEFOREOK:workflow4.step3.2
JOBCFG[workflow4.step3.1]   TASKS=1 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow.step3.1.sh
JOBCFG[workflow4.step3.2]   TASKS=1 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow.step3.2.sh TEMPLATEDEPEND=BEFOREOK:workflow4.step4
JOBCFG[workflow4.step4]     TASKS=1 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow.step4.sh
JOBCFG[workflow4.step4]     TEMPLATEDEPEND=BEFOREOK:workflow4.step5.1  TEMPLATEDEPEND=BEFOREOK:workflow4.step5.2  TEMPLATEDEPEND=BEFORENOTOK:workflow4.step5.3
JOBCFG[workflow4.step5.1]   TASKS=1 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow.step5.1.sh
JOBCFG[workflow4.step5.2]   TASKS=1 WCLIMIT=00:01:00 SELECT=TRUE  EXEC=/usr/tools/workflow.step5.2.sh
JOBCFG[workflow4.step5.3]   TASKS=1 WCLIMIT=00:00:30 SELECT=TRUE  EXEC=/usr/tools/workflow.step5.3.sh
JOBCFG[workflow4.match]     ACCOUNT=workflow4
JOBMATCHCFG[workflow4.job]  JMIN=workflow4.match JSET=workflow4.step2

See Also

Copyright © 2012 Adaptive Computing Enterprises, Inc.®