{code} #Advertise that this machine is for "Pickle" jobs IsPickleSlot = True -STARTD_EXPRS = $(STARTD_EXPRS) IsPickleSlot +STARTD_ATTRS = $(STARTD_ATTRS) IsPickleSlot # this machine only runs "Pickle" jobs START = ($(START)) && (MY.IsPickleSlot =!= True || TARGET.IsPickleJob =?= True) @@ -25,3 +25,28 @@ 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}