Condor will automatically recognize a SMP machine and advertise each
CPU of the machine separately.
For more details, see section 3.11.7 on
page
.
Restrictions on what jobs will run on a given resource can be easily specified in the resource's Requirements statement.
To specify that a given machine should only run certain users's jobs, for example, you could add the following Requirements entry to the machine's Condor configuration file:
Requirements = (RemoteUser == "userfoo@baz.edu" || RemoteUser == "userbar@baz.edu" )
To configure multiple machines to do so, simply create a common configuration file containing this requirement for them to share.
This is a two-step process. First, you need to tell the machines to report that they have special software instaled, and second, you need to tell the jobs to require machines that have that software.
To tell the machines to report the presence of special software, first add a parameter to their configuration files like so:
HAS_MY_SOFTWARE = True
And then, if there are already STARTD_EXPRS defined in that file, add HAS_MY_SOFTWARE to them, or, if not, add the line:
STARTD_EXPRS = HAS_MY_SOFTWARE
NOTE: For these changes to take effect, each condor_startd you update needs to be reconfigured with condor_reconfig -startd.
Next, to tell your jobs to only run on machines that have this software, add a requirements statement to their submit files like so:
Requirements = (HAS_MY_SOFTWARE =?= True)
NOTE: Be sure to use =?= instead of == so that if a machine doesn't have the HAS_MY_SOFTWARE parameter defined, the job's Requirements expression will not evaluate to ``undefined'', preventing it from running anywhere!