{section: How to reserve a slot or machine for special jobs} Suppose you have a type of job known as a "Pickle" job and you want to dedicate a specific slot or machine to running this type of job. The following example is one way to achieve this. Since this example adds to the existing START expression, be sure to insert it after START is first defined or merge the two definitions together. Place the following in the configuration file of the special machine: {code} #Advertise that this machine is for "Pickle" jobs IsPickleSlot = True STARTD_ATTRS = $(STARTD_ATTRS) IsPickleSlot # this machine only runs "Pickle" jobs START = ($(START)) && (MY.IsPickleSlot =!= True || TARGET.IsPickleJob =?= True) {endcode} In the job submit file: {code} +IsPickleJob = true requirements = TARGET.IsPickleSlot {endcode} If you only want specific slots on the machine to be for Pickle jobs, you can adjust the setting of =IsPickleSlot= on a per-slot basis. Example: {code} SLOT1_IsPickleSlot = True SLOT2_IsPickleSlot = False {endcode} *Alternate STARTD configuration for HTCondor 8.2 or later* In HTCondor 8.2 or later, a different START expression can be set for each slot type. Use the same submit file statements as the above, but change the STARTD condifig to this: {code} # create two types of slots, normal and pickle NUM_SLOTS_TYPE_2 = 2 NUM_SLOTS_TYPE_1 = $(NUM_CPUS) - $(NUM_SLOTS_TYPE_2) # type 2 slots only run pickle jobs. SLOT_TYPE_2_START = $(START:True) && (TARGET.IsPickleJob =?= True) #Advertise type 2 slots for "Pickle" jobs STARTD_ATTRS = $(STARTD_ATTRS) IsPickleSlot IsPickleSlot = SlotTypeId==2 {endcode} Starting with HTCondor 8.3.8, attributes can also be advertised per-slot type, so this example could be simplified even further on 8.3.8 by replacing the last 3 statements in the above config block to this: {code} #Advertise type 2 slots for "Pickle" jobs using 8.3.8 features STARTD_ATTRS = $(STARTD_ATTRS) IsPickleSlot SLOT_TYPE_2_IsPickleSlot = true {endcode}