Resource Queues

Resource Queues are used to limit the available compute resources that can be utilized concurrently. Examples of compute resources include virtual CPUs (vCPUs) and virtual GPUs (vGPUs).

Overview of Resource Queues

  • Enrollment: An enrollment is the primary identity of your Organization and establishes your company's identity with Foundry services and the Foundry platform.
  • Resource: A Resource Queue resource is a compute resource, such as a virtual CPU (vCPU) or virtual GPU (vGPU), that is needed to run a workload in a Project.
  • Resource Queue: A Resource Queue is a first in, first out (FIFO) queue for requesting service-level resources (such as vCPUs or vGPUs). See Resource Queue Details below for more information.
  • Compute group: A compute group is a group of machines (compute hardware of a specific type) on which Foundry workloads can be run. These machines provide the resources that are used by workloads.
  • Project: A Project is a collaborative space that brings together users, files, and folders for a particular purpose. Projects are the primary security boundary in Foundry and can be thought of as buckets of shared work. Workloads that require resources run in Projects.

Resource Queues for streaming resources may not be available in your enrollment. Contact Palantir Support for more information.

Enrollment details

Resource Queues belong to an enrollment, and an enrollment has a vCPU and a vGPU limit, which limits the total amount of vCPUs and vGPUs allowed through Resource Queues. In other words, the sum of all vCPU limits of all Resource Queues in an enrollment must be less than or equal to the enrollment vCPU limit; the same rule applies to the Queue vGPU limit and enrollment vGPU limit.

An enrollment also has a default queue to which all Projects are automatically assigned unless otherwise specified. This default queue cannot be deleted.

Projects in a space are automatically assigned to the space's default Resource Queue. The space's default Resource Queue is the same as the enrollment default Resource Queue unless otherwise configured. Learn more about Organizations and spaces and how they relate to Organizations and enrollments.

Set enrollment limits

Enrollment limits can be set through Control Panel. Open Control Panel, select the cog next to your enrollment, then select Set resource limits. Contact your Palantir representative if you do not have permission to set enrollment limits.

Setting enrollment Limits

Resource Queue details

Resource Queue Details

A Resource Queue is a first in, first out (FIFO) queue used to limit the number of compute resources that can be used concurrently. A Resource Queue limits the use of service-level resources like virtual CPUs (vCPUs) and virtual GPUs (vGPUs) that are available in compute groups.

Resources are requested by workloads running in Projects, and those requests are then queued in a Resource Queue. When a Resource Queue is full, requests must wait until space is available again in the queue. The queue is first in, first out; requests are processed in the order in which the requests were created.

Workloads are then sent to run in the compute group specified by the Resource Queue, and resources are released once the workload completes or is terminated.

Create Resource Queues

To create a Resource Queue, navigate to the Resource Management application, select Queues on the left, then select New.

Create new Queue

Resource Queue types

There are currently two Resource Queue types: vCPU Resource Queues and vGPU Resource Queues. Most workloads will only need CPUs, and so most Projects will be backed by a vCPU Resource Queue. Workloads requiring GPUs must be sent to a vGPU Resource Queue, and so can only run in Projects backed by a vGPU Resource Queue. The type of GPUs (for example, V100, T4) used by the workload in a Project is determined by the compute group to which the workload will be routed. This compute group is associated with the Resource Queue that backs the Project. Learn more about compute groups.

Use GPUs

If you want to use a GPU in your Project, you must create a GPU Resource Queue and assign your Project to that queue. It may be useful to use a GPU when running workloads for training machine learning models, for example. Learn more about model integration.

New GPU Queue

Be sure your enrollment level GPU limits are set to allow the creation of GPU Resource Queues.

Once the Resource Queue is created and your Project is assigned, import a GPU profile (such as DRIVER_GPU_ENABLED) into your Project and use it in your code repository. Learn more about importing spark profiles.

Assign Projects to Resource Queues: Current behavior

Each Project can be assigned to one Resource Queue, either vCPU or vGPU. If a Project is assigned to a vGPU Queue, then any workloads that do not require GPUs will enter the default vCPU Queue. If a Project is assigned to a vCPU Queue, it cannot execute workloads that require GPUs.

To view and manage the Projects that are assigned to a Resource Queue, select the Projects tab while viewing the details for that Queue.

Assign Projects to Resource Queues: New behavior [Beta]

Beta

This functionality may not be available on all enrollments. If you do not see the Priority branches tab when viewing the details for a Resource Queue, refer to the previous section.

Each Project is assigned to a vCPU Resource Queue; optionally, Projects can also be assigned to a vGPU Resource Queue. If a Project is not assigned to a vGPU Queue, then it cannot execute workloads that require GPUs.

To view and manage the Projects that are assigned to a Resource Queue, select the Projects tab while viewing the details for that Queue. A Project's Resource Queue assignments can also be viewed in the Resource management tab in the platform filesystem sidebar.

Project Resource Queue assignments in the filesystem sidebar.

Priority branches

Priority branches are used to support critical workflows that require dedicated compute resources. For example, it may be acceptable for workloads to queue during development but not in production. Consider using a protected branch from Code Repositories or Pipeline Builder as a priority branch.

When a priority branch is configured for a Project, workloads on that branch use the Resource Queues that are assigned to the priority branch. All other workloads continue to use the Resource Queues that are assigned to the Project. Like Projects, each priority branch is assigned to a vCPU Resource Queue, and they can also optionally be assigned to a vGPU Resource Queue.

To view or manage the priority branch settings for a Project, select the branching icon shown below:

The branch icon to view or manage priority branch settings.

A Project's priority branch settings can also be viewed in the Resource management tab in the platform filesystem sidebar.

Priority branch Resource Queue assignments in filesystem sidebar

To view and manage the priority branches that are assigned to a Resource Queue, select the Priority branches tab while viewing the details for that Queue.

Compute group details

Compute groups are auto scaling groups of hardware resources of homogenous type. For example, a compute group might have machines with 16GB of memory and 4 compute cores (CPUs) available; another compute group may have machines with a V100 GPU with 16 compute cores and 32GB of memory. Compute groups are available to Foundry users and limited by Resource Queues.