Mailing List Archives
Authenticated access
|
|
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[HTCondor-users] Enforce waiting for preferred specific machines without evicting running jobs
- Date: Wed, 08 Aug 2018 18:12:18 +0200
- From: Christoph Heidecker <christoph.heidecker@xxxxxxx>
- Subject: [HTCondor-users] Enforce waiting for preferred specific machines without evicting running jobs
Dear all,
we want to enforce HTCondor to prefer specific machines and if necessary
wait for it to become free.
Therefore, we are setting the job's requirement to something like the
following requirement:
ÂÂÂ Requirements = ( machine == "machine1" ) || ( machine == "machine2" )
And since one of the machines is more suitable than the other one, we
use the following rank.
ÂÂÂ Rank = ( machine == "machine1" ) * 60 + ( machine == "machine2" ) * 40
When we submit just a few jobs using such configurations, we get the
expected behavior. We enforce to use either machine1 or machine2. If
both machines are available, the preferred machine1 is taken. If
machine1 is already running a job, the job is matched to machine2.
But when more jobs are submitted than slots are available, the rank
expression causes evictions of already running jobs, since a running job
can have a lower ranking than a queued one.
Is is possible to use ranking only for a best matching without preemption?
We tried to achieve such a behavior using an additional rank expression
defined by the worker node, which boosts running jobs.
 Rank = ( Target.RemoteHost =?= MY.NAME) * 1000
But it seems that the rank is not updated for already running jobs
during the negotiation cycle. So this solution is currently not working.
So how can we prefer specific machines and enforce waiting without
evicting already running jobs? Is there a better way than using ranking
and requirements?
Thanks,
Christoph