[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [condor-users] user group in RANK
- Date: Fri, 13 Feb 2004 15:44:08 -0600
- From: "David A. Kotz" <dkotz@xxxxxxxxxxxxx>
- Subject: Re: [condor-users] user group in RANK
Miron, Alain, Mark,
Thanks a lot for the suggestions. I had a very bad feeling about the
many, many Owner comparisons, even with only the top priority group.
The group variable in the submit file was an idea I was toying with, but
I haven't tested it to see if it would work. I will implement that
immediately. I discussed it, and the possibility of cheating, with the
PI on the research project which purchased my new cluster (and funded my
job, woohoo!), and he's satisfied with it for now.
On Fri, 2004-02-13 at 09:54, Alain Roy wrote:
> >For now, I have maybe 200 submission points. I'm optimistically
> >thinking that my users will be pretty honest. Besides, I have people
> >who will be happy to punish cheaters.
> Since you think that your users will be honest, this is not too hard,
> because Condor allows quite a bit of flexibility in how jobs are described.
> Please forgive me if I give more detail than you need: I hope other people
> will find this answer useful too.
> ===== Basic solution
> Recall that jobs and machines are described as ClassAds. A ClassAd is
> essentially a fancy name/value list. You can see the ClassAd for a job by
> condor_q -l [job-id]
> Users can easily add anything they want to in their ClassAds. For instance,
> they can add the following line to their submit file:
> +Group = "Physics"
> After the job is submitted, you'll notice this line (without the plus) is
> in the job ClassAd. Please note that the quotes around "Physics" are
> Machines can look at any attribute they want. So your rank statement could
> look like this in your config file:
> Rank = ((TARGET.Group =?= "Physics") * 3) \
> + ((TARGET.Group =?= "Chemistry") * 2) \
> + ((TARGET.Group =?= "CS") * 1)
> (TARGET says "look in the other ClassAd".)
> If someone specifies that they are in the Physics group, they will get a
> rank of three, which is better than any other rank.
> You'll notice that I used =?= instead of ==. This is important, because the
> Group might be undefined if a user didn't put it into his submit file. If
> Group is undefined, then:
> Group =?= "Physics" is FALSE
> Group == "Physics" is UNDEFINED
> For your Rank expression, we prefer to have it be FALSE. For ClassAds, when
> you treat TRUE and FALSE as numbers, you get 1 and 0 respectively, so when
> RANK is undefined your expression will give a RANK of 0. When you multiply
> with UNDEFINED, you get UNDEFINED.
> ===== Enhancement
> If the folks in the Physics group always submit from the same computers and
> they don't share them with the folks from the Chemistry group, then you can
> have the Group set automatically. If the config file for a particular
> computer has:
> GROUP = "Physics"
> SUBMIT_EXPRS = GROUP
> (Note the quotes around Physics and the lack of quotes around GROUP.)
> then this is equivalent to adding it directly to the submit file with:
> +Group = "Physics"
> Note that if a user puts '+Group = "Chem"' in their submit file, it will
> override what you put into SUBMIT_EXPRS. This is not a mechanism ensure
> that users don't lie, it is a way to help users that may forget to add this.
> ===== Problems
> Your users can lie or make mistakes. What can you do about it?
> 1) There is an undocumented mechanism for writing functions that can be put
> into your requirements or rank expression. You can write these functions in
> C++. This is an immature functionality, and it may slow down matchmaking.
> You can write a function that directly computes the rank based on the
> user's name. This is a bit more secure, but it's a lot more work.
> 2) Real support for groups may be in a future release of Condor.
> Condor Support Information:
> To Unsubscribe, send mail to majordomo@xxxxxxxxxxx with
> unsubscribe condor-users <your_email_address>
Condor Support Information:
To Unsubscribe, send mail to majordomo@xxxxxxxxxxx with
unsubscribe condor-users <your_email_address>