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

Re: [Condor-users] macro problems



On Tuesday, May 31, 2011 at 11:05 AM, Gary Orser wrote:

Thanks for the alternate method of doing this, but it still doesn't
explain why the macro/_expression_ expansion is not working.
I think there's a misunderstanding here on macros, whence they come from and when they take effect. Your original post you said your *submission file* contained the line:

requirements = $(BUGALL) && Memory > 0

In this case, the macro BUGALL is expected to be defined *in the submission file*. But you've gone and defined it in a condor_config.local file on some machines (all machines? I'm not sure, you don't say).

If you want to substitute a ClassAd value defined on the matched machine itself you can use the $$(macro name) approach but this is a very, very inefficient way to do machine selection since the value of the parameter won't be expanded until *after* the negotiator has given the scheduler a match for this job to a machine. I'll be honest: I'm not even sure using machine-side macro expansion in a requirements string will even work. It might but this really is the wrong way to solve the problem.

As Ben pointed out, the better way to do this is to put machines in to groups and then have users toggle a boolean or a string match to select, deselect groups of machines.

Regards,
- Ian

-- 
Ian Chesal
ichesal@xxxxxxxxxxxxxxxxxx
http://www.cyclecomputing.com/