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

Re: [HTCondor-users] RunBenchmark variable



On 8/24/2020 10:22 AM, Xavier OUVRARD wrote:
Dear Greg,
thank you very much, I better understand this line that was particularly different in the config file I had; I am too new to HtCondor to know about the history.
Additional question: what happens if the benchmark has never been run (I have it on some of the machines, with a shared config, HT Condor to latest 8.8.10 on every machines, with Centos 7. The upgrade has been finished already more than a week ago. Also some machines don't have Mips and Kflos settled when viewing condor_status, which make them ranked at the bottom, because we were using a rule for the post_rank that was:
(RemoteOwner =?= UNDEFINED) * ( round(Mips / 500.0) / 2.0 + ( TotalSlots-SlotID ) + 0.8/TotalSlots - $(JOBS_AFTER) )

I have moved to a POST_JOB_RANK defined as follow:
 (RemoteOwner =?= UNDEFINED) * round(Memory * (1.0 - TotalAvg * 1.0/ TotalSlots) + (TotalSlots - SlotID))
in order to solve the lack of Mips value.

HI Xavier,

If configure HTCondor to not run benchmarks, then machine attributes like MIPS and KFLOPS will be Undefined. 

One suggestion to handle issues like the above in HTCondor v8.8+ is to use the handy "?:" operator.  A classad _expression_ like the following:

   X ?: Y

says "if attribute X is defined, then return the value of X, else if X is undefined return the value of Y".

It is a nice shorthand for the following:

   ifThenElse(X is UNDEFINED,Y,X)

So if you wished you could provide a "default" guess of 23k (or whatever) for machines were benchmarks are disabled in the above clause like so:

(RemoteOwner =?= UNDEFINED) * ( round( (Mips ?: 23000) / 500.0) / 2.0 + ( TotalSlots-SlotID ) + 0.8/TotalSlots - $(JOBS_AFTER) )

Hope the above helps
Todd