--- layout: default navsection: api navmenu: Schema title: Job ... Applications submit compute jobs when: * Provenance is important, i.e., it is worth recording how the output was produced; or * Computation time is significant; or * The job management features are convenient (failure detection/recovery, regression testing, etc). h2. Methods See "jobs":{{site.baseurl}}/api/methods/jobs.html h2. Resource Each job has, in addition to the usual "attributes of Arvados resources":{{site.baseurl}}/api/resources.html: table(table table-bordered table-condensed). |_. Attribute|_. Type|_. Description|_. Notes| |script|string|The filename of the job script.|This program will be invoked by Crunch for each job task. It is given as a path to an executable file, relative to the @/crunch_scripts@ directory in the Git tree specified by the _repository_ and _script_version_ attributes.| |script_parameters|hash|The input parameters for the job.|Conventionally, one of the parameters is called @"input"@. Typically, some parameter values are collection UUIDs. Ultimately, though, the significance of parameters is left entirely up to the script itself.| |repository|string|Git repository|Given as the name of a locally hosted git repository.| |script_version|string|Git commit|During a **create** transaction, this is the Git branch, tag, or hash supplied by the client. Before the job starts, Arvados updates it to the full 40-character SHA-1 hash of the commit used by the job. See "Script versions":#script_version below for more detail about acceptable ways to specify a commit.| |cancelled_by_client_uuid|string|API client ID|Is null if job has not been cancelled| |cancelled_by_user_uuid|string|Authenticated user ID|Is null if job has not been cancelled| |cancelled_at|datetime|When job was cancelled|Is null if job has not been cancelled| |started_at|datetime|When job started running|Is null if job has not [yet] started| |finished_at|datetime|When job finished running|Is null if job has not [yet] finished| |running|boolean|Whether the job is running|| |success|boolean|Whether the job indicated successful completion|Is null if job has not finished| |is_locked_by_uuid|string|UUID of the user who has locked this job|Is null if job is not locked. The system user locks the job when starting the job, in order to prevent job attributes from being altered.| |log|string|Collection UUID|Is null if the job has not finished. After the job runs, the given collection contains a text file with log messages provided by the @arv-crunch-job@ task scheduler as well as the standard error streams provided by the task processes.| |tasks_summary|hash|Summary of task completion states.|Example: @{"done":0,"running":4,"todo":2,"failed":0}@| |output|string|Collection UUID|Is null if the job has not finished.| |nondeterministic|boolean|The job is expected to produce different results if run more than once.|If true, this job will not be considered as a candidate for automatic re-use when submitting subsequent identical jobs.| |submit_id|string|Unique ID provided by client when job was submitted|Optional. This can be used by a client to make the "jobs.create":{{site.baseurl}}/api/methods/jobs.html#create method idempotent.| |priority|string||| |runtime_constraints|hash|Constraints that must be satisfied by the job/task scheduler in order to run the job.|See below.| h3(#script_version). Script versions The @script_version@ attribute is typically given as a branch, tag, or commit hash, but there are many more ways to specify a Git commit. The "specifying revisions" section of the "gitrevisions manual page":http://git-scm.com/docs/gitrevisions.html has a definitive list. Arvados accepts @script_version@ in any format listed there that names a single commit (not a tree, a blob, or a range of commits). However, some kinds of names can be expected to resolve differently in Arvados than they do in your local repository. For example, HEAD@{1} refers to the local reflog, and @origin/master@ typically refers to a remote branch: neither is likely to work as desired if given as a @script_version@. h3. Runtime constraints table(table table-bordered table-condensed). |_. Key|_. Type|_. Description|_. Implemented| |min_nodes|integer||✓| |max_nodes|integer||| |max_tasks_per_node|integer|Maximum simultaneous tasks on a single node|✓| |min_ram_per_task|integer|Minimum real memory (KiB) per task|| |min_ram_per_node|integer|Minimum real memory (KiB) per node||