{section: Introduction to Consumption Policies}
A Consumption Policy is a policy expression that resides on a partitionable slot classad, as advertised by the startd on an HTCondor execute node, which governs the amount of resources used by a job match against that slot.
+{subsubsection: resource consumption}
Each _kind_ of resource (or resource "asset") has a corresponding Consumption Policy. In a typical partitionable slot (p-slot), three resources are always defined: Cpus, Memory and Disk, which might advertise Consumption Policies as configured in this simple example:
{code}
@@ -14,8 +15,12 @@
CONSUMPTION_DISK = target.RequestDisk
{endcode}
+{subsubsection: matchmaking}
The HTCondor negotiator matchmaking logic is aware of a Consumption Policy (CP) detected on a p-slot. When a job matches against a p-slot with a CP, the amount of each resource dictated by its consumption policy is deducted from that p-slot. The p-slot then remains available to match with another job. In other words: *Consumption Policies allow multiple jobs to be matched against a single partitionable slot during a negotiation cycle*. When the HTCondor startd is allocating a claim to a new match, the same Consumption Policy expressions are also evaluated to determine the resources that are subtracted from the partitionable slot (and added to the corresponding new dynamic slot).
+{subsubsection:
+
+
{section: Motivations}
Consumption Policies enable some appealing features, including support for pools with heterogeneous resource models, faster loading of partitionable slots, and more flexible utilization of accounting group quotas.
@@ -25,7 +30,9 @@
{subsection: Fast Slot Loading}
+
{subsection: Flexible Quota Utilization}
+
{section: Examples}