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

Re: [HTCondor-users] force certain type of jobs to run on an specific startd



Basically, if I can have multiple blocks [ ] [ ] inside a JOB_TRANSFORM?

	It's not very well documented, but it would appear not.

My main problem is that they need to processed in order, and once a job have been successfully handled by one block, it should not be analyzed by the others. Makes sense?

The JOB_TRANSFORM_NAMES list is the order in which job transformations are applied, so you have control over the order. I'll talk about a possible hack below, but it seems like even if you have overlapping requirements for different blocks, given that you have an preferred ordering for those blocks, that you can adjust the requirements to match.

For example, if block A requires that a job use fewer then 4 CPUs, and block B requires that the job use fewer than 8 GB of RAM, than the logic

if( CPUs < 4 ) { A(); }
else if( Memory < 8096 ) { B(); }

is the same as

if( CPUs < 4 ) { A(); }
if( (!(CPUs < 4)) && Memory < 8096 ) { B(); }

and that you could write the requirements expressions to match -- syntax completed untested:

requirementsA = CPUs < 4
requirementsB = Memory < 8096

JOB_TRANSFORM_NAMES = A, B

JOB_TRANSFORM_A @= transformA
	requirements = $(requirementsA)
	...
@transformA

JOB_TRANSFORM_B @= transformB
	requirements = (!($(requirementsA))) && $requirementsB
	...
@transformB


If that approach doesn't work, you could also try setting an attribute in the transform that's just a flag telling other transforms not to match (syntax completely untested):

JOB_TRANSFORM_NAMES = A, B, CLEANUP

JOB_TRANSFORM_A @= transformA
[
	requirements = ...
	set_transformed = True
	...
]
@transformA

JOB_TRANSFORM_B @= transformB
[
	requirements = (!transformed) && ...
	...
]
@transformB

JOB_TRANSFORM_CLEANUP @= transformCleanup
[
	Delete_transformed = True
]
@transformCleanup

This configuration of course assumes the "transformed" is never used for anything else by anyone else, so you'll probably want to pick something considerably more unique.

- ToddM