### Navigation

- index
- modules |
- next |
- previous |
- FireWorks 0.11 documentation »

# Assigning job priority

You might want to control the order in which your FireWorks are run. Setting job priority is simple.

## How to set job priority

To set job priority, simply set a key named `_priority` in your FireWork spec. FireWorks will automatically prioritize jobs based on their value of this key. A few notes:

- You can assign any numerical value to the `_priority`, including negative numbers and decimals. Higher priorities are run first.
- FireWorks with any value of `_priority` will be run before jobs without a priority defined. If two FireWorks have the same `_priority`, one of those jobs will be chosen randomly.
- Make sure that the `_priority` key is set at the root level of your FireWork spec.

## Example: Prioritize one workflow over another

Imagine we have two workflows, A and B, with two steps each (1 and 2). We want to run workflow A in its entirety before beginning workflow B. Our execution should follow the blue arrow:

Let’s examine how we can set up such an execution model.

1. Move to the `A_then_B` subdirectory of the `priority` tutorial directory on your FireServer:

       cd <INSTALL_DIR>/fw_tutorials/priority/A_then_B

2. Look inside the files `wfA.yaml` and `wfB.yaml`. You’ll notice that the `_priority` key for both steps of `wfA.yaml` is set to 2, whereas the corresponding values for the steps of `wfB.yaml` are only 1. This means that workflow A will execute in its entirety before starting workflow B.

3. Add and run the FireWorks to confirm:

       lpad reset <TODAY'S DATE>
       lpad add_dir .
       rlaunch -s rapidfire

4. You should have noticed text printed to the Terminal in the following order:

       Task A-1
       Task A-2
       Task B-1
       Task B-2

## Example 2: A breadth-first workflow

Let’s now try another execution order: A-1, B-1, B-2, A-2.

1. Move to the `breadthfirst` subdirectory of the `priority` tutorial directory on your FireServer:

       cd <INSTALL_DIR>/fw_tutorials/priority/breadthfirst

2. Look inside the files `wfA.yaml` and `wfB.yaml`. You’ll notice that this time, the `_priority` key is highest for step A-1 and lowest for step A-2, corresponding to our desired execution order.

3. Add and run the FireWorks to confirm:

       lpad reset <TODAY'S DATE>
       lpad add_dir .
       rlaunch -s rapidfire

4. You should have noticed text printed to the Terminal in the following order:

       Task A-1
       Task B-1
       Task B-2
       Task A-2

### Navigation

- index
- modules |
- next |
- previous |
- FireWorks 0.11 documentation »