[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[HTCondor-users] Possible to have submit-implemented per-machine job limits?



Hi folks,

We have a situation where a certain type of job has an adjunct service 
process which can only have on instance on a given machine, since it uses 
a static port number to provide its service to the job. It can't easily be 
reworked since it's designed to operate that way in a production 
environment. This means that one physical machine can only run one 
instance of that job.

I know I can set up a machine resource in the configuration for this 
purpose, assigning one "myservice" resource to each machine, and this 
would allow the job to specify "request_myservice = 1" and thus limit to 
one job per machine.

What I'm wondering is if it's possible to use something in the job's 
requirements expression alone to accomplish this, rather than a 
server-side config customization. I'm using partitionable slots - I 
suspect that fact may make this a tricky problem to solve without startd 
configuration changes, because the partitionable slot would probably need 
information about what the dynamic slots are doing.

One similar thing I've done in the past was to steer jobs which could 
share a license checkout on the same machine by making a "condor_q" query 
from the script and turning it into a rank expression to favor machines 
already running that user's licensed jobs, but that requires, needless to 
say, a submit wrapper script which I'd like to avoid.

I've also used SubmitterUserResourcesInUse, but that applies to the entire 
pool rather than to a single machine.

Maybe there's some sort of trick in the new 8.4 submit syntax that could 
be applied here? 

Thanks for any suggestions you can offer!

        -Michael Pelletier.
_