| Previous Topic (HowItWorks) | Up (Contents) | Next Topic (TutorialMonitoring) |
Job Submission
Standard Job Submission
The easiest and most common way to submit render jobs to Deadline is via our many submission scripts which are written for each rendering application that Deadline supports. Where possible, we have created integrated submission scripts to allow you to submit jobs directly from the application you're working with. In cases where this isn't possible, you can submit the jobs from the Submit menu in the Deadline Monitor.
See the Plug-ins Guide on the main contents page for more information on how to set up the integrated submission scripts (where applicable) and submit jobs for specific plug-ins. There are some Submission Tutorials you could check out as well.
You can also create your own submission scripts for the Deadline Monitor. Check out the Monitor Scripting documentation for more details.
After you have submitted your job to Deadline, you can monitor its progress and control it using the Deadline Monitor.
Submitting Abitrary Command Line Jobs To Deadline
To manually submit arbitrary command line jobs to Deadline, you can use the -SubmitCommandLineJob option with the Deadline Command application. The key parameters that you need to specify are:
- -executable: The executable we wish to use.
- -arguments: The arguments we wish to pass to the exectutable. In the arguments string, there are a few key words that will be replaced with the appropriate text when rendering the job:
- <STARTFRAME> will be replaced with the current start frame for each task.
- <ENDFRAME> will be replaced by the current end frame for each task.
- <QUOTE> will be replaced with an actual quote character (").
- -frames: The frames we wish to render.
The following parameters can also be included, but are optional:
- -pool: The pool we wish to submit to (defaults to 'none').
- -group: The group we wish to submit to (defaults to 'none').
- -chunksize: The task chunk size (defaults to 1).
- -priority: The job's priority (defaults to 50).
- -name: The job's name (defaults to "Untitled").
- -category: The job's category (defaults to "None").
- -department: The job's department (defaults to "").
- -initStatus: Specify "Active" or "Suspended" (defaults to "Active").
For example, say we want to submit a job that uses 3dsmaxcmd.exe to render frames in the scene file "\\shared\path\scene.max". We want to render frames 1 to 10, and we want an image resolution of 480x320. The command line to do this without using Deadline would look like:
3dsmaxcmd.exe
-start:1
-end:10
-width:480
-height:320
"\\shared\path\scene.max"
For the Deadline job, we want a task chunk size of 2, we want to submit to the 3dsmax group, and we want a priority of 50. Finally, we want to call the job "3dsmax command line job". The command line to submit this job to Deadline would look like:
DeadlineCommand.exe
-SubmitCommandLineJob
-executable "c:\Program Files\Autodesk\3dsmax8\3dsmaxcmd.exe"
-arguments "-start:<STARTFRAME> -end:<ENDFRAME> -width:480 -height:320 <QUOTE>\\shared\path\scene.max<QUOTE>"
-frames 1-10
-chunksize 2
-group 3dsmax
-priority 50
-name "3dsmax command line job"
Creating Submission Files And Submitting Them To Deadline
This is the method that our submission scripts use to submit jobs to Deadline. This method is far more flexible, but requires more work to setup the job. It also uses Deadline Command to submit the job.
Before the job can be submitted though, a Job Info File must be created. Depending on the plug-in you are submitting the job to, a Plug-in Info File may also be required. Once these files are created, you can submit the job using the command line:
DeadlineCommand.exe
[Job Info File]
[Plug-in Info File]
[Scene File]
...
For all files being passed to the Deadline Command application, you should specify their complete path. If you have other files that you wish to include with the submission other than the scene file, you can specify them after the [Scene File] parameter. If a Plug-in Info File is not required by the plug-in you are submitting the job to, you can omit the [Plug-in Info File] parameter.
The Job Info File
The Job Info File defines all the generic job options that Deadline uses to render the job. A couple options are required, but most are optional. All jobs can use these options, regardless of the plug-in that they use. Some examples have been provided below.
Required Job Options
- Plugin=<plugin name> : Specifies the plugin to use. Must match an existing plugin in the repository.
- Frames=<1,2,3-10,20> : Specifies the frame range of the render job.
Optional Job Options
- UserName=<username> : Specifies the job's user (default = current user).
- MachineName=<machineName> : Specifies the machine the job was submitted from (default = current machine).
- Name=<job name> : Specifies the name of the job (default = Untitled).
- Comment=<comment> : Specifies a comment for the job (default = blank).
- Group=<groupName> : Specifies the group that job is being submitted to (default = none).
- Pool=<poolName> : Specifies the pool that job is being submitted to (default = none).
- Priority=<0-100> : Specifies the priority of a job with 0 being the lowest and 100 being the highest (default = 50).
- ChunkSize=<1 or greater> : Specifies how many frames to render per task (default = 1).
- ForceReloadPlugin=<true/false> : Specifies whether or not to reload the plugin between subsequent frames of a job (default = false). This deals with memory leaks or applications that do not unload all job aspects properly.
- OutputFilename#=<fileName> : Specifies the output image filenames for each frame (default = blank). This allows for Deadline to display the "View Output Image" context menu option in the task list. The filename should have '#' or '?' in the location where the frame numbers should be. If the filename is a full path, then the OutputDirectory# option is not needed. This option is numbered, starting with 0, to handle multiple output filenames per frame (as is the case with Digital Fusion flows). The maximum allowed in six.
- OutputDirectory#=<directoryName> : Specifies the output image directory for the job (default = blank). This allows for Deadline to display the "Explore Output" context menu option in the job list. This option is numbered, starting with 0, to handle multiple output directories per frame. The maximum allowed in six.
- NotificationTargets=<username,username,username> : Specifies the users who should be notifiec when the job is completed (default = blank). Note that only one of the above should be specifed.
- LimitGroups=<limitGroup,limitGroup,limitGroup> : Specifies the limit groups that this job is a member of (default = blank).
- MachineLimit=<0 or greater> : Specifies the maximum number of machines this job can be rendered on at the same time (default = 0, which means unlimited).
- MachineLimitProgress=<0.1 or greater> : If set, the slave rendering the job will give up its current machine limit lock when the current task reaches the specified progress. The usefulness of this feature is directly related to the progress reporting capabilities of the inidivual plugins.
- InitialStatus=<Active/Suspended> : Specifies what status the job should be in immediately after submission (default = Active).
- NetworkRoot=<repositoryUNCPath> : Specifies the repository that the job will be submitted to. This is required if you are using more than one repository (default = current default repository for the machine from which submission is occurring).
- TaskTimeoutSeconds=<0 or greater> : Specifies the time, in seconds, a slave has to render a task before it times out (default = 0, which means unlimited).
- TaskTimeoutMinutes=<0 or greater> : Specifies the time, in minutes, a slave has to render a task before it times out (default = 0, which means unlimited).
- OnTaskTimeout=<Error/Notify/Both> : Specifies what should occur if a task times out (default = Error).
- EnableAutoTimeout=<true/false> : If true, a slave will automatically figure out if it has been rendering too long based on some Repository Configuration settings and the render times of previously completed tasks (default = false).
- JobDependencies=<jobID,jobID,jobID> : Specifies what jobs must finish before this job will resume (default = blank). These dependency jobs must be identified using their unique job ID, which is outputed after the job is submitted, and can be found in the Monitor in the "Directory" column. When using this option, set the Initial Status option to Suspended.
- JobDependencyPercentage=<-1, or 0 to 100> : If between 0 and 100, this job will resume when all of its job dependencies have completed the specified percentage number of tasks. If -1, this feature will be disabled (default = -1).
- IsFrameDependent=<true/false> : Specifies whether or not the job is frame dependent (default = false).
- ResumeOnCompleteDependencies=<true/false> : Specifies whether or not the dependent job should resume when its dependencies are complete (default = true).
- ResumeOnDeletedDependencies=<true/false> : Specifies whether or not the dependent job should resume when its dependencies have been deleted (default = false).
- ResumeOnFailedDependencies=<true/false> : Specifies whether or not the dependent job should resume when its dependencies have failed (default = false).
- DeleteOnComplete=<true/false> : Specifies whether or not the job should be automatically deleted after it completes (default = false).
- ArchiveOnComplete=<true/false> : Specifies whether or not the job should be automatically archived after it completes (default = false).
- OnJobComplete=<Nothing/Delete/Archive> : Specifies what should happen to a job after it completes (default = Nothing).
- ConcurrentTasks=<1-16> : Specifies the maximum number of tasks that a slave can render at a time (default = 1). This is useful for script plugins that support multithreading.
- LimitTasksToNumberOfCpus=<true/false> : If MaxTasksPerSlave is greater than 1, setting this to true will ensure that a slave will not dequeue more tasks than it has processors. The default is true.
- IgnoreFailedJobDetection=<true/false> : If true, the job will not fail if it has reported more errors than that specified in the Failed Job Detection section of the Repository Settings. The default is false.
- IgnoreFailedTaskDetection=<true/false> : If true, a task will not fail if it has reported more errors than that specified in the Failed Task Detection section of the Repository Settings. The default is false.
- IgnoreBadJobDetection<true/false> : If true, slaves will never mark the job as bad for themselves. This means that they will continue to make attemps at jobs that often report errors until the job is complete, or until it fails.
- PreJobScript=<path to script> : Specifies a full path to a python script to execute when the job initially starts rendering.
- PostJobScript=<path to script> : Specifies a full path to a python script to execute when the job completes.
- PreTaskScript=<path to script> : Specifies a full path to a python script to execute before each task starts rendering.
- PostTaskScript=<path to script> : Specifies a full path to a python script to execute after each task completes.
- Department=<department name> : Specifies the department that the job belongs to. Again, this is simply a way to group jobs together, and does not affect rendering in any way.
- SequentialJob=<true/false> : Sequental rendering forces a slave to render the tasks of a job in order. If an earlier task is ever requeued, the slave won't go back to that task until it has finished the remaining tasks in order.
- Interruptible=<true/false> : Specifies if a job can be interrupted by a higher priority job during rendering (default = false).
- Whitelist=<slaveName,slaveName,slaveName> : Specifies which slaves are on the job's whitelist . If both a whitelist and a blacklist are specified, only the whitelist is used.
- Blacklist=<slaveName,slaveName,slaveName> : Specifies which slaves are on the job's blacklist. If both a whitelist and a blacklist are specified, only the whitelist is used.
- ScheduledType=<None/Once/Daily> : Specifies whether or not you want to schedule the job.
- ScheduledStartDateTime=<dd/MM/yyyy HH:mm> : The date/time at which the job will run. The start date/time format must match what is shown above. Here's an explanation:
- dd: The day of the month. Single-digit days must have a leading zero.
- MM: The numeric month. Single-digit months must have a leading zero.
- yyyy: The year in four digits, including the century.
- HH: The hour in a 24-hour clock. Single-digit hours must have a leading zero.
- mm: The minute. Single-digit minutes must have a leading zero.
- ScheduledDays=<day interval> : If sheduling a Daily job, this is day interval for when the job runs.
Some examples of Job Info Files:
* Plugin=3dsmax
ForceReloadPlugin=false
Frames=0-400
Priority=50
Pool=3dsmax
Name=IslandWaveScene_lighted01
Comment=Testing
OutputDirectory0=\\fileserver\Renders\OutputFolder\
OutputFilename0=islandWaveBreak_Std####.png
* Plugin=Lightwave
Frames=1-10,21-30
ChunkSize=10
Priority=99
Pool=LightwavePool
Group=NiceShot
Name=Lightwave Test
OutputFilename0=\\fileserver\Renders\OutputFolder\test####.tif
DeleteOnComplete=true
MachineLimit=5
SlaveTimeout=3600
* Plugin=DFusion
Frames=1-100
Priority=50
Group=DFusion
Name=DFusion Dependency Test
OutputFilename0=\\fileserver\Renders\OutputFolder\dfusion_test####.tif
JobDependencies=t_050_o_2D2E1BF9,m_099_o_2BA5022A
InitialStatus=Suspended
LimitGroups=DFRNode
The Plug-in Info File
The Plug-in Info File defines the plugin specific options that are used by the individual plug-ins to render the job. Often, these options are used to build up the command line arguments that are to be passed on to the renderer.
The plug-ins read in the settings from the Plug-in Info File using the script functions GetPluginInfoEntry(...) and GetPluginInfoEntryWithDefault(...), which are discussed in more detail in the Plug-in Scripting documentation.