Tutorial: Priority Job Queuing

In cryoSPARC v3.0.0+, you can schedule jobs with a priority value that will be used to sort jobs that are queued.

Overview

All jobs in cryoSPARC now have a priority property that the cryoSPARC scheduler uses to sort jobs to be executed. The priority is sorted in descending order, meaning jobs with higher priority will get queued first. When the scheduler encounters jobs that have the same priority, it will sort the jobs based on the time they entered the queue in ascending order.

The priority of a job can be seen in the resource manager.

If an administrator of your cryoSPARC instance has enabled access for you to modify the priority of a job (more on that below), you can set the priority when you queue a job via the Queue Modal. The priority of a job must be between 0-100.

Set the priority of a job in the Queue Modal.

Access & Default Priorities

When you create a new job in cryoSPARC, the priority value is automatically set using the default user and instance priority values. The default user job priority will take precedence; if it is not set, the default instance priority is used instead. If neither are set, the default priority is 0. You can manage both default priority values and whether a user can set them or not in the Admin Panel.

Access the admin panel by clicking on your user account in the bottom right corner of the interface.
Manage user access to modify the job priority via the "Manage Users" table

Manage Access to Modify Job Priority

In the admin panel, administrators can enable and disable users from being able to modify the priority value of a job using the "Job Priority Management" column. Click on the "Able to modify"/"Unable to modify" button to change this value. Enabling this will allow users to see the "Job Priority" input box in the Queue Modal.

Click on the "Unable to modify" button to enable modification of the job priority.

Default User Priorities

You can set the default user priority by entering a value in the "User Default Job Priority" column. This value will be used by default whenever the user creates a job.

Default Instance Priorities

You can set the default instance priority by entering a value in the "Update Default Job Priority" input box. This will update the default job priority for all users in the instance. This value will be used if a user doesn't have their own default job priority set.

Update the default job priority for all users in the instance.

Inspect Priorities of Your Jobs

You can view the priority of your jobs in several places. The easiest place to see it is in the Resource Manager, under the "Current Jobs" tab.

The priority of a job is displayed in green next to an exclamation mark icon.

You can also find the priority of jobs that previously ran in the "Job History" tab, under the "Priority" column.

Click on a job to view its job card.

When you select a job, you can also view its priority by looking at the Job Details panel on the right.

The priority of this job is listed next to "Job Priority".

The final place you can find the priority of a job is in the job card's "Metadata" tab.

Search for the "priority" key (CTRL+f/CMD+f) to find the job's priority value.

CryoSPARC Live Session Priority

CryoSPARC Live sessions also leverage the new priority value. Any jobs created by the Live Session (CryoSPARC Live GPU Worker jobs, Streaming 2D Classification jobs, Ab-Initio Reconstruction jobs, Streaming Refinement jobs, etc.) will inherit the priority that was set for the Session.

By default, when you create a Session, the default priority set will follow the same method as when you create a new job: first, the user default will be used, then the instance default if a user default doesn't exist.

You can change the priority of a session by changing the "Priority" value in the Configuration tab in cryoSPARC Live.

Set a Live Session's priority in the configuration tab.