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

Re: [Condor-users] question on STARTD_EXPRS

On Thu, 09 Mar 2006 16:52:18 -0600 (CST)  Steven Timm wrote:

> If I have a Rank statement as follows:
> RANK = (agroup == "group_numi" ) * 1000
> Do I then have to add agroup to STARTD_EXPRS to make
> it be actually used in calculating the rank?


> Note that agroup, in general, is a classad expression
> which I attach to every job to identify which user
> the job came from.  It is not a static priority of the machine.
> i.e. some jobs running on the machine will have agroup == group_numi
> and some will not.

if it's a property of the job ad, then putting it in STARTD_EXPRS
won't do anything at all.  

STARTD_EXPRS is for taking things out of your config file and putting
them in the machine classad.

STARTD_JOB_EXRPS (which you don't need for your question) is for
taking things out of the *currently* running job classad and putting
them into that machine's classad.  for example, if you want to be able
to do a condor_status query for all machines currently running a
vanilla job, you'd want:


and then "condor_status -const 'JobUniverse == 5'" will work.

RANK is computed by the negotiator, which already has a copy of both
the machine classad (where the machine's RANK expression lives) and a
copy of the job classad it's considering.  so, the RANK expression can
refer to any attributes in either the machine or the job classad, and
you don't have to do any additional work to make those attributes
visible when RANK is being computed.

so, if "agroup"	is a custom job attribute, all you have to worry about
is making sure that's in the job classads.  for example, you'd have
this in the submit file:

+agroup = "group_numi"