Merge branch '11097-reuse-impure'
[arvados.git] / doc / api / execution.html.textile.liquid
1 ---
2 layout: default
3 navsection: api
4 title: Computing with Crunch
5 ...
6
7 Crunch is the name for the Arvados system for managing computation.  It provides an abstract API to various clouds and HPC resource allocation and scheduling systems, and integrates closely with Keep storage and the Arvados permission system.
8
9 h2. Container API
10
11 Note: although the preferred API for Arvados going forward, the Container API may not yet be available on all installations.
12
13 # To submit work, create a "container request":{{site.baseurl}}/api/methods/container_requests.html in the @Committed@ state.
14 # The system will fufill the container request by creating or reusing a "Container object":{{site.baseurl}}/api/methods/containers.html and assigning it to the @container_uuid@ field.  If the same request has been submitted in the past, it may reuse an existing container.  The reuse behavior can be suppressed with @use_existing: false@ in the container request.
15 # The dispatcher process will notice a new container in @Queued@ state and submit a container executor to the underlying work queuing system (such as SLURM).
16 # The container executes.  Upon termination the container goes into the  @Complete@ state.  If the container execution was interrupted or lost due to system failure, it will go into the @Cancelled@ state.
17 # When the container associated with the container request is completed, the container request will go into the @Final@ state.
18 # The @output_uuid@ field of the container request contains the uuid of output collection produced by container request.
19
20 !{{site.baseurl}}/images/Crunch_dispatch.svg!
21
22 h2. Job API (deprecated)
23
24 # To submit work, create a "job":{{site.baseurl}}/api/methods/jobs.html .  If the same job has been submitted in the past, it will return an existing job in @Completed@ state.
25 # The dispatcher process will notice a new job in @Queued@ state and attempt to allocate nodes to run the job.
26 # The job executes.
27 # Retrieve the @output@ field with the portable data hash of the collection with the output files of the job.